obsidian-cli

Installation
SKILL.md

Obsidian CLI — Operate on Obsidian Vaults

Requires the obsidian CLI on $PATH and the Obsidian desktop app running.

obsidian <command> [options]

General Notes

  • To get the vault directory path, run obsidian vault info=path.
  • file=<name> resolves by name (like wikilinks); path=<path> is an exact path (e.g. folder/note.md).
  • Most commands default to the active file when file/path is omitted.
  • Quote values with spaces: name="My Note".
  • Use \n for newline, \t for tab in content values.
  • Target a specific vault: vault=<name>.
  • Many commands accept format=json|tsv|csv for structured output.

Security Rules

  • Confirm with the user before executing write/delete commands (create, append, prepend, delete, move, rename, property:set, property:remove).
  • Prefer reading before writing to verify the target file.

Vault & File Info

obsidian vault                           # vault info
obsidian vault info=name                 # vault name only
obsidian vaults                          # list known vaults
obsidian vaults verbose                  # include vault paths
obsidian files                           # list all files
obsidian files folder=Projects ext=md    # filter by folder/extension
obsidian files total                     # file count
obsidian folders                         # list folders
obsidian file file=MyNote                # show file info
obsidian folder path=Projects            # show folder info

Reading & Writing Notes

read — Read file contents

obsidian read file=MyNote
obsidian read path=folder/note.md

create — Create a new file

obsidian create name=MyNote content="Hello world"
obsidian create name=FromTemplate template=Daily open
obsidian create path=Projects/idea.md content="New idea" overwrite
Flag Description
name File name
path File path
content Initial content
template Template to use
overwrite Overwrite if file exists
open Open file after creating
newtab Open in new tab

WRITE command — confirm with the user before executing.

append / prepend — Add content to a file

obsidian append file=MyNote content="New paragraph"
obsidian append file=MyNote content=" inline text" inline
obsidian prepend path=inbox.md content="# New Section"

inline appends/prepends without a newline separator.

WRITE command — confirm with the user before executing.

delete — Delete a file

obsidian delete file=MyNote
obsidian delete path=old/note.md permanent   # skip trash

WRITE command — confirm with the user before executing.

move / rename

obsidian move file=MyNote to=Archive/
obsidian move path=inbox/note.md to=Projects/note.md
obsidian rename file=MyNote name="Better Name"

WRITE command — confirm with the user before executing.

open — Open a file in Obsidian

obsidian open file=MyNote
obsidian open path=Projects/idea.md newtab

Daily Notes

obsidian daily                              # open today's daily note
obsidian daily:read                         # read daily note contents
obsidian daily:path                         # get daily note path
obsidian daily:append content="- Task done"
obsidian daily:prepend content="## Morning"

daily:append and daily:prepend accept inline, open, and paneType=tab|split|window.

daily:append / daily:prepend — confirm with the user before executing.

Search

obsidian search query="meeting notes"
obsidian search query="TODO" path=Projects limit=10 case
obsidian search:context query="API key"           # includes matching line context
obsidian search:context query="bug" format=json
obsidian search:open query="meeting"              # open search in Obsidian UI
Flag Description
query Search text (required)
path Limit to folder
limit Max files
total Return match count only
case Case sensitive
format text (default) or json

Tags & Properties

Tags

obsidian tags                               # list all tags
obsidian tags counts sort=count             # sorted by frequency
obsidian tags file=MyNote                   # tags for a specific file
obsidian tag name=project                   # tag info
obsidian tag name=project verbose           # include file list

Properties (frontmatter)

obsidian properties                         # list all properties in vault
obsidian properties file=MyNote format=yaml
obsidian property:read name=status file=MyNote
obsidian property:set name=status value=done file=MyNote
obsidian property:set name=priority value=1 type=number file=MyNote
obsidian property:remove name=draft file=MyNote

Property types: text, list, number, checkbox, date, datetime.

property:set / property:remove — confirm with the user before executing.

Tasks

obsidian tasks                              # list all tasks
obsidian tasks todo                         # incomplete tasks only
obsidian tasks done                         # completed tasks only
obsidian tasks file=MyNote verbose          # grouped by file with line numbers
obsidian tasks daily                        # tasks from daily note
obsidian tasks status=" " format=json       # filter by status character
obsidian task path=note.md line=5 toggle    # toggle task status
obsidian task file=MyNote line=3 done       # mark task done
obsidian task daily line=2 todo             # mark daily task as todo

