| name | obsidian-cli-runtime-admin |
| description | Use this skill when the user needs Obsidian runtime administration through official desktop CLI commands for plugins, restricted mode, themes, CSS snippets, command catalog/hotkeys, or targeted command execution. Keep this skill separate from note CRUD, Sync/Publish, and devtools diagnostics. |
Obsidian CLI Runtime Admin
Use this skill for Obsidian runtime administration through official desktop obsidian CLI commands.
Routing contract
Use this skill when:
- the user asks to inspect or change plugin state
- the user asks to inspect or change themes or CSS snippets
- the user asks about restricted mode
- the user asks to list command IDs or hotkeys
- the user asks to execute a specific Obsidian command ID
Do not use this skill when:
- the request is primarily note edits, links, tasks, properties, templates, or history
- the request is primarily Sync/Publish operations
- the request is explicitly a named one-command workflow ID (route to
obsidian-cli-workflows)
- the request is runtime debugging, DOM/CSS inspection, or screenshot/eval diagnostics
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 launches may 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 boundaries.
Core operating policy
- Use only documented official runtime-admin CLI commands.
- Prefer read-only inventory first for mixed flows:
plugins, plugins:enabled, themes, snippets, commands, hotkeys.
- Treat runtime mutation commands as high impact.
- For
command id=<...>, require explicit command ID and do not guess silently.
- Before mutating runtime state, summarize exact side effects and scope.
- If command ID, plugin ID, theme name, or snippet name is ambiguous, stop and ask for disambiguation.
- Do not use this skill as a backdoor to broad opaque behavior; keep execution tied to explicit user request.
- If a request is outside official runtime-admin support, say so and stop.
Risk levels
- low:
plugins, plugins:enabled, plugin, themes, theme, snippets, snippets:enabled, commands, hotkeys, hotkey
- medium:
plugins:restrict, command
- high:
plugin:install, plugin:uninstall, plugin:enable, plugin:disable, theme:install, theme:uninstall, theme:set, snippet:enable, snippet:disable
Response contract
Always return:
- capability used
- risk level (
low, medium, high)
- execution mode (
direct or escalated)
- exact command(s) run or proposed
- runtime side-effect summary (if any)
- changed runtime entities (plugin/theme/snippet/command), if any
- blocking reason, if any
Command families
Plugins:
plugins
plugins:enabled
plugins:restrict
plugin
plugin:enable
plugin:disable
plugin:install
plugin:uninstall
plugin:reload
Themes/snippets:
themes
theme
theme:set
theme:install
theme:uninstall
snippets
snippets:enabled
snippet:enable
snippet:disable
Command palette:
commands
command
hotkeys
hotkey
References
references/obsidian-cli-runtime-admin-playbook.md
references/limitations-and-boundaries.md
references/validation.md
references/source-links.md