obsidian-skills
Otherkepano/obsidian-skills
Agent skills for teaching AI assistants to work with Obsidian vaults and open formats.
Overview
Provides a set of skill definitions following the Agent Skills specification, enabling compatible agents like Claude Code, Codex, and OpenCode to create and edit Obsidian Markdown, Bases, JSON Canvas files, and interact with the Obsidian CLI. Includes Defuddle for extracting clean markdown from web pages.
README Preview
Agent Skills for use with Obsidian.\n\nThese skills follow the [Agent Skills specification](https://agentskills.io/specification) so they can be used by any skills-compatible agent, including Claude Code, Codex, and Open Code.\n\n## Installation\n\n### Marketplace\n\n```\n/plugin marketplace add kepano/obsidian-skills\n/plugin install obsidian@obsidian-skills\n```\n\n### npx skills\n\n```\nnpx skills add git@github.com:kepano/obsidian-skills.git\n```\n\nInstead of ssh, if you prefer to use https:\n\n```\nnpx skills add https://github.com/kepano/obsidian-skills\n```\n\n### Manually\n\n#### Claude Code\n\nAdd the contents of this repo to a `/.claude` folder in the root of your Obsidian vault (or whichever folder you're using with Claude Code). See more in the [official Claude Skills documentation](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview).\n\n#### Codex\n\nCopy the `skills/` directory into your Codex skills path (typically `~/.codex/skills`). See the [Agent Skills specification](https://agentskills.io/specification) for the standard skill format.\n\n#### OpenCode\n\nClone the entire repo into the OpenCode skills directory (`~/.opencode/skills/`):\n\n```sh\ngit clone https://github.com/kepano/obsidian-skills.git ~/.opencode/skills/obsidian-skills\n```\n\nDo not copy only the inner `skills/` folder — clone the full repo so the directory structure is `~/.opencode/skills/obsidian-skills/skills//SKILL.md`.\n\nOpenCode auto-discovers all `SKILL.md` files under `~/.opencode/skills/`. No changes to `opencode.json` or any config file are needed. Skills become available after restarting OpenCode.\n\n## Skills\n\n| Skill | Description |\n|-------|-------------|\n| [obsidian-markdown](skills/obsidian-markdown) | Create and edit [Obsidian Flavored Markdown](https://help.obsidian.md/obsidian-flavored-markdown) (`.md`) with wikilinks, embeds, callouts, properties, and other Obsidian-specific syntax |\n| [obsidian-bases](skills/obsidian-bases) | Crea
FAQ (3)
TroubleshootingHow do I fix the Obsidian Bases error: "filters" may only have one of an "and", "or", or "not" keys?
Use only one top-level operator under filters. To combine inclusion and exclusion logic, nest the other operator instead of making and, or, and not siblings.
Invalid YAML:
filters:
and: []
or: []
not: []
Valid YAML:
filters:
and:
- 'inclusion condition'
- not:
- 'excluded condition'
For example, put the required tag condition and the template-exclusion condition under one top-level and. The incorrect schema example in obsidian-bases/SKILL.md was fixed in PR #68.
TroubleshootingWhy does `obsidian help` hang or spawn a second Obsidian Electron instance when piped to `head`?
obsidian help bootstraps an Electron process instead of only printing static help. When its output is piped and closed early, such as with | head, the Electron helper processes may not receive a clean shutdown signal, leaving the parent shell blocked. Avoid piping the command: run obsidian help directly in the terminal, or redirect it to a file with obsidian help > obsidian-help.txt. If you need to limit execution, use timeout 5 obsidian help > obsidian-help.txt. As a permanent workaround, keep a local cheat sheet of the static help text instead of running obsidian help. This is a CLI behavior issue, not an Obsidian Skill issue; see Obsidian's CLI troubleshooting documentation.
TroubleshootingHow do I fix 'obsidian: command not found' when an AI agent skill uses the Obsidian CLI?
Enable Obsidian's built-in CLI instead of installing a separate obsidian-cli package:
1. Open the Obsidian desktop app.
2. Go to **Settings → General → Command line interface**.
3. Turn on **Enable CLI**.
4. Restart your terminal (or reload your shell environment).
5. Verify with which obsidian or obsidian --version.
After enabling, Obsidian creates the obsidian command expected by the skill. If your terminal was open during setup, restart it so the new command is detected.