It remembers the decisions you already explained, and answers “what breaks if I change this” from a real symbol graph. Local, free, nothing to sign up for.
grep -rn "cmdScan" src/then follow each call site outwardread src/cli/commands/graph.tsread src/graph/scan/extract.tsread src/capture/git.tscmdScan calls into the scan path, but I need to open
each hop to be sure nothing in between is indirect.
3 files read to follow the chain by hand.
With claude-db25tokens
find_usages mode: pathShortest path (4 hops): cmdScan --> scanRepository --> extractFile --> symbolId --> observationId4 hops, every edge read out of the syntax tree.
No file was opened to answer it.
The whole chain, in one query.
Running in about a minute
01
Install it globally
One package, no native build, nothing to compile.
$npm install -g claude-db
02
Wire it to your repo
Run it inside the repo. Registers the hooks and MCP server, then restart Claude Code.
$claude-db install --project
03
Map the code once
Builds the symbol graph. Re-runs only re-parse what changed.
$claude-db scan
What you actually get
Everything it does, and where your data lives.
Recall
Automatic. Past decisions arrive on the next prompt. You never run a search command.
Code graph
Real relationships: calls, imports, inherits, each labelled.TypeScriptJavaScriptPythonGoRust
Storage
Your database. SQLite by default with zero setup, or point it at Postgres or Mongo to sync across machines.
Privacy
Local. No account, no telemetry. Secrets and .env are never stored.
Cost
180tokens a prompt597saved on a lookupMeasured, and reproducible with npm run bench:ab
Your repo already told you this once.
Let Claude keep it. One lookup on this page saved 3,715 tokens.