快速Markdown搜索技能Skill qmd

qmd是一个高效的本地Markdown文档搜索工具,支持关键词(BM25)、语义(向量)和混合搜索模式,帮助用户快速管理和检索个人知识库中的信息。适用于笔记整理、文档搜索和知识管理,提高工作效率。关键词:Markdown搜索工具,本地文件搜索,笔记检索系统,AI搜索应用,文档管理软件,快速搜索,知识库管理。

其他 0 次安装 0 次浏览 更新于 3/9/2026

名称: 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”}]}}

qmd - 快速Markdown搜索

本地搜索引擎,用于Markdown笔记、文档和知识库。索引一次,搜索快速。

何时使用(触发短语)

  • “搜索我的笔记/文档/知识库”
  • “查找相关笔记”
  • “从我的集合中检索Markdown文档”
  • “搜索本地Markdown文件”

默认行为(重要)

  • 首选 qmd search(BM25)。它通常即时,应为默认。
  • 仅当关键词搜索失败且需要语义相似性时使用 qmd vsearch(冷启动可能非常慢)。
  • 避免 qmd query,除非用户明确想要最高质量的混合结果并能容忍长运行时间/超时。

先决条件

  • Bun >= 1.0.0
  • macOS:brew install sqlite(SQLite扩展)
  • 确保PATH包含:$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  # 一次性启用向量 + 混合搜索

索引内容

  • 设计用于Markdown集合(通常 **/*.md)。
  • 在我们的测试中,“混乱”的Markdown没问题:分块基于内容(大约几百个令牌每块),不是严格的标题/结构。
  • 不替代代码搜索;对于仓库/源代码树,请使用代码搜索工具。

搜索模式

  • qmd search(默认):快速关键词匹配(BM25)
  • qmd vsearch(最后手段):语义相似性(向量)。由于本地LLM工作,通常较慢。
  • qmd query(通常跳过):混合搜索 + LLM重新排名。通常比 vsearch 更慢,可能超时。

性能说明

  • qmd search 通常即时。
  • qmd vsearch 在某些机器上可能约1分钟,因为查询扩展可能每次运行加载本地模型(例如,Qwen3-1.7B)到内存;向量查找本身通常快速。
  • qmd queryvsearch 基础上添加LLM重新排名,因此可能更慢,对交互使用不太可靠。
  • 如果需要重复语义搜索,考虑保持进程/模型温暖(例如,在您的设置中,如果可用,使用长寿命的qmd/MCP服务器模式),而不是每次调用冷启动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 <num>:结果数量
  • -c, --collection <name>:限制到集合
  • --all --min-score <num>:返回高于阈值的所有匹配
  • --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。

模型和缓存

  • 使用本地GGUF模型;第一次运行自动下载它们。
  • 默认缓存:~/.cache/qmd/models/(用 XDG_CACHE_HOME 覆盖)。

与Clawdbot内存搜索的关系

  • qmd 搜索 您的本地文件(笔记/文档),您明确索引到集合中。
  • Clawdbot的 memory_search 搜索 代理内存(从先前交互保存的事实/上下文)。
  • 两者都用:memory_search 用于“我们之前决定/学习了什么?”,qmd 用于“我的磁盘上的笔记/文档中有什么?”。