cc召回
cc召回 是一个开源的npm monorepo+MCP服务器,RAG在本地索引您的Claude Code会话记录,并通过语义搜索使其可搜索。
问克劳德这样的问题:
- *“我们上周是如何解决黑暗模式问题的?”*
- *“我们对数据库模式做出了什么决定?”*
- *“显示我们进行身份验证的所有会话”*
一切都在本地运行。没有数据离开你的机器。
______________________________________________________________________
快速开始
选项A——安装脚本(建议用于新机器)
git clone https://github.com/cbroberg/cc-recall.git
cd cc-recall
bash scripts/setup.sh脚本将:
- 检查先决条件(节点>=20,pnpm)
- 检测您的Claude Code会话路径
- 添加
cc-recall到~/.claude/settings.json(保留现有的MCP服务器) - 构建所有包
- 对所有会话进行初始索引
- 打印重启说明
选项B--npx(无git克隆)
# Start MCP server
npx @cc-recall/mcp
# Index sessions manually
npx @cc-recall/core index选项C——Docker
docker compose up -d______________________________________________________________________
手动克劳德代码集成
增添 ~/.claude/settings.json:
{
"mcpServers": {
"cc-recall": {
"command": "npx",
"args": ["@cc-recall/mcp"]
}
}
}重新启动克劳德代码。MCP服务器通过stdio自动启动。
______________________________________________________________________
MCP工具
| 工具 | 说明 | 参数 |
|---|---|---|
search_sessions | 跨所有会话的语义搜索 | query (必填), project, chunkType, limit |
get_session_context | 特定会议的完整背景 | sessionId |
list_decisions | 全部 decision 跨会话的块 | project, limit |
get_session_summary | 特定会议总结 | sessionId |
______________________________________________________________________
命令行界面
# Index all sessions
node packages/core/dist/cli.js index
# Show indexing status
node packages/core/dist/cli.js status______________________________________________________________________
配置
| 变量 | 默认值 | 描述 |
|---|---|---|
SESSIONS_PATH | ~/.claude/projects/ | Claude代码会话目录 |
DB_PATH | ~/.cc-recall/recall.db | cc召回数据库 |
EMBEDDING_MODEL | all-MiniLM-L6-v2 | 嵌入模型(all-MiniLM-L6-v2 或 nomic-embed-text) |
OLLAMA_URL | http://localhost:11434 | Ollama URL(仅需要 nomic-embed-text) |
WATCH_MODE | true | 自动索引新会话 |
LOG_LEVEL | info | 日志冗长 |
______________________________________________________________________
运作原理
- 解析 --从以下位置读取Claude Code JSONL会话文件
~/.claude/projects/ - 块 --将会话拆分为语义块:
decision,code-change,error-fix,architecture,conversation - 嵌入 --使用以下命令在本地生成384个暗嵌入
Xenova/all-MiniLM-L6-v2(不需要API密钥) - 商店 --使用以下命令将所有内容保存到本地SQLite数据库
sqlite-vec用于矢量搜索 - 搜索 --通过MCP工具进行余弦相似性搜索
更改检测使用SHA-256哈希——只有新的或更改的会话才会被重新索引。
______________________________________________________________________
技术栈
- 运行时间: Node.js 20,TypeScript(严格)
- 包管理器: pnpm工作区
- 嵌入模型:
Xenova/all-MiniLM-L6-v2(384昏暗,通过本地运行@huggingface/transformers) - 矢量存储: SQLite+
sqlite-vec - MCP-SDK:
@modelcontextprotocol/sdk - 文件监视器:
chokidar - 构建:
tsup
______________________________________________________________________
隐私
秘密被编辑 之前 索引。原始JSONL文件永远不会被修改。
经过编辑的模式:Anthropic API键(sk-ant-...),OpenAI密钥(sk-...),GitHub代币(ghp_, ghu_),AWS密钥(AKIA...),通用密码/秘密/令牌模式。
______________________________________________________________________
许可证
麻省理工学院
