Aider names symbols. ArgosBrain understands them.
Aider (Apache-2.0) has no persistent memory. From their own docs: "when you quit and restart aider, it has no memory of what you discussed, what architecture decisions you made, or what conventions you established."
Its Repository Map is a stateless, live-computed summary: tree-sitter extracts top-level symbol names across 130+ languages, files-as-nodes/references-as-edges form a graph, PageRank ranks importance, and a binary search packs top-ranked symbols into a token budget (default 1000 tokens) sent with every request.
CONVENTIONS.md via read: in .aider.conf.yml is the closest thing to persistent context.Sources: Repo map docs · Conventions docs
That number describes tree-sitter grammars available for surface-level name extraction — not semantic understanding. Tree-sitter produces a concrete syntax tree for a single file; it does not perform cross-file symbol resolution, type inference, import resolution, or method-override analysis. Aider's repo map is therefore closer to "a ranked list of file names and the top-level identifiers in them" than to a true code graph.
ArgosBrain uses a tiered ingestion pipeline that picks the highest-precision technology available per language: compiler-grade SCIP where a mature indexer exists, live LSP next, bespoke tree-sitter drivers with semantic hooks where neither exists.
See the FAQ on language-server failure modes (Q1–Q3).
| Query | Aider repo map | ArgosBrain |
|---|---|---|
resolve_member("foo.bar.baz") | ✗ No member resolution | ✓ Exact |
| Every method on class X | ✗ Not modeled | ✓ contained_by traversal |
| Every caller of X.method | ✗ Approximate (text-match) | ✓ Call-graph traversal |
| Every override of Interface.method | ✗ No inheritance graph | ✓ Inheritance + override edges |
Who reads DATABASE_URL? | ✗ grep-equivalent | ✓ Config-surface traversal |
symbol_exists("teleport_to_mars") | ✗ Can't distinguish "absent from map" from "doesn't exist" | ✓ Deterministic no |