| name | obsidian-cli |
| description | Interact with Obsidian using the official CLI to read, search, create, and manage notes, daily notes, tasks, properties, and more. Use when the user wants to query or manipulate vault content via the obsidian command. |
| allowed-tools | Bash(obsidian:*) |
| license | MIT |
| metadata | {"author":"lifidea","version":"1.0.0","created":"2026-02-28T00:00:00.000Z"} |
Obsidian CLI Skill
The official Obsidian command-line interface allows you to interact with your vault from the terminal — reading notes, searching, managing properties, handling tasks, and more.
Prerequisites
Verify the CLI is installed and running:
obsidian --version
obsidian help
Requirements:
- Obsidian v1.12+ (released late 2024)
- Catalyst license or higher (Obsidian Sync, Publish, or community support)
- Obsidian must be running — the CLI communicates via IPC with a live instance
- macOS, Windows, or Linux support
If not installed, download the latest Obsidian installer from https://obsidian.md/download
Key Concepts
IPC-Based Communication
The obsidian-cli works by connecting to a running Obsidian instance via inter-process communication (IPC). It does not manipulate files directly; all commands are executed through Obsidian's API, ensuring proper handling of plugins, sync, and vault structure.
File vs Path Parameters
Two ways to target files:
-
file=<name> — Resolves by name like wikilinks. Searches across folders to find the file. More flexible but slower.
- Example:
obsidian read file="My Note" (finds the file regardless of folder)
- Best for: Quick access when you know the filename
-
path=<path> — Exact path from vault root. No searching, just direct access.
- Example:
obsidian read path="Journal/2026-02-28.md" (exact path required)
- Best for: Performance-sensitive operations, when you know the exact location
Vault Parameter
By default, commands run against the currently active vault. Override with:
obsidian read file="Note" vault="My Vault"
Quoting & Escaping
- Spaces in values — Always quote:
name="My Note" not name=My Note
- Newlines — Use
\n: content="Line 1\nLine 2"
- Tabs — Use
\t: content="Column1\tColumn2"
Flags vs Parameters
- Flags — Boolean options, no value needed:
--verbose, --overwrite, --inline
- Parameters — Key=value pairs:
file="Name", query="term", limit=10
Syntax Guide
Basic Command Structure
obsidian <command> [parameter=value...] [--flag...]
Examples
obsidian read file="Journal"
obsidian create name="My Daily Note" content="Hello world"
obsidian search query="TODO" path="Projects" limit=10
obsidian files folder="Project" --verbose
obsidian create path="Journal/2026-02-28.md" content="Daily note" --open
File Targeting Patterns
Read a Note by Name
obsidian read file="Meeting Notes"
Searches vault for Meeting Notes.md anywhere.
Read by Exact Path
obsidian read path="Project/2026-02-28.md"
Reads from exact location; faster for known paths.
Create with Template
obsidian create name="New Note" template="Daily Note Template"
List Files in Folder
obsidian files folder="Journal"
Command Reference
Commands are organized by category. Use obsidian help <command> for detailed options.
File Operations
read
Read file contents. Returns full text or structured data.
obsidian read file="My Note"
obsidian read path="Journal/2026-02-28.md"
obsidian read
create
Create a new file with optional content and template.
obsidian create name="New Note"
obsidian create name="Daily Note" content="Today's note"
obsidian create name="Meeting" template="Meeting Template" --open
obsidian create path="Journal/2026-02-28.md" content="..." --overwrite
append
Add content to end of file.
obsidian append file="My Note" content="New line"
obsidian append file="My Note" content=" continued" --inline
prepend
Add content to beginning of file.
obsidian prepend file="My Note" content="Header\n"
obsidian prepend file="My Note" content="[Start] " --inline
delete
Remove a file (sends to trash by default).
obsidian delete file="Old Note"
obsidian delete path="Archive/obsolete.md" --permanent
rename
Change a file's name.
obsidian rename file="Old Name" name="New Name"
move
Move file to different folder.
obsidian move file="Note" to="Archive"
obsidian move path="Journal/old.md" to="Archive/2025-old.md"
open
Open file in Obsidian editor.
obsidian open file="Note"
obsidian open file="Note" --newtab
File Information
file
Show metadata about a file.
obsidian file file="My Note"
Returns: created date, modified date, size, links, backlinks count.
files
List all files in vault (optionally filtered).
obsidian files
obsidian files folder="Journal"
obsidian files ext="md"
obsidian files folder="Project" --total
folder
Show folder information.
obsidian folder path="Journal"
obsidian folder path="Journal" info=files
obsidian folder path="Journal" info=size
obsidian folder path="Journal" info=folders
folders
List folders in vault.
obsidian folders
obsidian folders folder="Archive"
obsidian folders folder="Journal" --total
vault
Show vault information.
obsidian vault
obsidian vault info=name
obsidian vault info=path
obsidian vault info=files
obsidian vault info=size
vaults
List all known vaults.
obsidian vaults
obsidian vaults --verbose
wordcount
Count words and characters in file.
obsidian wordcount file="Chapter 1"
obsidian wordcount file="Chapter 1" --words
obsidian wordcount file="Chapter 1" --characters
Searching & Navigation
search
Full-text search vault.
obsidian search query="TODO"
obsidian search query="meeting" limit=5
obsidian search query="TODO" path="Projects"
obsidian search query="MyClass" --case
obsidian search query="bug" format=json
search:context
Search with matching line context.
obsidian search:context query="TODO" path="Journal"
obsidian search:context query="error" format=json
search:open
Open search dialog in Obsidian.
obsidian search:open query="TODO"
Links & References
links
List outgoing links from a file.
obsidian links file="My Note"
obsidian links file="My Note" --total
backlinks
List files linking to a target (incoming links).
obsidian backlinks file="Project Overview"
obsidian backlinks file="Project Overview" --counts
obsidian backlinks file="Project" format=json
aliases
Show aliases for a file (alternative names).
obsidian aliases file="Meeting"
obsidian aliases file="Meeting" --total
obsidian aliases file="Meeting" --verbose
obsidian aliases --active
unresolved
List broken/unresolved links in vault.
obsidian unresolved
obsidian unresolved --total
obsidian unresolved --verbose
obsidian unresolved format=json
deadends
List files with no outgoing links.
obsidian deadends
obsidian deadends --total
obsidian deadends --all
orphans
List files with no incoming links (not referenced).
obsidian orphans
obsidian orphans --total
obsidian orphans --all
Tags
tags
List all tags in vault with frequencies.
obsidian tags
obsidian tags file="My Note"
obsidian tags path="Journal"
obsidian tags --counts
obsidian tags --counts sort=count
obsidian tags format=json
obsidian tags --active
tag
Get info about a specific tag.
obsidian tag name=meeting
obsidian tag name=meeting --total
obsidian tag name=work --verbose
Tasks & Checklists
tasks
List all tasks in vault.
obsidian tasks
obsidian tasks --todo
obsidian tasks --done
obsidian tasks file="My Note"
obsidian tasks path="Journal"
obsidian tasks status="-"
obsidian tasks --verbose
obsidian tasks format=json
obsidian tasks --daily
task
Show or update a single task.
obsidian task ref="Journal/2026-02-28.md:5"
obsidian task ref="Journal/2026-02-28.md:5" --toggle
obsidian task ref="Journal/2026-02-28.md:5" --done
obsidian task ref="Journal/2026-02-28.md:5" --todo
obsidian task file="My Note" line=3 status="-"
Properties & Metadata
properties
List all properties in vault with usage counts.
obsidian properties
obsidian properties file="My Note"
obsidian properties path="Journal"
obsidian properties --counts
obsidian properties name=category --total
obsidian properties sort=count
obsidian properties format=yaml
obsidian properties format=json
obsidian properties --active
property:set
Set a property on a file.
obsidian property:set name=category value=work file="My Note"
obsidian property:set name=priority value=high file="Task" type=text
obsidian property:set name=tags value="work,urgent" file="Note" type=list
obsidian property:set name=wordcount value=1500 file="Article" type=number
obsidian property:set name=reviewed value=true file="Document" type=checkbox
obsidian property:set name=deadline value=2026-03-01 file="Task" type=date
property:read
Get a property value from a file.
obsidian property:read name=category file="My Note"
obsidian property:read name=priority path="Tasks/urgent.md"
property:remove
Delete a property from a file.
obsidian property:remove name=draft file="Article"
obsidian property:remove name=status path="Archive/old.md"
Templates
templates
List all templates in vault.
obsidian templates
obsidian templates --total
template:read
Read template content (useful for understanding what template will insert).
obsidian template:read name="Daily Note"
obsidian template:read name="Daily Note" --resolve title="2026-02-28"
template:insert
Insert template into active file.
obsidian template:insert name="Daily Note"
Bookmarks
bookmarks
List all bookmarks.
obsidian bookmarks
obsidian bookmarks --total
obsidian bookmarks --verbose
obsidian bookmarks format=json
bookmark
Add a bookmark.
obsidian bookmark file="Journal/2026-02-28.md"
obsidian bookmark file="Project Overview" subpath="Goals"
obsidian bookmark folder="Archive"
obsidian bookmark search="TODO"
obsidian bookmark url="https://example.com" title="My Site"
Bases (Database-like Tables)
bases
List all base files in vault.
obsidian bases
base:views
List views in a base.
obsidian base:views file="Contacts"
obsidian base:views path="Databases/Projects.md"
base:query
Query a base and return filtered results.
obsidian base:query file="Contacts" view="Active"
obsidian base:query file="Projects" view="2026" format=json
obsidian base:query file="Contacts" view="All" format=csv
base:create
Create a new record in a base.
obsidian base:create file="Contacts" view="All" name="John Doe" email="john@example.com"
obsidian base:create file="Projects" view="Active" name="Project X" content="Details..."
obsidian base:create file="Tasks" view="Backlog" name="Task 1" --open
Publishing
publish:status
Check what files have unpublished changes.
obsidian publish:status
obsidian publish:status --new
obsidian publish:status --changed
obsidian publish:status --deleted
obsidian publish:status --total
publish:add
Publish files to Obsidian Publish.
obsidian publish:add file="Project Overview"
obsidian publish:add --changed
publish:remove
Unpublish a file.
obsidian publish:remove file="Archived Note"
obsidian publish:remove path="Archive/old.md"
publish:list
List published files.
obsidian publish:list
obsidian publish:list --total
publish:site
Show Publish site info.
obsidian publish:site
publish:open
Open published file in browser.
obsidian publish:open file="My Article"
Sync & Version History
sync:status
Check sync status.
obsidian sync:status
sync
Pause or resume sync.
obsidian sync off
obsidian sync on
sync:history
List version history for a file in sync.
obsidian sync:history file="My Note"
obsidian sync:history file="My Note" --total
sync:read
Read a specific sync version.
obsidian sync:read file="My Note" version=5
sync:restore
Restore a file to a previous sync version.
obsidian sync:restore file="My Note" version=3
sync:deleted
List files deleted in sync.
obsidian sync:deleted
obsidian sync:deleted --total
sync:open
Open sync history UI.
obsidian sync:open file="My Note"
history
List local file history versions.
obsidian history file="My Note"
obsidian history path="Journal/2026-02-28.md"
history:read
Read a local history version.
obsidian history:read file="My Note" version=2
history:restore
Restore from local history.
obsidian history:restore file="My Note" version=1
diff
Compare local and sync versions.
obsidian diff file="My Note"
obsidian diff file="My Note" from=1 to=5
obsidian diff file="My Note" filter=local
obsidian diff file="My Note" filter=sync
Plugins
plugins
List all installed plugins.
obsidian plugins
obsidian plugins filter=core
obsidian plugins filter=community
obsidian plugins --versions
obsidian plugins format=json
plugins:enabled
List enabled plugins.
obsidian plugins:enabled
obsidian plugins:enabled filter=core
plugin
Get info about a plugin.
obsidian plugin id=dataview
plugin:enable
Enable a plugin.
obsidian plugin:enable id=dataview
plugin:disable
Disable a plugin.
obsidian plugin:disable id=templater
plugin:install
Install a community plugin.
obsidian plugin:install id=obsidian-git --enable
obsidian plugin:install id=dataview
plugin:uninstall
Remove a plugin.
obsidian plugin:uninstall id=templater
plugin:reload
Reload a plugin (development use).
obsidian plugin:reload id=my-plugin
plugins:restrict
Toggle restricted mode.
obsidian plugins:restrict on
obsidian plugins:restrict off
Themes
themes
List installed themes.
obsidian themes
obsidian themes --versions
theme
Get current theme or info about a theme.
obsidian theme
obsidian theme name=Obsidian
theme:set
Set active theme.
obsidian theme:set name=Obsidian
obsidian theme:set name=""
theme:install
Install community theme.
obsidian theme:install name="Minimal" --enable
obsidian theme:install name="Things"
theme:uninstall
Remove theme.
obsidian theme:uninstall name="Minimal"
Snippets (CSS)
snippets
List CSS snippets.
obsidian snippets
snippets:enabled
List enabled snippets.
obsidian snippets:enabled
snippet:enable
Enable a CSS snippet.
obsidian snippet:enable name="hide-metadatablock"
snippet:disable
Disable a CSS snippet.
obsidian snippet:disable name="custom-colors"
Commands & Hotkeys
commands
List all available Obsidian command IDs.
obsidian commands
obsidian commands filter=editor
command
Execute an Obsidian command.
obsidian command id=editor:save-file
hotkeys
List hotkeys (keyboard shortcuts).
obsidian hotkeys
obsidian hotkeys --verbose
obsidian hotkeys --all
obsidian hotkeys --total
hotkey
Get hotkey for a specific command.
obsidian hotkey id=editor:save-file --verbose
Workspaces
workspaces
List saved workspaces.
obsidian workspaces
obsidian workspaces --total
workspace
Show workspace tree.
obsidian workspace
obsidian workspace --ids
workspace:save
Save current layout as a workspace.
obsidian workspace:save name="Writing"
obsidian workspace:save name="Development"
workspace:load
Load a saved workspace.
obsidian workspace:load name="Writing"
workspace:delete
Delete a saved workspace.
obsidian workspace:delete name="Old Workspace"
Tabs & Windows
tabs
List open tabs.
obsidian tabs
obsidian tabs --ids
tab:open
Open a new tab.
obsidian tab:open file="Journal/2026-02-28.md"
obsidian tab:open group=main-group file="Note"
obsidian tab:open view=search
Utility & Navigation
open
Open a file in editor (same as open in File Operations).
obsidian open file="Note"
random
Open a random note.
obsidian random
obsidian random folder="Journal"
obsidian random --newtab
random:read
Read a random note.
obsidian random:read
obsidian random:read folder="Ideas"
recents
List recently opened files.
obsidian recents
obsidian recents --total
outline
Show headings in a file.
obsidian outline file="Project Plan"
obsidian outline file="Project Plan" format=tree
obsidian outline file="Project Plan" format=md
obsidian outline file="Project Plan" format=json
obsidian outline file="Project Plan" --total
reload
Reload the vault.
obsidian reload
restart
Restart Obsidian completely.
obsidian restart
version
Show Obsidian version.
obsidian version
Developer Tools
dev:screenshot
Take a screenshot of Obsidian UI.
obsidian dev:screenshot path=screenshot.png
dev:console
Show captured console messages.
obsidian dev:console
obsidian dev:console level=error
obsidian dev:console --clear
obsidian dev:console limit=20
dev:errors
Show captured errors.
obsidian dev:errors
obsidian dev:errors --clear
dev:debug
Attach/detach Chrome DevTools debugger.
obsidian dev:debug on
obsidian dev:debug off
dev:dom
Query DOM elements.
obsidian dev:dom selector=".cm-editor"
obsidian dev:dom selector=".status-bar" --text
obsidian dev:dom selector="button" --total
obsidian dev:dom selector="a.link" attr=href
obsidian dev:dom selector=".title" css=color
dev:css
Inspect CSS with source locations.
obsidian dev:css selector=".heading"
obsidian dev:css selector=".text" prop=color
dev:cdp
Run Chrome DevTools Protocol command.
obsidian dev:cdp method=Page.printToPDF params='{"path":"output.pdf"}'
dev:mobile
Toggle mobile emulation.
obsidian dev:mobile on
obsidian dev:mobile off
devtools
Toggle Electron dev tools.
obsidian devtools
eval
Execute JavaScript in Obsidian context.
obsidian eval code='app.vault.getMarkdownFiles().length'
obsidian eval code='app.workspace.activeEditor?.file?.name'
Common Patterns for GOBI Vault
Reading Daily Notes
obsidian read file="Journal"
obsidian read path="Journal/2026-02-28.md"
Appending to Journal
obsidian append file="Journal" content="\n## Reflection\n[Your thoughts]"
Finding Todos
obsidian tasks --todo
obsidian search query="TODO" path="Projects"
Getting File Properties
obsidian property:read name=tags file="Article"
obsidian properties file="My Note"
Searching Your Vault
obsidian search query="machine learning" limit=10
obsidian search query="meeting" path="Work"
obsidian search query="MyClass" --case
Managing Projects
obsidian files folder="Projects"
obsidian outline file="Project X"
obsidian search query="BUG:" path="Projects/ProjectX"
Working with Tags
obsidian tags --counts
obsidian tag name=important --verbose
obsidian tags file="Article"
Discovering Options
Every command has built-in help. Use obsidian help to learn more:
obsidian help
obsidian help read
obsidian help search
obsidian help property:set
obsidian <command>
Quality Checklist
Before using obsidian CLI commands:
Error Handling
Common Issues
"Obsidian is not running"
- Solution: Start Obsidian before running CLI commands. The CLI requires IPC connection.
"Vault not found"
- Solution: Use
obsidian vaults to list available vaults, then specify vault="Name"
"File not found" (with file= parameter)
- Solution: Verify file exists with
obsidian files. Consider using path= instead for exact match.
"Permission denied"
- Solution: Ensure you have read/write permissions in Obsidian vault folder and plugins are not interfering.
Debug Commands
obsidian vault
obsidian files --total
obsidian search query="test" limit=1
obsidian version
Next Steps: Run obsidian help to explore specific commands, or use pattern examples above for GOBI vault operations.