全部技能 / 内容创作 / obsidian-skills
内容创作 · kepano/obsidian-skills

obsidian-skills

Create and edit Obsidian Flavored Markdown with wikilinks, embeds, callouts, properties, and other Obsidian-specific syntax. Use when working with .md files in Obsidian, or when the user mentions wikilinks, callouts, frontmatter, tags, embeds, or Obsidian notes.

风险提醒:黄色 · 留意使用AI 侦查报告
作者 kepanoGitHub kepano/obsidian-skills ↗Stars 48365许可 MIT(仓库根 LICENSE;GitHub API spdx_id=MIT;.claude-plugin/plugin.json 内 "license": "MIT")commit 8ccef29ae8
agent 宿主通常会约束 skill 执行权限;风险提醒为 AI 侦查观点,不构成质量或安全保证。第三方 skill 仅作拆解与展示,安装使用风险自负,版权归原作者。

1实现原理 · 为什么它能做到

它不是单个 SKILL.md,而是 6 个并列 skill 组成的集合,按 Obsidian 的载体类型分工:Markdown、Bases、Canvas 三种开放格式各一个,vault 操作、网页抽取、模板渲染各一个。

.claude-plugin/plugin.json
"description": "Create and edit Obsidian vault files including Markdown, Bases, and Canvas. Use when working with .md, .base, or .canvas files in an Obsidian vault."
注:仓库仅 13 个受版本控制的文件,全部 skill 合计约 1.2k 行 Markdown;无脚本、无二进制、无 references 之外的资产。

实现方式是把 Obsidian 的格式规格内联进 SKILL.md:模型不是靠『自由发挥』写笔记,而是照抄 skill 内给出的 schema、运算符表和陷阱说明产出合法文件。

skills/obsidian-bases/SKILL.md
Base files use the `.base` extension and contain valid YAML.
注:同款做法见 json-canvas(内联 JSON Canvas Spec 1.0 的节点/边字段表)与 obsidian-markdown(内联 wikilink/embed/callout 语法)。

每个格式类 skill 都把『校验』写进工作流结尾,要求模型自查结构与引用完整性,而不是交出去就算完。

skills/json-canvas/SKILL.md
**Validate**: Confirm all IDs are unique and all edge references resolve to existing nodes
注:obsidian-bases 的 Step 5 同样是自查 YAML 引号/公式引用,并要求最终在 Obsidian 中打开确认渲染。

vault 操作走官方 Obsidian CLI,而不是直接改文件系统——因此它作用的是一台正在运行的 Obsidian 实例。

skills/obsidian-cli/SKILL.md
Use the `obsidian` CLI to interact with a running Obsidian instance. Requires Obsidian to be open.
注:默认操作『最近聚焦的 vault』,可用 vault=<name> 切换;文件定位支持 wikilink 式 file= 与精确 path=。

CLI 的参数/开关语法被显式规定(k=v 取值、裸开关为布尔、多行用 \n 与 \t),减少模型瞎拼参数导致的误操作。

skills/obsidian-cli/SKILL.md
**Parameters** take a value with `=`. Quote values with spaces:
注:同段还规定 `--copy` 复制输出到剪贴板、`silent` 阻止文件被打开、`total` 取列表计数。

把两个外部单用途 CLI 纳入工作流:defuddle 负责把网页抽成干净 Markdown,knap 负责用模板把 JSON/CSV 批量渲染成笔记,两者可管道串起来。

skills/knap/SKILL.md
defuddle parse https://example.com/article --md --json \ | knap render template.md --data - -o note.md
注:knap 的可发现性设计值得注意:不把语法全写进 prompt,而是让 agent 用 `knap help syntax` / `knap help filters` 等离线帮助按需取。

写入类操作有显式的『覆盖需授权』契约,避免静默毁坏既有笔记。

skills/knap/SKILL.md
Existing files require `--overwrite`, including during a dry run.
注:同段还有 `--dry-run` 只列输出路径不写文件、批量重名视为错误(即使给了 --overwrite)。

发布形态是跨宿主插件/技能包:README 分别给出 Claude Code(/plugin marketplace)、npx skills、Codex(~/.codex/skills)、OpenCode(~/.opencode/skills)四条落盘路径,并提示整仓克隆而非只拷 skills/。

README.md
Do not copy only the inner `skills/` folder — clone the full repo so the directory structure is `~/.opencode/skills/obsidian-skills/skills/<skill-name>/SKILL.md`.
注:Claude Code 场景下的推荐做法是把本仓内容放进 vault 根目录的 /.claude,这样 skill 就在笔记库里就地可用。

2核心能力

