Skip to content

Capture a Codex session

Launch the Codex CLI under the capture proxy, or capture the self-launching ChatGPT desktop app through lifecycle hooks.

Codex comes in two shapes, and they use different capture lanes. The terminal CLI is launched by the client, like Claude Code. The ChatGPT desktop app launches itself, so the client cannot wrap it — it is captured through lifecycle hooks instead.

A running server and an installed client, as on the installation page:

Terminal window
tapes local up
tapes serve

Codex brings its own provider credentials; capture does not touch them.

Launch it through the client:

Terminal window
tapesctl start codex

Work the session, exit, and the captured turns are on the server:

Terminal window
tapesctl sessions list

Capture defaults to the ingest API on http://localhost:8082 and reads default to the read API on http://localhost:8081. For a server elsewhere, set them once with tapesctl config set ingest-url <url> and tapesctl config set api-url <url>.

The app launches itself, so the lane inverts: install the plugin once, then run a capture window and start a session in the app.

Terminal window
tapesctl plugin install codex-app
tapesctl capture codex-app

plugin install codex-app writes the handoff file and points the app’s Codex configuration at the capture address; capture reads that handoff and binds it. Running capture first fails and tells you to install.

To undo the wiring, tapesctl plugin uninstall codex-app removes the provider entry and the handoff. The plugin stays registered with Codex; the command prints the codex plugin remove line that finishes the job.