> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fingerprintiq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Pulse — CLI usage analytics

# Pulse

Usage analytics for CLI tools and AI agents. Tracks commands, machine fingerprints, and version adoption without collecting PII.

## Install

```bash
npm install @fingerprintiq/pulse
```

## Quick start

```typescript
import { 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:

```bash
pip install fingerprintiq
```

Use it from any Python CLI:

```python
from fingerprintiq.pulse import Pulse

pulse = 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](https://pulse-demo.fingerprintiq.com)