agentsclimarketplace

Obsidian cli

Skill jcgonzalez25/obsidian-cli-agent/skills/obsidian-cli

An AI agent skill for interacting with your Obsidian vault via the CLI — works with Claude Code and CursorFrom the repository description

Install
npx -y skills add jcgonzalez25/obsidian-cli-agent --skill obsidian-cli

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

3 things to look at

  • reads credentialsReads from 1 credential source: `~/.config/obsidian-cli/config.yaml`.
  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • runs commandsInstructs the agent to run 8 commands, including `setup.sh` and 7 more.

SKILL.md

7.3 KB, ~1.9k tokens by cl100k_base, as published. Nobody here has run it

Obsidian CLI

Interact with an Obsidian vault via the official CLI. Obsidian must be running (CLI communicates via IPC).

Configuration

Run setup.sh to auto-detect your vault, or manually create ~/.config/obsidian-cli/config.yaml:

vault: "MyVault"
vault_path: "/absolute/path/to/vault/"
binary: "/path/to/obsidian"

Settings from ~/.config/obsidian-cli/config.yaml:

  • vault — your vault name
  • vault_path — path to vault on disk
  • binary — path to Obsidian binary
DAILY_FMT:  YYYY-MM-DD.md
NOISE:      2>/dev/null | grep -v "Loading updated\|out of date\|obsidian.md/download"

Invocation pattern:

<binary> vault="<vault>" <command> 2>/dev/null | grep -v "Loading updated\|out of date\|obsidian.md/download"

Warning: On some systems, obsidian may be aliased (e.g., to cd ~/obsidian). Always use the full binary path from your config — never bare obsidian.

All examples below use obs as shorthand for the full binary path + noise filter. In practice, expand to the full invocation pattern above using values from ~/.config/obsidian-cli/config.yaml.

File Resolution

Two modes:

  • file=<name> — resolves by name like wikilinks (no extension needed)
  • path=<path> — exact path from vault root (e.g., folder/note.md)

Quote values with spaces: name="My Note". Use \n for newlines, \t for tabs in content strings.

Visual Formatting

When writing note content (create, append, prepend), follow visual formatting rules in @visual-formatting.md. Key principle: Visuals > prose. Use diagrams, tables, and callouts over paragraphs.

Workflow Patterns

Daily Notes

Append findings/decisions to today's note:

obs vault="<vault>" daily:append content="## 📝 Notes\n\nKey finding here"

Read today's note (always read before appending to avoid duplication):

obs vault="<vault>" daily:read

Auto-summarize: When no content is specified, analyze the current conversation and summarize key information worth noting — decisions, architecture, findings, code changes.

Research Capture

Create a new research note:

obs vault="<vault>" create name="Topic Name" content="# Topic Name\n\n## 🎯 Summary\n\n..."

Append to existing note:

obs vault="<vault>" append file="Topic Name" content="\n## 📝 Additional Findings\n\n..."

Use templates for recurring types:

obs vault="<vault>" create name="Note" template="Research"

Task Management

List open tasks:

obs vault="<vault>" tasks todo format=md

Today's tasks only:

obs vault="<vault>" tasks todo daily

Toggle a task complete:

obs vault="<vault>" task file="Note" line=15 done

Completed tasks:

obs vault="<vault>" tasks done

Knowledge Graph

Find what links to a note:

obs vault="<vault>" backlinks file="Note" counts

Find orphaned notes (no incoming links):

obs vault="<vault>" orphans

Find dead-end notes (no outgoing links):

obs vault="<vault>" deadends

Find unresolved/broken links:

obs vault="<vault>" unresolved counts

Show outgoing links:

obs vault="<vault>" links file="Note"

Search & Retrieve

Search with context:

obs vault="<vault>" search:context query="search term" limit=10

Search within a folder:

obs vault="<vault>" search:context query="term" path="folder"

Get note outline (headings):

obs vault="<vault>" outline file="Note" format=tree

Read a specific note:

obs vault="<vault>" read file="Note Name"

Templates

List available templates:

obs vault="<vault>" templates

Read a template's content:

obs vault="<vault>" template:read name="Template Name"

Create note from template:

obs vault="<vault>" create name="New Note" template="Template Name"

Properties (Frontmatter)

Set a property:

obs vault="<vault>" property:set file="Note" name="status" value="in-progress"

Read a property:

obs vault="<vault>" property:read file="Note" name="status"

List all properties in vault:

obs vault="<vault>" properties counts sort=count

Quick Reference

ActionCommand
Read dailydaily:read
Append to dailydaily:append content="..."
Prepend to dailydaily:prepend content="..."
Read noteread file="Name"
Create notecreate name="Name" content="..."
Append to noteappend file="Name" content="..."
Prepend to noteprepend file="Name" content="..."
Delete notedelete file="Name"
Move notemove file="Name" to="folder/"
Rename noterename file="Name" name="New"
Open noteopen file="Name"
Open dailydaily
Searchsearch:context query="..." limit=10
Tasks (open)tasks todo format=md
Tasks (done)tasks done
Toggle tasktask file="Name" line=N done
Tagstags counts sort=count
Backlinksbacklinks file="Name" counts
Orphansorphans
Outlineoutline file="Name"
Filesfiles folder="path"
Foldersfolders
Templatestemplates
Propertiesproperties counts sort=count
Set propertyproperty:set file="Name" name="key" value="val"
Bookmarksbookmarks
Recent filesrecents
Random noterandom:read
Vault infovault

All commands use obs vault="<vault>" prefix. See Configuration for setup.

Direct File Access

When the CLI causes issues (callout escaping, complex edits), read/edit vault files directly using the vault path from ~/.config/obsidian-cli/config.yaml.

Use Read/Edit tools on <vault_path>/<note>.md instead of CLI when:

  • Content contains callouts ([!danger], [!tip], etc.) — CLI escapes the !
  • You need to edit existing content (not just append/prepend)
  • You need precise line-level edits

Common Mistakes

MistakeFix
Callouts via CLI content=CLI auto-escapes ![\!danger] renders as raw text. Use Read/Edit tools on vault files directly for callout content
Using bare obsidian commandMay be aliased. Use full binary path from config
Forgetting noise filterAlways pipe through grep -v (see invocation pattern in Configuration)
Appending without reading firstAlways daily:read or read before appending to avoid duplication
Using path= when file= worksUse file= for name-based resolution, path= only for exact paths
Not escaping contentUse \n for newlines, quote values with spaces
Checkboxes inside calloutsKnown bug — place checkboxes outside/below callouts
\n in mermaid node labelsObsidian renders literal \n. Use <br/> for line breaks in mermaid
Bright colors in mermaidDark theme makes white text + saturated fills unreadable. See dark-theme palette in @visual-formatting.md
Obsidian not runningCLI requires Obsidian to be running (IPC)

Full CLI Reference

See @cli-reference.md for complete command documentation with all options.

What ships with it: 2 files

15.2 KB alongside SKILL.md

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.