Preflight Install
Automated Installation
The easist way to set everything up is to just use the installer. You can examine the source code of the installer here and you can watch a video of the installer in action here. Claude, Codex, and Gemini CLI each use OpenTelemetry (which is how this website works) but they each implement it in a slightly different way, which means enabling opentelemetry and enabling JTPCK is unique in each case. The installer solves for each unique case and installs everything in one shot.
$ brew tap jessewaites/jtpck && brew install jtpck && jtpck xxx-xxxxxx-xxx-xxxx
Log in and revist this page to replace placeholder values with your real private UUID
Manual Installation
Configure OpenTelemetry manually to send telemetry to JTPCK
Your Private UUID:
xxx-xxxxxx-xxx-xxxx
Log in and revist this page to replace placeholder values with your real private UUID
Enable JTPCK for Claude Code
Add the variables below to your~/.zshrc file, or set it in your environment before running Claude Code.
Read the full Claude Code telemetry documentation here if you need more help.
Required environment variables (minimal):
If you add these to~/.zshrc, run source ~/.zshrc afterwards.
You could also add it to .claude/settings.json if you prefer.
export CLAUDE_CODE_ENABLE_TELEMETRY=1
export OTEL_EXPORTER_OTLP_PROTOCOL="http/json"
export OTEL_EXPORTER_OTLP_ENDPOINT="https://JTPCK.com/api/v1/telemetry"
export OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer xxx-xxxxxx-xxx-xxxx"
export OTEL_TRACES_EXPORTER="otlp"
export OTEL_METRICS_EXPORTER="otlp"
export OTEL_LOGS_EXPORTER="otlp"
Load the new env vars:
$ source ~/.zshrc
Run Claude Code normally:
$ claude
Enable JTPCK for Codex
Add the block below to your~/.codex/config.toml file.
Read the full Codex security + telemetry documentation here if you need more help.
[otel]
environment = "prod"
log_user_prompt = false
# Log exporter (token counts come from here)
[otel.exporter.otlp-http]
endpoint = "https://JTPCK.com/api/v1/telemetry/v1/logs"
protocol = "binary"
[otel.exporter.otlp-http.headers]
Authorization = "Bearer xxx-xxxxxx-xxx-xxxx"
# Trace exporter (request metadata)
[otel.trace_exporter.otlp-http]
endpoint = "https://JTPCK.com/api/v1/telemetry/v1/traces"
protocol = "binary"
[otel.trace_exporter.otlp-http.headers]
Authorization = "Bearer xxx-xxxxxx-xxx-xxxx"
Restart codex
$ control + c
Run Codex normally:
$ codex
Enable JTPCK for Gemini
Add the variables below to~/.zshrc then run source ~/.zshrc, or put them in ~/.gemini/settings.json.
Read the full Gemini telemetry documentation here if you need more help.
export GEMINI_TELEMETRY_ENABLED=true
export GEMINI_TELEMETRY_TARGET=local
export GEMINI_TELEMETRY_OTLP_ENDPOINT="https://JTPCK.com/api/v1/telemetry/v1/traces"
export GEMINI_TELEMETRY_OTLP_PROTOCOL=http
export OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer xxx-xxxxxx-xxx-xxxx"
Load the new env vars:
$ source ~/.zshrc
Run Gemini CLI normally:
$ gemini