apps/opik-documentation/documentation/fern/docs/tracing/integrations/openai-codex.mdx
OpenAI Codex supports opt-in OpenTelemetry export through Codex configuration files.
Use this guide if you run Codex (CLI/IDE/app) and want its OTEL trace exporter to send telemetry to Opik.
<Callout type="info"> The block structure below follows the current Codex runtime config shape used in local `config.toml` (`[otel.trace_exporter.otlp-http]`). </Callout>Codex reads configuration from:
~/.codex/config.toml.codex/config.tomlSee Codex config basics.
For Opik OTEL endpoint behavior, see Opik OpenTelemetry overview.
<Tabs> <Tab value="Opik Cloud" title="Opik Cloud"> ```toml [otel] # Optional environment label in Codex telemetry trace_exporter = "otlp-http" environment = "prod" log_user_prompt = false [otel.trace_exporter.otlp-http]
endpoint = "https://www.comet.com/opik/api/v1/private/otel/v1/traces"
protocol = "binary"
headers = { "Authorization" = "<your-api-key>", "Comet-Workspace" = "<your-workspace>", "projectName" = "<your-project-name>" }
```
Required headers:
- `Authorization`
- `Comet-Workspace`
Optional headers:
- `projectName` (recommended)
</Tab>
<Tab value="Enterprise deployment" title="Enterprise deployment">
```toml
[otel]
trace_exporter = "otlp-http"
environment = "prod"
log_user_prompt = false
[otel.trace_exporter.otlp-http]
endpoint = "https://<comet-deployment-url>/opik/api/v1/private/otel/v1/traces"
protocol = "binary"
headers = { "Authorization" = "<your-api-key>", "Comet-Workspace" = "<your-workspace>", "projectName" = "<your-project-name>" }
```
Required headers:
- `Authorization`
- `Comet-Workspace`
Optional headers:
- `projectName` (recommended)
</Tab>
<Tab value="Self-hosted instance" title="Self-hosted instance">
```toml
[otel]
trace_exporter = "otlp-http"
environment = "prod"
log_user_prompt = false
[otel.trace_exporter.otlp-http]
endpoint = "http://localhost:5173/api/v1/private/otel/v1/traces"
protocol = "binary"
headers = { "projectName" = "<your-project-name>" }
```
Required headers:
- none by default (depends on your self-hosted auth setup)
Optional headers:
- `projectName` (recommended)
- auth headers if your instance enforces auth
</Tab>
Intent: Route Codex OTEL trace export to Opik with project/workspace attribution.
Applies when: You have enabled Codex OTEL export and selected OTLP/HTTP exporter in config.
Required fields:
trace_exporter = "otlp-http" under [otel]otel.trace_exporter exporter block (otlp-http)endpointprotocol (binary or json, binary recommended)Optional fields:
headers (projectName strongly recommended)otel.environmentotel.log_user_prompt (keep false unless policy allows prompt export)Minimal valid config:
[otel]
trace_exporter = "otlp-http"
log_user_prompt = false
[otel.trace_exporter.otlp-http]
endpoint = "https://www.comet.com/opik/api/v1/private/otel/v1/traces"
protocol = "binary"
headers = { "Authorization" = "<your-api-key>", "Comet-Workspace" = "<your-workspace>", "projectName" = "<your-project-name>" }
config.toml./otel/v1/traces.log_user_prompt = false unless your policy explicitly allows prompt text export.