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 ``` You can resume a specific thread: ``` cargo run -p codex-debug-client -- --thread-id thr_123 ``` ### CLI flags - `--codex-bin `: path to the `codex` binary (default: `codex`). - `-c, --config key=value`: pass through `--config` overrides to `codex`. - `--thread-id `: resume a thread instead of starting a new one. - `--approval-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. - `--model `: optional model override for thread start/resume. - `--model-provider `: optional provider override. - `--cwd `: optional working directory override. ## Interactive commands Type a line to send it as a new turn. Commands are prefixed with `:`: - `:help` show help - `:new` start a new thread - `:resume ` resume a thread - `:use ` switch active thread without resuming - `:refresh-thread` list available threads - `:quit` exit 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. ## Notes - The client performs the required initialize/initialized handshake. - It prints every server notification and response line as it arrives. - Approvals for `item/commandExecution/requestApproval` and `item/fileChange/requestApproval` are auto-responded to with decline unless `--auto-approve` is set.