Headless, accessible, framework-agnostic command menu component.
This is the monorepo for kmenu, a tiny package for building fast, accessible command palettes (⌘K menus). It contains the core headless library and a React adapter, plus the main website at kmenu.dev.
- core:
kmenu
— headless engine with zero runtime dependencies. Seepackages/core
. - react:
@kmenu/react
— idiomatic React components and hooks. Seepackages/react
.
- web: official websiet (
apps/web
).
- Headless + composable: Bring your own UI
- Accessible: WAI-ARIA compliant
- Lightweight: < 6KB min+gzip (core)
- Framework-agnostic: Works everywhere
- Zero dependencies: No runtime deps in core
Core only:
npm install kmenu
# or
pnpm add kmenu
# or
bun add kmenu
React adapter:
npm install kmenu @kmenu/react
# or
pnpm add kmenu @kmenu/react
# or
bun add kmenu @kmenu/react
Requirements: Node >= 18.
git clone https://github.com/haaarshsingh/kmenu
cd kmenu
bun install # or npm install / pnpm install
# develop example app and packages
bun run dev
# build all packages/apps
bun run build
# type-check, lint, and test
bun run check-types
bun run lint
bun run test
Scripts are powered by Turborepo and run across workspaces. See package.json
and turbo.json
for details.