Telemetry

Anonymous usage stats only. No code, no queries, no personal data.

Opt out anytime: BRAKIT_TELEMETRY=false

Brakit collects anonymous telemetry data to understand how the tool is used and where to focus improvements. Participation is optional and you can opt out at any time.

How it works

  • Lightweight journey events fire at key milestones (CLI start, setup complete, first request, dashboard open)
  • A session summary is sent on process shutdown
  • All requests are fire-and-forget via detached subprocess (never blocks your app)
  • Network failures are silently ignored
  • An anonymous UUID is stored in ~/.brakit/config.json
  • No third-party SDK is used — just a single fetch() call per event
  • Python SDK sends a single session event on exit (same privacy guarantees)

Journey events

These events help us understand where users succeed or get stuck during setup. Each is a single fire-and-forget request with no PII.

EventWhenKey fieldsPurpose
cli_invokedCLI command startscommand, has_package_json, cwd_has_node_modulesUnderstand how users install brakit
setup_completedRuntime initialization finishesframework, framework_detection_candidates, adapters_detected, adapters_failed, setup_duration_msDiagnose setup failures
first_requestFirst HTTP request capturedport, time_to_first_request_msTrack time to first value
dashboard_viewedUser opens the dashboardtime_to_dashboard_ms, request_count_at_openDashboard discovery rate
cli_uninstallUser runs brakit uninstallinstrumentation_removed, package_removed, mcp_removed, data_removedUnderstand churn
sessionProcess exitAll fields in the table belowFull session summary

Session fields

The session event fires once on process exit and contains the full session summary.

FieldExamplePurpose
brakit_version0.9.1Track version adoption
node_versionv20.11.0Ensure compatibility
osdarwin-24.6.0Platform support
archarm64Platform support
sdknodeNode vs Python SDK usage
frameworknextjsPrioritize framework support
package_managerpnpmTesting prioritization
is_custom_commandfalseUsage patterns
first_sessiontrueNew vs returning users
adapters_detected["prisma"]Adapter adoption
adapters_failed[]Diagnose adapter issues
framework_detection_candidates["next", "prisma"]Understand user stacks
request_count142Usage volume
error_count3Error detection effectiveness
query_count87Query instrumentation usage
fetch_count24Fetch tracking usage
insight_count5Detection effectiveness
finding_count2Security rule effectiveness
insight_types["n1", "slow"]Prioritize insight categories
rules_triggered["exposed-secret"]Prioritize security rules
endpoint_count12App complexity
avg_duration_ms230Performance baselines
slowest_endpoint_bucket1000-2000msPerformance distribution
tabs_viewed["requests", "queries"]Dashboard UX improvements
dashboard_openedtrueFeature adoption
explain_usedfalseFeature adoption
session_duration_s1823Session patterns
setup_succeededtrueSetup success rate
setup_duration_ms42Setup performance
time_to_first_request_ms3200Time to value
time_to_dashboard_ms8500Dashboard discovery rate
exit_reasoncleanUnderstand session endings

What is NEVER collected

URLs, query strings, or request paths
SQL queries or database contents
Request/response bodies
Source code or file contents
API keys, tokens, or secrets
Project names or file paths
IP addresses
Personally identifiable information

How to opt out

Environment variable

export BRAKIT_TELEMETRY=false

Verify status

Check ~/.brakit/config.json — the telemetry field should be false.

Source code

The telemetry implementation is fully open source: src/telemetry/index.ts (Node) and sdks/python/brakit/_telemetry.py (Python).