cmdk is a command menu React component that functions as both a searchable command palette and an accessible combobox.
The tool solves the problem of building keyboard-accessible command interfaces by providing a composable React component that automatically handles filtering and sorting of items. Developers render items declaratively using JSX, and the component manages the search logic, keyboard navigation, and selection state. The filtering can be customized with a provided function that ranks items, and keywords can be supplied as aliases to improve search relevance. The component supports both inline rendering and modal dialog presentation through integration with Radix UI's Dialog primitive.
Teams building applications that need command palettes, search-driven navigation, or accessible comboboxes should consider this tool. It suits projects where developers want to avoid styling overhead and focus on behavior, since the component is intentionally unstyled and exposes data attributes for custom styling. The composable API allows items to be wrapped in other components or written as static JSX without special configuration. The component supports features like wrapping navigation with the loop prop, custom filter functions with keyword support, and forced rendering of items or groups regardless of filter state.
The project maintains active development with regular updates to the codebase. Issues receive responses and engagement from maintainers. Pull requests are reviewed and merged to address bugs and feature requests. The repository includes comprehensive documentation covering the API surface, architecture decisions, and usage patterns.