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 Verbsdots graph answers callers, callees, impact, trace, diff, why, context, and detect-changes over an ingested repository.
  • The Same Reads For Agents — each of those verbs is registered as an MCP tool, gated on the graph.read permission 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

Get Started