Skip to main content
@carbon-js/connect doesn’t run a daemon, proxy your traffic, or parse transcripts. It makes one tagged, idempotent edit to the app’s own config that turns on the app’s built-in OpenTelemetry logs exporter and points it at Carbon’s OTLP endpoint. The app does the exporting itself.

The edit, per app

Edits ~/.claude/settings.json — adds an env block that enables telemetry, selects the OTLP/HTTP logs exporter, and sets the Carbon endpoint and your API key as the bearer token. Unrelated settings are left untouched.
Only the logs signal is enabled — Carbon ingests the apps’ structured usage logs, not traces. Restart the app after connecting so it reloads the config and begins exporting.

Safe and reversible

  • Idempotent. The edit is tagged, so re-running connect updates in place rather than duplicating anything.
  • Scoped. Only the telemetry keys are added; the rest of your config is preserved exactly.
  • Cleanly reverted. @carbon-js/connect disconnect <app> removes exactly the keys it added, leaving the rest of your config untouched.
@carbon-js/connect disconnect codex

What leaves your machine

Once connected, the app exports its telemetry directly to Carbon over OTLP — authenticated with your API key. That payload is dimensions only: model, token usage, cost, timing, status, and the session/turn correlation keys. Prompts, responses, and tool input/output text are not included. See Privacy.