mirror of
https://github.com/openai/codex.git
synced 2026-04-29 17:06:51 +00:00
To improve performance of UI loads from the app, add two main improvements: 1. The `thread/list` api now gets a `sortDirection` request field and a `backwardsCursor` to the response, which lets you paginate forwards and backwards from a window. This lets you fetch the first few items to display immediately while you paginate to fill in history, then can paginate "backwards" on future loads to catch up with any changes since the last UI load without a full reload of the entire data set. 2. Added a new `thread/turns/list` api which also has sortDirection and backwardsCursor for the same behavior as `thread/list`, allowing you the same small-fetch for immediate display followed by background fill-in and resync catchup.
WARNING: this code is mainly generated by Codex and should not be used in production
codex-debug-client
A tiny interactive client for codex app-server (protocol v2 only). It prints
all JSON-RPC lines from the server and lets you send new turns as you type.
Usage
Start the app-server client (it will spawn codex app-server itself):
cargo run -p codex-debug-client -- \
--codex-bin codex \
--approval-policy on-request \
--output-file /tmp/app-server-server-json.jsonl
You can resume a specific thread:
cargo run -p codex-debug-client -- --thread-id thr_123
CLI flags
--codex-bin <path>: path to thecodexbinary (default:codex).-c, --config key=value: pass through--configoverrides tocodex.--thread-id <id>: resume a thread instead of starting a new one.--approval-policy <policy>:untrusted,on-failure(deprecated),on-request,never.--auto-approve: auto-approve command/file-change approvals (default: decline).--final-only: only show completed assistant messages and tool items.--output-file <path>: write raw server JSONL to this file instead of stdout.--model <name>: optional model override for thread start/resume.--model-provider <name>: optional provider override.--cwd <path>: optional working directory override.
Interactive commands
Type a line to send it as a new turn. Commands are prefixed with ::
:helpshow help:newstart a new thread:resume <thread-id>resume a thread:use <thread-id>switch active thread without resuming:refresh-threadlist available threads:quitexit
The prompt shows the active thread id. Client messages (help, errors, approvals)
print to stderr; raw server JSON prints to stdout so you can pipe/record it
unless --final-only is set. Pass --output-file <path> to record raw server
JSONL to a file instead of stdout.
Notes
- The client performs the required initialize/initialized handshake.
- It prints every server notification and response line as it arrives.
- Approvals for
item/commandExecution/requestApprovalanditem/fileChange/requestApprovalare auto-responded to with decline unless--auto-approveis set.