01Obsidian Flavored Markdown 写作:wikilink、嵌入、callout、properties/frontmatter、块 ID
02Bases(.base)文件:全局/视图级 filters(and/or/not 递归对象)、formulas、summaries、table/cards/list/map 视图与 order/groupBy/limit
03JSON Canvas(.canvas)文件:节点(text/file/link/group)、边(fromNode/toNode/fromSide/label)、ID 唯一性与 z-index 语义
04Vault 日常操作:读取/新建/追加/搜索/日记/属性/任务/标签/反链,且不打开文件即可写入(silent)
05插件与主题开发闭环:reload → 查错 → 截图/DOM 检查 → 控制台检查
06网页正文抽取为干净 Markdown(去导航/广告,省 token),并支持按属性取 title/description/domain
07模板渲染与批量生成:JSON/CSV/文件夹 → 一文件一笔记,文件名模板 + safe_name 防路径问题
08格式陷阱提示:YAML 引号、JSON 字符串换行(\n vs \\n)、ID 冲突、edge 悬空引用

3外部依赖

类型依赖
cliobsidian(官方 Obsidian CLI,需本机 Obsidian 处于运行状态)
clidefuddle(npm 全局 CLI,网页正文抽取)
cliknap(npm 全局 CLI,要求 Node.js 20+,模板渲染/批量生成)
network任意用户给定 URL(defuddle parse 会实际抓取该网页)
networkObsidian 官方文档站(SKILL.md 中作为『最新命令清单』的指针,非运行时抓取)
networkJSON Canvas 规范与仓库(文档引用)

4风险提醒 风险提醒:黄色 · 留意使用

风险提醒:黄色 · 留意使用
  • 抓回的网页正文是不可信输入,未被设为防线 — defuddle 的产物(第三方网页文本)会经 knap 渲染或直接写入 vault,SKILL.md 未要求把该内容当数据而非指令处理;若网页内嵌提示词,存在把内容写偏/写进 vault 的可能。
  • obsidian eval / dev:* 权限高且作用于真实 vault — SKILL.md 列出 'obsidian eval code=...' 与 'additional developer commands including CDP and debugger controls'。虽为官方功能、由用户驱动,但一旦 agent 误用,作用对象是用户的全部笔记数据。
  • 默认目标是『最近聚焦的 vault』 — obsidian-cli 原文:不指定 vault= 时命令作用于最近聚焦的 vault。多 vault 用户存在写错库的风险,需靠 vault=<name> 显式指定。
  • 依赖三个仓外 CLI,其内部行为不可从本仓审计 — obsidian(应用内)、defuddle、knap 的源码不在本仓(verification 中记为 unlocatable),且需 `npm install -g`——供应链判断需另查上游包。
  • 格式细节靠 references 按需加载,漏读会导致静默产出不合规文件 — PROPERTIES/CALLOUTS/EMBEDS/FUNCTIONS_REFERENCE/EXAMPLES 五个引用文件不读则属性类型、callout 别名、公式函数只能凭记忆写;skill 未强制读取。
风险提醒:黄色,留意使用。判级依据:① 集合内零脚本,无凭证读取(env/token/keychain 全仓零命中);② 但存在真实且必要的网络外发——defuddle 会抓取用户给定的任意网页(外发对象可预期=用户提供的 URL),并按需经 npm 安装 defuddle/knap;③ 写入面是用户自己的 vault(create/append/property:set/batch -o),属任务本意,且有 --dry-run、--overwrite 这类显式门禁;④ 权限最高的 obsidian eval / dev:* 是官方 CLI 的文档化开发命令,由用户驱动,非本 skill 自造绕过。提醒点:defuddle 抓回的网页内容属不可信输入,直接渲染/落库前建议人工扫一眼;obsidian CLI 只作用于本机运行中的 vault,使用前确认目标 vault 是哪一份。

