Skip to main content

Runtime overview

Asymptote collects ChatGPT chat telemetry through the optional browser extension. Every turn on chatgpt.com becomes prompt and response events in the local runtime log, attributed to the chatgpt_web harness so it stays separate from Codex CLI and other agents. Both chatgpt.com and the older chat.openai.com host are covered. Support is in beta. The ChatGPT chat API is private and undocumented, so a change on the site can interrupt capture until the adapter is updated.

Prerequisites

  • The Beacon endpoint is installed and running, and the browser extension is loaded. See Browser Extension for both steps.
  • chatgpt.com is enabled in the extension’s options page. It is enabled by default.

Collection path

The extension’s main-world interceptor tees the streamed response from the message-send endpoint, POST /backend-api/f/conversation. The ChatGPT adapter reads the site’s delta_encoding: v1 Server-Sent Event stream, where each frame patches a running document rather than carrying a finished message, and rebuilds one turn from it: Only the visible assistant message is tracked. Tool and aside messages addressed to another recipient are skipped, so the recorded response is what the user saw. The service worker then posts the turn to the local collector as OTLP GenAI logs. Events carry harness.collection_method of otlp. A turn whose stream is cut off before completion is still delivered, recorded as agent.response rather than agent.response.completed.

Events

One ChatGPT turn produces: Turns from one conversation share a session id, so a conversation reads as a session in the dashboard even though the site sends no session start or stop signal.

Telemetry coverage

Token usage is the main difference from Claude.ai, which does report counts. Reports that roll up token usage will show ChatGPT web turns with no token attribution.

Confirm it is working

Send one message on chatgpt.com, then look for the event:
To read the most recent one:
On a system-mode install the log lives at /var/log/beacon-agent/runtime.jsonl instead, and reading it needs sudo. If nothing arrives, work through the troubleshooting steps on the extension page.

Limits

  • The stream format is private. The adapter is written defensively and degrades to a partial turn rather than failing, but a site change can still stop capture until the adapter is updated.
  • Handed-off streams are not captured yet. ChatGPT sometimes moves a response to a separate resume endpoint instead of streaming it inline. Those turns are missed today; capturing them is a planned follow-up.
  • No token usage. Nothing in the stream carries token counts, and Asymptote does not estimate them.
  • Only the chat stream is read. Uploaded files, canvas documents, and content rendered outside the stream are not captured.
  • Retention defaults to full. Prompt and response text is retained unless you change the mode in the extension’s popup. See retained content.

Browser Extension

Install, configure, and verify the extension.

Claude.ai

The other supported browser chat surface.

Supported agent harnesses

Return to the runtime support overview.

Retention and redaction

How retained content is handled once it reaches the endpoint.