Skip to content

Muundo documentation

A typed code graph, computed rather than described.

Muundo parses a source tree with tree-sitter and returns what is actually there: entities, the calls between them, per-entity metrics, dependencies and reachability. No language server, no build, no network — it reads the files.

It exists because a structural claim about code has to be computed. A model asked whether a function is recursive will answer; a graph will show it.

Start here

  • Getting started — build it, analyse a tree from Python, then from the shell, and verify what the analysis read
  • Reference — the thirteen grammars, every field of a report, all six subcommands, the HTTP API and the limits that keep it safe to expose

What it will not do

  • Design decisions — the deliberate "no"s. Each one is a thing that looks like a missing feature and is a refusal on purpose, because static analysis cannot do better without either executing your code or building a full language-semantics engine

The claim worth checking

partial_analysis lists every file that could not be parsed. A graph that quietly drops what it failed on produces confident numbers about a subset, and nothing tells the reader which subset — so Muundo reports it and never drops it. Read that field before quoting a count from the rest.

An analysis also records the hash of every file it read, and verify re-reads the tree to check them. That is what lets a finding be attributed to a specific state of a tree rather than to "the code, at some point".

Licence

Apache-2.0 — open source, no conditions beyond the licence's own. Read it, build it, ship it, fork it.


Questions and issues: https://github.com/theAIstep/muundo/issues