hypergumbo is a local-first CLI that generates behavior maps and sketches from source code. The goal of this project is to efficiently help developers and LLMs understand a codebase.
pip install hypergumboRequires Python 3.10+. For optional extras (embeddings, gitleaks, grammars), run
hypergumbo add-extrasafter installing.
Intel Mac users: Some tree-sitter packages lack x86_64 wheels. See docs/INTEL_MAC.md for a Docker-based workaround.
git clone https://codeberg.org/iterabloom/hypergumbo
hypergumbo hypergumbo/Output:
# hypergumbo
hypergumbo is a local-first CLI that generates behavior maps and sketches from source code. The goal of this project is to efficiently help developers and LLMs understand a codebase. > Requires Python 3.10+. For optional extras (embeddings, gitleaks, grammars), run `hypergumbo add-extras` after installing. > Intel Mac users:
## Overview
Python (91%), Markdown (4%), Yaml (3%)
728 files (383 non-test + 345 test)
~320,798 LOC (~129,172 non-test + ~191,626 test)
## Structure
` ` `
hypergumbo/
├── .agent
│ └── [and 6 other items]
├── .gitea
│ ├── SQUASH_TEMPLATE.md
│ └── [and 1 other items]
├── .githooks
│ ├── commit-msg
│ └── [and 9 other items]
├── docs
│ ├── CACHE.md
│ └── [and 22 other items]
├── packages
│ ├── hypergumbo-core
│ │ ├── src
│ │ │ └── hypergumbo_core
│ │ │ ├── analyze
│ │ │ │ ├── base.py
│ │ │ │ └── [and 3 other items]
│ │ │ ├── __main__.py
│ │ │ ├── cli.py
│ │ │ ├── ir.py
│ │ │ └── [and 26 other items]
│ │ ├── tests
│ │ │ ├── test_framework_patterns.py
│ │ │ └── [and 94 other items]
│ │ └── [and 2 other items]
│ ├── hypergumbo-tracker
│ │ ├── src
│ │ │ └── hypergumbo_tracker
│ │ │ ├── cli.py
│ │ │ └── [and 13 other items]
│ │ └── [and 5 other items]
│ └── [and 4 other items]
├── scripts
│ ├── lib
│ │ └── forgejo-api.sh
│ └── [and 33 other items]
├── tests
│ ├── test_bakeoff_deep_reflect.py
│ └── [and 2 other items]
├── conftest.py
├── pyproject.toml
├── setup.py
└── [and 21 other items]
` ` `
## Frameworks
- pytest
- pytorch
- transformers
## Tests
345 test files · cargo test, pytest, unittest
*~95% estimated coverage (2693/2847 functions called by tests)*
## Configuration
[...]Use -t to control the token budget:
hypergumbo . -t 1000 # brief overview (structure only)
hypergumbo . -t 4000 # good balance for most LLMs
hypergumbo . -t 8000 # detailed with many symbolsSketch (hypergumbo .) — Token-budgeted Markdown sized for LLM context windows. Ranks symbols by graph centrality (★ = most connected).
Behavior map (hypergumbo run) — Full JSON with all symbols, edges, and provenance tracking. Use this for programmatic analysis.
hypergumbo [path] # Markdown sketch (default)
hypergumbo run [path] # Full JSON behavior map
hypergumbo slice --entry X # Subgraph from entry point
hypergumbo routes [path] # List HTTP routes
hypergumbo search <query> # Search symbols
hypergumbo symbols [path] # Browse symbols with connectivity
hypergumbo explain <symbol> # Detailed symbol info
hypergumbo test-coverage # Analyze test coverage (transitive)
hypergumbo catalog # List analysis passesUseful flags:
hypergumbo . -x # exclude test files (faster)
hypergumbo . --with-source # append full source code
hypergumbo . --no-progress # hide progress indicator (on by default)
hypergumbo --help --all # comprehensive help for all commandsResults are automatically cached in ~/.cache/hypergumbo/. Just run:
hypergumbo . # auto-runs analysis if no cache exists, then generates sketchThe cache auto-invalidates when source files change. See docs/CACHE.md for details.
See hypergumbo --help for all options.
- Language analyzers: Python, JS/TS, Java, Rust, Go, C/C++, and many more
- Cross-language linkers: JNI, HTTP, WebSocket, gRPC, GraphQL, message queues (full list)
- Framework patterns: FastAPI, Django, Rails, Spring Boot, Phoenix, Express, and many more
- Profile: Scan the repo for languages, file counts, LOC
- Analyze: Run language-specific analyzers to extract symbols and edges
- Link: Connect symbols across language boundaries (JS fetch → Python route)
- Enrich: Detect frameworks via YAML pattern matching
- Output: Generate Markdown sketch or JSON behavior map
All analyzers produce the same IR types:
- Symbol: A code element (function, class, method) with name, location, and stable ID
- Edge: A relationship between symbols (calls, imports, extends, implements)
- Span: Source location (file, line, column)
This uniform IR is what allows all language analyzers and cross-language linkers to work together coherently.
packages/
├── hypergumbo-core/ # CLI, IR, slice, sketch, linkers
│ └── src/hypergumbo_core/
│ ├── cli.py # Entry point
│ ├── ir.py # Symbol, Edge, Span
│ ├── sketch.py # Token-budgeted Markdown
│ ├── slice.py # Subgraph extraction
│ ├── linkers/ # Cross-language linkers
│ └── frameworks/ # Framework detection (YAML patterns)
├── hypergumbo-lang-mainstream/ # Python, JS, Java, Go, Rust, etc.
├── hypergumbo-lang-common/ # Haskell, Elixir, GraphQL, etc.
├── hypergumbo-lang-extended1/ # Zig, Solidity, Agda, etc.
├── hypergumbo-tracker/ # Structured work tracker for agent governance (MPL-2.0)
└── hypergumbo/ # Meta-package (installs all above)
Key design choices:
- Registry pattern: Analyzers and linkers self-register via decorators
- Two-pass analysis: First collect symbols, then resolve edges (enables cross-file references)
- Provenance tracking: Every edge records which analyzer/linker created it
- YAML-driven patterns: Framework detection is declarative, not hardcoded
git clone https://codeberg.org/iterabloom/hypergumbo.git
cd hypergumbo
python3 -m venv .venv && source .venv/bin/activate
./scripts/dev-install
source .venv/bin/activate # reload to enable pytest alias
pytest # runs smart-test (affected tests only)dev-install installs all packages, git hooks, and the pytest/smart-test wrapper. 100% test coverage required.
See CONTRIBUTING.md for PR workflow (including fork-based workflow for external contributors), smart test selection setup, and coverage requirements. Agent instructions live in AGENTS.md.
- docs/USE-CASES.md — Practical workflows and examples
- CHANGELOG.md — Implementation history
- docs/LANGUAGES.md — Supported languages
- docs/LINKERS.md — Cross-language linkers
- docs/FRAMEWORKS.md — Framework patterns
- docs/hypergumbo-spec.md — Detailed specification
- docs/CITATIONS.md — Paper citations for embedding models
- docs/CACHE.md — Caching architecture
- SECURITY.md — Vulnerability reporting
- hypergumbo-tracker README — Standalone tracker for AI agent governance
