Skip to main content
Telemetry is disabled by default. When you opt in, each obliteration run appends a benchmark record to a local JSONL file and automatically syncs it to a central HuggingFace Dataset repo where it feeds the community leaderboard.
On HuggingFace Spaces, telemetry is enabled by default so every person who clicks Obliterate on the public Space directly contributes to the community dataset without any extra steps.

What gets collected

Every telemetry record contains the following fields — nothing more.

Model fields

Method fields

Benchmark results

Hardware fields

Identity fields

What is never collected

The following are never collected, never stored, and never transmitted — by design and by code:
  • Prompts or prompt text of any kind
  • Model outputs or generated text
  • IP addresses
  • User identity, usernames, or account information
  • File paths on your system
  • Any personally identifiable information
The session_id field is a random hash of time.time() + random.random() + os.getpid(). It is regenerated on every process start and cannot be traced back to a user or machine. You can read the exact generation logic in obliteratus/telemetry.py.

Schema v2: richer structured reports

Beyond the flat BenchmarkRecord, the pipeline also generates schema v2 reports via build_report() that include deeper structural data:
For informed pipeline runs, the report also includes analysis_insights (detected alignment method, cone geometry, recommended directions) and informed extras (Ouroboros passes, final refusal rate).

How to enable telemetry

1

Per-run: the --contribute flag

Add --contribute to any obliteratus obliterate command:
Optionally add context about your setup with --contribute-notes:
Notes are stored as free text in the extra field of the record. They help researchers contextualize results in aggregate — for example, whether a run used a non-default prompt set.
2

Globally: the environment variable

Set OBLITERATUS_TELEMETRY=1 to enable telemetry for every run in your shell session or environment:
To disable it again:
3

Python API: enable_telemetry() / disable_telemetry()

Control telemetry state programmatically:

How telemetry data flows

1

Local write

Every benchmark record is appended to a local JSONL file:
  • HuggingFace Spaces: /data/obliteratus/telemetry.jsonl (persistent storage)
  • Local install: ~/.obliteratus/telemetry.jsonl
  • Fallback: /tmp/obliteratus_telemetry/telemetry.jsonl (ephemeral)
Set OBLITERATUS_DATA_DIR to override the storage location.
2

Background Hub sync

After each write, a debounced background thread uploads your local JSONL to the central HuggingFace Dataset repo (pliny-the-prompter/OBLITERATUS-TELEMETRY). The sync is debounced: it skips if the last sync was less than 30 seconds ago, preventing Hub API overload during rapid benchmark loops.Each Space instance writes to its own file in the repo (data/{instance_slug}.jsonl), so duplicated Spaces all feed into the same central dataset without write conflicts.
3

Leaderboard aggregation

The Leaderboard reads from both the local JSONL and the central Hub dataset, merges and deduplicates records by (session_id, timestamp), groups by (model_id, method), and computes best/average metrics. See Community Leaderboard for details.

Viewing collected data

You can inspect the telemetry file directly at any time:
To manually push local data to the Hub:

Privacy guarantees

The session_id is computed as sha256(time() + random() + pid)[:12]. It is generated once per process start, is not stored anywhere except in the telemetry record itself, and cannot be correlated across sessions or machines. It exists only to deduplicate records during leaderboard aggregation.
The model_id field stores the public HuggingFace Hub ID (e.g., meta-llama/Llama-3.1-8B-Instruct). This is the same identifier you pass on the command line. Local model paths are never sent.
GPU name (e.g., NVIDIA A100-SXM4-80GB) and VRAM size are detected via torch.cuda.get_device_name() and torch.cuda.get_device_properties(). These are aggregate statistics shared by many machines and cannot identify you.
Every field collected is documented in BenchmarkRecord and build_report() in obliteratus/telemetry.py. The file is intentionally readable. If a field isn’t listed there, it isn’t collected.
The default value of OBLITERATUS_TELEMETRY is "0" on local installs. It is only "1" by default on HuggingFace Spaces (SPACE_ID env var present), where it is disclosed in the Space README.