Short answer: run GraphTrail as a local SQLite code graph (CLI + optional MCP), and let Brigade attach code-graph deltas to verify and run receipts when the graph is present. Everything stays on disk; nothing is required for Brigade to work without it.
The problem
Agents reason about code from whatever fits in context. Grep finds strings. It does not answer “who calls this?” or “what broke when this symbol changed?” Hosted code-intel tools help, but they move your tree off-machine and do not plug into a local receipt loop.
The path
brigade add graphtrail # or: cargo install graphtrail
graphtrail sync # builds .graphtrail/graphtrail.db in the repo
graphtrail context "auth middleware" --markdown
brigade search doctor # advisory GraphTrail + optional code-search health
brigade work verify run --target . --command "pytest -q" --capture brigade-work
GraphTrail owns the graph. Brigade owns the operator loop: when GraphTrail is installed, verify and run receipts can carry a compact code_graph_delta so the next session sees what actually changed.
Brigade station surface
GraphTrail sits on the search station:
brigade add searchorbrigade add graphtrailbrigade search status/doctor/sync plan(plans only; does not run sync for you)
Optional semantic search (code-search-api / MCP) is a sibling, not a replacement for the graph.
When this is enough
Use GraphTrail + Brigade when you want local callers/callees/impact and structural proof on verify receipts. Use a full language server or hosted code-intel product when you need deep IDE features, multi-language enterprise indexes, or team-wide cloud search.
Questions
Does Brigade require GraphTrail? No. GraphTrail is optional and fail-open. Absent tools never break a workspace doctor run.
Is the graph uploaded anywhere? No. The database lives under .graphtrail/ in the target repo.
Can agents query it over MCP? Yes. GraphTrail ships a read-only MCP surface; Brigade can also sync MCP catalogs with brigade mcp sync.
Product page: GraphTrail on brigade.tools. Station CLI: search docs.