关于 obsidian-organizer
obsidian-organizer 是用于整理大型 Obsidian 知识库的技能,可为新笔记选择文件夹,也能审查和重组现有结构。它以知识库内的 Markdown 文件夹地图作为归档依据,并要求批量调整先提出方案、经确认后再执行。
主要功能
- 01依据库内文件夹地图归档笔记
- 02审查孤立笔记与无链接笔记
- 03比对疑似重复笔记
- 04重组前先提交方案并等待确认
- 05通过 CLI 移动、重命名和删除
适用场景
- 01将新笔记放入合适的现有文件夹
- 02整理收件箱或指定主题文件夹
- 03检查重复项、孤立笔记和链接
- 04重组前确认移动或合并计划
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ agents365-ai/ 365-skills --skill obsidian-organizer安装后在 Claude Code 中输入/obsidian-organizer确认已加载。
详细介绍
Obsidian 整理器
通过(1)将新笔记归入最合适的文件夹,以及(2)审查并重新整理现有结构,让大型 Obsidian 库长期保持整洁。这两种模式都依赖同一个理念:在知识库内部保存一份纯 Markdown 格式的“内容应该放在哪里”地图,确保它始终与实际情况一致。
此技能会调用 obsidian CLI(来自单独的 obsidian-cli 技能),通过它与正在运行的 Obsidian 桌面应用交互。应用必须处于打开状态。如果命令因连接或知识库错误而失败,请告诉用户打开 Obsidian,而不要自行猜测。
为什么地图要保存在知识库中(请先阅读)
每次都重新列出约 650 个文件夹,再为每条新笔记决定归属,既耗费资源,判断也容易偏离实际情况。把文件夹分类体系复制到 Claude 的私有记忆中会造成更严重的问题:副本过时后,会在不知不觉中与实际知识库不一致。
解决办法是将一个文件 00_Index/Folder_Map.md 直接保存在知识库中。它是归档决策的唯一事实来源。在归档或重新整理前,只需用一次低成本调用读取它——除非地图缺失或用户要求重建,否则不要重新遍历所有文件夹运行 obsidian folders。
obsidian read path="00_Index/Folder_Map.md"
它特意采用简单的 Markdown 格式(标题 + 项目符号,不要求 frontmatter),这样你和用户都可以在新类别出现时手动追加内容。创建新文件夹或类别时,请在此文件中添加一行,让下次归档时能参考。
如果地图不存在(已删除或这是一个新建的知识库),请根据实际知识库重建,而不要使用此技能中附带的副本——副本会与实际情况脱节,而这正是该文件要避免的问题。使用 obsidian vault="MyVault" folders 列出实际结构(深入查看时使用 folders folder=...),按顶层 PARA 文件夹分组,起草一份纯 Markdown 格式的地图,为每个文件夹附上简短的“内容应放于此处”说明和一条归档经验法则;与用户确认分组后,再创建文件:
obsidian vault="MyVault" create path="00_Index/Folder_Map.md" content="..."。
知识库指定方式
上文的 MyVault 是占位符——请在所有位置替换为用户实际的知识库名称。如果用户有多个知识库,请在每条命令中明确指定目标知识库,避免因默认选择“最近聚焦的知识库”而将笔记误归档:
obsidian vault="MyVault" read path="00_Index/Folder_Map.md"
vault= 必须是第一个参数。此技能中唯一与具体知识库有关的值就是它——其他内容都来自该知识库自己的 Folder_Map.md。
唯一的硬性安全规则:绝不要用原始 Shell 命令操作知识库文件
移动或重命名文件时,始终使用 CLI 自带的 move / rename 命令。这些命令会通过 Obsidian API 执行,因此 Obsidian 内置的“自动更新内部链接”功能会重写整个知识库中的所有维基链接和反向链接,使其指向移动后的文件。对知识库中的路径直接使用 mv、rm、rmdir 或 find -delete,会跳过这项修复,并悄无声息地留下指向旧位置的失效链接。
因此,对于知识库目录下的任何内容:
- 移动/重命名 →
obsidian move ...或obsidian rename ... - 删除 →
obsidian delete ...(除非指定permanent,否则会移至废纸篓) - 绝不要对知识库内部路径使用 Bash
mv/rm/rmdir/find -delete。
可以使用不会修改文件的工具读取文件内容;修改知识库文件只能通过 CLI 操作。
模式 1 — 归档笔记
目标:给定一篇笔记(已有路径,或即将撰写的标题和内容),将其放入最合适的文件夹。
- 阅读目录图一次:
obsidian vault="MyVault" read path="00_Index/Folder_Map.md"。 - 匹配笔记主题与目录图中的目标位置,遵循其中的归档规则。优先选择已有的具体子文件夹,而不是通用文件夹(例如,Seurat 使用指南应归入
03_Research_Knowledge/Bioinformatics/seurat/,而不是通用分类)。 - 按最合适的位置操作:
- 存在明显匹配的文件夹 → 将笔记归档到该文件夹。
- 新建笔记:
obsidian vault="MyVault" create path="03_Research_Knowledge/Bioinformatics/seurat/My Note.md" content="..." silent - 移动已有笔记:
obsidian vault="MyVault" move path="00_Inbox/My Note.md" to="03_Research_Knowledge/Bioinformatics/seurat"(to可以是文件夹或完整路径)。
- 新建笔记:
- 存在大致匹配但不够理想的位置(例如,没有专门子文件夹的工具)→ 使用目录图中的通用分类规则(例如
Bioinformatics/misc/),并告知用户笔记的归档位置。 - 没有合适的分类 → 停止并询问用户,再创建文件夹。提出文件夹名称和位置;不要擅自创建新的分类体系。
- 存在明显匹配的文件夹 → 将笔记归档到该文件夹。
- 记住新分类。 用户批准新文件夹后,在
00_Index/Folder_Map.md的相应章节下追加一行描述,方便后续归档时参考(obsidian append path="00_Index/Folder_Map.md" content="...")。 - 简要报告最终路径。
CLI 说明:create 会按需创建中间文件夹;添加 silent,以免通过打开笔记抢占焦点。move 的 to 接受目标文件夹或完整路径;使用 rename name="New Title" 可在原位置更改标题。
模式 2 — 审查 / 重组
目标:给定一个范围(文件夹路径、“最近的收件箱笔记”或“整理 cellchat 笔记”等明确请求),查找问题,**提出计划,获得明确确认,然后执行。**绝不要在未告知的情况下批量移动、合并或删除。
步骤 1 — 收集范围内的信息
先阅读目录图以了解背景,然后使用结构命令。若命令支持按文件夹筛选,则将列表范围限定为相关文件夹。
obsidian vault="MyVault" files folder="<scope>"— 查看清单,并找出可能重复的标题(例如“CellChat analysis”和“CellChat Analysis v2”)。obsidian vault="MyVault" orphans— 查找没有入链的笔记(没有其他笔记链接到它们;可考虑归档、合并或存档)。obsidian vault="MyVault" deadends— 查找没有出链的笔记(通常是尚未完善的草稿或摘录)。obsidian vault="MyVault" search:context query="<topic>" path="<scope>"— 在提议合并前,比较疑似近似重复笔记的内容。obsidian vault="MyVault" backlinks path="<file>"— 合并或删除笔记前,查看有哪些笔记链接到它,避免留下失效引用。
没有专门的“重复项”命令;请通过比较 files 的标题,并用 search:context / read 确认来检测重复项。
步骤 2 — 提出计划(并等待确认)
提供具体的分项计划,然后停下来等待确认。按操作分组:
Proposed reorganization for Bioinformatics/cellchat/ (7 notes):
MERGE
- "CellChat analysis.md" + "CellChat analysis (1).md" → keep "CellChat analysis.md",
fold unique content from the duplicate in, then delete the duplicate.
MOVE
- "Spatial CellChat.md" → Single_Cell/Spatial_Omics/ (topic is spatial, not the tool)
RENAME
- "untitled cellchat.md" → "CellChat LR database notes.md"
No change: 3 notes look fine.
Proceed? I won't move/merge/delete anything until you confirm.
如有不确定之处,请如实标注可能的猜测,以便用户否决。
步骤 3 — 仅在收到“是”之后执行
确认后,通过 CLI 按照能保持链接完整的顺序执行移动、重命名和删除操作(通常先合并内容,再删除已清空的重复项;若既要移动又要重命名,则先移动)。使用 move、rename、delete,以及 append/read 来合并;绝不要使用原始 shell 命令。报告更改内容,并将创建的任何新文件夹/分类追加到 00_Index/Folder_Map.md。
已知的待重组候选项
如果知识库的 Folder_Map.md 指出了已知问题区域(例如与新文件夹内容重叠的旧文件夹、积累了多个近似标题的子文件夹等),且这些区域在处理范围内,请将其列出;但仍需先提出方案并获得确认,再进行任何更改。
命令速查
| 需求 | 命令 |
|---|---|
| 读取映射 | obsidian vault="MyVault" read path="00_Index/Folder_Map.md" |
| 创建/归档新笔记 | obsidian vault="MyVault" create path="Folder/Note.md" content="..." silent |
| 移动/重定位笔记 | obsidian vault="MyVault" move path="Old/Note.md" to="New/Folder" |
| 就地重命名 | obsidian vault="MyVault" rename path="Folder/Note.md" name="New Title" |
| 删除(移至废纸篓) | obsidian vault="MyVault" delete path="Folder/Note.md" |
| 列出文件夹中的文件 | obsidian vault="MyVault" files folder="<scope>" |
| 孤立笔记/死胡同 | obsidian vault="MyVault" orphans · ... deadends |
| 搜索并显示上下文 | obsidian vault="MyVault" search:context query="..." path="<scope>" |
| 指向某条笔记的反向链接 | obsidian vault="MyVault" backlinks path="Folder/Note.md" |
| 向映射追加内容 | obsidian vault="MyVault" append path="00_Index/Folder_Map.md" content="- ..." |
运行 obsidian help <command> 以确认确切参数——CLI 才是权威依据。