privacy, for developers

What leaves your machine

The TokenMoth CLI parses your Claude Code session transcripts locally and sends one aggregated usage summary per session. The transcript itself never leaves your machine. This page lists every field — it's the dev-readable version of the privacy policy.

sent — one summary per session
session idrandom id of the Claude Code session — used to de-duplicate
repo namebasename only, e.g. "tokenmoth" — never the absolute path
model nameswhich Claude models the session used
token countsinput, output, cache read, cache creation — plain integers
hook overheadtotal + per-hook token cost; includes hook/plugin names
MCP serversserver names + call counts; no arguments, no results
turn seriestoken counts per turn (downsampled) — powers the session chart
end timewhen the session ended
verify it yourself

Don't take our word for it — print the exact payload for your most recent session. No key needed, nothing is sent:

$ npx tokenmoth report --dry-run
never sent
  • transcript content — prompts, completions, thinking
  • your code, diffs or file contents
  • file paths, directory names, usernames
  • git remotes, branches, commit messages
  • environment variables or credentials

Enforced in code, not just promised: the payload is built by a single whitelist function, and a unit test (telemetry_body_only_whitelisted_fields_no_absolute_path) fails the build if a field is added or an absolute path slips through.

the honest caveat

A repo basename, hook or MCP server name can itself be sensitive — for example when a folder is named after a client. If that applies to you, rename the folder, or skip our servers entirely:

self-host — the zero-trust option

The whole stack (API + Postgres) runs locally with docker compose up, and the CLI points anywhere:

$ tokenmoth setup --key <key> --api-url http://localhost:8080

Nothing reaches tokenmoth.com. Remove the hook anytime with tokenmoth uninstall.

deletion

Settings → danger zone deletes your account and all usage data permanently (GDPR Art. 17). No soft delete, no retention window.