← Back to skills
extension
Category: Development & EngineeringAPI key requirement unconfirmed

plugins-themes

Obsidian plugin and theme management via the official CLI. Covers listing, enabling, disabling, and reloading plugins, theme switching, and developer tools (eval, screenshot). Use when user mentions Obsidian plugins, themes, plugin development, enabling/disabling plugins, or running JavaScript in Obsidian.

personAuthor: jakexiaohubgithub

Obsidian Plugins, Themes & Snippets

When to Use This Skill

| Use this skill when... | Use the alternative instead when... | |---|---| | Installing, enabling, disabling, or reloading community plugins | Running JavaScript in the app or capturing screenshots — use dev-tools | | Switching the active theme or installing a new one | Triggering a plugin-registered command — use command-palette | | Toggling CSS snippets on/off | Editing snippet CSS source on disk — use vault-files | | Toggling Obsidian's restricted mode | Inspecting CSS rules with source location — use dev-tools |

Lifecycle management for community plugins, themes, and CSS snippets. The developer commands (eval, devtools, dev:*, screenshots) live in the dedicated dev-tools skill.

Prerequisites

  • Obsidian desktop 1.12.7+ installer with CLI enabled
  • Obsidian must be running
  • Restricted mode off (community plugins disabled while restricted mode is on)

Plugins

List

# All installed plugins
obsidian plugins

# Just community or just core
obsidian plugins filter=community
obsidian plugins filter=core

# Include version numbers
obsidian plugins versions

# Structured output
obsidian plugins format=json

# Currently enabled
obsidian plugins:enabled
obsidian plugins:enabled filter=community versions

Plugin Info

obsidian plugin id=dataview

Install / Uninstall (community only)

# Install from the community catalogue
obsidian plugin:install id=dataview

# Install and enable in one shot
obsidian plugin:install id=dataview enable

# Remove
obsidian plugin:uninstall id=dataview

Enable / Disable

# Enable a plugin by ID
obsidian plugin:enable id=dataview

# Disable a plugin
obsidian plugin:disable id=dataview

# Specify type if the same id exists in both core and community
obsidian plugin:enable id=daily-notes filter=core

Reload (developer hot-reload)

obsidian plugin:reload id=my-plugin

Restricted Mode

Restricted mode disables all community plugins (formerly "Safe Mode"):

# Check / toggle
obsidian plugins:restrict
obsidian plugins:restrict on
obsidian plugins:restrict off

Themes

# All installed themes
obsidian themes

# Include version numbers
obsidian themes versions

# Active theme info, or details for a specific theme
obsidian theme
obsidian theme name="Minimal"

# Switch active theme (empty string = built-in default)
obsidian theme:set name="Minimal"
obsidian theme:set name=""

# Install / uninstall community themes
obsidian theme:install name="Things"
obsidian theme:install name="Things" enable
obsidian theme:uninstall name="Things"

CSS Snippets

# All snippets in the vault
obsidian snippets

# Currently enabled
obsidian snippets:enabled

# Toggle individual snippets by filename (without .css)
obsidian snippet:enable name=callout-tweaks
obsidian snippet:disable name=callout-tweaks

Common Patterns

"Install Dataview, enable it, and verify it loaded"

obsidian plugin:install id=dataview enable
obsidian plugins:enabled filter=community | grep -q '^dataview$' && echo OK || echo FAIL

"Snapshot the current plugin/theme state"

obsidian plugins format=json     > plugins-$(date +%F).json
obsidian themes versions          > themes-$(date +%F).txt
obsidian snippets:enabled         > snippets-enabled-$(date +%F).txt

"Disable every community plugin temporarily"

obsidian plugins:restrict on
# … work in restricted mode …
obsidian plugins:restrict off

Agentic Optimizations

| Context | Command | |---------|---------| | List plugins (structured) | obsidian plugins format=json | | Enabled plugins only | obsidian plugins:enabled | | Enable plugin | obsidian plugin:enable id=X | | Disable plugin | obsidian plugin:disable id=X | | Install + enable | obsidian plugin:install id=X enable | | Reload during dev | obsidian plugin:reload id=X | | Toggle restricted mode | obsidian plugins:restrict on\|off | | Switch theme | obsidian theme:set name="X" | | Install theme + activate | obsidian theme:install name="X" enable | | Toggle CSS snippet | obsidian snippet:enable\|disable name=X |

Related Skills

  • dev-tools — eval, devtools, dev:*, screenshots (developer surface)
  • command-palette — Trigger plugin-registered commands once enabled
  • vault-files — Read or edit snippet .css source under .obsidian/snippets/