Command palette

A keyboard-summoned search box that finds and runs any action in the app, usually opened with Cmd+K.

that Cmd+K search thingthe Spotlight-style box inside an appctrl k menucommand barcmd pallettequick actions searchfuzzy action searchthe search box that runs commands

See it

Live demo coming soon

What it is

A command palette is one search field, summoned by a keystroke (usually Cmd+K or Ctrl+K), that fuzzy-matches every action, page, and object in the app. Type 'inv', hit Enter, the invite dialog opens. Sublime Text popularized it, VS Code made it standard, and Linear, Superhuman, Raycast, and Notion turned it into a product expectation for keyboard-first tools.

Reach for one when your app has more actions than menu space, or when your users live in it all day and resent the mouse. Underneath it is an action registry: every command carries a label, keywords, an icon, a section, and a handler, so the palette is a view over that list rather than a hand-maintained menu. cmdk and kbar are the usual React implementations.

Gotcha: a palette is an accelerator, not a hiding place. If an action exists only in the palette, most people will never find it, so keep the visible UI complete and let the palette be the fast lane. Two practical traps: the labels have to use the words your users use ('log out', not 'terminate session'), or fuzzy search returns nothing; and Cmd+K is already taken by the browser address bar, so you have to preventDefault on the keydown to win it.

Ask AI for it

Build a command palette opened with Cmd+K / Ctrl+K (preventDefault so the browser doesn't steal it) and closed with Escape. Render it as a centered overlay near the top of the viewport, max-width 40rem, over a dimmed blurred backdrop: a single borderless search input at the top, then results grouped under small uppercase section headers (Recent, Navigation, Actions), each row with an icon, a label, and a right-aligned keyboard shortcut hint. Drive it from a flat array of commands with { id, label, keywords, section, icon, run }. Filter with fuzzy matching and highlight matched characters. Arrow keys move the highlighted row, Enter runs it, the list scrolls the active row into view, and mouse hover syncs the highlight. Show an empty state when nothing matches.

You might have meant

comboboxmodal dialogoverflow menucontext menu