Skip to content
Back to skills

Command Palette

ASecurity

Run, list, and inspect Obsidian commands and hotkeys from the CLI. Use when triggering a command, enumerating commands, or checking hotkey bindings.

  • 58 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 3, 2026
developmentjavascriptjavabashapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 23, 2026

npx -y skills add laurigates/claude-plugins --skill command-palette --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Command Palette?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Command Palette
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/laurigates-command-palette/badge)](https://www.skillsdirectory.com/skills/laurigates-command-palette)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
created: 2026-04-30
modified: 2026-09-22
reviewed: 2026-09-22
name: command-palette
description: "Run, list, and inspect Obsidian commands and hotkeys from the CLI. Use when triggering a command, enumerating commands, or checking hotkey bindings."
user-invocable: false
allowed-tools: Bash(obsidian *), Read, Grep, Glob
---

# Obsidian Command Palette

## When to Use This Skill

| Use this skill when... | Use the alternative instead when... |
|---|---|
| Triggering a command the user would normally pick from the command palette (`Ctrl/Cmd+P`) | Running JavaScript via the developer API — use `dev-tools` |
| Discovering what commands a plugin registers | Enabling/disabling a plugin entirely — use `plugins-themes` |
| Looking up which hotkey is bound to a command | Setting up a workspace — use `workspaces` |

The command palette is Obsidian's universal action surface — every built-in
operation and every command registered by a plugin appears here. The CLI
exposes the same surface, which is the leverage point for automation: any
plugin command becomes scriptable without writing JavaScript.

## Prerequisites

- Obsidian desktop 1.12.7+ installer with CLI enabled
- Obsidian must be running

## List Commands

```bash
# All available command IDs
obsidian commands

# Filter by ID prefix (e.g. only Templater commands)
obsidian commands filter=templater

# Filter to a built-in family
obsidian commands filter=editor
obsidian commands filter=workspace
```

Command IDs follow the `pluginid:action` convention — e.g.
`editor:toggle-bold`, `workspace:split-vertical`, `dataview:dataview-rebuild-current-view`.

## Execute a Command

```bash
# Run a built-in command
obsidian command id=editor:toggle-bold

# Run a plugin-registered command
obsidian command id=templater-obsidian:insert-templater
obsidian command id=dataview:dataview-rebuild-current-view

# Open the command palette itself
obsidian command id=command-palette:open
```

`command` always operates against the active editor / active file — there
is no `file=` parameter. To run a command against a specific note, open
the note first (`obsidian open file=Foo`), then run `command`.

## Hotkeys

```bash
# All bound hotkeys
obsidian hotkeys

# Mark which entries are user-customised vs default
obsidian hotkeys verbose

# Count of bound hotkeys
obsidian hotkeys total

# Lookup the hotkey for one command
obsidian hotkey id=editor:toggle-bold
obsidian hotkey id=editor:toggle-bold verbose
```

## Common Patterns

### "Run a Templater template against the current note"

```bash
obsidian open file="Notes/Today"
obsidian command id=templater-obsidian:replace-in-file-templater
```

### "Find every Dataview command"

```bash
obsidian commands filter=dataview
```

### "Discover what hotkeys conflict with a new binding"

```bash
obsidian hotkeys format=json | jq '[.[] | select(.hotkey == "Ctrl+Shift+P")]'
```

(Requires the user's installed `jq`; the CLI itself does not pipe.)

## Agentic Optimizations

| Context | Command |
|---------|---------|
| List all commands | `obsidian commands` |
| Filter commands by prefix | `obsidian commands filter=PREFIX` |
| Run a command | `obsidian command id=PLUGIN:ACTION` |
| List hotkeys (structured) | `obsidian hotkeys format=json` |
| Lookup one hotkey | `obsidian hotkey id=PLUGIN:ACTION` |
| Show user-customised hotkeys | `obsidian hotkeys verbose` |

## Related Skills

- **plugins-themes** — Enable the plugin before its commands become available
- **workspaces** — Set up an editor state, then run a command against it
- **dev-tools** — When a command doesn't exist for what you need

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…