本地 AI 搜索引擎,一条命令自动索引代码、文档、日志和 PDF,兼容 Elasticsearch API,使用 Rust 编写。
tobi/qmd
本地运行的命令行搜索引擎,可检索 Markdown 笔记、会议记录和文档,结合 BM25、向量检索与 LLM 重排序。
- Star
- 30,493
- Fork
- 1,916
- 未关闭 Issue
- 231
- 最近提交
- 5天前
这是什么?
QMD(Query Markup Documents)是一个运行在本地设备上的搜索引擎,用于检索个人或团队的知识内容,包括 Markdown 笔记、会议记录、文档和知识库。用户把资料整理为命名的 collection 后,可以通过关键词或自然语言从命令行、TypeScript SDK 或 MCP 服务器进行搜索。
QMD 将 BM25 全文检索、向量语义检索和 LLM 重排序结合起来。查询可以扩展为词法、向量和 HyDE 等类型的子查询,结果通过 Reciprocal Rank Fusion 融合,再由本地模型对候选结果重排序。模型通过 node-llama-cpp 以 GGUF 格式在本地运行,首次使用时自动下载。
工具支持 JSON、CSV、Markdown 和文件列表等输出格式,提供 HTTP 接口,并能基于 frontmatter 中的元数据进行过滤。用户还可以为 collection 和路径添加描述性上下文,检索结果会附带这些信息,便于 Agent 选择文档。运行环境需要 Node.js 22 及以上或 Bun。
核心功能
- 01混合检索,结合 BM25 关键词匹配、向量相似度和 LLM 重排序
- 02通过 node-llama-cpp 加载 GGUF 模型,全部在本地运行
- 03支持命名 collection,并可为路径添加上下文随结果返回
- 04提供 MCP 服务器、HTTP 接口和 TypeScript SDK
- 05输出 JSON 和文件列表,便于 Agent 调用
- 06基于 frontmatter 的类型化元数据过滤,并支持代码文件的 AST 感知分块
适用场景
- 用自然语言而非精确关键词检索个人的 Markdown 笔记库
- 在团队共享目录中查找过往的会议记录和决策
- 为 AI Agent 提供基于项目文档的本地检索工具
- 为代码库的文档和源码建立语义搜索索引
快速上手
- 1
使用 npm 全局安装
npm install -g @tobilu/qmd - 2
添加笔记集合
qmd collection add ~/notes --name notes - 3
为语义搜索生成嵌入向量
qmd embed - 4
运行混合搜索与重排序
qmd query "quarterly planning process"
使用前须知
- 语义搜索和重排序依赖通过 node-llama-cpp 运行的本地 GGUF 模型,需要占用磁盘空间和内存。
- 要获得最佳搜索效果,需要先添加集合、上下文并生成嵌入向量。
标签
常见问题
- qmd 是什么?
- 本地运行的命令行搜索引擎,可检索 Markdown 笔记、会议记录和文档,结合 BM25、向量检索与 LLM 重排序。 QMD(Query Markup Documents)是一个运行在本地设备上的搜索引擎,用于检索个人或团队的知识内容,包括 Markdown 笔记、会议记录、文档和知识库。用户把资料整理为命名的 collection 后,可以通过关键词或自然语言从命令行、TypeScript SDK 或 MCP 服务器进行搜索。
- qmd 可以免费使用吗?用的什么许可证?
- qmd 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- qmd 还在维护吗?
- 活跃维护中。qmd 最近一次提交是在 2026年10月15日。
- qmd 适合用来做什么?
- 用自然语言而非精确关键词检索个人的 Markdown 笔记库 在团队共享目录中查找过往的会议记录和决策 为 AI Agent 提供基于项目文档的本地检索工具 为代码库的文档和源码建立语义搜索索引
- qmd 怎么安装和运行?
- 使用 npm 全局安装: npm install -g @tobilu/qmd 添加笔记集合: qmd collection add ~/notes --name notes 为语义搜索生成嵌入向量: qmd embed 运行混合搜索与重排序: qmd query "quarterly planning process"
- 在哪里获取 qmd?
- 源代码和安装说明在 GitHub 上:https://github.com/tobi/qmd
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
为编码智能体提供跨会话的持久记忆,自动记录会话活动并用 AI 压缩,再把相关上下文注入后续会话。
开源、隐私优先的自托管知识工作空间,支持块级引用、Markdown 所见即所得编辑与智能体协作。
基于 Markdown 的知识图谱,提供编辑器 LSP、CLI 和 MCP 服务,让你与 AI 智能体共享同一套笔记。
本地优先的开源 AI 语音工作室,支持克隆声音、生成语音、语音听写和为 AI 智能体提供语音输出。
基于 LangGraph 构建的模块化 Agentic RAG 教程与项目,支持层级索引、对话记忆和查询澄清。