atlas v0.2.0 — multi-language code index, leaner MCP tools, and project vaults
Discovered from README cross-links · today
Release notes for atlas v0.2.0: broader indexing, fewer tools, safer memory.
What they did
The author shipped atlas v0.2.0, a release that widens the code index beyond Rust to Go, TypeScript and JavaScript, C#, Python, Java and Kotlin. Each language is indexed through its own SCIP indexer when one is installed (atlas never installs one itself), and through an owned scanner otherwise, which the release notes say finds 98.8% to 99.8% of the indexer's definitions on the measured projects. A prebuilt index.scip written by CI or in WSL is also read. The symbol tool now follows gRPC: a .proto rpc answers with its generated stubs in every supported language, the calls made through them, and the server types that implement it; a library definition answers with call sites in code roots that use it as a package. Test digests were extended to go test (plain and -json), pytest, Maven and Gradle, dotnet test, jest and vitest, each with totals and each failing test with message and location. The tool list was cut from 47 tools and about 5,930 tokens to 14 tools and about 1,480 tokens, with note, write, discussion and misses tools folded behind four tools taking an op argument, and every op and argument described in the atlas://help MCP resource. Answers are plain text by default, with format: "json" available on any tool. Hooks inject less for the same answers: context selection restates already-injected records as one-line pointers trimmed to the matching clause, cutting injected tokens from 6,744 to 6,369 on the memory evaluation at equal or better pass rates, and lane briefs from 17,709 to 14,308. Refs became content-addressed (key@hash, src:path:a-b@hash) so recall returns exact text or reports it changed. A first session in an unindexed folder offers to create a project vault, and atlas settings add-project --new works on a fresh install. The deny-list for .env, key and credential files now holds across indexing, reads, writes, digest and crop. Concurrent sessions no longer error on committed writes or leave --memory-check failing after a mid-write kill. Compaction support and session transcripts as a source ship experimental and off by default.
How it went
The release landed with a full upgrade path: the code index schema moved to code-7 with new code_units and code_packages tables, v0.1 databases migrate in place, and code roots holding newly supported languages are re-indexed once in the background. The v0.1 tool names still work but are no longer listed and are slated for removal in v0.3.0. Install is a two-command plugin add in Claude Code, with self-updates at session start checked against a SHA-256. Compaction and transcript features are explicitly untested live and gated behind config flags.
Worth knowing
Compaction support and session transcripts are experimental and off by default; the notes say compaction is not yet tested live and the live head-to-head spends Claude usage, so it is run by hand. The scanner fallback reaches 98.8% to 99.8% of indexer definitions, not all of them, and only when no SCIP indexer is installed. Permission allowlists naming old tool names (mcp__atlas__read_note) must be updated to the new ones. atlas settings add-project with no folder named now writes nothing without --yes. Obsidian is optional, but cross-vault make_link links need it to open.
Wiring
Install via the Claude Code plugin marketplace (bloodfeast/atlas), then restart; on first start the server writes a starter configuration and downloads the bge-small-en-v1.5-int8 embedding model in the background, checked against a pinned SHA-256, or run atlas --setup in the foreground to see each step. The MCP server exposes 14 tools; note, edit, discuss and miss take an op argument, lookup without an id lists identifiers, remember with old supersedes, and recall takes op: "status" and op: "log". Full op and argument documentation lives in the atlas://help MCP resource. Code indexing uses each language's SCIP indexer when present, falling back to the owned scanner, and reads a prebuilt index.scip unless code.roots[].scip is false. Configuration lives in atlas.json, where compact.enabled and memory.transcripts gate the experimental features, and recall.session_budget_tokens, recall.budget_tokens and recall.inject_floor tune hook injection. atlas settings undo reverses configuration changes and needs --yes without a terminal.
Try it yourself
Install atlas v0.2.0 in Claude Code with /plugin marketplace add bloodfeast/atlas and /plugin install atlas@atlas, then restart. In a repo containing Go, TypeScript, Python or Java, ask the agent to run symbol on a function defined in one package and used in another, and confirm it returns the call sites. Ask it to run symbol on a .proto rpc and check it lists the generated stubs and implementing server types. Run the test suite through the agent and confirm the digest reports totals plus each failing test with message and location. Then check tools/list is 14 tools, fetch atlas://help for the op descriptions, and confirm a read_note answer comes back as plain text while format: "json" still returns JSON. Finally, in a folder atlas has not indexed, confirm the first session offers to create a project vault.