codeseek

CodeBendKitMIT活跃维护

用 Rust 写的代码智能 CLI,为 AI 编程助手构建调用图和混合语义检索索引,支持 7 种语言,并以原生 MCP 工具接入 Claude Code 和 Codex CLI。

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.

v0.1.31发布于 2026-07-29 11:01 UTC759star44fork同步于 2026-11-07 07:31 UTC

怎么上手

由 README 提炼,执行前请确认
npm install -g codeseek
codeseek
codeseek init
硬件要求按 README 说明

README 未说明本地显存要求;嵌入与重排默认调用 OpenAI 兼容的远程 API(示例为硅基流动),无需本地 GPU。

支持 Apple Silicon
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

用 Rust 写的代码智能 CLI,为 AI 编程助手建调用图和混合语义检索索引

用 Rust 写的代码智能 CLI,为 AI 编程助手构建调用图和混合语义检索索引,支持 7 种语言,并以原生 MCP 工具接入 Claude Code 和 Codex CLI。

核心能力

  • 用 Tree-sitter 解析 7 种语言并抽取函数、类和方法
  • 混合检索融合 LanceDB 向量、Tantivy BM25 与调用图三路结果
  • 用 RRF 融合异构分数后再经 Qwen3-Reranker 精排
  • 按 MD5 增量索引,只重新处理改动过的文件
  • 以 MCP 工具注册进 Claude Code 和 Codex CLI

容易踩的坑

首次运行需在向导里填嵌入模型的 API token、模型名和 base URL,否则语义检索不可用;npm 包只是 JS 包装层,安装时会从 GitHub Releases 下载对应平台的 Rust 二进制,仅支持 macOS arm64/x64 与 Linux x64;从源码构建需先装 protoc,重排默认走远程 API,超时或不可用时会退化为调用图名称匹配。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.1.31
  1. v0.1.31最新正式版2026-07-29 · 2026-07-29 11:01 UTC
  2. v0.1.302026-07-10 · 2026-07-10 18:21 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/CodeBendKit/codeseek/compare/v0.1.29...v0.1.30

  3. v0.1.292026-07-08 · 2026-07-08 07:56 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/CodeBendKit/codeseek/compare/v0.1.28...v0.1.29

  4. v0.1.282026-07-07 · 2026-07-07 10:15 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/CodeBendKit/codeseek/compare/v0.1.27...v0.1.28

  5. v0.1.272026-07-07 · 2026-07-07 03:27 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/CodeBendKit/codeseek/compare/v0.1.26...v0.1.27

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    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'
    1. get_embedding (0.7973)
       /home/do/ssd/iohub/dev/codeseek/rust-core/src/services/embedding_service.rs:0
    2. EmbeddingService (0.2855)
       /home/do/ssd/iohub/dev/codeseek/rust-core/src/services/embedding_service.rs:0
    3. EmbeddingData (0.1449)
       /home/do/ssd/iohub/dev/codeseek/rust-core/src/services/embedding_service.rs:0
    4. EmbeddingResponse (0.1304)
       /home/do/ssd/iohub/dev/codeseek/rust-core/src/services/embedding_service.rs:0
    5. 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:

    StepDescription
    First-run wizardInteractive CLI prompts for embedding API token, model, and base URL
    Binary downloadAutomatically pulls the correct Rust binary for your platform from GitHub Releases
    Pass-throughAll commands (init, search, callers, etc.) are forwarded to the native binary

    Supported platforms:

    PlatformArchitecture
    macOSarm64 (Apple Silicon), x64 (Intel)
    Linuxx64

    Homebrew

    brew tap CodeBendKit/codeseek [email protected]: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

    CommandDescription
    codeseekFirst-time setup wizard (configures embedding model interactively)
    codeseek initBuild/update code index (full on first run, MD5-incremental thereafter)
    codeseek statusIndex 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 listList all indexed projects with paths
    codeseek installRegister codeseek as MCP tools in Claude Code / Codex
    codeseek uninstallRemove MCP integration
    codeseek uninitDelete the current project index
    codeseek install-hooksInstall git hooks (post-commit/post-merge → codeseek init)
    codeseek serve --mcpStart 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:

    AgentConfig 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:

    ToolCapability
    codeseek_searchFind symbols by name
    codeseek_callersTrace upstream callers
    codeseek_calleesTrace downstream callees
    codeseek_callgraphQuery call graph with configurable depth (bi-directional)
    codeseek_statusCheck 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)
                            └─────────────────┘
    
    StageTechnologyRoleSpeed
    Dense SearchLanceDB + Embedding ModelSemantic vector similarityFast
    Sparse SearchTantivy BM25Keyword & token matchingFast
    RRF FusionReciprocal Rank FusionMerge heterogeneous scores fairlyInstant
    RerankerCross-Encoder (Qwen3-Reranker-4B)Full-interaction precision scoring~1-2s
    FallbackPetCodeGraphGraph-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

    LanguageFunctionsStructs/ClassesCall 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-...",
        "api_base_url": "https://api.siliconflow.cn/v1",
        "dimensions": 2560
      },
      "index": {
        "min_code_block_length": 16,
        "enable_reranker": true,
        "hybrid": {
          "enable_bm25": true,
          "bm25_top_k": 20,
          "vector_top_k": 20,
          "rrf_k": 60,
          "rrf_top_k": 20
        },
        "reranker": {
          "enabled": true,
          "model": "Qwen/Qwen3-Reranker-4B",
          "api_token": "sk-...",
          "api_base_url": "https://api.siliconflow.cn/v1/rerank",
          "top_n": 5,
          "candidate_multiplier": 5,
          "timeout_secs": 60
        }
      },
      "installed_hooks": {}
    }
    

    Model Roles

    ModelRoleWhen
    Qwen/Qwen3-Embedding-4BConverts code → vectors for dense searchIndex building
    Qwen/Qwen3-Reranker-4BScores (query, code) pairs for precisionSearch 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