使用说明
似曾相识
对AI编码代理会话历史进行语义搜索。通过意义而不仅仅是关键字来询问过去的对话。
似曾相识 是一个 MCP服务器 它对来自受支持的AI编码代理的JSONL会话进行索引,并直接从Claude Code提供混合搜索(矢量+全文)。
支持的来源
| 源 | 路径 | 状态 |
|---|---|---|
| 克劳德代码 | ~/.claude/projects/*/*.jsonl |
支持 |
| Codex CLI | ~/.codex/sessions/YYYY/MM/DD/*.jsonl |
支持(v0.4+) |
| 光标/双子座/开放代码 | -- | 计划中(#8) |
运作原理
~/.claude/projects/*/ deja index index.db
*.jsonl ──────────────► (SQLite + vec + FTS5)
embeddings
│
│ deja serve (MCP stdio)
▼
Claude Code
"search past sessions"
- 索引 --解析JSONL会话文件,提取会话回合,嵌入
multilingual-e5-small,存储在SQLite中 - 服务 --MCP服务器打开索引并通过stdio传输回答搜索查询
搜索通过互易秩融合将向量KNN(语义相似性)和FTS5(关键字匹配)结合起来。
安装
pip install dejasearch
或来源:
git clone https://github.com/CynepMyx/deja.git
cd deja
pip install -e .
第一次运行下载嵌入模型(约117 MB)。
用法
构建索引
deja index # incremental, all sources
deja index --reindex # full rebuild
deja index --source claude-code # only Claude Code sessions
deja index --source codex # only Codex CLI sessions
默认情况下扫描每个支持的源。过滤器 --source.
添加到克劳德代码
添加到 ~/.claude.json 在...之下 mcpServers:
"deja": {
"type": "stdio",
"command": "/path/to/deja/.venv/Scripts/deja.exe",
"args": ["serve"],
"env": {
"PYTHONUNBUFFERED": "1"
}
}
重新启动Claude Code——deja将显示为已连接的MCP服务器。
MCP工具
| 工具 | 说明 |
|---|---|
search |
跨所有会话的混合语义+关键字搜索 |
get_context |
获取一个包含周围转弯的块(±窗口) |
get_session_chunks |
获取会话的索引块(不是原始消息) |
搜索 参数:
query(string)--要搜索什么limit(int,默认值10)--最大结果project(字符串,可选)--按项目筛选source(string,可选)--按来源筛选:claude-code,codexdate_from/date_to(字符串,可选)--ISO日期范围
自动索引(可选)
Claude Code会话结束时自动索引。添加一个停止挂钩 ~/.claude/settings.json:
"hooks": {
"Stop": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "/path/to/deja/.venv/bin/deja index"
}
]
}
]
}
在带有Git Bash的Windows上,用shell脚本包装:
#!/bin/bash
DEJA="/path/to/deja/.venv/Scripts/deja.exe"
[ -f "$DEJA" ] && "$DEJA" index >/dev/null 2>&1 &
"command": "bash /path/to/deja-index.sh"
PID锁可防止并发索引器——在多个会话中是安全的。
堆栈
- 禁食 --ONNX嵌入(
intfloat/multilingual-e5-small,384昏暗) - sqlite-vc --SQLite中的矢量KNN搜索
- SQLite FTS5 --全文关键字搜索
- FastMCP --MCP服务器框架
演出
| 度量 | 值 |
|---|---|
| 增量索引 | <30秒 |
| 搜索延迟(热) | <500毫秒 |
| 首次搜索(冷启动) | <5秒 |
| RAM(搜索) | ~150 MB |
| RAM(索引) | ~300 MB |
发展
pip install -e ".[dev]"
pytest