5第二遍独立确认

  • [ok] skill.path 定位(任务表标『待定位』);合集条目指向哪个具体 skill — 本条目展示名『Obsidian Skills』对应的是 6 个 skill 的合集,仓库根无集合级 SKILL.md。skill.path 现指向其中的代表 skill:skills/obsidian-markdown —— 它是 README 技能表首项、覆盖面最广(Obsidian Flavored Markdown,含 wikilinks/embeds/callouts/properties),也是『Claude Skills for Obsidian 笔记与知识管理』这一展示描述的最直接载体。其余 5 个并列 skill 为:skills/obsidian-bases(.base)、skills/json-canvas(.canvas)、skills/obsidian-cli(官方 CLI)、skills/defuddle(网页正文抽取)、skills/knap(模板渲染/批量生成);本 JSON 的 capabilities 与 internal_assets 覆盖的是全部 6 个(逐条 evidence 均指向对应子目录),analysis 亦按合集口径书写。
  • [discrepancy] 官方 description 取哪一份(集合无单一 frontmatter description) — 本条目代表的是一个 6-skill 集合,仓库内不存在『集合级 frontmatter description』。meta.official_desc 因此采用 .claude-plugin/plugin.json 的 description 原文(对集合范围的官方表述),并在字段内注明口径来源与『子 skill description 见别处』。6 个子 skill 的 frontmatter description 各自原文已逐条取证(例如 knap: 'Render Markdown templates from structured data using Knap CLI...'、defuddle: 'Extract clean markdown content from web pages using Defuddle CLI...'),未被改写或合并。
  • [discrepancy] official_desc 取哪一份(合集无集合级 frontmatter description) — 合集在仓库根没有集合级 SKILL.md/frontmatter description(6 个 skill 各有自己的 description)。本条目 official_desc 采用代表 skill skills/obsidian-markdown 的 frontmatter description 逐字原文(与 skill.path 指向的具体 skill 一致,满足『official_desc = SKILL.md frontmatter 原文』的取证规则);集合级口径(.claude-plugin/plugin.json 的 'Create and edit Obsidian vault files including Markdown, Bases, and Canvas. Use when working with .md, .base, or .canvas files in an Obsidian vault.')已逐字记入 internal_assets 的 plugin.json 条目说明,不丢失信息。
  • [ok] 『零脚本』结论的反例搜索 — 13 个受控文件的后缀全为 .md/.json;无 .sh/.py/.js/.mjs/.ts;仓库无 .github(无 CI 引入的第三方 action)。所有可执行动作均来自外部 CLI(obsidian/defuddle/knap),它们的代码不在本仓,本仓无法审。
  • [ok] 『无凭证读取』是否漏网 — 对 api_key/API_KEY/token/secret/.env/os.environ/process.env/keychain 全仓扫描零命中。obsidian CLI 依赖的是本机 Obsidian 登录/本地会话,SKILL.md 未要求读取任何 key 或 cookie。
  • [ok] 网络外发清单是否有遗漏 — 出现的 http(s) 串共 3 类:① help.obsidian.md(文档指针,SKILL.md 里作为『命令清单永远最新』的说明而非抓取指令);② jsoncanvas.org / github.com/obsidianmd/jsoncanvas(规范出处);③ defuddle 示例中的 https://example.com/article 与 knap 示例(示例数据 URL)。真正的运行时抓取只有 defuddle parse <用户 URL> 一条。
  • [ok] obsidian eval 的定级是否过轻 — 重新核对:`obsidian eval code="app.vault.getFiles().length"` 确为 SKILL.md 中的示例,属官方 CLI 文档化子命令;本集合既不自行注入代码也不隐藏该能力,且其作用域是本机运行中的 Obsidian(用户自己的应用)。按六档范式,red 针对『安全降级/反反爬/任意代码执行面』的自造绕过;此处是官方 CLI 功能的常规使用,故维持 yellow 并在 scripts_executed 中显式点名,让读者知情。
  • [ok] 写入门禁(--dry-run / --overwrite)是真实契约还是文档口号 — knap SKILL.md 原文明确 'Use `--dry-run` to validate and list output paths without writing files. Existing files require `--overwrite`, including during a dry run.' 与 'Duplicate output names within a batch are errors even with `--overwrite`.';`-o` 的行为也写明 '`-o` creates parent directories and overwrites the destination after rendering succeeds'。均为外部 CLI 的行为描述,本仓无代码可验,属『依赖第三方 CLI 实现』。

6结论

  • 官方一手作者维护,格式与 CLI 契约同步性最好
  • 把开放格式规格内联,产出的是合法文件而非『像 Obsidian』的文件
  • 格式陷阱被显式写成 pitfall(新行转义、YAML 引号、ID 冲突、edge 悬空、公式引用)
  • 写入有门禁与预览:dry-run、--overwrite 显式、批量重名报错
  • 工具边界干净且外发可预期:只抓用户给的 URL,.md 链接还专门排除
  • 适合:适合:以 Obsidian 为主力笔记系统的用户(vault 在本地、库内就地装 skill 最顺)、需要批量把网页/JSON/CSV 变成结构化笔记的知识管理流程、以及要写 Obsidian 插件/主题并需要 reload-查错-截图闭环的开发者。也适合作为『如何把开放格式规格写进 skill』的范本。
    不适合:不适合:① 没有运行中 Obsidian 实例的环境——obsidian-cli 与 Bases/Canvas 验证都会落空;② 只想批量改文件系统里的 markdown、不碰 Obsidian 的纯脚本流程(直接用普通文件工具更轻);③ 需要审计全部执行链的安全敏感场景(关键 CLI 为仓外依赖);④ 不愿安装全局 npm CLI 的用户(defuddle/knap 需 npm install -g)。
    安装 agent 直装可复制
    ① 本站镜像 更新 2026-09-15
    方式 A · 人下载镜像包下载 obsidian-skills.tar.gz
    sha256: e2fbc06a174fb6bf…
    方式 B · JSON 格式安装指南,复制给 agent
    安装指南
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② 上游 GitHub · 原始来源
    能访问 GitHub?直接去上游安装(实时版,可能已更新)GitHub 原始 ↗
    本页镜像锁定 commit 8ccef29ae8;上游为实时仓库。
    来源信息 GitHub 原始
    作者 / 仓库kepano / kepano/obsidian-skills
    Stars48365
    最近推送2026-09-10
    本 skill commit8ccef29ae8
    许可MIT(仓库根 LICENSE;GitHub API spdx_id=MIT;.claude-plugin/plugin.json 内 "license": "MIT")
    本站信息
    收录日期2026-09-06
    分类内容创作
    侦查报告AI 侦查 · 2 遍 · 2026-09-06
    本站镜像与 GitHub 原始是不同来源:本站锁定 commit 快照经 /r2 分发;GitHub 为实时上游,内容可能已更新。
    同分类邻近