documentation

ACI Docs

Install the CLI, index a repository, ask graph questions, compare branches, and tune parser limits for production-sized codebases.

Install

binary

ACI installs as a single CLI. The install script detects platform and architecture, downloads the matching release, and places the binary in a user-writable bin directory.

curl -fsSL https://aci.mask.dev/install.sh | sh
aci --help

For local development, run commands through Cargo: cargo run -p aci-cli -- ...

Index and watch

store

Indexing writes graph partitions into the local .aci store. Watch mode refreshes changed files and reverse dependencies after filesystem changes settle.

aci index .
aci index . --store .aci
aci watch . --debounce-ms 250
aci watch . --once --max-wait-ms 5000

What gets indexed

Files, symbols, imports, exports, calls, references, packages, diagnostics, spans, and fact quality.

What gets skipped

Vendor directories, generated paths, binaries, unsupported files, and parser work above configured limits.

Query

answers

Query commands read the store and return either human-readable text, aligned tables, or JSON for automation.

aci query --pretty symbols --name main
aci query deps --file src/lib.rs
aci query callers main
aci query callees main
aci query refs main
aci query --format json impact src/lib.rs
aci export --format jsonl

Branch diff

review

aci diff checks two Git refs out into isolated detached worktrees, indexes both trees, and compares the resulting graph snapshots.

aci diff main feature
aci diff main feature --pretty
aci diff main feature --agent
aci diff main feature --agent --format json --pretty

Use --agent for compact review focus: risk, top changes, important symbols, dependency changes, diagnostics, and notes.

Parser limits

bounds

Tree-sitter parsing is bounded per file. If a source file is larger than the cap, ACI records a diagnostic and keeps scanner fallback facts when fallback mode is active.

aci index . --max-parse-bytes 10485760
aci watch . --max-parse-bytes 10485760
aci diff main feature --agent --max-parse-bytes 10485760
aci bench cold . --max-parse-bytes 10485760
  • Raise the cap for legitimate large source files that need parser-backed spans and calls.
  • Keep generated bundles out of source indexing rather than raising the cap for generated output.
  • Diagnostics from skipped parses are review signals, not fatal index failures.

Release checks

quality

Use the same gate before publishing a release or handing a branch to another developer.

./scripts/check-loc.sh
cargo fmt --all -- --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace
RUSTDOCFLAGS="-D warnings" cargo doc --workspace --no-deps
./scripts/validate-packaging.sh
sh -n site/install.sh
cargo audit