obsidian-cli
SKILL.md
Obsidian CLI Integration
Trigger
- Keywords: obsidian, vault, daily note, capture to vault, search vault, obsidian task
When NOT to Use
- Obsidian is not installed or CLI is not enabled
- User wants to edit markdown files directly (just use Read/Write)
- User wants to browse Obsidian docs (use agent-browser)
- User wants general task management without Obsidian
Prerequisites
- Obsidian v1.12+ with CLI enabled (Settings > General > Command line interface)
- Obsidian desktop app must be running (CLI uses IPC)
Workflow
/obsidian-cli [intent] [args]
│
▼
obsidian-preflight.sh --check
│
├─ FAIL → Report issue + remediation
│
└─ OK → Resolve vault
│
▼
obsidian-exec.sh <intent> [args]
│
├─ context → search vault, return results
├─ capture → write note/append to file
├─ daily → append to daily note
└─ task → add/query tasks
Scripts
| Script | Purpose | Invocation |
|---|---|---|
obsidian-preflight.sh |
Doctor + vault resolve + config | bash scripts/run-skill.sh obsidian-cli obsidian-preflight.sh [--check|--vault <id>|--print-env] |
obsidian-exec.sh |
Safe intent execution with timeout | bash scripts/run-skill.sh obsidian-cli obsidian-exec.sh <intent> [args] |
Preflight
# Check CLI + app + IPC readiness
bash scripts/run-skill.sh obsidian-cli obsidian-preflight.sh --check
# Set default vault
bash scripts/run-skill.sh obsidian-cli obsidian-preflight.sh --vault "My Vault"
# Print resolved env (for debugging)
bash scripts/run-skill.sh obsidian-cli obsidian-preflight.sh --print-env
Output lines:
STATUS=ok|error
VAULT=<resolved-vault-name>
OBSIDIAN_VERSION=<version>
ERROR=<message if STATUS=error>
Exec Intents
| Intent | Args | CLI Commands Used |
|---|---|---|
context |
--query <q> [--limit N] |
obsidian search query= limit= |
capture |
--file <path> --text <content> |
obsidian read path=, obsidian create path= content=, obsidian append path= content= |
daily |
--text <content> |
obsidian daily:append content= |
task |
--add <text> or --list |
obsidian daily:append content=, obsidian tasks daily |
# Search vault for context
bash scripts/run-skill.sh obsidian-cli obsidian-exec.sh context --query "auth middleware"
# Capture a decision record
bash scripts/run-skill.sh obsidian-cli obsidian-exec.sh capture --file "dev/decisions/2026-02-28-auth.md" --text "..."
# Append to daily note
bash scripts/run-skill.sh obsidian-cli obsidian-exec.sh daily --text "- Implemented auth middleware refactor"
# Add a task
bash scripts/run-skill.sh obsidian-cli obsidian-exec.sh task --add "Review PR #42 auth changes"
Vault Resolution Policy
Deterministic precedence (first match wins):
--vault <name>explicit argumentOBSIDIAN_VAULTenvironment variable~/.sd0x/obsidian-cli.envpersisted default- CLI-discovered active vault
Verification
-
obsidian-preflight.sh --checkoutputsSTATUS=ok - Vault resolution returns correct vault name
- Each intent produces expected CLI output
- Timeout handles IPC hang gracefully (exit 124)
References
references/integration-patterns.md— read when planning how to integrate Obsidian into dev workflowreferences/troubleshooting.md— read when preflight fails or commands time out
Examples
# First-time setup: check readiness and set default vault
/obsidian-cli --check
/obsidian-cli --vault "Dev Notes"
# During development: search for related notes
/obsidian-cli context --query "rate limiting implementation"
# After making a decision: capture it
/obsidian-cli capture --file "decisions/2026-02-28-rate-limit.md" --text "Decided to use sliding window..."
# End of session: log what was done
/obsidian-cli daily --text "- Completed rate limiting feature for API gateway"
Weekly Installs
1
Repository
sd0xdev/sd0x-dev-flowGitHub Stars
86
First Seen
7 days ago
Security Audits
Installed on
amp1
cline1
opencode1
cursor1
kimi-cli1
codex1