Command Launcher
Press Option+Space (macOS) or Alt+Space (Windows / Linux) anywhere on your desktop and type a prompt. The launcher routes the prompt to the local agent, or to a remote agent if you prefix with @hostname. Results stream into the main chat window or into the FAB if the main window is hidden.
The launcher is a Spotlight-like overlay that lets you talk to an agent without bringing the main window to the front.
Opening the launcher
The global hotkey is registered at startup via golang.design/x/hotkey in a background goroutine. On macOS the first launch may prompt for accessibility permissions — that is the OS, not the app, and the prompt only appears once per install. Pressing the hotkey toggles the launcher window; pressing Esc closes it without sending.
On macOS, deny the accessibility prompt and the hotkey will silently fail. Grant access in System Settings → Privacy & Security → Accessibility, then restart the desktop.
Anatomy of the launcher window
The launcher is a borderless overlay window with five regions: the prompt input at the top, a suggestion list below the input, an optional machine-targeting badge that appears when you type @, a recent-prompts strip, and a row of action chips (“Open Chat”, “Open Machines”, “Open Settings”). On macOS the window uses Wails’ overlay class so it floats above other apps without stealing focus when dismissed.
Natural-language prompts
Type any prompt, press Enter, and the launcher streams a response. Multi-line prompts are written with Shift+Enter. The launcher is just an alternate entry point into the same chat session backed by internal/desktop/services/chat — closing the launcher does not abandon the conversation, and you can pick it back up in the Chat tab.
Targeting a machine with @hostname
Prefix a prompt with @<hostname> (or any unique prefix) to route it to a remote agent instead of the local one. Resolution uses the same fuzzy-prefix logic as cmdop ask_agent — it matches on hostname, display name, or UUID. Ambiguous prefixes show a candidate list inline so you can disambiguate before sending.
@<prefix> matches on hostname, display name, or UUID. The resolver is the same one used everywhere (CLI, Machines tab, agent tools), so behaviour is consistent — see machine identity.
Quick actions and recents
Above the suggestion list, the launcher shows the last ten prompts and a row of contextual quick actions (“Open Chat”, “Open Machines”, “Open Settings”). Recent prompts are persisted to the user state store, so they survive a restart. Selecting a quick action opens the relevant tab in the main window.
History navigation
The arrow keys cycle through prompt history; typing filters the visible suggestions. Cmd/Ctrl+K clears the input, and Tab accepts the currently highlighted suggestion. The full launcher key map is on the Keyboard shortcuts page.
Customising the hotkey
The default hotkey can be changed in Settings → Appearance → Shortcuts. On some platforms the new combo only takes effect after the next app restart, because hotkey re-registration can race with the OS’ own bindings.
Hidden vs. visible main window
When the main window is hidden, the launcher streams its result into the FAB (floating action button) instead of restoring the full window. Toggle “Always restore main window on launcher submit” in Settings → Behavior if you would rather pop the main window every time you submit a prompt.