Skip to main content

cmdk vs kbar vs Mantine Spotlight 2026

·PkgPulse Team
0

TL;DR

Choose cmdk for headless control in Tailwind-heavy apps, kbar for action-driven flows, and Mantine Spotlight when you are already committed to Mantine.

Quick Comparison

Librarynpm packageWeekly downloadsLatestBest forBiggest tradeoff
cmdkcmdk~33.8M/week1.1.1Tailwind and shadcn-style apps that want a highly controllable command menu primitive.You own more of the filtering, grouping, and visual structure decisions.
kbarkbar~222K/week0.1.0-beta.48Apps with richer action trees, nested flows, and a more opinionated command-launching model.More abstraction than many teams need for a simple search-and-run palette.
Mantine Spotlight@mantine/spotlight~153K/week9.0.2Mantine apps that want a polished command center without rebuilding the UI from primitives.It is tightly coupled to Mantine, so it is a poor fit if the rest of your app is not.

Why this comparison matters in 2026

Command palettes are now common enough that teams need a dedicated comparison. The key difference is whether you want a headless primitive, an action-driven framework, or a design-system-native implementation that ships most of the UI for you.

In 2026, command palettes are no longer just a developer-tool flourish. SaaS dashboards, docs sites, and AI workspaces use them for navigation and action launching. The adoption cost is now measured less in keyboard handling and more in how well the palette fits your design system and action model.

This topic is intentionally adjacent to existing PkgPulse coverage, not a duplicate. There is already a cmdk vs react-select vs Downshift article for accessible select/combobox work. This version deliberately shifts to command palettes, action models, and design-system integration.

What actually changes the decision

  • Styling ownership is the first split. Headless libraries are great if you already know exactly how the palette should look.
  • Action modeling matters when the palette becomes more than a filtered list and starts representing nested workflows.
  • Design-system fit is often decisive. Mantine users and Tailwind/shadcn users usually want very different defaults.

cmdk

Package: cmdk | Weekly downloads: ~33.8M | Latest: 1.1.1

cmdk is the best fit when command palette UI is part of your design system, not an isolated widget.

import { Command } from 'cmdk';

<Command>
  <Command.Input placeholder='Search actions...' />
  <Command.List>
    <Command.Item onSelect={() => router.push('/settings')}>Settings</Command.Item>
  </Command.List>
</Command>

Best for: Tailwind and shadcn-style apps that want a highly controllable command menu primitive. Tradeoff: You own more of the filtering, grouping, and visual structure decisions.

Strengths:

  • Headless and flexible
  • Excellent styling control
  • Popular in modern Tailwind stacks

Watch-outs:

  • More assembly required
  • Not a full action framework

kbar

Package: kbar | Weekly downloads: ~222K | Latest: 0.1.0-beta.48

kbar stands out when your palette is a real action system rather than just a styled list of links and buttons.

import { KBarProvider } from 'kbar';

<KBarProvider actions={actions}>
  <App />
</KBarProvider>

Best for: Apps with richer action trees, nested flows, and a more opinionated command-launching model. Tradeoff: More abstraction than many teams need for a simple search-and-run palette.

Strengths:

  • Action graph model
  • Good fit for multi-step flows
  • Useful shortcuts for richer behavior

Watch-outs:

  • Heavier abstraction
  • Smaller ecosystem momentum than cmdk

Mantine Spotlight

Package: @mantine/spotlight | Weekly downloads: ~153K | Latest: 9.0.2

Mantine Spotlight wins when the rest of your application already uses Mantine and you want the shortest path to a cohesive result.

import { Spotlight, spotlight } from '@mantine/spotlight';

<Spotlight actions={[{ id: 'home', label: 'Go home', onClick: () => router.push('/') }]} />
<button onClick={() => spotlight.open()}>Open palette</button>

Best for: Mantine apps that want a polished command center without rebuilding the UI from primitives. Tradeoff: It is tightly coupled to Mantine, so it is a poor fit if the rest of your app is not.

Strengths:

  • Native Mantine fit
  • Fast to ship
  • Good theming integration

Watch-outs:

  • Mantine-specific
  • Less attractive outside that ecosystem

Which one should you choose?

  • Choose cmdk when tailwind and shadcn-style apps that want a highly controllable command menu primitive.
  • Choose kbar when apps with richer action trees, nested flows, and a more opinionated command-launching model.
  • Choose Mantine Spotlight when mantine apps that want a polished command center without rebuilding the UI from primitives.

Final recommendation

Choose cmdk for headless control in Tailwind-heavy apps, kbar for action-driven flows, and Mantine Spotlight when you are already committed to Mantine.

react-select vs cmdk vs Downshift 2026 · Best React UI Libraries 2026

The 2026 JavaScript Stack Cheatsheet

One PDF: the best package for every category (ORMs, bundlers, auth, testing, state management). Used by 500+ devs. Free, updated monthly.