根据用户的自然语言检索需求,生成合适的 Obsidian CLI 查询命令,执行查询,并将结果总结返回。用于用户想在 Obsidian 仓库中搜索笔记、查找上下文、筛选任务、标签、属性、反链、文件列表或结构化查询时,例如“帮我找最近的会议记录”“搜一下包含某关键词的笔记”“看看某篇笔记有哪些反向链接”。
Scanned 9/5/2026
Install to Claude Code
npx -y skills add wwwzhouhui/skills_collection --skill obsidian-search --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Obsidian Search?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/wwwzhouhui-obsidian-search)More formats (shields.io, HTML) on the badges page.
---
name: obsidian-search
description: 根据用户的自然语言检索需求,生成合适的 Obsidian CLI 查询命令,执行查询,并将结果总结返回。用于用户想在 Obsidian 仓库中搜索笔记、查找上下文、筛选任务、标签、属性、反链、文件列表或结构化查询时,例如“帮我找最近的会议记录”“搜一下包含某关键词的笔记”“看看某篇笔记有哪些反向链接”。
---
# Obsidian Search
使用 Obsidian CLI 把自然语言需求转换为可执行查询,再基于输出给出简洁结论。优先复用 `obsidian search`、`search:context`、`tasks`、`tags`、`properties`、`backlinks`、`files`、`outline` 等现成命令,而不是手写文件遍历逻辑。
## 工作流
按以下顺序执行:
1. 判断用户真正想要的结果类型:文件列表、命中上下文、任务、标签、属性、链接关系、某篇笔记内容,还是需要组合查询。
2. 读取 [references/cli-query-patterns.md](references/cli-query-patterns.md),选择最贴切的命令模式。
3. 组装命令时优先使用:
- `query=` 传入用户关键词或搜索表达式
- `path=` 缩小目录范围
- `file=` 用文件名解析目标笔记
- `format=json` 在需要稳定总结时优先使用
- `limit=` 控制结果规模,避免输出过长
4. 使用 Bash 执行 Obsidian CLI 命令。
5. 如果 `search:context` 执行成功但没有返回内容,不要立刻假设“无结果”;先改用同关键词的 `obsidian search` 验证是否存在匹配文件,再决定是否补充 `read`、`outline` 等后续命令。
6. 阅读结果并直接回答用户问题,不原样倾倒大段终端输出。
7. 如果首轮结果过宽或歧义明显,基于结果再执行一轮更具体的查询。
## 查询决策
先匹配下列场景:
- 用户要“找包含某词的笔记” -> `obsidian search`
- 用户要“看匹配词出现在哪些行/上下文” -> `obsidian search:context`
- 用户要“找待办/已完成事项” -> `obsidian tasks`
- 用户要“看标签、某标签用了多少次” -> `obsidian tags` 或 `obsidian tag`
- 用户要“看属性分布或某文件属性” -> `obsidian properties`
- 用户要“看谁链接到这篇笔记” -> `obsidian backlinks`
- 用户要“看这篇笔记链接到了谁” -> `obsidian links`
- 用户要“列出某目录下文件” -> `obsidian files folder=<path>`
- 用户要“看文档结构/标题层级” -> `obsidian outline`
- 用户要“直接读某篇命中的笔记内容” -> 先 `search`/`files` 定位,再 `obsidian read`
如果用户的问题本质上是“总结某个主题在知识库中的分布或观点”,优先采用两步法:
1. `obsidian search` 或 `obsidian search:context` 缩小范围
2. 对最相关的少量文件使用 `obsidian read`、`outline` 或 `backlinks` 补充信息后总结
## 命令构造规则
- 把 `vault=<name>` 放在命令最前,仅在必须切换仓库时使用。
- 包含空格的值用双引号包裹,例如 `query="会议纪要"`。
- `file=` 适合按笔记名解析;需要精确定位时改用 `path=`。
- 用户说“最近”“最新”时,CLI 本身不直接支持按时间排序;先查出候选文件,再结合仓库工具补充判断。
- 用户要统计数量时,优先加 `total` 或选择 `format=json` 后自行汇总。
- 用户要机器可读结果时,优先 `format=json`;用户只要快速答复时可用默认文本格式。
- 单次不要返回过多文件;除非用户明确要求全量,一般加 `limit=10` 或更小。
- 当前环境下 `search:context` 可能出现“命令成功但无输出”的情况;遇到这种情况时,优先降级到 `obsidian search`,必要时再对候选文件执行 `read`。
## 总结规则
- 先给结论,再给依据。
- 结果少时,直接列出关键文件或关键行。
- 结果多时,聚类总结主题、标签、目录分布或高频模式。
- 若没有结果,明确说明“未找到”,并给出下一步可尝试的更宽松查询词。
- 若 `search:context` 无输出但 `search` 有命中,应明确告诉用户“已找到相关文件,但当前 CLI 未返回上下文行”,并改为总结候选文件。
- 若查询语义不够清晰,先做最稳妥的一轮搜索,再根据结果决定是否追问。
## 输出格式
默认按这个顺序组织回答:
1. 一句话回答用户问题
2. 关键发现(2-5条)
3. 必要时给出执行过的命令
4. 必要时建议下一步更精确的查询方向
## 参考资料
- [references/cli-query-patterns.md](references/cli-query-patterns.md):常用查询命令、参数选择和自然语言到命令的映射
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!