Telemetry Pro

Privacy-respecting usage metrics for AI-assisted development

PairCoder includes a telemetry system that helps you understand how you use AI assistance and improve your workflows over time. It also provides anonymized usage data during license validation for product health monitoring and abuse prevention.

Privacy Respecting

Telemetry data is anonymized before transmission. No source code, file paths, task descriptions, or conversation content is ever sent. Data is used exclusively for license validation, product health, and abuse prevention — it is never shared with third parties or sold.

Overview

The telemetry system collects metrics about task completions:

  • Token usage (input/output)
  • Task duration
  • Task types and outcomes
  • Human interventions during sessions

Detailed telemetry is stored locally in .paircoder/telemetry/. During periodic license validation, a small anonymized usage snapshot is transmitted to BPS servers. This is standard practice for licensed software.

Privacy Levels

You can control the level of detail collected and shared. Choose from three privacy levels:

Level Local Collection Shared During License Validation User Choice
minimalCore session metricsToken counts, sessions, tasks, hours, environment infoAlways active (mandatory)
standard+ Feature usage, performance+ Command frequencies, error ratesOpt-in
full+ Estimation accuracy, workflows+ Calibration data, model statsOpt-in

Privacy Level Details

  • minimal (default, always active): Collects aggregate metrics. Task IDs and repository names are redacted. During license validation, anonymized counts (tokens, sessions, tasks, hours) and basic environment info (OS, CLI version) are shared. This level cannot be disabled — it provides the minimum data needed for license validation and product health monitoring.
  • standard: Additionally collects and shares anonymized command frequencies and error rates. Opt in to help improve PairCoder.
  • full: Additionally collects and shares calibration data and model routing statistics. Opt in for maximum contribution to product improvement.
What Is Never Sent

Regardless of your privacy level, PairCoder never transmits: source code, file paths, directory structures, task descriptions, plan content, conversation transcripts, or repository names. You can verify this yourself using bpsai-pair telemetry export --anonymize.

What Data Is Transmitted

During periodic license validation, PairCoder attaches a small anonymized usage snapshot to the existing validation request. No additional network calls are made.

Always sent (MINIMAL)

  • Aggregate counts: total tokens, sessions, tasks completed, hours active
  • Error count and estimation accuracy (improves calibration for all users)
  • Environment: OS, Python version, CLI version
  • Audit hash (integrity verification, not content)
  • Snapshot timestamp

Additionally sent if STANDARD (default)

  • Feature usage: top 15 most-used CLI commands (names only, no arguments)
  • Cache hit rate

Additionally sent if FULL (opt-in)

  • Model routing statistics
  • Workflow patterns

Data Use Policy

All transmitted data is:

  • Anonymized — no code, file paths, task descriptions, or conversation content is ever sent
  • Used exclusively for license validation, product health monitoring, and abuse prevention
  • Never shared with third parties
  • Never sold under any circumstances

CLI Commands

Check Status

bash
bpsai-pair telemetry status
bpsai-pair telemetry status --json

Shows current privacy level, retention period, total records, token usage, success rate, breakdown by task type, and audit log health.

Configure Settings

bash
# View current configuration
bpsai-pair telemetry config

# Set privacy level
bpsai-pair telemetry config --privacy minimal
bpsai-pair telemetry config --privacy standard
bpsai-pair telemetry config --privacy full

# Set retention period (days, 0 = forever)
bpsai-pair telemetry config --retention 90

# Combine options
bpsai-pair telemetry config --privacy standard --retention 30

Export Data

bash
# Export as JSON (default)
bpsai-pair telemetry export

# Export as CSV or JSONL
bpsai-pair telemetry export --format csv
bpsai-pair telemetry export --format jsonl

# Save to file
bpsai-pair telemetry export --output telemetry-backup.json

# Filter by date range or task type
bpsai-pair telemetry export --since 2026-01-01 --until 2026-02-01
bpsai-pair telemetry export --task-type feature

# See what would be transmitted during validation
bpsai-pair telemetry export --anonymize

The --anonymize option shows exactly the same data that would be transmitted during license validation.

Data Storage

text
.paircoder/telemetry/
├── telemetry.jsonl    # Telemetry records
├── audit.jsonl        # Tamper-evident audit log
└── config.yaml        # Your settings

Audit Log

Every telemetry operation is logged to a hash-chained audit trail. This ensures you can see what data was collected and when, and that data hasn't been tampered with. Check audit chain integrity via bpsai-pair telemetry status — look for "Chain Valid: ✓" in the output.

Automatic Collection

When you complete a task using bpsai-pair ttask done, telemetry is automatically collected from your Claude session.

The collection process:

  1. Finds the most recent Claude Code session for your project
  2. Parses session data to extract metrics
  3. Applies your privacy level filtering
  4. Stores the filtered record locally
  5. Updates the audit log

Collection never blocks task completion — if anything fails, the task is still marked complete.

FAQ

Can I delete my local telemetry data?

Yes. Delete the files in .paircoder/telemetry/.

Can I opt out of telemetry entirely?

Baseline telemetry at the MINIMAL level is always collected during license validation. This includes aggregate counts, error count, and estimation accuracy — the minimum data needed for product health monitoring and calibration improvement. This is standard practice for licensed software.

The default privacy level is standard, which adds feature usage and cache hit rate. You can opt down to minimal or opt up to full:

bash
bpsai-pair telemetry config --privacy standard

What is the transmitted data used for?

The anonymized usage data is used exclusively for:

  1. License validation — verifying active licenses during periodic checks
  2. Product health — monitoring error rates, version adoption, and system stability
  3. Abuse prevention — detecting refund abuse and license misuse

This data is never shared with third parties and never sold.

What happens to old data?

If you set a retention period (e.g., --retention 90), records older than that are cleaned up during normal operations. Set --retention 0 to keep data forever.