名称: qmd
描述: 本地混合搜索工具,用于 Markdown 笔记和文档。适用于搜索笔记、查找相关内容或从已索引的集合中检索文档。
主页: https://github.com/tobi/qmd
元数据: {"clawdbot":{"emoji":"🔍","os":["darwin","linux"],"requires":{"bins":["qmd"]},"install":[{"id":"bun-qmd","kind":"shell","command":"bun install -g https://github.com/tobi/qmd","bins":["qmd"],"label":"通过 Bun 安装 qmd"}]}}
本地 Markdown 笔记、文档和知识库搜索引擎。一次索引,快速搜索。
qmd search (BM25):通常即时响应,应作为默认选项。qmd vsearch(冷启动可能非常慢)。qmd query,除非用户明确要求最高质量的混合结果并能容忍较长的运行时间/超时。brew install sqlite(SQLite 扩展)$HOME/.bun/bin安装 Bun (macOS):brew install oven-sh/bun/bun
bun install -g https://github.com/tobi/qmd
qmd collection add /path/to/notes --name notes --mask "**/*.md"
qmd context add qmd://notes "此集合的描述" # 可选
qmd embed # 一次性执行以启用向量和混合搜索
**/*.md)。qmd search(默认):快速关键词匹配(BM25)qmd vsearch(最后手段):语义相似性(向量)。由于在向量查找前需加载本地 LLM,通常较慢。qmd query(通常跳过):混合搜索 + LLM 重排序。通常比 vsearch 更慢,且可能超时。qmd search 通常即时响应。qmd vsearch 在某些机器上可能需要约 1 分钟,因为查询扩展可能每次运行都需将本地模型(如 Qwen3-1.7B)加载到内存;向量查找本身通常很快。qmd query 在 vsearch 基础上增加了 LLM 重排序,因此可能更慢,对于交互式使用可靠性较低。qmd search "查询" # 默认
qmd vsearch "查询"
qmd query "查询"
qmd search "查询" -c notes # 搜索特定集合
qmd search "查询" -n 10 # 返回更多结果
qmd search "查询" --json # JSON 输出
qmd search "查询" --all --files --min-score 0.3
-n <数量>:返回结果数量-c, --collection <名称>:限制在特定集合内搜索--all --min-score <数值>:返回高于阈值的所有匹配项--json / --files:适合代理处理的输出格式--full:返回完整文档内容qmd get "path/to/file.md" # 完整文档
qmd get "#docid" # 通过搜索结果中的 ID 检索
qmd multi-get "journals/2025-05*.md"
qmd multi-get "doc1.md, doc2.md, #abc123" --json
qmd status # 索引状态
qmd update # 重新索引已更改的文件
qmd embed # 更新嵌入向量
自动化索引,以便在添加/编辑笔记时保持结果最新。
qmd search),qmd update 通常足够(快速)。vsearch/query),可能还需要运行 qmd embed,但可能较慢。定时任务示例(cron):
# 每小时增量更新(保持 BM25 索引最新):
0 * * * * export PATH="$HOME/.bun/bin:$PATH" && qmd update
# 可选:每晚更新嵌入向量(可能较慢):
0 5 * * * export PATH="$HOME/.bun/bin:$PATH" && qmd embed
如果您的 Clawdbot/代理环境支持内置调度器,可以在其中运行相同命令,而非使用系统 cron。
~/.cache/qmd/models/(可通过 XDG_CACHE_HOME 覆盖)。qmd 搜索您的本地文件(笔记/文档),这些文件已显式索引到集合中。memory_search 搜索代理记忆(先前交互中保存的事实/上下文)。memory_search 用于“我们之前决定/学习了什么?”,qmd 用于“我的磁盘笔记/文档中有什么?”。