Pulse — CLI usage analytics
Pulse
Usage analytics for CLI tools and AI agents. Tracks commands, machine fingerprints, and version adoption without collecting PII.
Install
bashnpm install @fingerprintiq/pulse
Quick start
typescriptimport { Pulse } from '@fingerprintiq/pulse';const pulse = new Pulse({ apiKey: 'fiq_live_...', tool: 'my-cli', version: '1.0.0',});await pulse.track('deploy', { target: 'production', durationMs: 3400 });await pulse.shutdown();
Python
Install the Python SDK:
bashpip install fingerprintiq
Use it from any Python CLI:
pythonfrom fingerprintiq.pulse import Pulsepulse = Pulse(api_key="fiq_live_...", tool="my-cli", version="1.2.3")pulse.track("deploy", metadata={"duration_ms": 1234, "success": True})pulse.shutdown() # or let atexit handle it on process exit
Honors DO_NOT_TRACK=1 and FINGERPRINTIQ_OPTOUT=1 by default. Set respect_opt_out=False to override.
Machine fingerprints are byte-compatible with the Node SDK — users who run both a Node and a Python CLI on the same machine show up as a single entity in Pulse.
Privacy
Pulse respects DO_NOT_TRACK=1 and FINGERPRINTIQ_OPTOUT=1. All hardware identifiers (hostname, MAC addresses) are SHA-256 hashed before leaving the machine. The SDK never blocks your CLI or keeps the process alive.
What you get
- Unique machine counts (by hardware fingerprint, not IP)
- Command frequency, error rates, durations
- Environment breakdown (CI vs local vs container)
- Version adoption curves
- Machine retention (7d/30d return rates)
Live demo
Try it at pulse-demo.fingerprintiq.com