Skip to content

CommandPalette

Command palette UI built on cmdk and shadcn/ui.

Props

CommandPaletteProps

PropTypeRequiredDescription
openbooleanYesWhether palette is open
onOpenChange(open: boolean) => voidYesOpen state change handler
commandsCommand[]YesAll registered commands
groupedCommandsMap<string, Command[]>YesCommands grouped by group
onSelect(command: Command) => voidYesCalled when command selected
placeholderstringNoSearch input placeholder (default: 'Type a command or search...')
emptyTextstringNoText when no matches (default: 'No commands found.')

Command

PropertyTypeRequiredDescription
idstringYesUnique identifier
labelstringYesDisplay label
action() => void | Promise<void>YesAction to execute
keywordsstring[]NoSearch keywords
iconReactNodeNoIcon element
groupstringNoGroup name
shortcutstringNoShortcut display text
disabledbooleanNoWhether disabled

Example

tsx
const palette = useCommandPalette({ initialCommands: [...] })

<CommandPalette
  open={palette.isOpen}
  onOpenChange={(open) => open ? palette.open() : palette.close()}
  commands={palette.commands}
  groupedCommands={palette.groupedCommands}
  onSelect={(cmd) => palette.execute(cmd.id)}
/>

See also