KGIndex

India --:--:-- --

All work

05 · Developer tools

Brahm-Kosh

A static-analysis engine and 3D map that shows what breaks if you change a file. No LLM calls.

When
2026
Role
Sole author
Built with
Python, ast, click, Three.js, SSE
Source
KrishG7/Brahm-Kosh ↗

See it

Brahm-Kosh viewer with the Architectural Intelligence panel listing the largest files
Where the trouble isAs soon as a project opens, the panel lists the files that have grown too big and everything else worth a look: files nothing imports, files that mix many concerns, and files ready to split. Here it is analysing its own source.
File view showing a one-sentence explanation, multi-hop impact and a blast radius
What breaks if you change itOpen a file and it explains itself in one sentence, then answers the question that matters: which files break if you change it, what it relies on, and the blast radius, with a complexity score for every function.

The problem

You open an unfamiliar codebase. Where do you start, and what breaks if you change this file? A folder tree answers neither.

Numbers, with dates

  • 61tests passing (58 at first check, 3 added with the ignore-file fix)pytest, 28 Oct 2026
  • 13language adapters; only Python is parsed with a real syntax tree`brahm-kosh list-adapters`, 28 Oct 2026
  • One weekstart to finish, 35 commits, all minegit history, 20 to 27 Apr 2026

How it works

  1. 01 · analyse

    Parse without running

    Each adapter reads its language and emits the same model. Python uses the real AST; the other twelve use curated patterns.

  2. 02 · connect

    Resolve the imports

    Cross-file imports become a dependency graph, which is what makes impact analysis possible.

  3. 03 · judge

    Flag the hotspots

    Complexity, dead files, mixed concerns and split candidates are computed from the graph, not guessed.

  4. 04 · explore

    Fly around it

    Search a file, see its blast radius, read its symbols and code, all in one panel.

What I built

  • A universal model (project, module, file, symbol) filled by 13 language adapters, with a complexity score per symbol and per file.
  • A real import graph, so it can answer both directions: which files break if you change this one, and what this one relies on, several hops out.
  • Flags for monolithic files, files nothing imports, files that mix many concerns, and files that look ready to split.
  • A local server that draws it as a 3D map, repaints live when files change, and only binds to 127.0.0.1.