Repository navigation
v3.1.2 is an install-path patch release. A first-time user who followed the
README could end up with an MCP entry their client never reads, a Swift or Lua
repository that indexed as unsupported language, or an [all] install that
pulled a test toolchain. This release fixes those paths. No MCP request or
response shape changes, and the index does not need a rebuild.
Fixed
install.shwrites the file each client actually reads. Claude Code now
gets a project.mcp.json(the old~/.claude/.mcp.jsonand
./.claude/.mcp.jsontargets are not read by Claude Code). VS Code gets
.vscode/mcp.jsonwith theserverskey andtype: stdio(VS Code ignores
mcpServers). Cursor gets a project.cursor/mcp.json; the global
~/.cursor/mcp.jsonis never written, because one fixed
TREE_SITTER_PROJECT_ROOTthere points every project at one repository.
A detected client whose file does not exist yet gets a new file instead of
being skipped. Codex CLI users get a printedconfig.tomlblock.--doctorchecks the same locations and reports an unset
TREE_SITTER_PROJECT_ROOTin the shell as WARN instead of FAIL (the MCP
client config, not the shell, normally sets it). It flags a VS Code file that
usesmcpServersand accepts${workspaceFolder}.- Swift and Lua grammars ship with the core install. They were optional
extras, so a plainuvx/pipinstall answeredunsupported languagefor
.swiftand.luafiles. The missing-grammar hint for them now asks for a
package upgrade. - README and installation guide (EN/JA/ZH/ES): the automated-install text
describes what the script does; every quick start includes the one-time
--full-indexstep and the expectedindexed: true; CLI examples work
without a persistent install (uvx --from tree-sitter-analyzer ...);
a Codex CLI block was added; stale "in this PR" / "on develop" wording was
removed.
Changed
anthropicis no longer a dependency. No module imports it. This removes
anthropic,distro,docstring-parser,jiterandsniffiofrom the
resolved install.[all]means every language grammar plus the MCP extras. It no longer
installs pytest, ruff, mypy, black, isort, pre-commit or memory-profiler, and
no longer pinspsutil<6. Developer environments use[full]or[dev].- Core grammar packages carry the same upper bounds as the extras
(for exampletree-sitter-python>=0.23.6,<0.25.0), so a plain install
resolves the grammar series the test suite runs against. install.sh: a config file that fails to parse is now a failure (exit 1)
instead of a silent skip.
Added
llms.txt: a non-interactive install guide for AI agents..github/ISSUE_TEMPLATE/agent-trial.yml: a structured report form for an
agent's install and first-use outcome.server.json: title, website,runtimeHint: uvx, and the optional
TREE_SITTER_PROJECT_ROOTvariable for the official MCP Registry; README
carries themcp-nameownership marker the registry checks on PyPI.
Migration
- If you installed with
[swift]or[lua], nothing changes; both extras are
kept as aliases. - If you relied on
pip install "tree-sitter-analyzer[all]"for a test
toolchain, use[full](oruv sync --extra fullin a clone). - If you import
anthropicin your own scripts next to TSA, install it
yourself; TSA no longer pulls it in. - If an earlier
install.shrun wrote~/.claude/.mcp.jsonor
./.claude/.mcp.json, Claude Code never read those files. Re-run
install.shin the project, or run
claude mcp add tree-sitter-analyzer --scope project ..., then delete the
stale file. The same applies to a VS Codemcp.jsonthat uses
mcpServers. - Scripts that relied on
install.shexiting 0 on an unreadable config file
must now handle exit 1.