Skip to main content

Know what breaks before you break it. Structural knowledge graph for codebases — impact analysis, dead code detection, health scores. No LLM required.

Project description

CodeBrain

Know what breaks before you break it.

CodeBrain builds a structural knowledge graph of your codebase — every function, class, import, and call chain — and stores it locally in SQLite. Wire it into Claude Code, Cursor, or any MCP-compatible agent and your AI suddenly knows the structure of your code instead of guessing.

pip install codebrain
cd your-project
brain init
Indexing your-project (1,328 files) ...
Done in 135s — 17,756 nodes, 111,793 edges
Health: 93/100 (A)

Free. MIT-licensed. No cloud. No LLM required for the core features.


Why

AI coding agents (Claude Code, Cursor, Copilot) generate code faster than you can review it. They read fragments of code, lack persistent structural memory, and apply local fixes. When an agent removes a function, it doesn't know 3 other files call it. When it changes a signature, it doesn't know what depends on the old shape.

CodeBrain knows. It maintains a persistent graph of every symbol and relationship and gives agents tools (via MCP) to query it.


Wire it into Claude Code

The killer feature. One command:

brain setup

Indexes the repo, drops a CLAUDE.md with project context, writes the MCP config. Restart Claude Code and it has tools like mcp__codebrain__impact_analysis, mcp__codebrain__find_dead_code, mcp__codebrain__call_chain, mcp__codebrain__zoom, mcp__codebrain__ask_codebase, plus a few dozen more. It uses them on its own.

Manual config — drop .mcp.json at your project's root (not in a global config). CodeBrain's index lives in <repo>/.codebrain/, so a global config would make every Claude session in every project fight over the same database. brain setup writes the right thing for you.

{
  "mcpServers": {
    "codebrain": {
      "command": "python",
      "args": ["-m", "codebrain.mcp_server"]
    }
  }
}

What you can do from the CLI

brain impact create_user        # what breaks if I change this?
brain callers create_user       # who calls this?
brain trace create_user         # what does it call, recursively?
brain deadcode                  # actually-unused functions, with confidence levels
brain hotspots                  # riskiest symbols (most depended on)
brain cycles                    # import cycles
brain health                    # codebase score 0-100
brain coupling                  # module-to-module coupling
brain layers                    # architectural layers inferred from imports
brain zoom system|module|symbol # Google Maps for your architecture
brain ask "where does login flow live?"

Sample output:

$ brain impact getAstroData
Impact of changing predictions_api.py::getAstroData:
  [1] Ascendant.py::compileAstroDetails       (CALLS)
  [1] AsthaKoota.py::getNakAndRasi             (CALLS)
  [2] ProfileBuilder.py::buildProfile          (CALLS via compileAstroDetails)
  ... 48 dependents across 69 files
  Blast radius: 5.2% of the codebase
$ brain hotspots
Risk hotspots (top 3):
   48.2  function  getAstroData             48 deps   69 files
   35.1  function  compileAstroDetails      35 deps   52 files
   28.7  class     ProfileBuilder           28 deps   41 files

Run brain --help for the full command list (60+).


Pre-commit and CI

brain hook install              # validates staged Python files before each commit
brain ci --base origin/main     # exit 1 on structural regressions in a PR
brain diff-impact               # blast radius of currently-staged changes

GitHub Action:

- run: pip install codebrain
- run: brain ci --base origin/main --json

Language support

Language Parser Status
Python AST (stdlib) full
TypeScript / JS / JSX / Vue tree-sitter full — pip install "codebrain[ts]"
Java tree-sitter full — Spring Boot aware
Go, Rust, C#, Kotlin, Dart tree-sitter / regex good
COBOL, Fortran, MUMPS, PL/SQL regex basic — for legacy migration

Adding a parser: implement BaseParser, register via the codebrain.parsers entry point. See docs/USAGE.md.


Optional extras

pip install "codebrain[ts]"     # TypeScript / JS / Vue
pip install "codebrain[api]"    # FastAPI REST server
pip install "codebrain[llm]"    # AI-powered explain / ask / rewrite
pip install "codebrain[all]"    # everything

Core install (pip install codebrain) is enough for Python projects and the MCP server.


Configuration

.codebrain.toml at repo root, or CODEBRAIN_* env vars:

[index]
exclude = ["vendor/", "**/__generated__/**"]

[mcp]
tool_timeout = 25
idle_timeout = 1800

[parser]
languages = ["python", "typescript", "java"]

How it works

Source files ─► Parser ─► Nodes + Edges ─► SQLite (.codebrain/graph.db)
                                                │
                          ┌─────────────────────┴───────────────────────┐
                          ▼                                             ▼
                       brain CLI                              MCP server / REST API
  • Node — a symbol (function, class, method, file)
  • Edge — a relationship (CALLS, IMPORTS, CONTAINS, EXTENDS, DATAFLOW)
  • GraphStore — SQLite with WAL mode, lives in .codebrain/ (auto-gitignored)
  • QueryEngine — BFS/DFS for impact, call chains, dead code, cycles

Everything stays on your machine. The only thing that leaves is what you explicitly send to an LLM via brain ask / brain explain / brain rewrite.


Documentation


Development

git clone https://github.com/monk0062006/CodeBrain.git
cd CodeBrain
pip install -e ".[dev]"

pytest tests/                   # 1,900+ tests
ruff check codebrain/
mypy codebrain/

License

MIT. Use it however you want.

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

codebrain-0.3.3.tar.gz (548.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

codebrain-0.3.3-py3-none-any.whl (395.9 kB view details)

Uploaded Python 3

File details

Details for the file codebrain-0.3.3.tar.gz.

File metadata

  • Download URL: codebrain-0.3.3.tar.gz
  • Upload date:
  • Size: 548.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0

File hashes

Hashes for codebrain-0.3.3.tar.gz
Algorithm Hash digest
SHA256 070164f8de56c660b682a83c64f900b7d9f833185883e61b05d8f596d489c2be
MD5 3302cc96ed132eb85866d75d1084bc77
BLAKE2b-256 f47db91f44ca8744b0fcb65e00743695207e0fb356f5dd765e067dab862592ce

See more details on using hashes here.

File details

Details for the file codebrain-0.3.3-py3-none-any.whl.

File metadata

  • Download URL: codebrain-0.3.3-py3-none-any.whl
  • Upload date:
  • Size: 395.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0

File hashes

Hashes for codebrain-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 8a83da780a8ec33b945d083d924089dd64c0e17ef74010c0764e62283eb0dc7a
MD5 411ba138fca5a147f1b7c5ce9f40639d
BLAKE2b-256 8303a84a5c823ed53bf744a0ed550a7e2c9c167eb0fd7523aec99e0c992e4db6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page