Skip to main content
Sign in to Arbor CloudSign in
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 a local checkout containing source code and the arbor executable on your PATH. Follow the installation guide if you have not installed it yet. Git is needed for the change-analysis commands.

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.0.3 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.

Add .arbor/ to your .gitignore. It holds a graph built on your machine and, if you use receipts, the text of your requests to Claude Code. v3.0.3 does not ignore it for you (issue #233).

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 public sources on 30 September 2026. Examples target v3.0.3, which GitHub, npm and Cargo all listed on that date. Your installed command help is the reference for available flags.

Continue withCLI reference