FAQ
Is CGraph a replacement for grep or ripgrep?
No. Full-text search answers "where does this string appear"; CGraph answers "how do these things relate" — what calls a function, what a change touches, the path between two symbols. They're complementary. See Core Concepts for the comparison.
Is it a language server?
No. An LSP serves an editor with per-file language intelligence. CGraph builds a persistent, language-agnostic graph of the whole project for querying and for feeding agents budgeted context. Some capabilities overlap; the purpose differs.
Which languages does it support?
Tree-sitter extraction for C, C++, Java, JavaScript, TypeScript, TSX, Kotlin, Scala, Groovy, Python, and Ruby; regex/structured extraction for Apex, Delphi, MSBuild/XML, and MCP config files.
Do I need to run the daemon?
Not for a one-shot graph — cgraph --root . --out cgraph-out builds and exits.
Run graphd when you want the graph kept warm and updated incrementally across
many queries or an agent session.
How does an agent use it?
Through MCP. Register cgraph-mcp with your agent (see
AI Agent Integration) and it gains eight graph tools —
query, explain, impact, path, context, update, status, shutdown.
Is the graph deterministic?
Yes. The same source tree produces the same graph. That's what makes incremental updates and background persistence correct — see Design Decisions.
Does it modify my code?
No. CGraph reads the source tree and writes its graph and exports to the output
directory (cgraph-out/). It does not change your source.
Where are the graph and exports written?
To the --out directory (conventionally cgraph-out/), as graph.json plus
HTML, SVG, Obsidian, Cypher, and call-flow exports.