agentmap
The TS/JS-accurate repo map for your coding agent — a compiler-grade ts-morph import/symbol graph that answers "where is it / what breaks / does this already exist" in ~98% fewer context tokens.
Your AI coding agent re-learns your codebase every session — opening files and grepping to find
what connects to what, burning tokens before it writes a line. agentmap gives it a queryable,
ranked code-relationship map for TypeScript/JavaScript repos instead — a ts-morph import/symbol
graph (the real TypeScript compiler, so aliases, vite/webpack resolve.alias, package.json
#imports subpaths, and workspace cross-package imports all resolve) ranked by personalized
PageRank. Ask it to "add a field" or "fix the login bug" and it
finds the right files, their imports, and what already exists in
~98% fewer context tokens on average (up to ~99.9% per task; figures are chars/4 estimates applied equally to both sides) — kept current by a post-commit
auto-refresh and actually used via a PreToolUse(Grep) hook.
agentmap's wedge in one line: it's the TS/JS-accurate repo map — a real TypeScript-compiler graph, not a tree-sitter approximation — with a published, honest accuracy eval to back it. That precision is the point; the auto-refresh/nudge wiring below is convenience, not the moat.

One file, one runtime dependency (ts-morph, which bundles the TypeScript compiler — ~10 MB installed). No vector DB, no embedding API, no server.
npx @raymondchins/agentmap --any <query> and you have a ranked answer.
Fully local — no network calls, no telemetry, no data leaves your machine. agentmap
reads your code, writes a cache under .claude/agentmap/, and never phones home (there is
not a single fetch/http call in the source). Your code is never sent anywhere.
⚠️ Always install the scoped name: @raymondchins/agentmap. npx agentmap
(unscoped) runs an unrelated package by a different author — this project is
@raymondchins/agentmap, and the scoped name is required in every install and command.
npmjs.com/package/@raymondchins/agentmap
Benchmark
Every task you hand a coding agent starts with the same hidden step — find the relevant code.
Here's the token cost of that step, reading raw files vs querying agentmap, on a real 154-file
Next.js app (vercel/ai-chatbot). Every figure is captured
tool output (node benchmark/bench.mjs <repo> at the pinned sha):
| The question the agent has to answer first | Reading files | With agentmap | Saved |
|---|
| Where is this symbol defined? | 1,950 | 20 | 99% |
| Does a helper for this already exist? (reuse) | 14,740 | 19 | 99.9% |
| What breaks if I change this file? (blast radius) | 81,038 | 616 | 99.2% |
| What files make up this feature? | 6,121 | 1,025 | 83.3% |
| Give me a repo overview | 3,065 | 1,127 | 63.2% |
| Load the whole repo into context | 150,281 | 1,127 | 99.3% |
| What does this one file import? | 583 | 517 | 11.3% |
| All 7 tasks combined | 257,778 | 4,451 | 98.3% |
Context tokens the agent burns to answer each question — token est = chars/4, applied to both sides.