lore
lore
针对您的 Claude Code 对话进行语义搜索。 查找您讨论过的任何内容——跨越所有项目、所有会话和任何分支。
功能
混合搜索(向量 + 关键词) 结合了 multilingual-e5-small 嵌入与 FTS5/BM25,并通过倒数排名融合(Reciprocal Rank Fusion)进行排序。既能按语义查找,也能按精确术语查找。
完全本地化,无需 API 密钥 一切都在您的机器上运行。使用 ONNX Runtime 进行嵌入,使用 sqlite-vec 进行存储。没有任何数据会离开您的设备。
会话结束自动索引 SessionEnd 钩子会在后台自动索引所有新会话。无需手动触发。
后台索引 手动触发索引会立即返回。您可以在继续工作的同时监控进度。在其余内容完成索引的同时,您可以搜索已索引的内容。
默认选择性退出 所有项目都会自动索引。您可以排除不需要的项目。无需注册。
对话感知分块 按逻辑轮次(用户问题 + 完整的助手响应链)进行拆分,而不是任意的 token 窗口。正确处理工具使用链、思考块和多步交互。
100+ 种语言 支持韩语、日语、中文、英语等 90 多种语言。具备 CJK 感知的分词估算,以实现精确的分块。
快速入门
添加到 Claude Code
# No install needed — always runs latest version
claude mcp add -s user lore -- npx getlore
# Or for a single project only
claude mcp add -s project lore -- npx getlore添加到 OpenAI Codex CLI
# No install needed
codex mcp add lore -- npx getlorenpm install -g getlore
# Then register with your tool:
claude mcp add -s user lore -- getlore # Claude Code
codex mcp add lore -- getlore # Codex CLI
# Manage your install:
getlore --version # Check installed version
getlore update # Update to latest使用方法
连接后,AI 可以直接使用 lore 的工具:
You: "What did we discuss about auth refactoring last week?"
Claude: [calls lore search] Found 3 relevant conversations...
In your "my-webapp" project on March 15, you decided to...首次设置:
索引 (Index) --
index()会自动扫描所有项目,并在后台运行搜索 (Search) -- 询问关于过去对话的任何内容
排除 (Exclude)(可选)-- 隐藏您不关心的嘈杂项目
工具
工具 | 用途 |
| 从索引中排除/包含项目(选择性退出模型) |
| 启动后台索引。索引所有未排除的项目。模式: |
| 检查索引进度、预计完成时间、跳过原因、数据库健康状况 |
| 跨对话进行语义 + 关键词搜索 |
| 使用周围的对话内容扩展搜索结果 |
| 按项目浏览已索引的会话 |
为什么存在这个工具
Claude Code 将每次对话存储为 ~/.claude/projects/ 中的 JSONL 转录文件。几周后,您会在几十个项目中拥有数百个会话——关于架构决策、调试会话、代码审查和设计探索的讨论。
但目前没有办法搜索它们。您无法询问“我们对身份验证中间件采取了什么方法?”或“哪个项目进行了那次数据库迁移讨论?”
现有的工具要么需要云 API,要么会产生僵尸进程,要么将对话视为通用文档。lore 是专为 Claude Code 会话构建的:它理解轮次边界、工具使用链和思考块。它完全在本地运行,除了 Node.js 之外没有任何依赖。
工作原理
~/.claude/projects/*/*.jsonl
|
JSONL Parser (extracts user/assistant messages, skips noise)
|
Turn-pair Chunker (groups by logical conversation turns)
|
Transformers.js (multilingual-e5-small, INT8 quantized, 384d)
|
sqlite-vec + FTS5 (hybrid vector + keyword storage)
|
Reciprocal Rank Fusion (combines both signals for ranking)存储: 单个 SQLite 文件位于 ~/.lore/lore.db,使用 WAL 模式以支持并发读取。
配置: 项目排除项存储在 ~/.lore/config.json 中。
环境变量
变量 | 默认值 | 描述 |
|
| 数据目录 |
|
| 数据库路径 |
|
| Claude Code 转录文件位置 |
在 Apple Silicon (M 系列) 上测得:
指标 | 数值 |
搜索延迟 | 20-30ms |
索引速度 | ~10 个会话/秒 |
首次搜索(冷模型加载) | ~5s |
数据库大小 | 每 10 个会话约 0.1MB |
模型大小(下载一次) | ~112MB |
“未找到会话”
运行 manage_projects 并使用 list 操作查看可用项目。除非被排除,否则所有项目默认都会被索引。
过期的锁文件
如果索引被中断,锁文件会在下次运行时自动清理(基于 PID 的检测)。
数据库损坏
删除 ~/.lore/lore.db 并重新索引。您的源数据 (~/.claude/projects/) 永远不会被修改。
开发
git clone https://github.com/hyunjae-labs/lore.git
cd lore
npm install
npm run build
npm test # 118 tests技术栈
Model Context Protocol SDK -- stdio 传输
@huggingface/transformers -- multilingual-e5-small (INT8)
better-sqlite3 + sqlite-vec -- 嵌入式向量数据库
Reciprocal Rank Fusion -- 混合搜索排名
许可证
MIT
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/hyunjae-labs/lore'
If you have feedback or need assistance with the MCP directory API, please join our Discord server