Home / All Skills / Content & Media Creation / obsidian-skills
Content & Media Creation · 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.

L4 High-Privilege · Graded auth & full auditV1 Commit-PinnedExecute CommandNetwork AccessWrite FileDual-pass Audit
Author kepanoGitHub kepano/obsidian-skills ↗Stars 48365License MIT(仓库根 LICENSE;GitHub API spdx_id=MIT;.claude-plugin/plugin.json 内 "license": "MIT")Commit 8ccef29ae8
Control levels describe skill capabilities and suggested control measures; they do not represent quality or safety certifications, nor do they dictate usability. Usage decisions rest entirely with users and administrators. Different agent hosts apply varying constraints; do not assume hosts provide automatic protection. Third-party skill copyrights belong to their original authors. Use at your own risk.

1How It Works & Mechanism

It is not a single SKILL.md, but a collection of 6 parallel skills divided by Obsidian carrier types: one each for the three open formats (Markdown, Bases, Canvas), and one each for vault operations, web extraction, and template rendering.

.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."
The repository contains only 13 version-controlled files, totaling about 1.2k lines of Markdown across all skills; no scripts, no binaries, and no assets outside of references.

The implementation approach inlines Obsidian's format specifications directly into SKILL.md: instead of relying on the model's 'free improvisation' to write notes, it strictly follows the schemas, operator tables, and pitfall notes provided in the skills to generate valid files.

skills/obsidian-bases/SKILL.md
Base files use the `.base` extension and contain valid YAML.
The same pattern can be seen in json-canvas (inlining the JSON Canvas Spec 1.0 node/edge field table) and obsidian-markdown (inlining wikilink/embed/callout syntax).

Each format skill embeds 'validation' at the end of its workflow, requiring the model to self-check structural and reference integrity rather than treating generation as the final step.

skills/json-canvas/SKILL.md
**Validate**: Confirm all IDs are unique and all edge references resolve to existing nodes
Step 5 of obsidian-bases similarly performs self-checks on YAML quotes and formula references, requiring opening and confirming the rendering in Obsidian at the end.

Vault operations route through the official Obsidian CLI rather than modifying the filesystem directly—meaning it operates on an active, running Obsidian instance.

skills/obsidian-cli/SKILL.md
Use the `obsidian` CLI to interact with a running Obsidian instance. Requires Obsidian to be open.
It defaults to operating on the 'most recently focused vault', switchable via vault=<name>; file targeting supports wikilink-style file= and exact path=.

The parameter/flag syntax of the CLI is explicitly defined (k=v for values, bare flags for booleans, \n and \t for multiline), reducing misoperations caused by arbitrary parameter hallucinations.

skills/obsidian-cli/SKILL.md
**Parameters** take a value with `=`. Quote values with spaces:
The same section defines `--copy` to copy output to the clipboard, `silent` to prevent files from opening, and `total` to retrieve list counts.

Two external single-purpose CLIs are integrated into the workflow: defuddle extracts clean Markdown from web pages, and knap batch-renders JSON/CSV into notes using templates, allowing the two to be chained via pipelines.

skills/knap/SKILL.md
defuddle parse https://example.com/article --md --json \ | knap render template.md --data - -o note.md
The discoverability design of knap is noteworthy: instead of stuffing all syntax into the prompt, it allows the agent to pull syntax on-demand using offline help commands like `knap help syntax` / `knap help filters`.

Write operations follow an explicit 'overwrite requires authorization' contract to avoid silently destroying existing notes.

skills/knap/SKILL.md
Existing files require `--overwrite`, including during a dry run.
The same section provides `--dry-run` to only list output paths without writing files, and treats batch name collisions as errors (even when --overwrite is provided).

