Privacy-first usage analytics for CLI tools
The idea
CLI authors ship completely blind: no idea which commands anyone runs, which flags matter, which versions are still in the wild, or which commands exit non-zero constantly. Web developers would not accept this for a landing page, yet it is the default for every devtool. The reason is not technical, it is social: every maintainer who rolls their own telemetry gets a community backlash thread, so most decide the data is not worth the fight.
The wedge is making the trust story the product. An opt-in-by-default SDK with a published open event spec, no values ever collected, and DO_NOT_TRACK respected gives a maintainer something PostHog cannot: a link they can post in the inevitable GitHub issue that ends the argument. Purpose-built command/flag/exit-code events also mean the dashboard answers maintainer questions out of the box.
Who pays
The buyer is a devtools startup or a sponsored/funded OSS project that needs adoption numbers for investors and usage data for roadmap calls, at 19 to 79 dollars a month, trivially justified against one wrong roadmap bet. Free for small OSS builds the ecosystem and the trust brand. Distribution: maintainer communities, the open spec itself as shareable content, and the README badge as a viral loop.
MVP scope
- npm SDK: consent prompt, opt-in default, DO_NOT_TRACK support, async post-exit flush
- Open published event spec, enforced at ingest
- ClickHouse-backed dashboard: active machines, top commands/flags, version spread, error rates
- Per-tool project keys and salted anonymous machine IDs
- Free OSS tier, Stripe-billed paid tiers
- Skip for v1: Python/Go/Rust SDKs, crash report stack traces, funnels/retention analytics, self-hosted ingest, A/B experiment tooling
Build CLIPulse, privacy-first usage analytics for command-line tools: an open-source npm SDK plus a hosted dashboard. Stack: Next.js for the dashboard and ingest API, ClickHouse for events, the SDK published as an npm package; Stripe for billing. SDK design, because trust is the product: opt-in by default, the wrapped CLI must show a first-run consent prompt (the SDK provides the prompt text and a --telemetry on/off flag handler, and respects DO_NOT_TRACK). Events carry only: tool name and version, command name, flag names used (never flag values or arguments), exit code, duration, OS, arch, Node version, and a random anonymous machine ID hashed with a per-tool salt. The event schema is published as an open spec so maintainers can link it in their README and end users can read exactly what leaves their machine. Events buffer to a local file and flush async post-exit so telemetry never adds latency to a command. Integration is three lines: init with a project key, wrap the command dispatch, done. Ingest endpoint validates against the open schema and drops anything with extra fields, enforcing the privacy story server-side too. Dashboard per tool: daily/weekly active machines, top commands and flag combinations, version spread (who is stuck on old versions), error rate by command and exit code, OS/arch mix. Public opt-in badge showing basic stats for READMEs. Pages: landing aimed at maintainers with the trust story front and centre, docs, dashboard, billing. Pricing: free for OSS under 1k monthly machines; 19 GBP/month to 10k; 79 GBP/month beyond.
// More Dev tool ideas
-
Deprecation countdowns for the APIs you use
Stripe and Shopify deprecations hide in changelogs until things break; this scans your code for affected calls and gives you a countdown.
Dev tool 1 month -
App store reviews filed as GitHub issues
Bug reports buried in app store reviews never reach the tracker; this clusters new reviews and files deduped GitHub issues nightly.
Dev tool 1 week -
Nightly restore drills for database backups
A backup you've never restored is a guess; this restores your Postgres dump to a scratch instance nightly and proves the data is intact.
Dev tool 1 week -
Hosted monitoring and alerts for BullMQ queues
A stuck BullMQ queue can silently eat jobs for days; hosted dashboards, dead-letter alerts and retry controls without running Grafana.
Dev tool 1 week