One machine, no login
--key takes an ingest key (ik-lw-...). It needs no login and contacts no server:
CI
The same setup, inside the job. For example, a GitHub Actions job running Claude Code headless:langwatch login --api-key <sk-lw-...> writes a project API key to .env non-interactively, and langwatch login --token <token> installs a pre-minted device token. Both fail fast on a machine without a terminal instead of hanging on a device-code prompt.
Bake it into an image
langwatch ingest install <tool> --env-only prints the export lines without writing any config file, which is the form you want in a Dockerfile or a provisioning script. Supported tools: claude_code, codex, gemini, opencode. Add --json for machine-readable output.
Roll out to a managed fleet
For Claude Code, an administrator can apply the telemetry configuration to every machine through the managed settings file, distributed with your device management system:- macOS:
/Library/Application Support/ClaudeCode/managed-settings.json - Linux and Windows Subsystem for Linux:
/etc/claude-code/managed-settings.json - Windows:
C:\ProgramData\ClaudeCode\managed-settings.json
env block in it that Manual OpenTelemetry setup shows for ~/.claude/settings.json. Variables in the managed settings file take precedence, and a user cannot override them.