CodeSeek 代码智能 CLI
为编码助手提供本地代码索引、语义检索与调用图查询。
这个 Agent 能做什么,适合哪些场景?
CodeSeek 是一个面向 Claude Code 和 Codex CLI 的 Rust 代码智能命令行工具。它使用 Tree-sitter 解析 Rust、Python、JavaScript、TypeScript、Go、C/C++ 和 Java,并提取函数、类和方法以建立调用图。索引将向量写入 LanceDB、将 BM25 全文索引写入 Tantivy,并把调用图保存到本地的 ~/.codeseek/<project_hash>/ 目录。搜索流程可结合稠密检索、BM25 稀疏检索、图名称检索、RRF 融合和 Qwen3-Reranker 重排;当嵌入或重排不可用时,会退回图名称搜索。它不运行守护进程或 HTTP 服务,每个命令都是独立进程,并可通过 stdio JSON-RPC 暴露为 MCP 工具。
执行 codeseek init 时,CodeSeek 读取项目源码文件,以 Tree-sitter AST 解析 7 种语言,提取函数、类和方法;随后按每批 20 段文本调用嵌入 API,并使用 SQLite 缓存结果。它将向量存入 LanceDB、建立 Tantivy BM25 索引、用 PetCodeGraph 序列化调用图,并用 MD5 比较文件变化以增量更新。执行 codeseek search <query> 时,它生成查询向量,运行 LanceDB ANN 稠密搜索、Tantivy BM25 稀疏搜索和 PetCodeGraph 图搜索,再用 Reciprocal Rank Fusion 合并候选结果,并可由 Qwen3-Reranker-4B 对结果重排。codeseek callers、callees 和 callgraph 输出符号的上游或下游调用关系;codeseek install 会为 Claude Code 或 Codex 写入 MCP 配置。
- 使用 Claude Code 的开发者需要在大型 Rust 或 TypeScript 项目中按自然语言寻找相关函数和实现位置。
- 维护遗留 Python、Java 或 Go 服务的工程师需要确认某个函数的调用方与下游依赖。
- 同时维护多语言仓库的团队需要在本机建立函数、类和方法级别的统一索引。
- 希望让 Codex CLI 通过 MCP 查询项目代码结构的开发者,可安装 codeseek_search 和调用图工具。
- 频繁提交代码的个人开发者可安装 post-commit 与 post-merge 钩子,让 codeseek init 在提交或合并后更新索引。
这个 Agent 有哪些优点和局限?
- 将 Tree-sitter 结构提取、PetCodeGraph 调用图、LanceDB 向量检索和 Tantivy BM25 放在同一个本地 CLI 中。
- 搜索可融合稠密、稀疏和图检索,并以 RRF 和可选的 Qwen3-Reranker-4B 提高候选排序精度。
- 通过 MD5 文件比较、SQLite 嵌入缓存和 Git 钩子,支持后续增量索引而非每次重建全部数据。
- 原生提供 Claude Code 与 Codex CLI 的 MCP 安装流程,以及五个代码查询工具。
- 语义检索依赖嵌入 API token、模型和 base URL;需要网络连接,且 API 成本未在资料中说明。
- 启用 Qwen3-Reranker-4B 后,文档标示重排约需 1–2 秒,可能增加搜索等待时间。
- npm 预编译安装包只明确支持 macOS arm64/x64 与 Linux x64;其他平台没有已说明的二进制支持。
- 支持范围限于文档列出的 7 种语言,且资料没有说明跨项目查询、权限控制或团队共享索引能力。
如何安装或部署这个 Agent?
推荐安装:npm install -g codeseek,然后运行 codeseek 完成首次交互式配置。向导会要求填写嵌入模型的 API token、模型和 base URL;示例配置使用 OpenAI-compatible 提供方与 Qwen/Qwen3-Embedding-4B。也可使用 Homebrew:brew tap CodeBendKit/codeseek [email protected]:CodeBendKit/codeseek.git && brew install codeseek。源码构建前需安装 protoc,随后执行 git clone https://github.com/CodeBendKit/codeseek.git、cd codeseek、./build.sh --release。
如何使用这个 Agent?
在目标项目目录运行 codeseek init 建立索引。使用 codeseek search main --limit 10 搜索符号,或使用 codeseek search 'how the code embedding work' 进行自然语言代码搜索。使用 codeseek callers <symbol>、codeseek callees <symbol> 或 codeseek callgraph <symbol> 查询调用关系;查询命令可附加 --json。运行 codeseek install 将 MCP 服务器配置写入 ~/.claude.json 或 ./.mcp.json,以及 ~/.codex/config.toml;运行 codeseek install-hooks 可在 Git 提交和合并后自动执行索引更新。