RocketIndex 🚀
The Deterministic Navigation Layer for AI Agents
One call. Exact answer.

Why RocketIndex?
AI coding agents waste tokens because they navigate code by guessing. Grep returns 17 candidates when you need one. LSPs require file coordinates when agents only have a symbol name. Both force agents into multi-turn loops.
RocketIndex replaces guesswork with structure. It parses your code into an AST using Tree-sitter, stores the symbol graph in SQLite, and answers navigation queries deterministically.
| Capability | RocketIndex | LSP | Vector Search | Grep |
|---|
| Query model | Symbol name | File coordinates | Natural language | Pattern |
| Find callers | Yes | Refs only | No | No |
| Dependency graph | Yes | No | No | No |
| Precision | Deterministic | Deterministic | Probabilistic | Noisy |
| Best for | Navigation, refactoring | Type-aware edits | Exploration | Simple edits |
vs Grep: Structure beats text matching
Example: Finding spawn in Tokio (751 Rust files)
$ rkt def "spawn"
# -> tokio/src/runtime/blocking/pool.rs:57
| Metric | RocketIndex | Grep |
|---|
| Tool calls | 1 | 3-5+ |
| Tokens | ~200 | 5,000+ |
| Result | Exact definition | 17 candidates to verify |
Grep matches text. RocketIndex understands code structure—it knows the difference between a definition, a call site, and a comment.
vs LSPs: Query by name, not coordinates
LSPs are designed for editors where a cursor is already positioned on a symbol. AI agents don't have cursors—they have symbol names from user requests.
| Task | RocketIndex | LSP |
|---|
"Find UserService.save" | find_definition("UserService.save") | Find file containing text → position cursor → goToDefinition |
| "Who calls this?" | find_callers("save") | Only "find references" (callers + callees mixed) |
| "Trace the call graph" | analyze_dependencies("main") | Not available |
LSPs also require language runtimes and often fail on incomplete code. RocketIndex uses pure syntactic analysis—it works on partial checkouts, broken builds, and across 15 languages with a single binary.
Built for Scale
Traditional Language Servers choke on large codebases. RocketIndex doesn't.
- Zero Compilation: Pure syntactic analysis. Doesn't care if your code compiles, only that it parses.
- Monorepo Ready: Handles repositories with 10,000+ files.
- Instant Access: SQLite with WAL mode and memory-mapped I/O. Symbol lookups in milliseconds.
- Low Footprint: Targeted disk-based queries instead of loading entire project into memory.
Quick Start
Choose your path:
Claude Code
No install required. The plugin auto-downloads the binary.
/plugin marketplace add rocket-tycoon/rocket-index
/plugin install rocketindex
Install
Required for Claude Desktop, Gemini, Zed, and CLI usage.
macOS
brew install rocket-tycoon/tap/rocket-index
Windows
scoop bucket add rocket-tycoon https://github.com/rocket-tycoon/scoop-bucket
scoop install rocketindex
Linux
curl -LO https://github.com/rocket-tycoon/rocket-index/releases/latest/download/rocketindex-x86_64-unknown-linux-gnu.tar.gz
tar -xzf rocketindex-x86_64-unknown-linux-gnu.tar.gz
sudo mv rkt rocketindex-lsp /usr/local/bin/
Other MCP Clients
After installing, configure your client:
Claude Desktop — add to config file:
| Platform | Config Path |
|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
{
"mcpServers": {
"rocket-index": {
"command": "rkt",
"args": ["serve"]
}
}
}
Gemini CLI:
gemini mcp add rocket-index rkt serve
Zed Editor — add to ~/.config/zed/settings.json:
{
"context_servers": {
"rocket-index": {
"command": "rkt",
"args": ["serve"]
}
}
}
CLI Usage
After installing:
cd /path/to/your/repo
rkt index # Build index
rkt watch # Keep index fresh (run in background terminal)
Run rkt watch in a background terminal during coding sessions to keep the index fresh.
What It Does