🚀 CKB — 代碼知識後端
瞭解你的代碼,安全地進行更改,自信地發佈。

CKB 將你的代碼庫轉換為可查詢的知識庫。通過命令行界面(CLI)、應用程序編程接口(API)或人工智能助手,你可以提出問題、瞭解變更影響、查找代碼所有者以及檢測死代碼。
你可以將其視為一位資深工程師,他知曉代碼的每一行、每一個決策和每一位代碼所有者,並且隨時為你答疑解惑。
🚀 快速開始
選項 1:使用 npm(推薦)
npm install -g @tastehub/ckb
npx @tastehub/ckb init
選項 2:使用 Homebrew(適用於 macOS/Linux)
brew tap SimplyLiz/ckb
brew install ckb
選項 3:從源代碼構建
git clone https://github.com/SimplyLiz/CodeMCP.git
cd CodeMCP
go build -o ckb ./cmd/ckb
配置步驟
cd /path/to/your/project
ckb init
ckb index
ckb setup
claude mcp add --transport stdio ckb -- npx @tastehub/ckb mcp
啟動時顯示的令牌效率:
CKB MCP Server v8.0.0
活躍工具:14 / 76 (18%)
估計上下文:~1k 令牌
預設:核心
現在,Claude 可以回答如下問題:
- “哪些地方調用了 HandleRequest 函數?”
- “從 API 如何調用到 ProcessPayment?”
- “如果我更改 UserService,影響範圍有多大?”
- “internal/api 模塊的所有者是誰?”
- “這段遺留代碼是否仍在使用?”
✨ 主要特性
即時解答難題
| 問題 |
沒有 CKB |
有 CKB |
| “如果我更改這裡,會破壞什麼?” |
用 grep 搜索並寄希望於結果 |
精確的影響範圍及風險評分 |
| “這個拉取請求(PR)應該由誰審核?” |
從 git blame 中猜測 |
基於數據的審核人建議 |
| “這段代碼是否仍在使用?” |
刪除並查看是否有問題 |
帶有置信度評分的死代碼檢測 |
| “我應該運行哪些測試?” |
運行所有測試(30 分鐘) |
僅運行受影響的測試(2 分鐘) |
| “這個系統是如何工作的?” |
花數小時閱讀代碼 |
即時查詢架構 |
| “這段代碼的所有者是誰?” |
手動搜索 CODEOWNERS 文件 |
帶有漂移檢測的代碼所有權信息 |
| “是否存在暴露的機密信息?” |
手動用 grep 搜索特定模式 |
自動掃描 26 種模式 |
功能概述
- 🔍 理解:語義搜索、調用圖、使用追蹤、架構圖
- ⚡ 分析:影響分析、風險評分、熱點檢測、耦合分析
- 🛡️ 保護:受影響測試檢測、重大變更警告、PR 風險評估
- 🔐 安全:機密檢測、憑證掃描、安全敏感代碼識別
- 👥 協作:所有權查找、審核人建議、架構決策(ADRs)
- 📊 改進:死代碼檢測、技術債務跟蹤、文檔覆蓋率
- 🚀 複合操作:單調用工具(
explore、understand、prepareChange)可將人工智能工具調用減少 60 - 70%
- 🔗 集成:命令行界面(CLI)、HTTP API、適用於人工智能工具的 MCP、CI/CD 管道、自定義腳本
📦 安裝指南
推薦使用 npm 安裝
npm install -g @tastehub/ckb
npx @tastehub/ckb init
使用 Homebrew 安裝(macOS/Linux)
brew tap SimplyLiz/ckb
brew install ckb
從源代碼構建
git clone https://github.com/SimplyLiz/CodeMCP.git
cd CodeMCP
go build -o ckb ./cmd/ckb
💻 使用示例
基礎用法
ckb hotspots --format=human
ckb diff-summary --format=human
ckb audit --format=human
ckb arch --format=human
ckb status
高級用法
ckb setup
📚 詳細文檔
進一步瞭解
| 資源 |
描述 |
| 📖 功能指南 |
完整的功能列表及示例 |
| 💬 提示手冊 |
解決實際問題的真實提示 |
| 🔌 集成指南 |
在你自己的工具和腳本中使用 CKB |
| ⚡ 影響分析 |
影響範圍、受影響測試、PR 風險 |
| 🔧 CI/CD 集成 |
GitHub Actions、GitLab CI 模板 |
三種使用方式
| 接口 |
適用場景 |
| MCP |
人工智能輔助開發 — Claude、Cursor、Windsurf、VS Code、OpenCode、Grok |
| CLI |
從終端快速查詢、腳本編寫 |
| HTTP API |
IDE 插件、CI 集成、自定義工具 |
索引工作原理
CKB 使用 SCIP 索引 來理解你的代碼,你可以將其看作一個數據庫,它知道每個函數的定義位置、調用者以及所有代碼之間的連接關係。
基本操作
ckb index
ckb status
如果沒有索引,CKB 仍然可以使用 tree-sitter 解析(基本模式),但有了索引,你可以獲得:
- 跨文件引用(“哪些地方調用了這個函數?”)
- 精確的影響分析
- 調用圖導航
語言支持
並非所有語言都具有相同的支持程度。CKB 根據索引器的成熟度將語言分為 質量等級:
| 等級 |
支持質量 |
語言 |
| 一級 |
全面支持,所有功能可用 |
Go |
| 二級 |
全面支持,有少量邊緣情況 |
TypeScript、JavaScript、Python |
| 三級 |
基本支持,調用圖可能不完整 |
Rust、Java、Kotlin、C++、Ruby、Dart |
| 四級 |
實驗性支持 |
C#、PHP |
關鍵限制:
- 增量索引 僅適用於 Go 語言。其他語言需要完全重新索引。
- TypeScript 單倉庫 可能需要
--infer-tsconfig 標誌
- C/C++ 需要
compile_commands.json
- Python 在激活虛擬環境時效果最佳
運行 ckb doctor --tier standard 檢查你的語言工具是否正確安裝。
更多信息請查看 語言支持,其中包含索引器安裝、已知問題和完整的功能矩陣。
保持索引最新
當你提交代碼時,索引會過時。CKB 提供了幾種保持索引最新的方法:
| 方法 |
命令 |
使用場景 |
| 手動更新 |
ckb index |
一次性更新、腳本中使用 |
| 監控模式 |
ckb index --watch |
開發過程中自動刷新 |
| MCP 監控 |
ckb mcp --watch |
在人工智能會話中自動刷新 |
| CI 網絡鉤子 |
POST /api/v1/refresh |
從 CI/CD 觸發 |
人工智能會話快速啟動:
ckb mcp --watch
檢查索引是否過時:
ckb status
對於 Go 項目,CKB 使用 增量索引,只處理更改的文件,使更新速度更快。
完整文檔請查看 索引管理指南。
功能特性
| 功能 |
描述 |
| 複合操作 |
explore、understand、prepareChange — 單調用工具,可將人工智能開銷減少 60 - 70% |
| 代碼導航 |
語義搜索、調用圖、跟蹤使用情況、查找入口點 |
| 影響分析 |
影響範圍、風險評分、受影響測試、重大變更(compareAPI) |
| 架構理解 |
模塊概述、架構決策記錄(ADRs)、依賴圖、解釋起源 |
| 所有權管理 |
CODEOWNERS + git blame、審核人建議、漂移檢測 |
| 代碼質量 |
死代碼檢測(findDeadCode)、耦合分析、複雜度分析 |
| 安全 |
機密檢測、憑證掃描、白名單 |
| 文檔智能 |
文檔 - 符號鏈接、陳舊性檢測、覆蓋率指標 |
| 多倉庫支持 |
聯合、API 契約、遠程索引服務 |
| 運行時智能 |
OpenTelemetry 集成、觀察到的使用情況、生產環境死代碼 |
| 流式處理 |
findReferences、searchSymbols 的服務器發送事件(SSE)流式處理,即時顯示進度 |
| 自動化 |
守護模式、監控模式、網絡鉤子、增量索引 |
📖 完整功能指南 — 詳細文檔及示例
📋 更新日誌 — 版本歷史
CLI 命令
ckb status
ckb search Handler
ckb diff-summary
ckb hotspots
ckb arch
ckb ownership
ckb mcp
v8.0 複合操作(通過 MCP):
explore
understand
prepareChange
batchGet
batchSearch
📖 用戶指南 — 所有 CLI 命令和選項
HTTP API
ckb serve --port 8080
curl http://localhost:8080/health
curl http://localhost:8080/status
curl "http://localhost:8080/search?q=NewServer"
curl http://localhost:8080/architecture
curl "http://localhost:8080/ownership?path=internal/api"
curl http://localhost:8080/hotspots
ckb serve --port 8080 --index-server --index-config config.toml
curl http://localhost:8080/index/repos
curl http://localhost:8080/index/repos/company%2Fcore-lib/meta
curl "http://localhost:8080/index/repos/company%2Fcore-lib/symbols?limit=100"
curl "http://localhost:8080/index/repos/company%2Fcore-lib/search/symbols?q=Handler"
curl -X POST http://localhost:8080/index/repos \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ckb_xxx" \
-d '{"id":"my-org/my-repo","name":"My Repo"}'
gzip -c index.scip | curl -X POST http://localhost:8080/index/repos/my-org%2Fmy-repo/upload \
-H "Content-Encoding: gzip" \
-H "Authorization: Bearer ckb_xxx" \
--data-binary @-
ckb token create --name "ci-upload" --scope upload
ckb token list
ckb token revoke ckb_xxx
ckb token rotate ckb_xxx
MCP 集成
CKB 可與任何支持 MCP 的人工智能編碼工具配合使用。
Claude Code
npx @tastehub/ckb setup
npx @tastehub/ckb setup --global
或者手動添加到 .mcp.json:
{
"mcpServers": {
"ckb": {
"command": "npx",
"args": ["@tastehub/ckb", "mcp"]
}
}
}
Cursor
添加到 ~/.cursor/mcp.json(全局)或 .cursor/mcp.json(項目):
{
"mcpServers": {
"ckb": {
"command": "npx",
"args": ["@tastehub/ckb", "mcp"]
}
}
}
Windsurf
添加到 ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"ckb": {
"command": "npx",
"args": ["@tastehub/ckb", "mcp"]
}
}
}
VS Code
添加到你的 VS Code settings.json:
{
"mcp": {
"servers": {
"ckb": {
"type": "stdio",
"command": "npx",
"args": ["@tastehub/ckb", "mcp"]
}
}
}
}
OpenCode
添加到項目根目錄的 opencode.json:
{
"mcp": {
"ckb": {
"type": "local",
"command": ["npx", "@tastehub/ckb", "mcp"],
"enabled": true
}
}
}
Grok
npx @tastehub/ckb setup --tool=grok
npx @tastehub/ckb setup --tool=grok --global
或者手動添加到 .grok/settings.json(項目)或 ~/.grok/user-settings.json(全局):
{
"mcpServers": {
"ckb": {
"name": "ckb",
"transport": "stdio",
"command": "npx",
"args": ["@tastehub/ckb", "mcp"]
}
}
}
Claude Desktop
Claude Desktop 沒有項目上下文,因此你必須指定倉庫路徑。
自動配置(推薦):
cd /path/to/your/repo
ckb setup --tool=claude-desktop
手動配置 — 添加到 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows):
{
"mcpServers": {
"ckb": {
"command": "npx",
"args": ["-y", "@tastehub/ckb", "mcp"],
"env": {
"CKB_REPO": "/path/to/your/repo"
}
}
}
}
CKB_REPO 環境變量告訴 CKB 要分析哪個倉庫。Claude Desktop 一次只能處理一個倉庫。
Windows
在上述任何配置中使用 cmd /c 包裝器:
{
"mcpServers": {
"ckb": {
"command": "cmd",
"args": ["/c", "npx", "@tastehub/ckb", "mcp"]
}
}
}
預設(令牌優化)
CKB 提供 80 多個工具,但大多數會話只需要其中一部分。使用預設可以將令牌開銷減少多達 83%:
ckb mcp --list-presets
ckb mcp
ckb mcp --preset=core
ckb mcp --preset=review
ckb mcp --preset=refactor
ckb mcp --preset=federation
ckb mcp --preset=docs
ckb mcp --preset=ops
ckb mcp --preset=full
在 MCP 配置中:
{
"mcpServers": {
"ckb": {
"command": "npx",
"args": ["@tastehub/ckb", "mcp", "--preset=review"]
}
}
}
人工智能可以在會話中使用 expandToolset 工具動態擴展工具集。
🔧 技術細節
底層原理
CKB 協調多個代碼智能後端:
- SCIP:精確的預索引符號數據(最快)
- LSP:即時語言服務器查詢
- Git:blame、歷史記錄、變更分析、所有權
結果會智能合併並壓縮,以適應大語言模型(LLM)的上下文限制。
持久知識在會話之間保持有效:
- 模塊註冊表:邊界、職責、標籤
- 所有權註冊表:CODEOWNERS + git blame,並考慮時間衰減
- 熱點跟蹤器:帶有趨勢分析的歷史快照
- 決策日誌:支持全文搜索的架構決策記錄(ADRs)
適用人群
- 使用人工智能助手的開發者:為你的人工智能工具賦予強大能力
- 擁有大型代碼庫的團隊:高效應對代碼複雜性
- 進行代碼重構的人員:在更改代碼前瞭解影響
- 代碼審核人員:全面瞭解代碼變更
- 技術負責人:長期跟蹤架構健康狀況
侷限性(客觀說明)
CKB 的優勢在於:
- 靜態代碼導航:查找定義、引用、調用圖
- 安全重構的影響分析
- 所有權查找(CODEOWNERS + git blame)
- 架構和模塊理解
CKB 無法提供幫助的方面:
- 動態調度/運行時行為(使用調試器)
- 未索引的生成代碼
- 代碼生成、代碼檢查或格式化
- 跨倉庫調用(使用 聯合 功能)
CKB 是靜態分析工具,並非萬能。在做出關鍵決策時,請始終閱讀實際代碼進行驗證。
📖 實際限制 — 關於準確性、盲點以及何時信任結果的完整指南
📄 許可證
- 免費使用場景:個人使用、開源項目、年收入低於 25,000 美元的初創公司和小企業。
- 商業許可證要求:年收入超過 25,000 美元的組織需要商業許可證。請查看 定價 獲取團隊和企業計劃,或查看 LICENSE 獲取完整條款。