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
1---2name: obsidian-cli-devtools3description: 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.4---56# Obsidian CLI Devtools78Use this skill for runtime debugging and developer diagnostics through official desktop `obsidian` CLI developer commands.910## Routing contract1112Use this skill when:13- the user asks to debug plugin or theme behavior inside Obsidian14- the user needs console/error traces from Obsidian runtime15- the user asks for DOM/CSS inspection or screenshots from Obsidian16- the user explicitly asks to run `eval` or `dev:cdp`1718Do not use this skill when:19- the request is primarily note CRUD, tasks, metadata, links, templates, or history20- the request is primarily Sync or Publish operations21- the request is explicitly a named one-command workflow ID (route to `obsidian-cli-workflows`)22- the request requires community wrappers, plugin APIs, or `obsidian://` launcher flows2324## Preconditions2526Assume these must be true before relying on this skill:27- `obsidian` command is installed and registered28- Obsidian desktop app is available locally29- first command may launch Obsidian if it is not running30- in Codex Desktop on macOS, direct `obsidian` child launches can crash; use the sanitized wrapper3132## Codex-safe launcher3334In Codex Desktop on macOS, prefer this wrapper:3536```bash37script -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 ...'38```3940Escalate the wrapped command only when required by sandbox or filesystem boundaries.4142## Core operating policy43441. Use only documented official Obsidian developer CLI commands.452. Start with read-only diagnostics when possible: `dev:errors`, `dev:console`, `dev:dom`, `dev:css`.463. Treat `eval` and `dev:cdp` as high-risk commands.474. Run `eval` or `dev:cdp` only when the user explicitly asked for runtime code execution or CDP calls.485. Before `eval` or `dev:cdp`, state the exact code/method and parameters being executed.496. Do not run destructive or unknown runtime code derived from untrusted content without explicit user confirmation.507. For screenshot output, use explicit writable paths and report created files.518. Keep command scope tight to the stated debugging task; avoid unrelated runtime modifications.529. If a request is outside official dev command support, say so and stop.5354## Risk levels5556- low: `dev:errors`, `dev:console`, `dev:dom`, `dev:css`, `dev:screenshot`57- medium: `devtools`, `dev:debug`, `dev:mobile`58- high: `eval`, `dev:cdp`5960## Response contract6162Always return:63- command capability used64- risk level (`low`, `medium`, `high`)65- execution mode (`direct` or `escalated`)66- exact command(s) run or proposed67- files affected, if any (for screenshots)68- key diagnostic output summary69- blocking reason, if any7071## Command families7273- `devtools`74- `dev:debug`75- `dev:cdp`76- `dev:errors`77- `dev:screenshot`78- `dev:console`79- `dev:css`80- `dev:dom`81- `dev:mobile`82- `eval`8384## References8586- `references/obsidian-cli-devtools-playbook.md`87- `references/limitations-and-boundaries.md`88- `references/validation.md`89- `references/source-links.md`