-
Notifications
You must be signed in to change notification settings - Fork 0
Telemetry
ABCrimson edited this page Mar 11, 2026
·
2 revisions
The core engine provides a pluggable telemetry middleware for tracking command palette usage analytics.
import { createCommandMachine, createTelemetryMiddleware } from 'modern-cmdk';
const telemetry = createTelemetryMiddleware({
onPaletteOpen() {
analytics.track('command_palette_opened');
},
onPaletteClose(durationMs) {
analytics.track('command_palette_closed', { durationMs });
},
onSearchComplete(query, resultCount, latencyMs) {
analytics.track('command_search', { query, resultCount, latencyMs });
},
onItemSelected(itemId, query) {
analytics.track('command_item_selected', { itemId, query });
},
});
using machine = createCommandMachine({
items: [...],
middleware: [telemetry],
});| Hook | Arguments | When |
|---|---|---|
onPaletteOpen |
— | Dialog opens |
onPaletteClose |
durationMs: number |
Dialog closes |
onSearchComplete |
query: string, resultCount: number, latencyMs: number |
Search finishes |
onItemSelected |
itemId: ItemId, query: string |
Item selected |
All hooks are optional. No data is collected or sent by default. The middleware only calls the hooks you provide.