task (toggle/done/todo) — confirm with the user before executing.

Links & Graph Analysis

obsidian links file=MyNote                  # outgoing links
obsidian backlinks file=MyNote              # incoming links
obsidian backlinks file=MyNote counts       # with link counts
obsidian orphans                            # files with no incoming links
obsidian deadends                           # files with no outgoing links
obsidian unresolved                         # unresolved links in vault
obsidian unresolved verbose                 # include source files

Bookmarks

obsidian bookmarks                          # list bookmarks
obsidian bookmark file=Projects/idea.md title="Read later"
obsidian bookmark search="TODO" title="Todo search"
obsidian bookmark url="https://example.com" title="Reference"

bookmark — confirm with the user before executing.

Templates

obsidian templates                          # list available templates
obsidian template:read name=Daily
obsidian template:read name=Daily resolve title="Today's Note"
obsidian template:insert name=Daily         # insert into active file

Outline & Word Count

obsidian outline file=MyNote                # heading tree
obsidian outline file=MyNote format=md      # markdown format
obsidian wordcount file=MyNote
obsidian wordcount file=MyNote words        # word count only

Plugins

obsidian plugins                            # list installed plugins
obsidian plugins filter=community versions
obsidian plugins:enabled filter=core
obsidian plugin id=dataview                 # plugin info
obsidian plugin:enable id=dataview
obsidian plugin:disable id=dataview
obsidian plugin:install id=dataview enable  # install and enable
obsidian plugin:uninstall id=dataview
obsidian plugin:reload id=my-plugin         # for development
obsidian plugins:restrict on               # enable restricted mode

plugin:enable/disable/install/uninstall — confirm with the user before executing.

Sync & History

Sync

obsidian sync:status                        # show sync status
obsidian sync on                            # resume sync
obsidian sync off                           # pause sync
obsidian sync:history file=MyNote           # sync version history
obsidian sync:read file=MyNote version=2    # read a sync version
obsidian sync:restore file=MyNote version=2 # restore a sync version
obsidian sync:deleted                       # list deleted files in sync

Local History

obsidian history file=MyNote                # list history versions
obsidian history:list                       # list files with history
obsidian history:read file=MyNote version=1 # read a history version
obsidian history:restore file=MyNote version=3

sync:restore / history:restore — confirm with the user before executing.

Themes & CSS Snippets

obsidian themes                             # list installed themes
obsidian theme                              # show active theme
obsidian theme:set name="Minimal"
obsidian theme:install name="Minimal" enable
obsidian theme:uninstall name="Minimal"
obsidian snippets                           # list CSS snippets
obsidian snippet:enable name=custom
obsidian snippet:disable name=custom

Commands & Hotkeys

obsidian commands                           # list all commands
obsidian commands filter=editor             # filter by prefix
obsidian command id=editor:toggle-bold      # execute a command
obsidian hotkeys                            # list hotkeys
obsidian hotkey id=editor:toggle-bold       # get hotkey for command

Other Commands

obsidian aliases                            # list aliases in vault
obsidian recents                            # recently opened files
obsidian random                             # open a random note
obsidian random:read folder=Ideas           # read a random note from folder
obsidian unique name="Zettel" content="..."  # create unique note (with timestamp)
obsidian diff file=MyNote                   # list local/sync versions
obsidian diff file=MyNote from=1 to=3       # diff between versions
obsidian tabs                               # list open tabs
obsidian workspace                          # show workspace tree
obsidian reload                             # reload the vault
obsidian version                            # show Obsidian version

QuickAdd Plugin

If the QuickAdd community plugin is installed:

obsidian quickadd:list                      # list choices
obsidian quickadd:run choice="Add Task" vars='{"task":"Buy milk"}'
obsidian quickadd:check choice="Add Task"   # check missing inputs

Output Format Tips

Use format=json for structured output that can be piped to jq:

obsidian search:context query="TODO" format=json | jq '.[].file'
obsidian tags counts format=json | jq '.[] | select(.count > 5)'
obsidian tasks format=json | jq '.[] | select(.status == " ")'
Related skills

More from kadel/claude-plugins

Installs
2
First Seen
11 days ago