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:
obsidiancommand 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 (
directorescalated) - 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:
pluginsplugins:enabledplugins:restrictpluginplugin:enableplugin:disableplugin:installplugin:uninstallplugin:reload
Themes/snippets:
themesthemetheme:settheme:installtheme:uninstallsnippetssnippets:enabledsnippet:enablesnippet:disable
Command palette:
commandscommandhotkeyshotkey
References
references/obsidian-cli-runtime-admin-playbook.mdreferences/limitations-and-boundaries.mdreferences/validation.mdreferences/source-links.md