arbor
Graph-native code intelligence that replaces embedding-based RAG with deterministic program understanding.
Arbor
Graph‑Native Intelligence for Codebases
Know what breaks before you break it.
Status (March 2026)
- Latest release:
v1.7.0 - Main development trunk:
main - Maintenance line:
release/v1.6(v1.6.3)
Arbor v1.7.0 is the active release as of March 25, 2026.
Highlights
- Accurate Token Counting — tiktoken (cl100k_base) replaces heuristic estimates for precise LLM context budgets
- Fuzzy Symbol Suggestions — Typo tolerance with Jaro-Winkler matching:
arbor refactor autth→ "Did you mean:auth?" - Enhanced MCP/AI Integration — Rich JSON output with confidence, roles, and edge explanations for Claude/Cursor
- Git-Aware Risk Workflows —
arbor diff,arbor check, andarbor openfor refactor confidence - Incremental Refresh —
arbor index --changed-onlyfor faster re-index during active branches - Better Python UX — Empty
__init__.pyhandled silently (no false warnings) - Polyglot Parser Expansion — New fallback parsing support for Kotlin, Swift, Ruby, PHP, and Shell families
What is Arbor?
Arbor is a local‑first impact analysis engine for large codebases. Instead of treating code as text, Arbor parses your project into a semantic dependency graph. This lets you trace real execution paths—callers, callees, imports, inheritance, and cross‑file relationships—so you can confidently understand the consequences of change.
Unlike keyword search or vector‑based RAG systems, Arbor answers questions like:
“If I change this function, what actually breaks?”
with structural certainty, not probabilistic guesses.
Example: Blast Radius Detection
Before refactoring detect_language, inspect its true impact:
$ arbor refactor detect_language
Analyzing detect_language...
Confidence: High | Role: Core Logic
• 15 callers, 3 dependencies
• Well-connected with manageable impact
> 18 nodes affected (4 direct, 14 transitive)
Immediate Impact:
• parse_file (function)
• get_parser (function)
Recommendation: Proceed with caution. Verify affected callers.
This is execution‑aware analysis, not text matching.
Graphical Interface
Arbor ships with a native GUI for interactive impact analysis.
arbor gui

