Vera
Local code search combining BM25, vector similarity, and cross-encoder reranking. Parses 60+ languages with tree-sitter, runs entirely offline, and returns structured results with file paths, line ranges, and symbol metadata. Built in Rust.
Vera
Features
·
Query Guide
·
Benchmarks
·
How It Works
·
Models
·
Supported Languages
Vector Enhanced Reranking Agent
Code search that combines BM25 keyword matching, vector similarity, and cross-encoder reranking. Supports 64 languages (60 with tree-sitter parsing), runs locally, returns structured results with file paths, line ranges, symbol metadata, and relevance scores.
Quick Start
bunx @vera-ai/cli install # or: npx -y @vera-ai/cli install / uvx vera-ai install
vera setup # downloads local models, no API needed
vera index .
vera search "authentication logic"
What Sets Vera Apart
| Cross-encoder reranking | Most tools stop at retrieval. Vera scores query-candidate pairs jointly, lifting MRR@10 from 0.28 to 0.60. |
| Single binary, 64 languages | One static binary with 60 tree-sitter grammars compiled in. No Python, no language servers, no per-language toolchains. |
| Built-in code intelligence | Call graph analysis, reference finding, dead code detection, and project overview, all from the same index. |
| Token-efficient for agents | Returns symbol-bounded chunks, not entire files. 75-95% fewer tokens on typical queries. |
Vera started after weeks of working on Pampax, a project I forked because it and other similar tools were missing what I wanted. I kept running into deep-rooted bugs and less-than-ideal design decisions, and realized starting fresh would be better. Every design choice comes from careful research, learning from other projects, benchmarking and evaluation. Take a look at the full feature list to see everything Vera can do.
Installation
bunx @vera-ai/cli install # or: npx -y @vera-ai/cli install / uvx vera-ai install
vera setup
The installer downloads the vera binary, writes a shim to a user bin directory, and installs global agent skill files. After that, vera is a standalone command.
vera setup runs an interactive wizard for backend selection, agent skill installation, and optional project indexing. Skip the wizard with flags: --onnx-jina-cuda (NVIDIA), --onnx-jina-coreml (Apple Silicon), --api (remote endpoints). Run vera setup --help for all options.
MCP server (JSON-RPC over stdio):
vera mcp # or: bunx @vera-ai/cli mcp / uvx vera-ai mcp
Exposes search_code, index_project, update_project, get_stats, get_overview, watch_project, find_references, find_dead_code, and regex_search tools.
Docker (MCP server):
docker run --rm -i -v $(pwd):/workspace ghcr.io/lemon07r/vera:cpu
CPU, CUDA, ROCm, and OpenVINO images available. See docs/docker.md.
Prebuilt binaries:
Download from GitHub Releases for Linux (x86_64, aarch64), macOS (x86_64, aarch64), or Windows (x86_64).
Build from source (Rust 1.85+):
git clone https://github.com/lemon07r/Vera.git && cd Vera
cargo build --release
cp target/release/vera ~/.local/bin/
vera setup
Manual install: docs/manual-install.md
UpdatingVera checks for new releases daily and prints a hint when one is available.
vera upgrade # dry run: shows what would happen
vera upgrade --apply # applies the update
After an upgrade, Vera automatically syncs stale agent skill installs. Set VERA_NO_UPDATE_CHECK=1 to disable the automatic check.
If you are having trouble updating try one of these, using the package manager you initially installed Vera with:
Bun:
bun install -g @vera-ai/cli && bunx @vera-ai/cli install
npm:
npm install -g @vera-ai/cli && npx @vera-ai/cli install
uvx:
uvx vera-ai install
Usage
vera search "authentication logic"
vera search "error handling" --lang rust
vera search "routes" --path "src/**/*.ts"
vera search "handler" --type function --limit 5
vera search "config loading" --deep # follows symbols from initial results
Update the index after code changes: vera update .
Keep the index fresh automatically: vera watch .
See the query guide for tips on writing effective queries.
More commands# Code intelligence
vera grep "fn\s+main" # regex search over indexed files
vera references foo # find all callers of symbol 'foo'
vera references foo --callees # find what 'foo' calls
vera dead-code # find functions with no callers
vera overview # project summary: languages, entry points, hotspots
# Index management
vera index . # index current project
vera update . # re-index changed files
vera watch . # auto-update on file changes (Ctrl-C to stop)
vera stats # index statistics
# Setup and diagnostics
vera doctor # diagnose setup issues
vera doctor --probe # deeper read-only ONNX probe
vera repair # re-fetch missing assets
vera upgrade # inspect binary update plan
vera config # show current configuration
vera backend # manage ONNX runtime and model backend
# Agent skills
vera agent install # interactive: choose scope + agents
vera agent install --client all # non-interactive: all agents, global
vera agent status # check skill installation status
vera agent sync # refresh stale skill installs
vera agent remove # pick installs to remove
# Cleanup
vera uninstall # removes ~/.vera/, skill files, PATH shim
Output Format
Defaults to markdown codeblocks (the most token-efficient format for AI agents):
```src/auth/login.rs:42-68 function:authenticate
pub fn authenticate(credentials: &Credentials) -> Result<Token> { ... }
```
Use --json for compact JSON, --raw for verbose human-readable output, or --timing for per-stage pipeline durations.
Excluding Files
Vera respects .gitignore by default. Create a .veraignore file (gitignore syntax) for more control, or use --exclude flags. Details: docs/features.md.
Model Backend
Vera itself is always local: the index lives in .vera/, config in ~/.vera/. The backend choice only affects where embeddings and reranking run.
vera setup downloads two curated ONNX models and auto-detects your GPU. GPU is recommended; CPU works but is slow for initial indexing. After the first index, vera update . only re-embeds changed files, so updates are fast even on CPU.
Full details: docs/models.md.
Benchmarks
21-task benchmark across ripgrep, flask, fastify, and turborepo:
| Metric | ripgrep | cocoindex | ColGREP (149M) | Vera |
|---|---|---|---|---|
| Recall@5 | 0.28 | 0.37 | 0.67 | 0.78 |
| MRR@10 | 0.26 | 0.35 | 0.62 | 0.91 |
| nDCG@10 | 0.29 | 0.52 | 0.56 | 0.84 |
Full methodology and version history: docs/benchmarks.md.
Configure Your AI Agent
vera agent install installs the Vera skill for your coding agents and offers to add a usage snippet to your project's AGENTS.md, CLAUDE.md, COPILOT.md, or editor rules file. Installed agents start preselected in the interactive picker, deselecting one removes its existing Vera skill install, and stale installs can be refreshed in one step before you enter the full picker.
If you skipped the prompt or want to add it manually:
## Code Search
Use Vera before opening many files or running broad text search when you need to find where logic lives or how a feature works.
- `vera search "query"` for semantic code search
- `vera grep "pattern"` for exact text or regex
- `vera references <symbol>` for callers and callees when you know a symbol name
- `vera update .` after code changes (`vera index .` if `.vera/` is missing)
- If Vera is unavailable, tell the user to run `vera agent install` instead of silently falling back to broad file scanning
Contributing
See CONTRIBUTING.md.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found