New Features
- Open
/configto search preferences across categories, change supported settings immediately, and see which changes require a restart. (#52990, [#53429]) - Send a follow-up while Codex is responding to steer it immediately. Interrupting a turn also stops active Code Mode cells and their nested tool calls. (#51812, [#51835])
- Configure a leader key in
/keymap. The default isCtrl+X, shortcut hints stay open until you choose or cancel, and voice mute moves toF9. (#52273) - Restart a managed background server from
/daemon. Codex warns about work the restart could interrupt, then reconnects automatically. (#53173) - Codex can run independent read-only tools in parallel, including skill, memory, and conversation-history lookups. (#52245)
- Daybreak is enabled by default for eligible accounts.
codex execcan also select it with an OpenAI API key when the server offers access. (#53701, [#53717])
Bug Fixes
- Resuming a saved thread restores its permissions and network approvals, while respecting explicit overrides and current managed policy. (#53150, [#53419], [#53424])
- The network proxy now checks permission before a DNS lookup, rejects duplicate
Hostheaders, and prevents credential aliases from bypassing inspection hooks. (#51650, [#52661], [#53506]) - Return to an existing side conversation with
/sideafter switching threads. Answers to pending prompts also go back to the thread that asked. (#52184, [#53436]) - On Windows,
Ctrl+VandShift+Insertpaste text as well as images. On WSL, repeated pastes reuse the clipboard reader, and copy attempts time out instead of hanging. (#53224, [#52967], [#53453]) - Local commands finish promptly when a child keeps an output pipe open. Remote commands preserve late-arriving output so the final poll can still collect it. (#52652, [#53331], [#53622])
codex execno longer prints the same file diff again after an unrelated command. (#53444)
Documentation
- Updated the bundled OpenAI Docs guidance for migrations to the GPT-6 family, including model-specific reasoning, tool use, and data residency considerations. (#51768)
- Clarified how the Linux sandbox uses bubblewrap for filesystem isolation and seccomp for syscall filtering. (#52610)
Chores
- Codex now uses its standard shell executor and no longer bundles a patched
zsh. Configurations using the retired shell flags receive a migration notice. (#52160, [#52213]) - Reduced Linux and macOS release package size by stripping symbols from packaged binaries while preserving them in the original build outputs. (#52178)
Changelog
Full Changelog: https://github.com/openai/codex/compare/rust-v0.162.0...rust-v0.163.0
- [#51539] Add completion-aware realtime attachment and session-scoped detach @zahan-oai
- [#51547] Add a Windows MXC sandbox opt-out @iceweasel-oai
- [#51556] Complete dynamic tool lifecycles on cancellation @mikelam-oai
- [#51575] Expose package assembly helpers and support gzip DotSlash artifacts @bolinfest
- [#51595] Add thread ID exclusions to
thread/list@btraut-openai - [#51602] Distinguish thread listing failures from exhausted history @btraut-openai
- [#51611] Signal abandonment of unanswered MCP elicitations @nicksteele-oai
- [#51627] Stabilize Guardian snapshot prefixes by separating assistant context @jif-oai
- [#51642] Fix retained context handling for typed section content @jif-oai
- [#51650] Require hostname authorization before proxy DNS lookups @jif-oai
- [#51651] Persist Guardian review failures for reports across restarts @jif-oai
- [#51652] Record telemetry for AGENTS.md changes made by apply_patch @jif-oai
- [#51678] Move Windows sandbox tests into a dedicated integration binary @jif-oai
- [#51683] Roll back stale Guardian reviews before reusing reviewer history @olliem-oai
- [#51689] Wait for helper completion in HTTP header cancellation tests @jif-oai
- [#51690] Add a feature flag for Code Mode tool description ordering @swastik-oai
- [#51704] Honor tool-description-first ordering in Code Mode @swastik-oai
- [#51710] Fix a discovery race in the external auth refresh test @jgershen-oai
- [#51734] Load persisted sender context for Guardian reviews @jif-oai
- [#51755] Reuse MCP handler metadata for cache comparisons @owenlin0
- [#51761] Reduce tool metadata cloning in the code-mode runtime @akira-oai
- [#51768] Expand OpenAI Docs migration guidance to the GPT-6 model family @kkahadze-oai
- [#51775] Prevent recursive Tokio tracing in telemetry and SQLite logs @zbarsky-openai
- [#51786] Preserve sandbox overrides across execution requests @iceweasel-oai
- [#51794] Advertise Ultrafast for GPT-6.1 Sol on Amazon Bedrock @celia-oai
- [#51800] Remove duplicate field initializers in extension registry tests @anp-oai
- [#51808] Preserve diagnostic reasons for MCP user verification failures @berkdeniz-oai
- [#51812] Enable instant interrupts by default @pakrym-oai
- [#51819] Migrate the MXC sandbox to the 1.0.0 SDK @iceweasel-oai
- [#51822] Avoid sharing violations when repairing Windows runtime ACLs @johnl-oai
- [#51823] Share MCP binding tool metadata with prepared calls @owenlin0
- [#51828] Add policy-based file contents integrity checks @iceweasel-oai
- [#51831] Add MXC sandbox integrity dependency and policy preparation @iceweasel-oai
- [#51835] Enable code mode interruption by default @won-openai
- [#51840] Add a bubblewrap backend for sandbox integrity checks @iceweasel-oai
- [#51841] Add a macOS Seatbelt backend for sandbox integrity @iceweasel-oai
- [#51842] Add a sandbox integrity runner with outcome and timing metrics @iceweasel-oai
- [#51843] Run sandbox integrity checks before commands and filesystem operations @iceweasel-oai
- [#51847] Preserve Cargo package names in Bazel Rust builds @dkovalenko-oai
- [#51848] Align Bazel release builds with Cargo and fix platform compatibility @dkovalenko-oai
- [#51849] Fix package smoke tests for Cargo and Bazel debug symbols @dkovalenko-oai
- [#51850] Add Bazel release staging archives @dkovalenko-oai
- [#51855] Add Bazel support to the Codex package build action @dkovalenko-oai
- [#51856] Build Bazel release artifacts alongside Cargo artifacts @dkovalenko-oai
- [#51857] Add an app-server prompt prefix compatibility test @jif-oai
- [#51865] Use readable plugin mentions without suppressing same-name skills @canvrno-oai
- [#51866] Preserve line breaks and links in multiline async questions @pash-openai
- [#51868] Record tool registration metrics for each sampling request @akira-oai
- [#51872] Keep global app-server config independent of the launch directory @etraut-openai
- [#51884] Add experimental prediction forks that inherit parent context @liame-oai
- [#51890] Add the missing
mxc-sdkUTF-8 resource patch for Bazel @iceweasel-oai - [#51892] Preserve tool call completeness when recorded arguments are truncated @ningyi-oai
- [#51893] Record metrics for incremental tool updates @akira-oai
- [#51895] Report specific reasons for WebSocket continuation failures @pakrym-oai
- [#51896] Preserve native errors in Windows sandbox ACL diagnostics @alishobeiri-oai
- [#51897] Use a dedicated matcher for network domain policies @rafael-oai
- [#51908] Honor the user input setting for asynchronous questions @mandal-OAI
- [#51930] Support model-specific function description prefixes @tz-openai
- [#51963] Attribute compaction analytics to the correct voice session @reia-oai
- [#51974] Log Windows sandbox availability and backend selection @iceweasel-oai
- [#52034] Preserve agent state when unloading idle multi-agent v2 children @jif-oai
- [#52040] Add regression coverage for cancelled agent reloads @jif-oai
- [#52048] Cover instant interruption in steered-input persistence tests @jif-oai
- [#52061] Run Guardian conversation classifiers concurrently and preserve action order @felixxia-oai
- [#52062] Add scenario coverage for worker context across idle eviction @jif-oai
- [#52065] Require assessment text in the Guardian parser @ioanbudea-OAI
- [#52081] Fix idle cleanup for disconnected multi-agent v2 children @jif-oai
- [#52119] Expose originating tool call metadata in command environments @leo-oai
- [#52160] Remove the patched zsh shell execution backend @jif-oai
- [#52164] Make environment context date and timezone configurable @surajs-oai
- [#52176] Show AWS GovCloud guidance at startup and remember acknowledgment @jackz100
- [#52177] Set a User-Agent for package archive downloads @bolinfest
- [#52178] Strip symbols from source-built release package binaries @bolinfest
- [#52182] Expose a verified sandbox launcher to local MCP servers @bolinfest
- [#52183] Add optional descriptions to agent message board channels @jif-oai
- [#52184] Preserve side conversations across thread navigation @etraut-openai
- [#52193] Enforce managed MXC requirements on Windows @iceweasel-oai
- [#52195] Track source attribution for individual context parts @tz-openai
- [#52200] Allow plugin toggles while searching and preserve filters on refresh @fcoury-oai
- [#52203] Expose Codex lifecycle status in iTerm2 sessions @fcoury-oai
- [#52213] Stop bundling patched zsh in Codex packages @jif-oai
- [#52215] Enforce application network policy in standalone MCP commands @lsingh-oai
- [#52220] Add configurable default plugin activation policy @stevenlee-oai
- [#52223] Enforce application network policy for daemon updates @jackz100
- [#52225] Fix config rebuild call in the Windows MXC preference test @virajrai-oai
- [#52226] Include foreground activity in iTerm2 session status @fcoury-oai
- [#52228] Honor API-key feature gates in TUI Daybreak selection @julee-oai
- [#52234] Support request IDs in exec-server WebSocket handshakes @mattj-openai
- [#52235] Recover gRPC code-mode sessions after missing-session errors @surajs-oai
- [#52241] Preserve subagent capabilities independently of forked history @anp-oai
- [#52245] Enable parallel execution for read-only tools @zamoshchin-openai
- [#52250] Add opt-in Guardian trust for orchestrator connector identities @ankushg
- [#52256] Normalize formatting in docs, web assets, and sample scripts @anp-oai
- [#52268] Preserve large arguments in executed tool call metadata @ningyi-oai
- [#52270] Enable text selection in the fullscreen TUI footer @fcoury-oai
- [#52273] Add configurable persistent leader shortcuts to the TUI @fcoury-oai
- [#52274] Add structured tracing for Guardian reviews and background scoring @ioanbudea-OAI
- [#52277] Preserve UTF-8 byte semantics in network domain matching @rafael-oai
- [#52278] Honor custom OTLP metrics exporters when analytics is disabled @jackz100
- [#52288] Remove duplicate field initializers from extension registry tests @anp-oai
- [#52295] Emit one developer notice per incremental namespace update batch @akira-oai
- [#52299] Make Bazel release jobs advisory @anp-oai
- [#52302] Add opt-in credential masking for proxied sandboxed sessions @winston-openai
- [#52304] Persist remote-control RPC preferences in managed daemon settings @etraut-openai
- [#52325] Track history initialization in Responses turn metadata @anp-oai
- [#52329] Remove per-content source attribution metadata @anp-oai
- [#52330] Clamp wrapped source ranges before remapping terminal hyperlinks @bc-openai
- [#52337] Add durable thread read state with revision-checked updates @btraut-openai
- [#52350] Expose experimental durable thread read state in the app server @btraut-openai
- [#52363] Expand realtime v3 voice support @jacksonmoody-oai
- [#52381] Preserve per-session routing for gRPC code mode @cassirer-openai
- [#52384] Notify subscribers when thread read state changes @btraut-openai
- [#52395] Add experimental app-server thread read-state updates @btraut-openai
- [#52418] Avoid an extra blank quote line when pasting text with a trailing newline @bc-openai
- [#52535] Add opt-in history prefix preservation for full agent forks @jif-oai
- [#52557] Forward clipboard copies to the terminal in Herdr sessions @fcoury-oai
- [#52568] Expose message board permissions and structured denials @jif-oai
- [#52591] Fix races in remote environment and session replacement tests @jif-oai
- [#52608] Upgrade
hyperto 1.11.1 and test connection closure @jif-oai - [#52610] Align Linux sandbox names and docs with bubblewrap and seccomp @bolinfest
- [#52621] Add template setup for local agent message boards @jif-oai
- [#52629] Consolidate local message board storage helpers @jif-oai
- [#52635] Skip background workspace routing reads without ChatGPT auth @joesavona
- [#52637] Add experimental thread item lookup by ID @btraut-openai
- [#52640] Count interrupted goal continuations toward the no-activity limit @etraut-openai
- [#52648] Limit daemon feature compatibility checks to explicit CLI overrides @etraut-openai
- [#52652] Bound local exec-server output draining after process exit @jif-oai
- [#52659] Add an opt-in feature for subagent model context defaults @hlevy-openai
- [#52660] Handle completion events in either order in shell snapshot tests @jif-oai
- [#52661] Prevent brokered credential aliases from bypassing MITM hooks @viyatb-oai
- [#52671] Add retention annotations to submitted tool outputs @won-openai
- [#52674] Move the exec-server test fixture into shared test support @anp-oai
- [#52676] Refresh persisted capability roots from owner-provided configuration @teddywyly-oai
- [#52679] Add timeout-aware exec-server configuration reads @hlevy-openai
- [#52681] Reject reserved Serde JSON keys in code mode @cassirer-openai
- [#52682] Validate Windows sandbox accounts before password repair @zm-oai
- [#52685] Preserve code mode cancellation during output serialization @cassirer-openai
- [#52686] Add opt-in retention for turn tool outputs @won-openai
- [#52689] Forward per-turn Cyber access programs to Guardian @daneschneider-oai
- [#52696] Fix marketplace path matching for Windows junctions @zm-oai
- [#52700] Update the exec-server stable compatibility baseline to Codex 0.162.1 @iceweasel-oai
- [#52702] Retry bootstrap GETs through the system proxy after request failures @abhinav-oai
- [#52707] Migrate the Windows MXC sandbox to split MXC crates @iceweasel-oai
- [#52721] Explain session creation failures during server shutdown @etraut-openai
- [#52723] Add opt-in gRPC over stdio for the code-mode host @cconger
- [#52724] Add observers for initial exec-server connection attempts @aaronl-openai
- [#52725] Report terminal program status with OSC 7501 @fcoury-oai
- [#52736] Allow model catalogs to override incremental tool notices @akira-oai
- [#52742] Add opt-in output token replay for OpenAI requests @pakrym-oai
- [#52748] Make code-mode
exit()stop the entire cell @cconger - [#52756] Classify voice session failures and record terminal outcomes @bc-openai
- [#52778] Make pinned transcript prompts clickable @fcoury-oai
- [#52825] Report exec runtime resets before accepting further requests @JenZhao
- [#52923] Stabilize the realtime steering timeline test @anp-oai
- [#52937] Retain client-marked tool outputs across compaction @won-openai
- [#52946] Keep agent command center rows stable across progress updates @fcoury-oai
- [#52952] Verify reset notification during code-mode host recovery @etraut-openai
- [#52959] Reduce stack usage in async TUI tests @jif-oai
- [#52964] Defer owned transcript redraws during raw paste bursts @etraut-openai
- [#52967] Reuse and prewarm the WSL clipboard text reader @etraut-openai
- [#52968] Keep startup modals protected when terminal input draining times out @etraut-openai
- [#52972] Upgrade
rmcpto3.5.1and harden lifecycle tests @alishobeiri-oai - [#52990] Add a searchable
/configpreferences panel to the TUI @fcoury-oai - [#53049] Add connection-bound reply handles for app-server requests @bc-openai
- [#53109] Handle broken pipes gracefully in plugin list output @fcoury-oai
- [#53148] Fix startup draft recovery for pending Vim Replace keys @etraut-openai
- [#53150] Restore thread-owned permissions on cold resume @etraut-openai
- [#53152] Allow selecting and copying TUI turn tips @etraut-openai
- [#53153] Show subagent navigation shortcuts in TUI help @etraut-openai
- [#53155] Keep remote app-server events deliverable during shutdown @etraut-openai
- [#53156] Simplify the custom terminal drawing API @bc-openai
- [#53173] Allow restarting managed background servers from the TUI @etraut-openai
- [#53201] Keep agents navigation available after a thread is archived @etraut-openai
- [#53224] Support Windows clipboard text paste shortcuts in the TUI @etraut-openai
- [#53331] Finish remote exec cleanup when output streams remain open @jif-oai
- [#53339] Test final polling of remote processes with open output streams @jif-oai
- [#53358] Remove selected protocol, apply-patch, MCP, and TUI tests @vb-openai
- [#53369] Allow turns when the agent message board is unavailable @jif-oai
- [#53382] Ignore the unsafe-libyaml advisory in dependency audits @swastik-oai
- [#53389] Use cached login credentials for Guardian decisions @swastik-oai
- [#53393] Distinguish Guardian parent-compaction failure reasons @ioanbudea-OAI
- [#53400] Add explicit local board connections with fixed runtime access @jif-oai
- [#53412] Isolate arg0 helper directories by operating system @jif-oai
- [#53419] Restore saved thread permissions during configuration loading @jif-oai
- [#53424] Add regression coverage for network grants on cold thread resume @jif-oai
- [#53426] Preserve Windows runtime registration failure diagnostics @zm-oai
- [#53429] Apply configuration toggles live and improve settings navigation @fcoury-oai
- [#53436] Route TUI request replies to their originating connection and thread @bc-openai
- [#53438] Stop identifying Apple Terminal from
TERM_SESSION_ID@etraut-openai - [#53440] Preserve status line accents on 16-color terminals @etraut-openai
- [#53443] Use local MSVC toolchains for native Windows Bazel tests @etraut-openai
- [#53444] Suppress repeated turn diffs in
codex exechuman output @fcoury-oai - [#53451] Treat incomplete responses as terminal errors @jif-oai
- [#53452] Close input admission while a turn finishes recording @etraut-openai
- [#53453] Prefer the Windows clipboard and bound copy attempts on WSL @etraut-openai
- [#53485] Update
quinn-prototo 0.11.18 @smurching-oai - [#53496] Preserve pending Effects toggles across save refreshes @fcoury-oai
- [#53506] Reject duplicate Host headers in the network proxy @jfoo-oai
- [#53556] Deduplicate TUI modifier handling and terminal color caching @bc-openai
- [#53595] Add async compaction feature configuration @rka-oai
- [#53606] Prepare compaction helpers for background requests @rka-oai
- [#53614] Add infrastructure for speculative remote V2 compaction @rka-oai
- [#53617] Allow hiding native tools while retaining the multi-agent V2 runtime @jif-oai
- [#53620] Reuse background results for remote V2 compaction @rka-oai
- [#53622] Preserve remote exec output until it is collected @jif-oai
- [#53628] Record truncation metrics for accepted Guardian review inputs @ioanbudea-OAI
- [#53631] Materialize the thread before testing a discovered daemon restart @jif-oai
- [#53632] Stabilize write ordering in the shared message board scenario @jif-oai
- [#53633] Add an environment API key fallback for Guardian Decisions @swastik-oai
- [#53654] Keep spawned children provisional until the spawn result returns @jif-oai
- [#53657] Share hook configuration across cloned hook views @jif-oai
- [#53660] Extract shared multi-agent v2 thread spawning @jif-oai
- [#53668] Improve remote exec-server test startup diagnostics @jif-oai
- [#53670] Account for token usage from incomplete responses @jif-oai
- [#53672] Keep discovered Apps tools available during startup recovery @jif-oai
- [#53673] Publish Rust releases with the GitHub CLI @jif-oai
- [#53678] Preserve inherited context in prediction forks @keyz
- [#53689] Constrain API-key model access programs to server support @julee-oai
- [#53691] Account for replay caches in encrypted compaction budgets @ioanbudea-OAI
- [#53693] Add keyboard selection support to the transcript view @fcoury-oai
- [#53698] Interrupt and drain canceled classifier responses before socket reuse @felixxia-oai
- [#53699] Cancel Guardian V2 classifications that exceed the tool-call lag window @felixxia-oai
- [#53701] Enable CLI Daybreak by default and enforce background-turn eligibility @julee-oai
- [#53706] Preserve URLs and email addresses during external agent migration @jif-oai
- [#53709] Separate MCP sandbox policy from launcher metadata @bolinfest
- [#53717] Enable Cyber access programs for API-key sessions by default @julee-oai
- [#53723] Wire V2 capability discovery through exec-server RPC @TAFOYA-OAI