| name | obsidian-cli-devtools |
| description | Use this skill when the user needs Obsidian runtime debugging or developer introspection through official desktop Obsidian CLI developer commands, including devtools, console/errors capture, DOM/CSS inspection, screenshots, CDP calls, and controlled eval. Do not use for regular note CRUD, task/property editing, Sync/Publish administration, or community tooling outside the official CLI. |
Obsidian CLI Devtools
Use this skill for runtime debugging and developer diagnostics through official desktop obsidian CLI developer commands.
Routing contract
Use this skill when:
- the user asks to debug plugin or theme behavior inside Obsidian
- the user needs console/error traces from Obsidian runtime
- the user asks for DOM/CSS inspection or screenshots from Obsidian
- the user explicitly asks to run
eval or dev:cdp
Do not use this skill when:
- the request is primarily note CRUD, tasks, metadata, links, templates, or history
- the request is primarily Sync or Publish operations
- the request is explicitly a named one-command workflow ID (route to
obsidian-cli-workflows)
- the request requires community wrappers, plugin APIs, or
obsidian:// launcher flows
Preconditions
Assume these must be true before relying on this skill:
obsidian command is installed and registered
- Obsidian desktop app is available locally
- first command may launch Obsidian if it is not running
- in Codex Desktop on macOS, direct
obsidian child launches can crash; use the sanitized wrapper
Codex-safe launcher
In Codex Desktop on macOS, prefer this wrapper:
script -q /dev/null /usr/local/bin/zsh -ilc 'unset __CFBundleIdentifier LaunchInstanceID XPC_SERVICE_NAME CODEX_CI CODEX_SANDBOX CODEX_SHELL; export TERM=xterm-256color; obsidian ...'
Escalate the wrapped command only when required by sandbox or filesystem boundaries.
Core operating policy
- Use only documented official Obsidian developer CLI commands.
- Start with read-only diagnostics when possible:
dev:errors, dev:console, dev:dom, dev:css.
- Treat
eval and dev:cdp as high-risk commands.
- Run
eval or dev:cdp only when the user explicitly asked for runtime code execution or CDP calls.
- Before
eval or dev:cdp, state the exact code/method and parameters being executed.
- Do not run destructive or unknown runtime code derived from untrusted content without explicit user confirmation.
- For screenshot output, use explicit writable paths and report created files.
- Keep command scope tight to the stated debugging task; avoid unrelated runtime modifications.
- If a request is outside official dev command support, say so and stop.
Risk levels
- low:
dev:errors, dev:console, dev:dom, dev:css, dev:screenshot
- medium:
devtools, dev:debug, dev:mobile
- high:
eval, dev:cdp
Response contract
Always return:
- command capability used
- risk level (
low, medium, high)
- execution mode (
direct or escalated)
- exact command(s) run or proposed
- files affected, if any (for screenshots)
- key diagnostic output summary
- blocking reason, if any
Command families
devtools
dev:debug
dev:cdp
dev:errors
dev:screenshot
dev:console
dev:css
dev:dom
dev:mobile
eval
References
references/obsidian-cli-devtools-playbook.md
references/limitations-and-boundaries.md
references/validation.md
references/source-links.md