obs — Open Vault CLI
obs is a community-built CLI for Obsidian vaults. It reads and writes vault files directly on disk — no running Obsidian instance needed.
Installation
npm install -g obsidian-vault-cli
Setup
obs init # Auto-detect vaults
obs vault config defaultVault /path # Or set manually
Global Options
| Flag | Description |
|---|---|
--vault <path> |
Path to Obsidian vault (overrides config) |
--json |
Output as JSON for scripting |
--help |
Show help for any command |
Command Groups
vault — Vault information and configuration
obs vault info # Name, path, file count, plugins
obs vault stats # Sizes, extensions, top tags
obs vault config # Print all config
obs vault config defaultVault /path # Set default vault
files — File operations
obs files list # List all files
obs files list --folder Notes --sort modified --limit 20
obs files read path/to/note.md # Print file content
obs files read path/to/note.md --head 10
obs files write path/to/note.md --content "New content"
obs files create path/to/new.md # Create a new file
obs files create path/to/note.md --template Meeting
obs files delete path/to/note.md # Delete (with confirmation)
obs files move old/path.md new/path.md
obs files rename path/to/note.md new-name.md
obs files total # Count of markdown files
search — Search vault content
obs search content "search term" # Full-text search
obs search content "TODO" --case-sensitive --limit 10
obs search path "meeting" # Find files by name
obs search path "**/*.canvas" # Glob pattern
obs search regex "TODO|FIXME" # Regex search
obs search regex "\d{4}-\d{2}-\d{2}" --flags gi
tags — Manage tags
obs tags list path/to/note.md # Tags from frontmatter
obs tags add path/to/note.md project # Add a tag
obs tags remove path/to/note.md project
obs tags all # All tags with counts
obs tags all --sort name --min-count 5
daily — Daily notes
obs daily create # Create today's note
obs daily create --date 2025-01-15 # Specific date
obs daily create --template "Daily Template"
obs daily open # Print today's note
obs daily open --date 2025-01-15
obs daily list # Recent daily notes
obs daily list --limit 30 --days 7
properties — Frontmatter properties
obs properties read path/to/note.md # All properties
obs properties read path/to/note.md title # Specific property
obs properties set path/to/note.md status draft
obs properties set path/to/note.md tags "a,b,c"
templates — Template management
obs templates list # List templates
obs templates apply "Meeting" Notes/standup.md
obs templates create "Weekly Review"
obs templates create "Bug Report" --content "## Bug\n\n## Steps"
tasks — Find and manage tasks
obs tasks all # All tasks in vault
obs tasks pending # Unchecked only
obs tasks done # Completed only
obs tasks pending --file path/to/note.md
obs tasks add path/to/note.md "Buy groceries"
obs tasks toggle path/to/note.md 15 # Toggle at line 15
obs tasks remove path/to/note.md 15
bookmarks — Vault bookmarks
obs bookmarks list
obs bookmarks add path/to/note.md
obs bookmarks remove path/to/note.md
links — Analyze links
obs links list path/to/note.md # Outgoing links
obs links outgoing path/to/note.md
obs links backlinks path/to/note.md # Incoming links
obs links broken # Unresolved wikilinks
obs links broken --limit 20
plugins — Plugin management
obs plugins list # All plugins with status
obs plugins list --enabled
obs plugins list --disabled
obs plugins versions # Community plugin versions
obs plugins enable dataview
obs plugins disable dataview
dev — Developer tools
obs dev eval "vault.listFiles()" # Evaluate JS
obs dev script ./my-script.js # Run script with vault context
sync — Git sync
obs sync status # Git status
obs sync push # Stage, commit, push
obs sync push --message "Updated notes"
obs sync pull # Pull latest
themes — Theme management
obs themes list # Installed themes
obs themes apply "Minimal" # Apply a theme
canvas — Canvas files
obs canvas list # List canvases
obs canvas read path/to/canvas.canvas
obs canvas create path/to/new.canvas
obs canvas create path/to/new.canvas --text "Hello"
obs canvas nodes path/to/canvas.canvas
bases — Base files
obs bases list # List base files
obs bases read path/to/base.base
obs bases create path/to/new.base
obs bases create path/to/new.base --source Notes
import — Import content
obs import url https://example.com/article
obs import url https://example.com --name "My Article"
JSON Mode & Scripting
All commands support --json for machine-readable output:
obs vault stats --json | jq '.fileCount'
obs tasks pending --json | jq -r '.[] | [.file, .line, .text] | @csv'
obs tags all --json | jq '.[0:5]'
obs search content "TODO" --json | jq '[.[].file] | unique'
More Details
See references/COMMANDS.md for full option details and advanced examples.