Skip to main contentunch indexes the API surface of your repository and lets you search it from the terminal using natural language.
It extracts top-level symbols and attached documentation, computes embeddings with the selected provider, and returns ranked matches. Local llama.cpp embeddings are the default; OpenRouter is optional when you explicitly select --provider openrouter.
What unch does
When you know what a piece of code does but cannot remember its name, file, or exact text, unch lets you describe the behavior and find the symbol.
Key features
- Local-first by default
- Symbol-aware indexing instead of raw line search
- Local GGUF embeddings by default, optional OpenRouter embeddings
auto, semantic, and lexical search modes
- Optional remote publishing through GitHub Actions
Supported languages
unch uses Tree-sitter-based symbol extraction for:
- Go
- Rust
- TypeScript
- JavaScript
- Python
For unsupported files or parser failures, index can still use the legacy prefix fallback.
When unch helps
- You know the behavior you want, but not the exact symbol name
- You want docs and API surface searchable together
- You want semantic search over a local repo without sending code to a hosted service when using the default local provider
Next steps