It is distributed as a cross-host plugin/skill bundle: the README provides four deployment paths across Claude Code (/plugin marketplace), npx skills, Codex (~/.codex/skills), and OpenCode (~/.opencode/skills), advising a full repo clone rather than copying only 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`.
The recommended approach under Claude Code is placing the repository contents into /.claude at the root of the vault, making the skills readily available in-place within the note library.

2Core Capabilities

01Obsidian Flavored Markdown authoring: wikilinks, embeds, callouts, properties/frontmatter, and block IDs
02Bases (.base) files: global/view-level filters (and/or/not recursive objects), formulas, summaries, table/cards/list/map views, and order/groupBy/limit
03JSON Canvas (.canvas) files: nodes (text/file/link/group), edges (fromNode/toNode/fromSide/label), ID uniqueness, and z-index semantics
04Everyday vault operations: read/create/append/search, daily notes, properties, tasks, tags, and backlinks, with silent writes without opening files
05Plugin and theme development loop: reload → error check → screenshot/DOM inspection → console inspection
06Web content extraction into clean Markdown (strips navigation/ads, saves tokens), with support for extracting title/description/domain by property
07Template rendering and batch generation: JSON/CSV/directory → one note per file, filename templates + safe_name to prevent path issues
08Format pitfall warnings: YAML quoting, JSON string line breaks (\n vs \\n), ID collisions, and dangling edge references

3External Dependencies

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

4Recommended Governance & Evidence

Suggested Controls for Safe Operation
For Agent Runtime
Graded/per-use authorization, sandbox recommended
For Administrators
Approval workflow, rollback support, full audit
Evidence & Triggers (File Paths & Excerpts)
  • scripts/: Local script or command execution: No executable assets inside the repository (no .sh/.py/.js/.mjs among the 13 tracked files). External CLIs executed at runtime: obsidian / defuddle
  • 网络端点: Declared external network access: defuddle parse <url>: Fetches arbitrary user-specified web pages and extracts main content (core purpose of this skill; destination = user-supplied URL).
  • 本地工作目录: File read/write and artifact output: obsidian create / append / property:set / daily:append writes directly to target vault notes (supports silent operations)
Audit Notes: Grading rationale: 1) Zero scripts within the skill set and no credential access (zero matches across the entire repo for env/token/keychain); 2) Genuine and necessary external network access exists—defuddle fetches user-provided URLs (predictable target = user-supplied URL), and defuddle/knap are installed via npm on demand; 3) The write surface is the user's own vault (create/append/property:set/batch -o), aligning with the task's intent and protected by explicit gates like --dry-run and --overwrite; 4) Highest-privilege commands like obsidian eval / dev:* are documented development features of the official CLI driven by the user, not custom circumventions. Warnings: Web page content fetched via defuddle constitutes untrusted input and should be visually reviewed before direct rendering/persisting; the obsidian CLI operates solely on local running vaults, so verify which target vault is active before execution.

5Second-Pass Verification

  • [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 实现』。

6Verdict & Scenarios

  • Maintained by official first-party author, ensuring optimal synchronization with format and CLI contracts
  • Inlines open format specifications, producing strictly compliant files rather than files that merely 'look like Obsidian'
  • Format pitfalls are explicitly documented (newline escaping, YAML quoting, ID collisions, dangling edges, formula references)
  • Gated writes with previews: dry-run, explicit --overwrite, and errors on batch name collisions
  • Clean tool boundaries with predictable outbound traffic: fetches only user-provided URLs, explicitly excluding .md links
  • Best for: Best for: users relying on Obsidian as their primary note-taking system (especially where the vault is local and installing skills in-place inside the vault is smoothest), knowledge management workflows needing batch conversion of web pages/JSON/CSV into structured notes, and developers building Obsidian plugins/themes who require a reload-debug-screenshot feedback loop. It also serves as an exemplary model of 'how to inline open format specifications into skills'.
    Not for: Not suitable for: 1) Environments without a running Obsidian instance—obsidian-cli and Bases/Canvas validations will fail; 2) Pure scripting workflows intending only to batch-modify markdown in the filesystem without touching Obsidian (standard file tools are lighter); 3) High-security scenarios requiring full auditability of the execution chain (key CLIs are external dependencies); 4) Users unwilling to install global npm CLIs (defuddle/knap require npm install -g).
    Install Agent-Ready
    ① Verified Mirror 2026-09-15
    Option A · Direct DownloadDownload obsidian-skills.tar.gz
    sha256: e2fbc06a174fb6bf…
    Option B · Copy Guide for Agent
    install.json
    Agents automatically download and verify mirrors from this JSON guide.
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit 8ccef29ae8.