Skip to main content
Readiness review
Menu
Browse guidesQuickstart

Local engine / Quickstart

Your first code graph

Index a local project, find a symbol, and follow its dependencies before you edit.

On this page

Before you start

You need three things before the first command

  1. The arbor executable on your PATH. If you have not installed it yet, start with the installation guide.
  2. A local checkout containing source code.
  3. Git, which the change-analysis commands need.
Install Arbor first

The CLI and MCP bridge run locally. You do not need an Arbor Cloud account.

Check your installation
arbor --version
arbor --help

1. Index your project

Open a terminal in the project you want to understand. Replace your-project with its directory.

Terminal
cd your-project
arbor setup
arbor status

setup initializes Arbor and indexes the source files. It writes local configuration and graph data under .arbor/. status then scans the project again and reports what it found. For a four-file Python project, v3.1.0 prints:

arbor status, sample output
📊 Arbor Status

  Files indexed: 4
  Nodes: 9
  Edges: 5
  Extensions: .py

Check these counts before trusting a query result. If Nodes is 0 or your language's extension is missing, start with troubleshooting.

.arbor/ holds a graph built on your machine and, if you use receipts, the text of your requests to Claude Code. Since v3.0.4, Arbor writes .arbor/.gitignore when it sets the folder up, so git leaves it out (issue #233). With v3.0.3, add .arbor/ to your .gitignore yourself. Files from .arbor/ that you already committed stay tracked until you run git rm -r --cached .arbor.

2. Get your bearings

Start with a compact view of the repository, then search for a name you know. The symbol names below are examples; use a function from your own project.

Terminal
arbor map . --exclude-test
arbor query parse_file
arbor callers parse_file
arbor callees parse_file

The map ranks symbols by their position in the graph. Callers show who uses a symbol; callees show what that symbol uses. When several files define the same name, both commands answer for each definition separately; the CLI reference shows that output. Open the reported source locations to confirm the relationship.

3. Investigate a change

Terminal
arbor refactor parse_file --why
arbor diff
arbor diff --base main

refactor explores the graph around one symbol. diff looks at your uncommitted Git changes; --base main covers everything since your branch left main, as a pull request shows it. Use the affected symbols to decide where to read next and which tests to run.

Keep the graph current

Since v3.0.3, the graph records the commit it was built from. After a checkout, commit or rebase, the next command that reads the graph refreshes it and prints a note first:

Note after a commit
note: HEAD moved from d4be9b0 to 7c569d4 since the last index; refreshing the graph.

After an upgrade, the note reads the saved graph was built by a different Arbor version; rebuilding it. While arbor bridge runs, the CLI leaves the graph to the bridge instead; troubleshooting covers that case. When results still look surprising, rebuild from scratch and check the counts again:

Terminal
arbor index --no-cache
arbor status

Ready to use the same graph from an assistant? Connect an MCP client. Using Claude Code? Receipts show what each turn changed. For a walkthrough without installing anything, explore the recorded example.

Sources & release details

Checked against the v3.0.5 release and its source on 10 October 2026, and the overview and quickstart against the v3.1.0 release on 30 October 2026. Output examples labeled v3.0.3 or v3.1.0 were recorded with that version, and the text says where a later release changed the behavior. Your installed command help is the reference for available flags.

Continue withCLI reference