GUI Capabilities
- Symbol Search – Instantly locate functions, classes, and methods
- Impact Visualization – Explore direct and transitive dependencies
- Privacy‑Safe – File paths are hidden by default for clean screenshots
- Export – Copy results as Markdown for PRs and design docs
The CLI and GUI share the same analysis engine—no feature gaps.
Quick Start
Install Arbor (CLI + GUI):
cargo install arbor-graph-cliOr use package managers:
# Homebrew (macOS/Linux) brew install Anandb71/tap/arbor # Scoop (Windows) scoop bucket add arbor https://github.com/Anandb71/arbor scoop install arbor # npm (any platform) npx @arbor-graph/cli # Docker docker pull ghcr.io/anandb71/arbor:latestOr use one-command installers (no Rust toolchain required):
- macOS/Linux:
curl -fsSL https://raw.githubusercontent.com/Anandb71/arbor/main/scripts/install.sh | bash - Windows (PowerShell):
irm https://raw.githubusercontent.com/Anandb71/arbor/main/scripts/install.ps1 | iex
See Installation Guide for version pinning and manual assets.
- macOS/Linux:
One-shot setup + first index:
cd your-project
arbor setup
Run Impact Analysis:
arbor refactor <symbol-name>
For git-aware workflows:
arbor diff
arbor check --max-blast-radius 30
arbor open <symbol>
Launch the GUI:
arbor gui
You can run Arbor from any nested subdirectory; it automatically resolves to your project root.
📘 See the Quickstart Guide for advanced workflows.
Release Channels & Branches
To keep maintenance and feature work clean:
main→ ongoing developmentrelease/v1.7→ current release line (v1.7.0)release/v1.6→ maintenance-only fixes for 1.6.x (v1.6.3current)release/v1.5→ legacy maintenance/backport branch
This avoids shipping new features into older maintenance branches and keeps backports explicit.
Automated distribution (not GitHub-only)
Tagged releases (vX.Y.Z) are automated across channels:
- GitHub Release assets (CLI binaries for Linux, macOS, Windows)
- crates.io packages
- GHCR container images
- VS Code Marketplace extension
- Open VSX extension
- Homebrew formula
- Scoop manifest
- npm wrapper package
Maintainer setup and verification steps are in docs/RELEASING.md.
MCP Directory Listing
Arbor is listed on Glama MCP Directory:
MCP Health Badges
Claude Code MCP Quick Install
claude mcp add --transport stdio --scope project arbor -- arbor bridge
Then verify with:
claude mcp list
Universal MCP Integration Kit
Arbor ships ready-to-copy MCP templates and bootstrap scripts for multi-client onboarding:
- Templates:
templates/mcp/ - macOS/Linux bootstrap:
scripts/setup-mcp.sh - Windows bootstrap:
scripts/setup-mcp.ps1
# Generate project-scoped config for Claude Code + Cursor + VS Code
./scripts/setup-mcp.sh --client all --target-dir .
# Windows equivalent
./scripts/setup-mcp.ps1 -Client all -TargetDir .
This creates:
.mcp.json(Claude Code project scope).cursor/mcp.json.vscode/mcp.json
For enterprise-managed setups, see docs/MCP_INTEGRATION.md (policy + managed registration notes).
GitHub Marketplace Action
Arbor now includes a reusable GitHub Action at the repo root (action.yml) so teams can run impact analysis directly in CI.
Quick usage
name: Arbor Check
on: [pull_request]
jobs:
arbor:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: Anandb71/arbor@release/v1.7
with:
command: check . --max-blast-radius 30
Inputs:
command(default:status .) — Arbor subcommand + args (without leadingarbor)arbor-version(default:latest) — install from crates.io at a pinned versioninstall-from-source(default:false) — build from this repository source
To publish this action in GitHub Marketplace: create a release tag (for example
v1), add marketplace listing metadata in the release flow, and submit from the repository's Marketplace listing page.
Documentation Hub
- Quickstart: docs/QUICKSTART.md
- Installation: docs/INSTALL.md
- Architecture: docs/ARCHITECTURE.md
- MCP Integration: docs/MCP_INTEGRATION.md
- Protocol Specification: docs/PROTOCOL.md
- Roadmap: docs/ROADMAP.md
- Release Runbook (all channels): docs/RELEASING.md
- Release Notes (v1.6): docs/RELEASE_NOTES_v1.6.0.md
- Release Notes (v1.6.1.1): docs/RELEASE_NOTES_v1.6.1.1.md
- Release Notes (v1.6.2): docs/RELEASE_NOTES_v1.6.2.md
- Release Notes (v1.7.0): docs/RELEASE_NOTES_v1.7.0.md
Why Arbor?
Most AI coding tools treat code as unstructured text, relying on vector similarity. This approach is fast—but imprecise.
Arbor builds a graph.
Every function, class, and module is a node. Every call, import, and reference is an edge. When you ask a question, Arbor follows the graph—the same way your program executes.
Traditional RAG: Arbor Graph Analysis:
"auth" → 47 results AuthController
(keyword similarity) ├── calls → TokenMiddleware
├── queries → UserRepository
└── emits → AuthEvent
The result: deterministic, explainable answers.
Core Features
Symbol Resolution
Arbor resolves symbols across files with full qualification:
- Imports and re‑exports
- Inheritance and interfaces
- Overloads and namespaces
User in auth.ts is never confused with User in types.ts.
Supported Languages
| Language | Status | Parser Coverage |
|---|---|---|
| Rust | ✅ | Functions, Structs, Traits, Impls, Macros |
| TypeScript | ✅ | Classes, Interfaces, Types, Imports, JSX |
| JavaScript | ✅ | Functions, Classes, Vars, Imports |
| Python | ✅ | Classes, Functions, Imports, Decorators |
| Go | ✅ | Structs, Interfaces, Funcs, Methods |
| Java | ✅ | Classes, Interfaces, Methods, Fields |
| C | ✅ | Structs, Functions, Enums, Typedefs |
| C++ | ✅ | Classes, Namespaces, Templates |
| C# | ✅ | Classes, Methods, Properties, Interfaces |
| Dart | ✅ | Classes, Mixins, Widgets |
| Kotlin | ✅ | Functions, Classes, Interfaces (fallback parser) |
| Swift | ✅ | Functions, Types, Protocols (fallback parser) |
| Ruby | ✅ | Methods, Classes, Modules (fallback parser) |
| PHP | ✅ | Functions, Classes, Traits (fallback parser) |
| Shell | ✅ | Function definitions (fallback parser) |
Python note: Decorators,
__init__.py, and@dataclassare statically analyzed. Dynamic dispatch is flagged with reduced confidence.
Build from Source
git clone https://github.com/Anandb71/arbor.git
cd arbor
cargo build --release
cargo test
Frictionless setup notes
- No external graph database is required. Arbor is local-first and uses embedded storage.
- From a fresh clone, contributors can start with just:
cargo buildcargo test
If you prefer containerized setup, run:
docker compose up --build arbor-dev
Linux GUI Dependencies
sudo apt-get install -y pkg-config libx11-dev libxcb-shape0-dev libxcb-xfixes0-dev \
libxkbcommon-dev libgtk-3-dev libfontconfig1-dev libasound2-dev libssl-dev cmake
Troubleshooting
Symbol not found?
- .gitignore – Arbor respects it (
arbor status --files) - File type – Ensure the extension is supported
- Empty files – Skipped (except
__init__.py) - Dynamic calls –
eval/ runtime reflection may not resolve - Case sensitivity – Use
arbor query <partial>to search
Empty graph?
Run arbor status to verify file detection and parser health.
Need environment diagnostics?
Run arbor doctor (or arbor check-health) to verify ports, project structure, and integration readiness.
Repo suddenly huge (multi-GB)?
Rust and Flutter build artifacts can grow quickly during iterative testing.
- Windows PowerShell:
./scripts/clean.ps1 - macOS/Linux:
./scripts/clean.sh - Deeper cleanup (also removes local Arbor/Flutter cache artifacts):
- PowerShell:
./scripts/clean.ps1 -Deep - Bash:
./scripts/clean.sh --deep
- PowerShell:
This is safe for source code; it only removes generated artifacts that can be rebuilt.
Security Model
Arbor is Local‑First by design:
- No data exfiltration
- Fully offline
- No API keys
- Fully open source
Your code never leaves your machine.
License
MIT License. See LICENSE for details.
Contributors
6 contributors | View all
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found