The Command Palette is a floating, keyboard-first launcher. Hit ⌘K to open. Type any of:
- App name → activates / launches
- Workspace name → switches
- Settings tab → opens Settings to that tab
- Bar action → runs it (toggle dock suppressor, toggle window minder, show command palette, etc.)
- A natural-language question → routed to your model (when AI routing is on)
Enabling
Settings → Palette → Enable Command Palette is on by default. The hotkey starts firing immediately.
The hotkey can be overridden via UserDefaults keys apexdock.commandPalette.keyCode and apexdock.commandPalette.modifiers. A rebinding UI is on the roadmap.
How matching works
Two layers:
- Local fuzzy match — runs against an in-memory index built at panel open. Index entries: pinned apps, all installed
.appbundles in/Applications, configured workspaces, every Settings tab, everyBarActioncase. - AI routing (optional) — when Use AI Routing is on, natural-language input is routed through your configured Assistant provider (Anthropic, OpenAI, or Codex via ChatGPT — see Settings → Assistant). The model returns a structured intent that the palette executes.
If both are enabled and the local match scores high, the local hit wins (faster). The AI path activates when local match is weak — typically a question like "open the budget spreadsheet I had yesterday" rather than "Numbers".
Result rows
Each row shows:
- Icon (app / SF Symbol / accent dot for workspaces)
- Name + match highlight
- Subtype label (Workspace, Settings, App, Action)
- Keyboard shortcut hint when applicable
Enter runs the top hit. Tab cycles. Escape closes.
Running headlessly
Two options for triggering palette intents from outside ApexDock:
apexdock palette show # opens the panel for typing
apexdock palette run "switch to Work" # fuzzy-matches + runs the top hit, no panel
The run form skips the AI path entirely — only local fuzzy match. Useful for binding shortcuts that should always be deterministic (Raycast, Karabiner).
tell application "ApexDock" to run palette "switch to Work"
Notes
- The search index rebuilds in less than 50ms even with 200+ installed apps. Pinning a new app or editing a workspace patches the index in place, so the next ⌘K opens instantly.
- AI routing sends a single structured request and parses the result back into a palette intent, so a vague prompt still ends in a deterministic action.
- Fuzzy match ranks exact matches first, then prefixes, then substrings, then acronyms (so "wnd" matches "Wonderland").