Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Telemetry

ABCrimson edited this page Mar 11, 2026 · 2 revisions

Telemetry Middleware

The core engine provides a pluggable telemetry middleware for tracking command palette usage analytics.

Usage

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],
});

Hooks

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

Privacy

All hooks are optional. No data is collected or sent by default. The middleware only calls the hooks you provide.

Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /