Dev & Engineering code-intelligencesemantic-searchcall-graphtree-sittermcplancedbtantivy-bm25

CodeSeek

A local code-intelligence CLI that gives coding assistants semantic search and call-graph queries.

FollowAgents review · FARS-2.0
Not yet reviewed
See the full review method →

What does this agent do, and when should you use it?

CodeSeek is a Rust-powered code-intelligence CLI designed for Claude Code and Codex CLI workflows. It parses Rust, Python, JavaScript, TypeScript, Go, C/C++, and Java with Tree-sitter, extracting functions, classes, and methods for a call graph. Its local project index combines LanceDB vectors, a Tantivy BM25 index, and a serialized PetCodeGraph under ~/.codeseek/<project_hash>/. Search can combine dense, sparse, and graph retrieval through RRF, then optionally rerank results with Qwen3-Reranker; if embedding or reranking is unavailable, it falls back to graph-based name search. It has no daemon or HTTP server: commands run as standalone processes, while MCP mode uses stdio JSON-RPC.

With codeseek init, CodeSeek reads source files, parses supported languages through Tree-sitter ASTs, and extracts functions, classes, and methods. It batches 20 texts per embedding API request, caches embeddings in SQLite, stores vectors in LanceDB, builds a Tantivy BM25 index, serializes a PetCodeGraph call graph, and uses MD5 hashes to reprocess only changed files. With codeseek search <query>, it obtains a query vector and runs LanceDB ANN dense search, Tantivy BM25 sparse search, and PetCodeGraph graph search; Reciprocal Rank Fusion combines candidates and Qwen3-Reranker-4B can rerank them. The callers, callees, and callgraph commands return upstream and downstream symbol relationships, while codeseek install writes MCP configuration for Claude Code and Codex.

  1. A Claude Code user exploring a large Rust or TypeScript repository wants to locate relevant functions from a natural-language question.
  2. An engineer maintaining a Python, Java, or Go service needs to identify a function’s callers and downstream dependencies before changing it.
  3. A developer working in a mixed-language repository wants one local index of functions, classes, methods, and call relationships.
  4. A Codex CLI user wants MCP-accessible code search and call-graph tools for the repository currently being worked on.
  5. A developer who regularly commits code wants post-commit and post-merge hooks to refresh the local index automatically.

What are this agent's strengths and limitations?

Pros
  • Combines Tree-sitter structural extraction, PetCodeGraph call graphs, LanceDB vector search, and Tantivy BM25 in one local CLI.
  • Its retrieval path can fuse dense, sparse, and graph results with RRF, then apply optional Qwen3-Reranker-4B cross-encoder reranking.
  • MD5-based incremental updates, SQLite embedding caching, and Git hooks reduce the need for full reindexing after every change.
  • It documents native MCP installation for both Claude Code and Codex CLI, including five code-intelligence tools.
Limitations
  • Semantic retrieval requires an embedding API token, model, and base URL, so it depends on network access and has undocumented API-cost implications.
  • The documented Qwen3-Reranker-4B stage adds roughly 1–2 seconds to search-time ranking.
  • Packaged npm binaries are documented only for macOS arm64/x64 and Linux x64; support for other platforms is not established.
  • The documented language scope is limited to seven languages, and the available material does not establish cross-project querying, access controls, or shared team indexes.

How do you install or deploy this agent?

Install with npm: npm install -g codeseek, then run codeseek for the first-run interactive setup. The wizard configures an embedding API token, model, and base URL; the documented example uses an OpenAI-compatible provider and Qwen/Qwen3-Embedding-4B. Homebrew installation is: brew tap CodeBendKit/codeseek [email protected]:CodeBendKit/codeseek.git && brew install codeseek. For a source build, install protoc, then run git clone https://github.com/CodeBendKit/codeseek.git, cd codeseek, and ./build.sh --release.

How do you use this agent?

From the project directory, run codeseek init to build the index. Run codeseek search main --limit 10 for symbol search, or codeseek search 'how the code embedding work' for a natural-language query. Use codeseek callers <symbol>, codeseek callees <symbol>, or codeseek callgraph <symbol> for call relationships; query commands support --json. Run codeseek install to write MCP configuration to ~/.claude.json or ./.mcp.json and ~/.codex/config.toml. Run codeseek install-hooks to install post-commit and post-merge indexing hooks.

FAQ

Can it work without embedding or reranking access?
Yes, with reduced search behavior. The documented fallback is PetCodeGraph-based name search when embeddings or the reranker are unavailable.
Where does the index live, and what leaves the machine?
The local index is stored in ~/.codeseek/<project_hash>/, including vector data, BM25 data, the call graph, and file hashes. Text is sent to the configured embedding API in batches during indexing.
How does it integrate with Claude Code and Codex CLI?
codeseek install writes their MCP configuration, and codeseek serve --mcp provides a stdio JSON-RPC MCP server with search, call-graph, and status tools.
Does it require a running service?
No. The documented execution model is standalone processes for commands, with no daemon and no HTTP server.

Related agents