# FAQ
> Common questions about what CGraph is, and isn't.
[Source](https://open.nxtsoft.io/docs/cgraph/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](/docs/cgraph/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](/docs/cgraph/ai-agents)) 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](/docs/cgraph/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.
