Skip to main content
unch 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