--- name: obsidian-cli description: >- Obsidian CLI skill for reading, creating, editing, searching, and managing note content in Obsidian vaults from the command line. Supports daily notes, tasks, properties, tags, links, file history, templates, and full file CRUD operations. Use this skill whenever the user wants to read or edit Obsidian notes, search vault content, manage tasks or properties, append/prepend content, or perform any vault note operation. Also triggers when the user mentions "obsidian cli", "obsidian command", "vault" operations, or "obsidian" in a terminal/CLI context. Always invoke this skill before attempting Obsidian-related operations to ensure correct command syntax and available parameters. Requires Obsidian 1.12+ with CLI enabled and the Obsidian app running. --- # Obsidian CLI Control Obsidian from the command line. The Obsidian desktop app must be running — the CLI connects to it over a local bridge. > **Prerequisites:** Obsidian installer 1.12.7+ with CLI enabled (Settings -> General -> Command line interface). ## Syntax **Parameters** use `key=value`. Quote values containing spaces: ```bash obsidian create name="My Note" content="Hello world" ``` **Flags** are boolean switches with no value: ```bash obsidian create name="My Note" open overwrite ``` **Multiline content:** Use `\n` for newline, `\t` for tab. **Copy output:** Append `--copy` to any command to copy the result to clipboard. ## Targeting ### File targeting Most file commands accept `file` and/or `path`. If neither is given, the active file is used. | Parameter | Behavior | |-----------|----------| | `file=` | Resolves like a wikilink — name only, no path or extension needed | | `path=` | Exact vault-relative path, e.g. `folder/note.md` | ### Vault targeting If your terminal CWD is a vault folder, that vault is used. Otherwise the active vault is used. Override with `vault=` or `vault=` as the first parameter: ```bash obsidian vault=Notes daily obsidian vault="My Vault" search query="test" ``` --- ## Commands For the full parameter reference of every command, read `references/commands-reference.md`. ### Daily notes ```bash obsidian daily # Open today's daily note obsidian daily:read # Read daily note content obsidian daily:append content="- [ ] Buy groceries" # Append to daily note obsidian daily:prepend content="# Summary" # Prepend to daily note obsidian daily:path # Get daily note file path ``` ### Files and folders ```bash obsidian file file=Recipe # Show file info obsidian files folder="Projects" ext=md # List files (filter by folder/extension) obsidian folders # List all folders obsidian open file=Recipe # Open a file obsidian read file=Recipe # Read file contents obsidian create name="New Note" content="# Hello" # Create a note obsidian create name="Trip" template=Travel open # Create from template and open obsidian append file=Recipe content="New line" # Append to file obsidian prepend file=Recipe content="Header text" # Prepend after frontmatter obsidian move file=Recipe to="Archive/Recipe.md" # Move/rename file obsidian rename file=Recipe name="New Recipe" # Rename file obsidian delete file=Recipe # Delete file (to trash) obsidian delete file=Recipe permanent # Delete permanently ``` ### Search ```bash obsidian search query="meeting notes" # Search vault (returns file paths) obsidian search query="TODO" path="Projects" limit=10 # Search within a folder obsidian search:context query="error" # Search with line context (grep-style) obsidian search:open query="initial query" # Open search in Obsidian UI ``` ### Tasks ```bash obsidian tasks # List all tasks obsidian tasks todo # Incomplete tasks only obsidian tasks daily # Tasks from today's daily note obsidian tasks file=Recipe done verbose # Completed tasks from a file, with line numbers obsidian tasks daily total # Count tasks in daily note obsidian task ref="Recipe.md:8" toggle # Toggle task completion obsidian task daily line=3 done # Mark daily note task as done obsidian task file=Recipe line=8 status=- # Set custom status character ``` ### Properties ```bash obsidian properties # List all properties in vault obsidian properties active # Properties of active file obsidian properties name=status counts # Count occurrences of a property obsidian property:set name=status value=done file=Recipe # Set a property obsidian property:read name=status file=Recipe # Read a property value obsidian property:remove name=draft file=Recipe # Remove a property obsidian aliases file=Recipe # List aliases for a file ``` ### Tags ```bash obsidian tags # List all tags obsidian tags sort=count counts # Tags sorted by frequency with counts obsidian tags active # Tags of active file obsidian tag name=project verbose # Tag info with file list ``` ### Links ```bash obsidian backlinks file=Recipe # List backlinks to a file obsidian backlinks file=Recipe counts # With link counts obsidian links file=Recipe # Outgoing links from a file obsidian unresolved # List unresolved links obsidian orphans # Files with no incoming links obsidian deadends # Files with no outgoing links ``` ### Outline ```bash obsidian outline file=Recipe # Show headings (tree format) obsidian outline file=Recipe format=json total # JSON format with heading count ``` ### File history ```bash obsidian diff # List versions of active file obsidian diff file=Recipe from=1 # Compare latest version to current obsidian diff file=Recipe from=3 to=1 # Compare two versions obsidian history file=Recipe # Local history versions obsidian history:read file=Recipe version=2 # Read a history version obsidian history:restore file=Recipe version=3 # Restore a history version ``` ### Templates ```bash obsidian templates # List templates obsidian template:read name=Meeting resolve # Read template with variables resolved obsidian template:insert name=Meeting # Insert template into active file ``` ### Vault info ```bash obsidian vault # Show vault info obsidian vault info=files # File count only obsidian vaults verbose # List all known vaults with paths obsidian wordcount file=Recipe # Word and character count obsidian wordcount words # Word count only ``` ### General ```bash obsidian help # List all commands obsidian version # Show Obsidian version obsidian reload # Reload app window obsidian restart # Restart app ``` --- ## Tips - **Clipboard:** Add `--copy` to any command to copy output. - **Counts:** Add `total` to list commands to get a count instead of full output. - **Output formats:** Many list commands accept `format=json|tsv|csv` for structured output. - **Help:** Run `obsidian help` for an always-up-to-date command list. Run `obsidian help ` for command-specific help.