Skip to content

Open the Command Palette

Open the command palette from the public site or workspace shell and use it as the fastest launcher.

Best for Human member Updated April 3, 2026
Web In this interface
7 steps Steps
1 interfaces Available in
Use this path when

The palette is mounted at both the public layout and the workspace shell, with separate data adapters on top of the same shared primitive.

What you'll finish here
  • Open the palette from public and workspace routes.
  • Use keyboard controls to move and execute results quickly.
  • Understand what happens after navigation, create flows, and mutations.

Where this happens

LabelValueNotes
ShortcutCmd/Ctrl+KOpens the public or workspace palette from the current shell. When focus is already inside the palette, it opens or closes the actions menu for the selected result.
Shortcut/Opens the palette on non-editable surfaces.
UIPublic header searchOpens the public command palette on the public site.
UIDocs search controlOpens the same public palette from docs routes.
UIHeader search controlOpens the palette from the top bar.
UISidebar Search itemKeeps search visible in navigation while still opening the palette.
Route/workspace/searchLegacy route that now redirects into the palette.
Query param?command=1Shell-level opener that auto-opens and then removes the query param.

Do the work

  1. 1. Use `Cmd/Ctrl+K` to open the palette, press `/` on non-editable surfaces to open it, or click the header or sidebar search control.
  2. 2. Start typing. The search field keeps focus while the first result stays selected by default, so `Enter` always runs the active result and `ArrowDown` moves directly to the second item.
  3. 3. Press `Cmd/Ctrl+K` again while the palette is focused to open the selected result actions menu. It opens as an anchored popover on desktop and a drawer on smaller screens, exposing more actions such as status changes, assignment, or create flows tied to the record.
  4. 4. Use `ArrowUp` and `ArrowDown` to move through either result list, `Enter` to run the active item, `Esc` to close the actions menu when it is open, and `Esc` again to close the palette.
  5. 5. If you choose a navigation result, the palette closes and the target route becomes the new working context.
  6. 6. If you choose a create action, the palette closes and opens the matching task or project composer with defaults taken from the query or matched record.
  7. 7. If you choose a mutation action, the shell posts to `/api/workspace/command`, shows a success toast, invalidates workspace data, and reloads fresh command data on the next open.

Keep this clear

  • The palette lazy-loads command data the first time it opens and prefetches the same payload when the browser is idle.
  • If loading fails, the palette shows a retry action rather than leaving the shell without search.
  • The same dialog is shared across inbox, tasks, projects, teams, views, settings, and deeper entity pages because it is mounted in the workspace layout.
  • The search input owns typing while the active result is exposed through active-descendant state, so you keep typing without losing the current selection.
  • With an empty query, the opening suggestions are route-aware. The palette suppresses actions that only reopen the current surface, boosts the current record on detail routes, and biases collection routes toward surface-native create commands plus matching records from that route family.
  • Rows that expose secondary actions show a horizontal ellipsis affordance when they are hovered or active. Clicking it opens the same actions menu as `Cmd/Ctrl+K`.
  • Type `@`, `$`, and `#` directly in the search field to scope results. `Tab` moves from the search field directly into the selected result row, and from the actions filter directly into the selected action row.
  • The repeated `Cmd/Ctrl+K` shortcut only switches the actions menu when focus is already inside the palette. Outside the dialog it still behaves as the shell-level launcher.
  • When the actions menu opens, focus moves into the actions filter so the full secondary action list stays keyboard navigable.
  • Secondary actions are grouped by intent and ordered for the selected record, with current-status changes and date controls surfaced ahead of lower-frequency actions like favorites or labels.
  • Public routes use the same command-palette primitive through a public adapter that indexes marketing pages, docs directories, and manual guides through a separate lazy-loaded payload.
  • The palette announces result counts through a live region for assistive technology.

Launcher inventory

LabelValueNotes
Keyboard launcher`Cmd/Ctrl+K`Opens or closes the palette from the workspace shell. When focus is already inside the palette it opens or closes the actions menu for the selected result instead of closing the dialog.
Keyboard open`/`Opens the dialog when focus is not inside an editable field.
Header searchWorkspace top barOpens the same global command palette.
Sidebar SearchWorkspace navigationKeeps search visible in the sidebar but does not navigate to a dedicated page.
Legacy search route`/workspace/search`Redirects to `/workspace/inbox?command=1`.
Route opener`?command=1`Auto-opens the dialog and then removes the query param from the URL.

Keyboard controls

LabelValueNotes
Default selectionOpen palette or change queryThe first result stays selected by default while the search field keeps focus. With an empty query, that first result follows the current route context.
Move main selection`ArrowUp` and `ArrowDown`Moves the active result while keeping keyboard control anchored to the search field. Because the first item is already selected, `ArrowDown` moves directly to the second item. Navigation follows the exact filtered result order currently rendered on screen.
Run selected result`Enter`Executes the active result when focus is in the search field.
Open actions menu`Cmd/Ctrl+K`When focus is inside the open palette, opens the selected result actions menu or closes it if it is already open.
Move action selection`ArrowUp` and `ArrowDown`Moves the active action while the action filter keeps focus.
Run selected action`Enter`Executes the active action when focus is in the action filter.
Close actions menu`Esc`Closes the actions menu and returns focus to the main search input.
Close palette`Esc`Closes the dialog when the actions menu is not open.
Selected result row`Tab`Moves from the search field directly to the currently selected result row.
Selected action row`Tab`Moves from the action filter directly to the currently selected action row.
Result and action buttons`Enter` or `Space`Runs the focused row using native button keyboard behavior.

Accessibility behavior

LabelValueNotes
Initial focusSearch inputOpening the palette focuses the search field immediately.
Initial active itemFirst result rowThe first available result is active by default even while typing stays in the search field.
Active result stateListbox with active descendantThe search field exposes the active result to assistive technology.
Actions menu focusAction filter inputOpening the actions menu moves focus into the action filter and exposes the active action through active-descendant state.
Prefix scopesTyped directly in searchType scope prefixes directly in the search field when you want to limit results by people, projects, or tasks.
Result count feedbackPolite live regionThe palette announces loading and result counts as the query changes.
Keyboard continuitySearch and actions stay keyboard-firstThe same selection model powers the main result list and the secondary actions menu, so the workspace stays navigable without leaving the keyboard.

Keep Going in Search and Shortcuts

Stay in the same interface and move to the next closest task in this topic when needed.

Nearby Guides

These guides stay close to the current workflow so you can keep moving without restarting discovery.