Skip to main content
Trace Oh My Pi (omp) terminal coding sessions, model calls, tool usage, and token costs with Phoenix for full observability.
Trace your Oh My Pi (omp) sessions in Phoenix with the coding-harness-tracing toolkit — every run shows up as a trace with the model calls, tool invocations, and inline token usage, grouped into its session. No application code changes required: the toolkit hooks into omp’s lifecycle events and streams OpenInference spans to Phoenix.

Launch Phoenix

The fastest way to get started with Phoenix is by signing up for a free Phoenix Cloud account. If you prefer, you can also run Phoenix in a notebook, self-host it, or use it directly from your terminal. Go to the settings page in your Phoenix instance to find your endpoint and API key. A self-hosted Phoenix defaults to http://localhost:6006; the API key is only required when auth is enabled.

Install

The curl installer is the simplest — it runs a short wizard that saves your Phoenix credentials for you. Use a local clone if you’d rather run the installer from a checkout of the source. macOS / Linux:
Windows (PowerShell):

Local clone

The installer prompts for your backend — select Phoenix, then enter your endpoint and optional API key — and your project name, writes credentials to ~/.arize/harness/config.json, copies the hook shim into ~/.omp/extensions/arize-tracing.ts, and registers the shim’s absolute path in the extensions array of ~/.omp/agent/settings.json. omp does not auto-discover an extensions directory, so this explicit registration is required — the installer handles it for you. Open a new omp session after install so the extension loads.

Configuration

Credentials live in ~/.arize/harness/config.json. Environment variables override values in config.json and can be set in your shell profile before launching omp.
See the main README’s Environment variables section for the full list of runtime overrides.

Redaction controls

Each ARIZE_LOG_* flag accepts "true" or "false" and defaults to "true". Set to "false" to opt out per category:

Observe

Once tracing is enabled, omp activity is streamed to Phoenix. There is one trace per agent run — a user prompt through the agent’s internal turn/tool-use loop to its final answer. Each trace is a tree:
  • Turn traces — the root span for each agent run, with the user prompt as input and the final assistant message as output
  • LLM spans — one per model call in the loop, with model name, provider, prompt/completion/reasoning token counts, cache read/write tokens, and cost
  • Tool spans — one per tool call, pairing the tool invocation with its result and recording name, input args, and output
  • Session grouping — all runs from the same session grouped by session.id
Token usage is captured directly on each LLM span — omp surfaces cumulative usage inline on assistant messages, so prompt, completion, reasoning, cache, and cost values are available on every model call.

Verifying tracing

Run any omp session as you normally would. omp loads the registered extension on startup and forwards lifecycle events to the hook.
  • Errors and handler stderr land in ~/.arize/harness/logs/omp.log. Set export ARIZE_VERBOSE=true before launching omp to also see routine handler activity.
  • Set export ARIZE_TRACE_DEBUG=true to dump the raw event payloads under ~/.arize/harness/state/debug/ for inspection.
  • Confirm spans appear in your configured project in Phoenix.

Reference

For the full list of environment variables, default file paths, and troubleshooting steps, see the omp tracing README.

Uninstall

Uninstall removes the shim’s path from the extensions array in ~/.omp/agent/settings.json, deletes the hook file at ~/.omp/extensions/arize-tracing.ts (only if it carries the Arize header marker, so your own extensions are left alone), and removes the harnesses.omp block from ~/.arize/harness/config.json.

Resources

Arize Coding Harness Tracing

OpenInference

Oh My Pi