Rust-powered code intelligence CLI for AI coding agents. Builds call graphs and hybrid semantic search indexes (Dense + Sparse + RRF + Reranker) across 7 languages. Ships as native MCP tools for Claude Code and Codex CLI.
CodeSeek
Code intelligence CLI tool for Claude Code. AST-based call graph analysis + semantic search โ right from your terminal.
Quick Start
# Install via npm (handles setup wizard + binary download automatically)
npm install -g codeseek
First run โ interactive setup wizard configures your embedding model
codeseek
Index your project
codeseek init
Search code by symbol name
codeseek search main --limit 10
Query call graph
codeseek callers main
codeseek callees process_data
Register with Claude Code / Codex as MCP tools
codeseek install
Check status
codeseek status
Auto-index on git commits
codeseek install-hooks
Natural Language Code Search example
โฐโ$ codeseek search 'how the code embedding work'
- get_embedding (0.7973)
/home/do/ssd/iohub/dev/codeseek/rust-core/src/services/embedding_service.rs:0
- EmbeddingService (0.2855)
/home/do/ssd/iohub/dev/codeseek/rust-core/src/services/embedding_service.rs:0
- EmbeddingData (0.1449)
/home/do/ssd/iohub/dev/codeseek/rust-core/src/services/embedding_service.rs:0
- EmbeddingResponse (0.1304)
/home/do/ssd/iohub/dev/codeseek/rust-core/src/services/embedding_service.rs:0
- default_model (0.0450)
/home/do/ssd/iohub/dev/codeseek/rust-core/src/config.rs:0
Function Call Graph example
โฐโ$ codeseek callgraph apply_rerank
Call graph for 'apply_rerank' (depth=1):
== Callers (upstream, depth=1) == search (/home/do/ssd/iohub/dev/codeseek/rust-core/src/services/hybrid_search.rs:210)
== Callees (downstream, depth=1) == rerank (/home/do/ssd/iohub/dev/codeseek/rust-core/src/services/reranker_service.rs:331) config (/home/do/ssd/iohub/dev/codeseek/rust-core/src/services/hybrid_search.rs:325)
Install
npm
npm install -g codeseek
The npm package ships a lightweight JS wrapper that handles:
| Step | Description | |------|-------------| | First-run wizard | Interactive CLI prompts for embedding API token, model, and base URL | | Binary download | Automatically pulls the correct Rust binary for your platform from GitHub Releases | | Pass-through | All commands (init, search, callers, etc.) are forwarded to the native binary |
Supported platforms:
| Platform | Architecture | |----------|-------------| | macOS | arm64 (Apple Silicon), x64 (Intel) | | Linux | x64 |
Homebrew
brew tap CodeBendKit/codeseek git@github.com:CodeBendKit/codeseek.git
brew install codeseek
From source
# install protoc
macos: brew install protobuf
ubuntu: sudo apt install protoc
git clone https://github.com/CodeBendKit/codeseek.git cd codeseek ./build.sh --release
build.sh compiles both the TypeScript wrapper (dist/) and the Rust binary, then installs to ~/.codeseek/bin/.
Commands
| Command | Description | |---------|-------------| | codeseek | First-time setup wizard (configures embedding model interactively) | | codeseek init | Build/update code index (full on first run, MD5-incremental thereafter) | | codeseek status | Index statistics: functions, files, last update | | codeseek search <query> | Symbol name search (falls back from vector โ graph name match) | | codeseek callers <symbol> | Find functions that call this symbol | | codeseek callees <symbol> | Find functions this symbol calls | | codeseek callgraph <symbol> | Query call graph with configurable depth (bi-directional) | | codeseek list | List all indexed projects with paths | | codeseek install | Register codeseek as MCP tools in Claude Code / Codex | | codeseek uninstall | Remove MCP integration | | codeseek uninit | Delete the current project index | | codeseek install-hooks | Install git hooks (post-commit/post-merge โ codeseek init) | | codeseek serve --mcp | Start MCP server (stdio JSON-RPC, used by Claude Code internally) |
All query commands support --json for machine-readable output.
Claude Code / Codex Integration
codeseek install
Writes MCP server config to:
| Agent | Config file | |-------|------------| | Claude Code | ~/.claude.json (global, all projects) or ./.mcp.json (project-local) | | Codex CLI | ~/.codex/config.toml |
Claude Code auto-discovers these tools after restart:
| Tool | Capability | |------|-----------| | codeseek_search | Find symbols by name | | codeseek_callers | Trace upstream callers | | codeseek_callees | Trace downstream callees | | codeseek_callgraph | Query call graph with configurable depth (bi-directional) | | codeseek_status | Check index health |
Remove integration:
codeseek uninstall
How It Works
Index Building (codeseek init)
Source files
โ Tree-sitter AST parse (7 languages)
โ Extract functions / classes / methods
โ Batch embed via API (20 texts per call, SQLite cache)
โ Store vectors in LanceDB
โ Build BM25 index in Tantivy
โ Serialize call graph (PetCodeGraph)
โ Save to ~/.codeseek/<project_hash>/
Idempotent: first run is full build, subsequent runs compare MD5 hashes โ only changed files are re-processed. Use codeseek install-hooks for automatic re-index on git commit/merge.
Hybrid Search Pipeline (codeseek search)
โโโโโโโโโโโโโโโโโโโโโโโ
User query โโโโโโโโโโโโโโ Embedding Model โโโโ Query vector
โโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโ
โผ โผ โผ
โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ
โ Dense Search โ โ Sparse Search โ โ Graph Search โ
โ (LanceDB ANN)โ โ (Tantivy BM25)โ โ (PetCodeGraph)โ
โโโโโโโโฌโโโโโโโโ โโโโโโโโฌโโโโโโโโโ โโโโโโโโโโฌโโโโโโโ
โ โ โ
โโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโ
โผ
โโโโโโโโโโโโโโโโโโโ
โ RRF Fusion โ โ Reciprocal Rank Fusion
โ (Top-20 candidates)โ
โโโโโโโโโโฌโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโ
โ Reranker โ โ Cross-Encoder fine re-ranking
โ (Qwen3-Reranker)โ scores each (query, code) pair
โโโโโโโโโโฌโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโ
โ Final Results โ โ Top-5 (or Top-N)
โโโโโโโโโโโโโโโโโโโ
| Stage | Technology | Role | Speed | |-------|-----------|------|:-----:| | Dense Search | LanceDB + Embedding Model | Semantic vector similarity | Fast | | Sparse Search | Tantivy BM25 | Keyword & token matching | Fast | | RRF Fusion | Reciprocal Rank Fusion | Merge heterogeneous scores fairly | Instant | | Reranker | Cross-Encoder (Qwen3-Reranker-4B) | Full-interaction precision scoring | ~1-2s | | Fallback | PetCodeGraph | Graph-based name search (no API needed) | Instant |
If embedding/Reranker are unavailable, the pipeline falls back gracefully to graph-based name search.
Storage
- Config:
~/.codeseek/config.json(global, shared across all projects) - Index:
~/.codeseek/<md5(project_root)>/
project.json โ Project metadata
- graph.bin โ Serialized call graph
- embeddings.lance/ โ LanceDB vector data
- tantivy_bm25/ โ BM25 full-text index
- file_hashes.json โ MD5 incremental tracking
No daemon, no HTTP server. Every command is a standalone process.
Supported Languages
| Language | Functions | Structs/Classes | Call Graph | |----------|:---------:|:---------------:|:----------:| | Rust | โ | โ | โ | | Python | โ | โ | โ | | JavaScript | โ | โ | โ | | TypeScript | โ | โ | โ | | Go | โ | โ | โ | | C/C++ | โ | โ | โ | | Java | โ | โ | โ |
Configuration
~/.codeseek/config.json:
{
"embedding": {
"provider": "openai-compatible",
"model": "Qwen/Qwen3-Embedding-4B",
"api_token": "sk-...",
"apibaseurl": "https://api.siliconflow.cn/v1",
"dimensions": 2560
},
"index": {
"mincodeblock_length": 16,
"enable_reranker": true,
"hybrid": {
"enable_bm25": true,
"bm25topk": 20,
"vectortopk": 20,
"rrf_k": 60,
"rrftopk": 20
},
"reranker": {
"enabled": true,
"model": "Qwen/Qwen3-Reranker-4B",
"api_token": "sk-...",
"apibaseurl": "https://api.siliconflow.cn/v1/rerank",
"top_n": 5,
"candidate_multiplier": 5,
"timeout_secs": 60
}
},
"installed_hooks": {}
}
Model Roles
| Model | Role | When | |-------|------|------| | Qwen/Qwen3-Embedding-4B | Converts code โ vectors for dense search | Index building | | Qwen/Qwen3-Reranker-4B | Scores (query, code) pairs for precision | Search time |
Set via the interactive wizard on first run, or create manually.
Development
cd rust-core
Build
cargo build
Build + install to ~/.codeseek/bin/
cd .. && ./build.sh --release
Run tests
cargo test
Compile TypeScript wrapper
npm run build
License
MIT
Built with: Tree-sitter ยท Petgraph ยท LanceDB ยท Tantivy ยท Tokio ยท Clap