Agent skill
obsidian-cli
Interacts with Obsidian vaults using the Obsidian CLI to read, create, and manage notes, tasks, properties, tags, and more. Also supports plugin and theme development with commands to reload plugins, run JavaScript, capture errors, take screenshots, and inspect the DOM. Use when the user asks to interact with their Obsidian vault, manage notes, add to daily note, find notes about a topic, check tasks, append to a note, query the vault, list tags, list files, manage bookmarks, check sync status, view file history, use templates, query bases, run QuickAdd, perform vault operations from the command line, or develop and debug Obsidian plugins and themes.
Install this agent skill to your Project
npx add-skill https://github.com/philoserf/claude-code-setup/tree/main/skills/obsidian-cli
SKILL.md
Obsidian CLI
Use the obsidian CLI to interact with a running Obsidian instance. Requires Obsidian to be open.
Contents
- Troubleshooting · Gotchas · Syntax · File targeting · Vault targeting
- Notes · Vault structure · Properties · Tasks · Tags and links
- Bookmarks · History and sync · Templates · Bases
- Commands and hotkeys · Plugins · QuickAdd · Tabs and workspace
- Verifying operations · Plugin development
Troubleshooting
If commands fail with a connection error or no output, check:
- Obsidian is running — the CLI talks to a live Obsidian process. If Obsidian is closed, every command fails silently or with a connection refused error.
- Correct vault — if multiple vaults exist, the CLI targets the most recently focused one. Use
vault=<name>to be explicit.
Gotchas
- Metadator and similar plugins: each file must be opened in Obsidian before running commands on it. Batch operations require iterating files individually — there is no bulk mode.
- The
silentflag prevents notes from opening in the UI. Always use it for batch/automated operations to avoid tab explosion.
Command reference
Run obsidian help to see all available commands. This is always up to date. Full docs: https://help.obsidian.md/cli
Syntax
Parameters take a value with =. Quote values with spaces:
obsidian create name="My Note" content="Hello world"
Flags are boolean switches with no value:
obsidian create name="My Note" silent overwrite
For multiline content use \n for newline and \t for tab.
File targeting
Many commands accept file or path to target a file. Without either, the active file is used.
file=<name>— resolves like a wikilink (name only, no path or extension needed)path=<path>— exact path from vault root, e.g.folder/note.md
Vault targeting
Commands target the most recently focused vault by default. Use vault=<name> as the first parameter to target a specific vault:
obsidian vault="My Vault" read file="My Note"
Global flags
Use --copy on any command to copy output to clipboard. Use silent to prevent files from opening. Use total on list commands to get a count. Many list commands support format=json|tsv|csv.
No search command exists. To find notes, use files, tags, properties, backlinks, orphans, or base:query.
Notes
obsidian read file="My Note"
obsidian create name="New Note" content="# Hello" template="Template" silent
obsidian append file="My Note" content="New line"
obsidian prepend file="My Note" content="Top line"
obsidian open file="My Note" newtab
obsidian delete file="Old Note"
obsidian move file="My Note" to="Archive/My Note.md"
obsidian rename file="My Note" name="Better Name"
obsidian random:read # read a random note
Vault structure
obsidian files folder="Projects" ext=md
obsidian folders
obsidian file file="My Note" # show file info
obsidian folder path="Projects" info=size
obsidian vault info=files # vault-level stats
obsidian vaults verbose # list all known vaults
Properties
obsidian property:set name="status" value="done" file="My Note"
obsidian property:set name="rating" value="5" type=number file="My Note"
obsidian property:read name="status" file="My Note"
obsidian property:remove name="draft" file="My Note"
obsidian properties sort=count counts # vault-wide property usage
obsidian properties file="My Note" # properties on one file
Tasks
obsidian tasks daily todo # incomplete tasks from daily note
obsidian tasks file="My Note" verbose # tasks grouped by file with line numbers
obsidian tasks done # completed tasks
obsidian task file="My Note" line=12 toggle # toggle a specific task
obsidian task daily done # mark daily task done
Tags and links
obsidian tags sort=count counts
obsidian tag name="project" verbose # files with a specific tag
obsidian backlinks file="My Note" counts
obsidian aliases verbose
obsidian orphans # files with no incoming links
obsidian deadends # files with no outgoing links
obsidian unresolved counts # broken links
Bookmarks
obsidian bookmarks verbose
obsidian bookmark file="My Note" title="Reference"
obsidian bookmark search="query" title="Saved Search"
obsidian bookmark url="https://example.com" title="Link"
History and sync
obsidian history file="My Note" # list versions
obsidian history:read file="My Note" version=1 # read a version
obsidian history:restore file="My Note" version=2
obsidian sync:status
obsidian sync:history file="My Note"
obsidian sync:restore file="My Note" version=3
obsidian diff file="My Note" from=1 to=2
Templates
obsidian templates
obsidian template:read name="Daily" resolve title="2026-03-26"
obsidian template:insert name="Daily" # insert into active file
Bases
obsidian bases # list all base files
obsidian base:views file="Tasks" # list views in a base
obsidian base:query file="Tasks" view="Active" format=md
obsidian base:create file="Tasks" name="New Item" content="# New"
Commands and hotkeys
obsidian commands filter=daily # list commands by prefix
obsidian command id="daily-notes" # execute a command
obsidian hotkeys
obsidian hotkey id="daily-notes" verbose
Plugins
obsidian plugins filter=community versions
obsidian plugins:enabled
obsidian plugin id="dataview" # plugin info
obsidian plugin:enable id="dataview"
obsidian plugin:disable id="dataview"
obsidian plugin:install id="dataview" enable
obsidian plugin:uninstall id="dataview"
QuickAdd
obsidian quickadd:list
obsidian quickadd choice="Daily Capture" vars='{"input":"note text"}'
obsidian quickadd:check choice="Daily Capture" # check missing inputs
Tabs and workspace
obsidian tabs ids
obsidian tab:open file="My Note"
obsidian workspace # show workspace tree
obsidian recents
Verifying operations
After creating or modifying notes, confirm the result:
obsidian read file="My Note" # verify content after create/append
obsidian property:read name="status" file="My Note" # verify after property:set
Plugin development
See plugin-development.md for the develop/test cycle, dev commands, and debugging tools.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
pre-release
Validates a project is ready to tag and ship. Use when tagging a release, cutting a version, shipping a package, or asking "are we ready to release?" Checks repo hygiene, CI status, docs, version sync, and build verification. Optimized for Obsidian plugins with fallback detection for other project types.
local-issues
Reviews a codebase for bugs, design issues, and code cleanliness problems with specific file paths and line numbers. Use when auditing code quality, finding bugs, doing a code review, finding problems, or reviewing a project for issues. Creates issue files in `.issues/` directory.
skill-improve
Generates prioritized improvement recommendations for Claude Code skills. Use when improving skills, enhancing customizations, or wanting actionable feedback on how to make a skill better. Provides impact/effort prioritization with specific fix suggestions.
release
Executes the final release workflow for Obsidian plugins after pre-release checks pass. Use when tagging a release, publishing a version, or shipping an Obsidian plugin. Bumps version via bun run script, creates git tag, pushes to trigger GitHub Actions, and updates GitHub release notes from CHANGELOG.md.
skill-quality
Scores Claude Code skills (1-5) across 6 weighted quality dimensions aligned with official Anthropic docs. Use when evaluating skill quality, rating skills, scoring customizations, comparing skill effectiveness, or checking if a skill follows best practices. Produces per-dimension scores with evidence, weighted totals, quality tier classification, and actionable improvement recommendations.
cc-check
Runs systematic tests on Claude Code customizations. Use when testing whether a customization works correctly, running functional and regression tests, smoke testing a skill, or validating that a skill or hook behaves as expected. Executes sample queries and validates responses against expected behavior.
Didn't find tool you were looking for?