cmdk

Accessible, fast command palette (⌘K) component for React. Powers the command palette pattern popularized by Linear, Figma, and Vercel. Provides Command.Input, Command.List, Command.Item with fuzzy search, keyboard navigation, and ARIA. Used as the foundation for shadcn/ui's CommandDialog component.

Evaluated Mar 06, 2026 (0d ago) v1.x
Homepage ↗ Repo ↗ Developer Tools react command-palette command-menu cmdk search keyboard shadcn accessible
⚙ Agent Friendliness
68
/ 100
Can an agent use this?
🔒 Security
97
/ 100
Is it safe for agents?
⚡ Reliability
85
/ 100
Does it work consistently?

Score Breakdown

⚙ Agent Friendliness

MCP Quality
--
Documentation
88
Error Messages
80
Auth Simplicity
100
Rate Limits
100

🔒 Security

TLS Enforcement
100
Auth Strength
100
Scope Granularity
100
Dep. Hygiene
90
Secret Handling
92

UI command palette — ensure command actions perform authorization checks before executing privileged operations.

⚡ Reliability

Uptime/SLA
88
Version Stability
85
Breaking Changes
80
Error Recovery
88
AF Security Reliability

Best When

React applications targeting power users where ⌘K command palette improves workflow efficiency.

Avoid When

Simple dropdowns or consumer apps where command palette UX is unfamiliar to users.

Use Cases

  • Implement ⌘K command palette for navigation, actions, and search in React applications
  • Build application-wide search and action discovery UI with cmdk's fuzzy filtering
  • Create keyboard-first interfaces where power users navigate entirely via command menu
  • Implement context-aware command menus that surface relevant actions based on current page
  • Build command palette plugins/extensions pattern for developer tools and IDEs

Not For

  • Simple dropdown selects — use react-select or native <select> for simple option selection
  • Full-page search experiences — cmdk is modal command palette, not a full search page
  • Non-React frameworks — cmdk is React-only

Interface

REST API
No
GraphQL
No
gRPC
No
MCP Server
No
SDK
Yes
Webhooks
No

Authentication

Methods: none
OAuth: No Scopes: No

UI library — no auth needed.

Pricing

Model: open_source
Free tier: Yes
Requires CC: No

MIT licensed open source library.

Agent Metadata

Pagination
none
Idempotent
Full
Retry Guidance
Not documented

Known Gotchas

  • Each Command.Item needs a unique value prop for filtering to work correctly — duplicate values cause inconsistent selection behavior
  • cmdk filters by the text content of Command.Item children by default — custom filter function needed for searching metadata or other fields
  • Async data loading in command items requires external state management — cmdk doesn't have built-in async loading states; implement with useState + useEffect
  • Command.Empty must be inside Command.List for the 'no results' state to render — placing it outside causes it to always be visible
  • The shouldFilter={false} prop disables all filtering — use when implementing custom filter logic with controlled state
  • cmdk v1 changed some prop names from the beta — check changelog when migrating from older versions

Alternatives

Full Evaluation Report

Detailed scoring breakdown, competitive positioning, security analysis, and improvement recommendations for cmdk.

$99

Scores are editorial opinions as of 2026-03-06.

5208
Packages Evaluated
26151
Need Evaluation
173
Need Re-evaluation
Community Powered