skills/obsidian-cli/SKILL.md
Obsidian vault integration via official CLI. Use when: capturing dev artifacts to Obsidian vault, searching vault for context, appending to daily note, managing tasks in vault. Not for: general note-taking without Obsidian (use regular files), browsing Obsidian docs (use agent-browser). Output: vault search results, captured notes, task updates.
npx skillsauth add sd0xdev/sd0x-dev-flow obsidian-cliInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
/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
| 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] |
# 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>
| 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"
Deterministic precedence (first match wins):
--vault <name> explicit argumentOBSIDIAN_VAULT environment variable~/.sd0x/obsidian-cli.env persisted defaultobsidian-preflight.sh --check outputs STATUS=okreferences/integration-patterns.md — read when planning how to integrate Obsidian into dev workflowreferences/troubleshooting.md — read when preflight fails or commands time out# 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"
documentation
Rewrite the previous reply in Traditional Chinese
development
Monitor GitHub Actions CI runs until completion. Use when: watching CI after push, checking build status, monitoring PR checks, waiting for CI completion, user says 'watch CI', 'check CI', 'CI status', 'monitor build', or /watch-ci. Not for: pushing code (use push-ci), creating PRs (use create-pr). Output: per-run verdict (pass/fail/timeout).
development
Verification loop — lint -> typecheck -> unit -> integration -> e2e
development
Research current code state then update corresponding docs, ensuring docs stay in sync with code.