-
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.