Skip to content

Transports

The client supports two transport implementations:

Stdio transport

Factory via CodexClient.connect_stdio(...):

CodexClient.connect_stdio(
    command=["codex", "app-server"],
    cwd=None,
    env=None,
)

Defaults:

  • command: codex app-server
  • can be overridden with CODEX_APP_SERVER_CMD

Websocket transport

Factory via CodexClient.connect_websocket(...):

CodexClient.connect_websocket(
    url="ws://127.0.0.1:8765",
    token=None,
    headers=None,
)

Defaults:

  • URL: CODEX_APP_SERVER_WS_URL or ws://127.0.0.1:8765
  • token: optional CODEX_APP_SERVER_TOKEN
  • compression: disabled by default (None) in the transport implementation

Lifecycle

Preferred pattern:

async with CodexClient.connect_stdio() as client:
    ...

Equivalent manual pattern:

client = CodexClient.connect_stdio()
await client.start()
try:
    ...
finally:
    await client.close()