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
1---2name: obsidian-cli-runtime-admin3description: 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.4---56# Obsidian CLI Runtime Admin78Use this skill for Obsidian runtime administration through official desktop `obsidian` CLI commands.910## Routing contract1112Use this skill when:13- the user asks to inspect or change plugin state14- the user asks to inspect or change themes or CSS snippets15- the user asks about restricted mode16- the user asks to list command IDs or hotkeys17- the user asks to execute a specific Obsidian command ID1819Do not use this skill when:20- the request is primarily note edits, links, tasks, properties, templates, or history21- the request is primarily Sync/Publish operations22- the request is explicitly a named one-command workflow ID (route to `obsidian-cli-workflows`)23- the request is runtime debugging, DOM/CSS inspection, or screenshot/eval diagnostics2425## Preconditions2627Assume these must be true before relying on this skill:28- `obsidian` command is installed and registered29- Obsidian desktop app is available locally30- first command may launch Obsidian if it is not running31- in Codex Desktop on macOS, direct launches may crash; use the sanitized wrapper3233## Codex-safe launcher3435In Codex Desktop on macOS, prefer this wrapper:3637```bash38script -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 ...'39```4041Escalate the wrapped command only when required by sandbox boundaries.4243## Core operating policy44451. Use only documented official runtime-admin CLI commands.462. Prefer read-only inventory first for mixed flows: `plugins`, `plugins:enabled`, `themes`, `snippets`, `commands`, `hotkeys`.473. Treat runtime mutation commands as high impact.484. For `command id=<...>`, require explicit command ID and do not guess silently.495. Before mutating runtime state, summarize exact side effects and scope.506. If command ID, plugin ID, theme name, or snippet name is ambiguous, stop and ask for disambiguation.517. Do not use this skill as a backdoor to broad opaque behavior; keep execution tied to explicit user request.528. If a request is outside official runtime-admin support, say so and stop.5354## Risk levels5556- low: `plugins`, `plugins:enabled`, `plugin`, `themes`, `theme`, `snippets`, `snippets:enabled`, `commands`, `hotkeys`, `hotkey`57- medium: `plugins:restrict`, `command`58- high: `plugin:install`, `plugin:uninstall`, `plugin:enable`, `plugin:disable`, `theme:install`, `theme:uninstall`, `theme:set`, `snippet:enable`, `snippet:disable`5960## Response contract6162Always return:63- capability used64- risk level (`low`, `medium`, `high`)65- execution mode (`direct` or `escalated`)66- exact command(s) run or proposed67- runtime side-effect summary (if any)68- changed runtime entities (plugin/theme/snippet/command), if any69- blocking reason, if any7071## Command families7273Plugins:74- `plugins`75- `plugins:enabled`76- `plugins:restrict`77- `plugin`78- `plugin:enable`79- `plugin:disable`80- `plugin:install`81- `plugin:uninstall`82- `plugin:reload`8384Themes/snippets:85- `themes`86- `theme`87- `theme:set`88- `theme:install`89- `theme:uninstall`90- `snippets`91- `snippets:enabled`92- `snippet:enable`93- `snippet:disable`9495Command palette:96- `commands`97- `command`98- `hotkeys`99- `hotkey`100101## References102103- `references/obsidian-cli-runtime-admin-playbook.md`104- `references/limitations-and-boundaries.md`105- `references/validation.md`106- `references/source-links.md`