Ummon
@Nayshins
The semantic layer for software engineering: Connect code to meaning, build on understanding
Overview
What is Ummon?
Ummon is a code analysis tool that builds knowledge graphs from codebases to enhance understanding, improve AI assistance, and enable sophisticated querying. It creates connections between code entities (functions, classes, modules) and domain concepts, making it easier to reason about complex software systems and identify relevant code for specific tasks. The project is in early development and is not yet stable.
How to use Ummon?
Install Ummon with cargo install ummon, then use the CLI to index a codebase (ummon index /path/to/codebase), query it (ummon query "show all authentication functions"), or get AI-assisted recommendations (ummon assist "implement a user registration function"). Set the OPENROUTER_API_KEY environment variable for LLM features.
Key features of Ummon
- Builds semantic knowledge graphs from codebases.
- Supports structured and natural language querying.
- Relevance agent suggests files for proposed changes.
- Domain model extraction maps business concepts to code.
- Incremental and full rebuild indexing options.
- Multi-language support (Rust, Python, JavaScript, Java).
Use cases of Ummon
- Understanding a large or unfamiliar codebase by exploring entity relationships.
- Finding relevant files for a bug fix or feature addition using the relevance agent.
- Querying code structure (e.g., “show all authentication functions”) without manual browsing.
- Extracting domain models to bridge technical and business understanding.
FAQ from Ummon
What problem does Ummon solve?
Ummon helps developers and AI assistants better understand complex codebases by creating a searchable, interconnected knowledge graph of code entities and domain concepts.
What programming languages does Ummon support?
Ummon supports Rust, Python, JavaScript, and Java. Each language parser extracts entities like classes, functions, and imports.
How does Ummon handle changes to the codebase?
By default, Ummon performs incremental updates — it detects modified files and reindexes only those. Use --full for a complete rebuild of the knowledge graph.
What dependencies does Ummon require?
Ummon requires the OPENROUTER_API_KEY environment variable for LLM-powered features (queries and domain extraction). All other configuration is via command-line flags.
Is Ummon production-ready?
No. The README explicitly warns that the project is in early development and is not yet stable. APIs and functionality may change significantly between versions.