Repo Graph
Map a codebase into your workspace as rows and typed edges, then ask it who calls what, what breaks if you change something, and why a symbol exists.
Repo Graph turns a codebase into rows and typed edges in your workspace. [dots](/reference/glossary/dots) repo ingest parses a checkout on your machine, and what lands is ordinary graph structure: a
file is a row, a function is a row, and "this function calls that one" is an between
them.
Because code lands as ordinary rows rather than in a code-specific index, a traversal can leave the code without leaving the graph — from a symbol to the file that defines it, to the commit that produced it, to the conversation where it was discussed. Text search tells you where a name appears. The graph tells you what depends on the thing the name refers to.
Re-ingest is incremental, so keeping the graph level with a moving checkout is cheap enough to do often.
Key Features
- Three Ordinary Dotabases — ingest writes Git Repositories, Repo Files, and Code Symbols. Every row it produces can be tagged, viewed, searched, and linked by hand like any other row.
- Five Structural Edges — a repository contains a file, a file defines a symbol and imports_module another file, a symbol calls and inherits from another. Nothing but the parser mints them.
- No Guessed Edges — every edge carries the confidence it was resolved at, and a reference with several plausible candidates and no disambiguator draws no edge at all.
- Stated Language Coverage — TypeScript, TSX, JavaScript, JSX, and Python. A file in any other language produces no row rather than an empty one, so an absence is a fact about coverage first.
- Incremental Re-Ingest — files are fingerprinted by a hash of their content, so each path is classified unchanged, changed, added, deleted, or renamed and only what moved is parsed or written.
- Retirement, Not Deletion — a file or symbol that leaves the checkout keeps its row id and gains an archived stamp, so a link you drew by hand still resolves afterward.
- Eight Read Verbs —
dots graphanswerscallers,callees,impact,trace,diff,why,context, anddetect-changesover an ingested repository. - The Same Reads For Agents — each of those verbs is registered as an MCP tool, gated
on the
graph.readpermission atom.
Get Started
- Ingest A Repository — run the first ingest, see what landed, and re-run it as the code moves. Start here.
- Query The Code Graph — the eight read verbs with their bounds, their empty results, and what a stale answer looks like.
Resources
- dots mcp and dots repo — every
dots reposubcommand with its arguments and options. - MCP Tools — the full catalog a connected agent receives, and the permission atom each tool requires.
- DOTs And The Knowledge Graph — the model an ingested repository shares with your notes, specs, and conversations.
- DOT and Edge — the two primitives every ingested row and edge is an instance of.
Get Started
- Ingest A RepositoryParse a local checkout into files, symbols, and structural edges, re-run it incrementally as the code moves, and read back whether the graph is current.
- Query The Code GraphAsk an ingested repository who calls a symbol, what it calls, what breaks if it changes, how two nodes connect, what sits next to it, what a commit range changed, and why a symbol exists — from the CLI or from an agent over MCP.