Git-aware code knowledge graph — incremental AST indexing on every commit, MCP server for AI assistants
Project description
gitcortex
A code knowledge graph for Git repositories. GitCortex indexes your codebase on every commit and answers questions like "what calls this function?" or "what changed between these two branches?" — so your AI coding assistant can work with real structure instead of scanning raw files.
Install
pip install gitcortex
# or
pipx install gitcortex
# or
uv tool install gitcortex
Supports macOS (Apple Silicon + Intel), Linux (x86_64 + arm64), and Windows (x64). No Rust or compiler required — a pre-built binary is bundled in the wheel.
Quick start
cd your-repo
gcx init # index the repo + install git hooks
gcx serve # start the MCP server for your AI assistant
After gcx init, the graph updates automatically on every git commit, merge, rebase, and checkout. No manual re-runs needed.
What it does
GitCortex builds a queryable graph of your codebase — functions, structs, classes, interfaces, call relationships, inheritance chains — and keeps it current automatically.
- Works with: Rust, Python, TypeScript, JavaScript, Go, Java
- Integrates with: Claude Code, Cursor, Windsurf, GitHub Copilot, Antigravity
- Per-branch graphs: switching branches gives you the graph for that branch instantly
- Zero runtime dependency: single self-contained binary, nothing else to install
Commands
gcx init
Index the current repo, install git hooks, and register the MCP server with your editor.
gcx init # auto-detects your editor
gcx init --editor cursor # target a specific editor: claude, cursor, windsurf, copilot
gcx init --editor all # write configs for every supported editor
gcx serve
Start the MCP server so your AI assistant can query the knowledge graph.
gcx serve
Once running, your AI assistant has access to tools like find_callers, lookup_symbol, list_definitions, trace_path, and more.
gcx query
Query the graph from the terminal without an AI assistant.
gcx query lookup-symbol MyStruct
gcx query find-callers process_request
gcx query list-definitions src/lib.rs
gcx blast-radius
See which parts of the codebase are affected by changes between two branches — useful before merging.
gcx blast-radius --base main --head feat/my-feature
gcx blast-radius --base main --head feat/my-feature --format github-comment
gcx viz
Open an interactive graph in your browser.
gcx viz # opens on port 5678
gcx viz --port 9000
gcx viz --branch feat/my-feature
gcx viz --format dot > graph.dot # export as Graphviz DOT
gcx export
Generate a readable Markdown map of the codebase at .gitcortex/context.md. The git hook keeps it up to date automatically.
gcx export
gcx status
Show node and edge counts for the current branch.
gcx status
gcx clean
Wipe the local graph store and re-index from scratch on the next commit.
gcx clean
MCP tools available to your AI assistant
| Tool | What it answers |
|---|---|
lookup_symbol |
Where is MyStruct defined? |
find_callers |
What calls process_request? |
find_callees |
What does handle_request call? |
list_definitions |
What's defined in src/auth.rs? |
find_implementors |
What implements AuthProvider? |
trace_path |
How do you get from main to validate_token? |
find_unused_symbols |
What's never called (dead code candidates)? |
get_subgraph |
Everything within 2 hops of UserService |
detect_changes |
What changed + who's affected vs main? |
symbol_context |
Callers, callees, and uses for a symbol |
All tools accept an optional branch parameter.
Configuration
.gitcortex/config.toml (committed to your repo, shared with your team):
[index]
languages = ["rust", "typescript", "python", "go"]
max_file_size_kb = 500
.gitcortex/ignore (.gitignore syntax — files to exclude from indexing):
target/
build/
**/*.generated.rs
License
MIT — free for commercial and open-source use.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gitcortex-0.3.0-py3-none-manylinux2014_x86_64.whl.
File metadata
- Download URL: gitcortex-0.3.0-py3-none-manylinux2014_x86_64.whl
- Upload date:
- Size: 11.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c40fe11045d48c388cce34d9b366aacd36abaa1662974206d38ebb94900c7012
|
|
| MD5 |
77c1392d60384bc1b7fb84be399e85d0
|
|
| BLAKE2b-256 |
f2e8981e8b18ceb92bc57c0e8ec161ed75779b4749f222e4a9a7e94d52a88f95
|
File details
Details for the file gitcortex-0.3.0-py3-none-manylinux2014_aarch64.whl.
File metadata
- Download URL: gitcortex-0.3.0-py3-none-manylinux2014_aarch64.whl
- Upload date:
- Size: 9.7 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e1d23d5c287edf26f1bb42938f21e48dffd8d7c52be3e1b1c5c186276912bcd
|
|
| MD5 |
bdf704886db617afb0a3f9948e434f5b
|
|
| BLAKE2b-256 |
fbf5c20d7d13620100ff014552bb13c8b5f2f07b6e9811ab965f98fe54135490
|
File details
Details for the file gitcortex-0.3.0-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: gitcortex-0.3.0-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 7.9 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6592da142d0231214d174a92214b8fc50d9efb51d1dfeccd2d0cf325e56963fd
|
|
| MD5 |
244c2c1520e4db8e8bf0da9f5c1766df
|
|
| BLAKE2b-256 |
630e6f289b1ec9e13ad0f4a22c5b4fe1b6cae34757b26058017eeb7466027a5a
|
File details
Details for the file gitcortex-0.3.0-py3-none-macosx_10_12_x86_64.whl.
File metadata
- Download URL: gitcortex-0.3.0-py3-none-macosx_10_12_x86_64.whl
- Upload date:
- Size: 7.9 MB
- Tags: Python 3, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
523d44ed32dcc7bff34946776114dbcb37ddafd0521a2150de64dbc08ef82bf2
|
|
| MD5 |
d4605bdf943464d74367618119da6f14
|
|
| BLAKE2b-256 |
14abea7b244b8ccec1746925feb42d3a190dd056a289d1c06526136a508d679b
|