Repolode
tobi

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. 1

    使用 npm 全局安装

    npm install -g @tobilu/qmd
  2. 2

    添加笔记集合

    qmd collection add ~/notes --name notes
  3. 3

    为语义搜索生成嵌入向量

    qmd embed
  4. 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 数据每日更新。

相关项目