Skip to content

Call Graph

Ganglia parses your source code into a directed call graph. Every function, class, method, HTTP route, and database table becomes a node. Every call, import, or reference becomes an edge.

  • Functions and methods — with their signatures and file locations
  • Classes and modules — as container nodes
  • HTTP routes — linked to their handler functions
  • Database tables — linked to the queries that touch them
  • Environment variables — linked to where they’re read
BackendStorageWhen to use
Cozo (default).gl/graph.cozo — one SQLite fileAny project, zero setup
FalkorDBRedis moduleWhen you want the live web dashboard

Switch backends: gl init . --backend falkor

On MCP startup, Ganglia compares blake3 hashes of all project files against .gl/index_state.json. If nothing changed, the graph is ready instantly. If a subset of files changed, only those files are reparsed.

Call edges are resolved across file boundaries. code_callers, code_callees, code_trace, and code_impact all work correctly for calls that cross module boundaries — including Rust’s cross-file deferred batch resolution.

Terminal window
# Index once
gl init .
# Keep it live while you work
gl watch . &
# Check stats
gl stats -p .