← All @molecule/* packages · App templates
@molecule/app-command-palette-cmdkProvider bond · command-palette · App (browser) · v1.0.1 · Apache-2.0
Headless cmdk-style command palette state provider for @molecule/app-command-palette (no cmdk dependency; app renders the UI)
npm install @molecule/app-command-palette-cmdknpm · Source on GitHub · Implements @molecule/app-command-palette
@molecule/app-command-palette-cmdk is a provider bond on the app (browser) side: it implements the command-palette core interface (@molecule/app-command-palette) with a concrete vendor or library behind it.
Your code calls the core; you wire this provider once at startup. Swapping vendors later is one line in that wiring, not a rewrite.
import { provider } from '@molecule/app-command-palette-cmdk'
import { setProvider } from '@molecule/app-command-palette'
setProvider(provider)Works with: @molecule/app-command-palette
Auto-generated, AI-first package reference for the molecule.dev ecosystem. It is written to be read by coding agents as much as by people, and is generated from this package's source — edit
src/index.tsJSDoc, not this file.
cmdk-style command palette provider for molecule.dev.
Implements CommandPaletteProvider from @molecule/app-command-palette
as a HEADLESS in-memory state manager modeled on cmdk's API shape — it
does NOT depend on or load the cmdk library; your app renders the
overlay/input/list and binds the keyboard shortcut.
import { provider } from '@molecule/app-command-palette-cmdk'
import { setProvider } from '@molecule/app-command-palette'
setProvider(provider)
provider
npm install @molecule/app-command-palette-cmdk @molecule/app-command-palette
CmdkConfigProvider-specific configuration for the cmdk command palette provider.
interface CmdkConfig {
/**
* Whether the built-in matcher performs fuzzy (in-order subsequence)
* matching in addition to exact substring matching. When `false`, only
* exact case-insensitive substring matches are returned. A per-call
* `options.filter` always takes precedence over the built-in matcher.
* Defaults to `true` (fuzzy enabled).
*/
defaultFuzzyMatch?: boolean
/**
* Default loop setting for keyboard navigation when no explicit
* `loop` option is provided. Defaults to `true`.
*/
defaultLoop?: boolean
}
CmdkPaletteInstanceExtended command palette instance with cmdk-specific internal methods used by framework bindings.
interface CmdkPaletteInstance {
// -- Public API (from CommandPaletteInstance) --------------------------------
open(): void
close(): void
toggle(): void
isOpen(): boolean
getQuery(): string
setQuery(query: string): void
getFilteredGroups(): CommandGroup[]
pushPage(pageId: string): void
popPage(): boolean
getPageStack(): string[]
getCurrentPage(): string
setGroups(groups: CommandGroup[]): void
addGroup(group: CommandGroup): void
removeGroup(groupId: string): void
addCommand(groupId: string, command: CommandItem): void
removeCommand(commandId: string): void
destroy(): void
// -- Internal methods for framework bindings --------------------------------
/** Returns the cmdk-specific config. */
_getConfig(): CmdkConfig
/** Returns whether keyboard navigation should loop. */
_getLoop(): boolean
/** Returns the placeholder for the current page. */
_getPlaceholder(): string | undefined
/**
* Executes a command by id, handling page navigation returns.
*
* @param commandId - The id of the command to execute.
*/
_executeCommand(commandId: string): void
}
createCmdkProvider(config)Creates a cmdk-style command palette provider.
function createCmdkProvider(config?: CmdkConfig): CommandPaletteProvider
config — Optional cmdk-specific configuration.Returns: A CommandPaletteProvider backed by cmdk-style state management.
providerDefault cmdk command palette provider instance.
const provider: CommandPaletteProvider
Implements @molecule/app-command-palette interface.
Setup function to register this provider with the core interface:
import { setProvider } from '@molecule/app-command-palette'
import { provider } from '@molecule/app-command-palette-cmdk'
export function setupCommandPaletteCmdk(): void {
setProvider(provider)
}
Peer dependencies:
@molecule/app-command-palette >=1.0.1@molecule/app-command-paletteFiltering: a custom options.filter always takes precedence; otherwise
the built-in matcher is used (exact substring scores highest, then, when
defaultFuzzyMatch is true, an in-order subsequence match). Set the
provider config defaultFuzzyMatch: false to restrict the built-in
matcher to exact substring matches only. close() clears the query AND
resets page navigation to root; pushPage(id) silently ignores
unregistered page ids.
Integration checklist — drive the real UI (live preview, no mocks), adapt each item to this app's actual screens/flows, and check every box off one by one. A box you can't check is an integration bug to fix — not a skip: