What it builds
Index reads imports, manifests and references, then draws the dependency graph between repositories and between modules. Each edge names the file and line it came from, and each node is labelled root, leaf, hub or bridge from its place in the graph. It makes no model call and no network call.
Check the architecture you meant
Write your rules in a small .index.toml: which layers may depend on which, edges that must never exist, a ceiling on cycles. index check compares the real graph against them and returns MATCH, DRIFT or UNVERIFIABLE, with the files it could not parse listed. index snapshot and index drift compare over time, index freshness tells you whether the code moved since the last check, and index verify answers one question, such as whether A depends on B, so an agent can confirm a dependency instead of guessing.
A wiki for one unfamiliar repository
index wiki builds a single offline HTML file for one repository: an overview, one page per module with each edge and its file and line, an architecture diagram drawn from the real graph, and your own Markdown included as written. It writes no generated prose. index wiki --verify tells you whether the wiki still matches the code.
$ index wiki https://github.com/org/repo --out wiki.html # shallow-clone, derive from the module graph, remove the clone $ index wiki --verify wiki.html --root ./repo MATCH pages sealed, every claimed edge present, commit pinned
Give it a git URL and it clones to a temporary folder, builds the wiki and removes the clone. index serve runs a local server that builds a wiki when you request a forge path such as GET /github.com/org/repo. It binds to loopback by default.
See it run
Watch the recorded workflow: a sanitized workspace of three repositories, its edges, a MATCH check and a context pack for an agent. There is a 30-second cut and the full 118-second run. index bench measures how much smaller the context pack is than the source on your own workspace; on one 47-repository, 50 MB workspace it was about 70 times smaller.
$ index graph --root . --json # every edge carries the file and line that witnesses it {"from": "cli", "to": "core", "confidence": "high", "evidence": "cli/main.py:12 import + pyproject.toml:8 manifest"} $ index check --root . verdict=MATCH findings=0 # re-run the recheck command and confirm the hashes yourself $ index bench --root . # the structural pack vs the source it reads source read 49,880,045 bytes index pack 716,288 bytes 69.6x smaller
Current release
index-graph 2.13.0 includes the workspace atlas, dependency and module graphs, architecture checks, the claim checker, a router for CLAUDE.md and AGENTS.md files, an MCP server, the token benchmark and context packets. Version 2.12.0 added background jobs for large workspaces, and 2.11.0 added resumable index map --resume-state PATH runs. A run with a budget returns a partial view marked UNVERIFIABLE; use a full, resumable or background run when you need the complete inventory.
Install and run it
For a small repository, run commands in the foreground. For a large workspace, start a background job. Start returns a job_id; use that id with index router-job status for progress and index router-job result for retrieval. MCP clients expose the same background path as index.router.job.start, index.router.job.status, and index.router.job.result.
$ python -m pip install index-graph==2.13.0 Successfully installed index-graph-2.13.0 $ index router-job start --root . --json