Graft
Graft targets a specific waste in coding agents: every task they start blind, re-exploring the repo with grep, file opens and import-following, then discarding what they learned when the session ends. Graft builds that understanding once and writes it into your repository as a folder of linked markdown files, one node per system, API or concept, each explained in plain language rather than as a bare list of symbols.
There are no embeddings or similarity index: the graph is plain files the agent opens and greps. It is a local cache that `graft build` adds to .gitignore, and every query first rebuilds the structural graph against the working tree, which the README says costs nothing and takes about 3 ms when nothing changed. Summaries are written by a provider and key of your choice (OpenAI, Anthropic, OpenRouter, Fireworks, Groq, a LiteLLM proxy or a local model). Setup is `npm install -g @nanonets/graft` then `graft init`, which asks which agents to wire up (Claude Code, Cursor, Codex, Gemini and others), with `--dry-run` to preview every file it would touch. There is an MCP server, a CLI with grep and map commands, a graph visualiser and an optional GitHub App for blast-radius review of pull requests. The code is MIT licensed.
Features
Why choose it
Trade-offs
Maintenance check
- Last commit
- 2026-10-24
- Commits, last 90 days
- 100+
- Releases, last 90 days
- 0
- Latest release
- —
- Open issues
- 249
- Recent issues with at least one comment
- 0/11
Oldest week on the left; the latest four weeks are orange. Source: GitHub commit activity.
Status rule: archived on GitHub = Archived; last commit within 90 days = Active; 91 to 365 days = Slowing; older = Stale. All figures come from the GitHub API on the date shown.
Most discussed open issues
- #323 0.13.0+ won't start on Windows without a C toolchain: [email protected] ships no prebuilds, so require() throws before any command ru5 comments · 2026-09-09
- #374 Runaway upkeep child processes when ~/.graft is unwritable in a sandbox4 comments · 2026-09-13
- #326 Using skill instead of AGENTS.md4 comments · 2026-09-09
- #313 Do not clobber statusline on first install4 comments · 2026-09-09
- #298 graft build --deep: hardcoded maxTokens=8192 truncates tool-call JSON, and file-node summaries discarded due to id-decoration mismatch4 comments · 2026-09-04
Issue titles are quoted from GitHub. Open the link to check whether a problem still applies to the version you use.
Who it fits
- You want to generate a readable, interconnected Markdown knowledge graph of your repository so coding agents (Claude Code, Cursor) can grep and explore without expensive re-indexing.
- You want to reduce context token waste by giving agents precise map-like documentation of modules and call paths.
- You need an enterprise graph database with semantic vector embeddings and Cypher queries; code-graph-rag with Neo4j fits that scale.
- You only have a small, single-file script or a trivial repository.
How it differs
Graft compiles codebases into simple, static Markdown file graphs that any agent can read natively. Code-Graph-RAG deploys Neo4j and vector embeddings for deep semantic AST and graph database querying.
Compatibility
Quick start
Use cases
Alternatives
Comments
No comments yet. Be the first!