Added documentation for using Codex from the ChatGPT mobile app, including setup steps, connected-host behavior, security requirements, and troubleshooting for common connection issues.
Codex changelog
Latest updates to Codex, OpenAI’s coding agent
May 2026
-
Codex mobile documentation
-
Expanded Auto-review documentation
Added a dedicated Auto-review page covering the reviewer lifecycle, trigger conditions, failure behavior, and local or managed configuration.
Also updated the Agent approvals & security and Sandbox docs so they explain more clearly how Auto-review relates to the sandbox boundary.
-
Codex CLI 0.130.0
$ npm install -g @openai/codex@0.130.0View details
New Features
- Plugin details now show bundled hooks, and plugin sharing exposes link metadata plus discoverability controls. (#21447, #21495, #21637)
- Added
codex remote-controlas a simpler entrypoint for starting a headless, remotely controllable app-server. (#21424) - App-server clients can page large threads with unloaded, summary, or full turn item views. (#21566)
- Bedrock auth can now use AWS console-login credentials from
aws loginprofiles. (#21623) view_imagecan resolve files through the selected environment for multi-environment sessions. (#21143)
Bug Fixes
- Live app-server threads now pick up config changes without requiring a restart. (#21187)
- Turn diffs stay accurate across apply-patch operations, including partial failures that still mutated files. (#21180, #21518)
- Thread summaries, renames, resume, and fork paths work better through
ThreadStore, including threads without local rollout paths. (#21264, #21265, #21266) - Remote compaction now emits
response.processedfor v2 streams and avoids sendingservice_tieron API-key compact requests. (#21642, #21676) - Windows sandbox setup now grants sandbox users access to the desktop runtime binary cache. (#21564)
- Removed stale “research preview” wording from the
codex execstartup banner. (#21683)
Documentation
- Fixed issue templates so CLI reports keep the intended guidance, labels apply correctly, and feature requests link to the right contributing docs. (#21685, #21686, #21688)
- Updated install and tooling docs to consistently use
cargo install --locked. (#21592)
Chores
- Added a faster Cargo profiling build profile and disabled empty doctest targets to speed up Rust development loops. (#21574, #21584)
- Hardened dependency and CI hygiene with fully qualified GitHub Action pins, a Dependabot cooldown, and a
cargo-shearupgrade. (#21436, #21547, #21599) - Simplified internal surfaces by removing unused device-key APIs, extra skills roots, the remote thread-store implementation, and string-keyed MCP tool maps. (#21487, #21485, #21596, #21454)
- Added configurable OpenTelemetry trace metadata and richer review/feedback analytics for better debugging and triage. (#21556, #18747, #21434, #21498)
Changelog
Full Changelog: rust-v0.129.0...rust-v0.130.0
- #21494 [codex] fix PluginListParams test initializer @xli-oai
- #21447 Show plugin hooks in plugin details @abhinav-oai
- #21356 feat: make built-in MCPs first-class runtime servers @jif-oai
- #21180 Make turn diff tracking operation backed @jif-oai
- #21498 [codex] add account id to feedback uploads @pakrym-oai
- #21487 device-key: clean up unused crate @euroelessar
- #21518 fix: preserve exact turn diffs after partial apply_patch failures @jif-oai
- #18747 [codex-analytics] add tool review event schema @rhan-oai
- #21495 feat: Expose plugin share metadata in shareContext @xl-openai
- #21454 [codex] Remove string-keyed MCP tool maps @pakrym-oai
- #21424 add top-level remote-control command @owenlin0
- #21187 app-server: refresh live threads from latest config snapshot @jif-oai
- #21461 [codex] Move tool specs onto handlers @pakrym-oai
- #21547 Upgrade
cargo-shearto 1.11.2 @charliemarsh-oai - #21264 Move thread name edits to ThreadStore @wiltzius-openai
- #21266 [codex] Fix pathless thread summaries @wiltzius-openai
- #21265 Route ThreadManager rollout path reads through thread store @wiltzius-openai
- #21564 Grant sandbox users access to desktop runtime bin @iceweasel-oai
- #21582 Use descriptive names for Cargo profile options @zanie-oai
- #21574 Add a Cargo build profile for benchmarking @zanie-oai
- #21436 [codex] Fully qualify hash-pins in GitHub Actions @ww-oai
- #21592 Ensure all mentions of cargo-install are --locked @gankra-oai
- #21584 Disable empty Cargo test targets @charliemarsh-oai
- #21566 feat(app-server, threadstore): Thread pagination APIs and ThreadStore contract @owenlin0
- #21556 codex-otel: add configurable trace metadata @bbrown-oai
- #21599 [codex] Apply a Dependabot cooldown of 7 days @ww-oai
- #21602 Use
--lockedin cargo build and lint invocations @zanie-oai - #20664 Add stdio exec-server client transport @starr-openai
- #21596 [codex] Remove remote thread store implementation @wiltzius-openai
- #20665 Make environment providers own default selection @starr-openai
- #21143 Route view_image through selected environments @starr-openai
- #20666 Add CODEX_HOME environments TOML provider @starr-openai
- #21642 Send response.processed after remote compaction v2 @pakrym-oai
- #21646 Revert "Use
--lockedin cargo build and lint invocations" @pakrym-oai - #21434 [codex-analytics] plumb protocol-native review timing @rhan-oai
- #21485 Remove skills list extra roots @xli-oai
- #21623 feat: enable AWS login credentials for Bedrock auth @celia-oai
- #21637 feat: Update plugin share settings with discoverability @xl-openai
- #21685 Fix duplicate CLI issue template description @etraut-openai
- #21686 Fix issue template labels @etraut-openai
- #21688 Fix feature request Contributing link @etraut-openai
- #21683 Remove exec research preview banner wording @etraut-openai
- #21676 Omit service_tier from remote /responses/compact requests under API auth @aibrahim-oai
-
Codex for Chrome
With the new extension for Chrome, Codex is even better at working with apps and websites in your browser. It works in parallel across tabs in the background without taking over your browser, and you stay in control of which websites Codex can use.
Learn more in the Codex Chrome extension documentation.
-
Codex CLI 0.129.0
$ npm install -g @openai/codex@0.129.0View details
New Features
- The TUI now supports modal Vim editing in the composer, including
/vim, default-mode config, and Vim-specific keymap contexts. (#18595) - TUI workflows are easier to resume and copy from with a redesigned resume/fork picker, raw scrollback mode,
/idecontext injection, and workspace-aware/diff. (#20065, #20819, #20294, #21001) - The status line can show theme-aware colors plus optional PR and branch-change summaries, and
/keymap debughelps inspect terminal key events. (#19631, #20892, #20794) - Plugin management now supports workspace sharing, share access controls, source filtering, local share path tracking, marketplace removal/upgrades, remote bundle sync, and admin-disabled status handling. (#20278, #21124, #21419, #20560, #19843, #20478, #20268, #20298)
- Hooks can be browsed and toggled from
/hooks, can run before/after compaction, and can addPreToolUsecontext; Codex Apps auth and eligible MCP elicitations now surface through TUI/Guardian flows. (#19882, #19905, #20692, #19193, #19431) - Experimental goals are now discoverable, stay paused across resume unless the user opts back in, and show clearer validation and multi-day duration output. (#20083, #20790, #20746, #20558)
Bug Fixes
/copyworks better in tmux, Alt+Enter and modified Delete/Backspace keys behave correctly, and Windows typing/paste latency was reduced. (#20207, #20535, #21058, #18914)- Large paste placeholders and Ctrl+C-stashed drafts now survive clear/editor workflows without corrupting draft history. (#21091, #21190, #21351, #21397)
- TUI startup and accessibility were tightened by bounding terminal probes, clearing the first inline viewport render, and honoring
animations = falsefor live rows. (#20654, #21450, #20564) - Linux sandbox startup is more reliable across older
bwrap, slow mount probes, symlink-protected paths, and shared/tmpsetups. (#20628, #20111, #21127, #21234) - Windows sandbox and exec policy now handle named pipes, ConPTY teardown, PowerShell-wrapped allow rules, worktree
safe.directory, and unsafe Git options more reliably. (#20270, #20685, #20336, #21409, #21275) - Fixed custom CA login behind TLS-inspecting proxies, Bedrock runtime endpoint reporting, dangerous project config keys, heredoc redirect approval matching, and unbounded MCP/hook output growth. (#20676, #20275, #20098, #20113, #20260, #21069)
Documentation
- Updated the embedded OpenAI Docs sample skill so API-key setup guidance stays aligned with other docs variants. (#21263)
- Documented how generated git commit attribution is gated by
codex_git_commitand configured inconfig.toml. (#21379) - Removed local-only planning/spec docs and redirected config docs toward the maintained external documentation surface. (#20896)
Chores
- Linux releases now build, publish, bundle, and verify a standalone
bwrapfallback for npm and DotSlash installs. (#21255, #21256, #21257, #21312, #21285) - Vendored Bubblewrap was updated to 0.11.2, including upstream security changes around setuid support. (#21389)
- Windows Bazel CI now uses faster cross-compilation for tests, clippy, and release-build checks, and Bazel now runs sharded Rust integration tests. (#20585, #20701, #21057)
- App-server and protocol internals were split and slimmed down, including transport extraction, protocol module decomposition, thread/message history moves, and tool-handler cleanup. (#20324, #20325, #20348, #20545, #21251, #21278, #21395)
- Analytics and diagnostics coverage expanded for tool lifecycles, goals, plugin skills, thread sources, service tiers, and PR issue labeling. (#17089, #17090, #20799, #20923, #20949, #20969, #20893)
Changelog
Full Changelog: rust-v0.128.0...rust-v0.129.0
- #20278 feat: Add workspace plugin sharing APIs @xl-openai
- #20334 Make missing config clears no-ops @etraut-openai
- #20246 Gate multi-agent v2 tools independently of collab @jif-oai
- #20361 realtime: rename provider session ids @aibrahim-oai
- #20260 fix(core): truncate large mcp tool outputs in rollouts @owenlin0
- #20083 Mark goals feature as experimental @etraut-openai
- #19843 /plugins: remove marketplace @canvrno-oai
- #20458 [Extension] Allowlist Chrome Extension in the tool_suggest tool @teddywyly-oai
- #20324 Remove core protocol dependency [1/2] @etraut-openai
- #20299 Move item event mapping into app-server-protocol @pakrym-oai
- #20325 Remove core protocol dependency [2/2] @etraut-openai
- #20471 Stop emitting item/fileChange/outputDelta output delta notifications @pakrym-oai
- #20245 [Codex] Add browser use external feature flag @khoi-oai
- #19882 Add /hooks browser for lifecycle hooks @abhinav-oai
- #20275 fix: show correct Bedrock runtime endpoint in /status @celia-oai
- #20270 [codex] Fix elevated Windows sandbox named-pipe access @iceweasel-oai
- #20463 feat(rollouts): store EventMsg::ApplyPatchEnd in limited history mode @owenlin0
- #20101 install WFP filters for Windows sandbox setup @iceweasel-oai
- #20474 [plugin] Add Canva to suggesteable list. @mzeng-openai
- #20379 Send external import completion for sync imports @alexsong-oai
- #19280 [codex] Migrate thread turns list to thread store @wiltzius-openai
- #20348 Move plugin out of core. @xl-openai
- #19160 Make apply_patch streaming parser stateful @akshaynathan
- #20504 fix flaky test falls_back_to_registered_fallback_port_when_default_po… @owenlin0
- #20098 fix: ignore dangerous project-level config keys @owenlin0
- #20268 Sync remote installed plugin bundles @xli-oai
- #20502 fix(tui): set persist_extended_history: false @owenlin0
- #20069 Bypass review for always-allow MCP tools in auto-review @maja-openai
- #18595 feat(tui): add vim composer mode @fcoury-oai
- #20267 Emit analytics for remote plugin installs @xli-oai
- #20499 fix(app-server): mark thread/turns/list and exclude_turns as experime… @owenlin0
- #20522 Alias codex_hooks feature as hooks @abhinav-oai
- #20336 execpolicy: unwrap PowerShell -Command wrappers on Windows @iceweasel-oai
- #20113 fix(exec_policy) heredoc parsing file_redirect @dylan-hurd-oai
- #20341 app-server: switch remote control to protocol v3 segmentation @euroelessar
- #20300 [codex-analytics] centralize thread analytics state @rhan-oai
- #20484 [codex] Improve PR babysitter CI diagnostics and guardrails @wiltzius-openai
- #20298 Surface admin-disabled remote plugin status @xli-oai
- #20511 [codex] Remove unused event messages @pakrym-oai
- #19474 Make thread store process-scoped @wiltzius-openai
- #20558 Format multi-day goal durations in the TUI @etraut-openai
- #19631 Color TUI statusline from active theme @etraut-openai
- #20265 Refresh remote plugin cache on auth changes @xli-oai
- #20150 Add remote plugin skill read API @xli-oai
- #20560 feat: Track local paths for shared plugins @xl-openai
- #20600 chore: allow memories edition @jif-oai
- #20602 feat: ad-hoc instructions @jif-oai
- #20610 chore: improve remember prompt @jif-oai
- #20606 feat: seed ad-hoc memory extension instructions @jif-oai
- #20405 feat: export and replay effective config locks @jif-oai
- #20540 Move apply-patch file changes into turn items @pakrym-oai
- #20564 Enforce
animations = falsefor screen readers @etraut-openai - #20523 Remove no-tool goal continuation suppression @etraut-openai
- #20627 fix: cargo deny @jif-oai
- #20545 app-server: move transport into dedicated crate @euroelessar
- #20294 Add /ide context support to the TUI @etraut-openai
- #20630 [codex] Add Codex environment config @pakrym-oai
- #20524 deprecate legacy notify @abhinav-oai
- #20486 [codex] Migrate loaded thread/read history to ThreadStore @wiltzius-openai
- #20281 Use selected turn environments for runtime context @starr-openai
- #20535 fix(tui): restore alt-enter newline alias @fcoury-oai
- #20650 fix: reduce ConfigBuilder::build stack usage @jif-oai
- #20478 /plugins: add marketplace upgrade flow @canvrno-oai
- #20512 [codex] Emit image view as core item @pakrym-oai
- #20562 Use the 2025-06-18 elicitation capability shape @abhinav-oai
- #20674 Clear live hook rows when turns finalize @abhinav-oai
- #20646 Surface multi-environment choices in environment context @starr-openai
- #20542 Prune unused code-mode globals @cconger
- #20585 ci: cross-compile Windows Bazel tests @bolinfest
- #20701 ci: cross-compile Windows Bazel clippy @bolinfest
- #20676 Fix custom CA login behind TLS-inspecting proxies @jgershen-oai
- #20654 fix(tui): bound startup terminal probes @fcoury-oai
- #20566 [tool_suggest] More prompt polishes. @mzeng-openai
- #20751 Bound websocket request sends with idle timeout @pakrym-oai
- #20893 [codex] Add issue labeler area labels @etraut-openai
- #20896 Remove local docs and specs @etraut-openai
- #20897 [codex] Refactor app-server dispatch result flow @pakrym-oai
- #20677 [codex] Emit MCP tool calls as turn items @pakrym-oai
- #20973 feat: support template interpolation in multi-agent usage hints @jif-oai
- #20622 feat: memories mcp v1 @jif-oai
- #20773 feat: add remote compaction v2 Responses client path @jif-oai
- #20986 feat: add line offsets to memory read MCP @jif-oai
- #20991 feat: add max_lines to memories MCP read @jif-oai
- #20993 feat: paginate MCP memories list @jif-oai
- #20994 feat: make memories MCP list shallow @jif-oai
- #20996 feat: paginate memories MCP search results @jif-oai
- #20997 feat: add context lines to memories MCP search @jif-oai
- #20998 nit: renaming @jif-oai
- #21004 feat: support multi-query memories search @jif-oai
- #21006 nit: legacy @jif-oai
- #20815 Speed up /side parent restore replay @etraut-openai
- #20790 Keep paused goals paused on thread resume @etraut-openai
- #20940 [codex] Split app-server request processors @pakrym-oai
- #21023 typo @jif-oai
- #21012 memories/mcp: generate tool schemas with schemars @jif-oai
- #21010 memories-mcp: reject symlink traversal in local backend @jif-oai
- #20989 core: share responses request builder with compact requests @jif-oai
- #20853 [mcp-apps] Persist MCP Apps specific tool call end event. @mzeng-openai
- #20750 Unify skip-review handling for approval_mode = "approve" @mzeng-openai
- #20682 feat(app-server): always return limited thread history @owenlin0
- #20628 fix(linux-sandbox): fall back when system bwrap lacks perms @viyatb-oai
- #20794 feat(tui): add keymap debug inspector @fcoury-oai
- #21034 tui: retire /approvals and rename /autoreview to /approve @won-openai
- #20669 Prepare selected environment plumbing @starr-openai
- #20685 Fix Windows PTY teardown by preserving ConPTY ownership @iceweasel-oai
- #20663 Add stdio exec-server listener @starr-openai
- #20561 state: pass state db handles through consumers @euroelessar
- #21054 rollout: store web search and mcp tool calls @owenlin0
- #20892 feat(tui): add PR summary statusline items @fcoury-oai
- #20798 feat(tui): improve TUI keymap coverage @fcoury-oai
- #21053 Use MCP server instructions in deferred namespace descriptions @sayan-oai
- #21026 core: preserve last model ids in feedback tags @sayan-oai
- #21060 core: fix apply_patch request permissions test @bolinfest
- #20060 Add reasoning effort to turn tracing spans @charley-openai
- #21058 fix(tui): support modified backspace/delete keys @fcoury-oai
- #21057 bazel: run sharded rust integration tests @bolinfest
- #18914 fix(tui): use shared paste burst interval on Windows @fcoury-oai
- #20715 Make realtime sideband startup async @kmeelu-oai
- #20514 [codex-analytics] add item lifecycle timing @rhan-oai
- #20722 Remove remote plugin uninstall prefix gate @xli-oai
- #19040 [codex] Add unsandboxed process exec API @euroelessar
- #21105 [network-proxy] Cover DNS timeout blocking @evawong-oai
- #21059 Rename agent identity login surface to access token @shijie-oai
- #20576 codex: route metadata updates through ThreadStore @wiltzius-openai
- #20923 Add plugin ID to skill analytics @alexsong-oai
- #21122 Add turn_id to Codex skill invocation analytics @edwardysun3
- #20575 codex: migrate (more) app-server thread history reads to ThreadStore @wiltzius-openai
- #21069 Spill large hook outputs from context @abhinav-oai
- #20969 1- Add model service tiers metadata @aibrahim-oai
- #21170 tools: remove unused experimental
list_dirtool @jif-oai - #21201 memories-mcp: hide dot paths from list, read, and search @jif-oai
- #21204 feat: support windowed multi-query memory search @jif-oai
- #21205 feat: add normalized matching to memory search @jif-oai
- #20207 fix(tui): make /copy work inside tmux without passthrough @fcoury-oai
- #20799 Add goal lifecycle metrics @etraut-openai
- #20746 Validate /goal objective length in TUI @etraut-openai
- #20708 Add Windows sandbox readiness RPC @iceweasel-oai
- #20692 Support PreToolUse additionalContext @abhinav-oai
- #21091 [codex] Fix TUI large paste placeholder numbering after Ctrl+C @canvrno-oai
- #21089 [codex] Fix fork --last cwd filtering @canvrno-oai
- #21152 revert legacy notify deprecation @abhinav-oai
- #21190 fix(tui): external editor expansion for same-size large pastes @fcoury-oai
- #20111 fix(sandboxing): Bound advisory system bwrap startup probe @viyatb-oai
- #21220 chore: add minimal proxy egress diagnostics @viyatb-oai
- #20819 feat(tui): add raw scrollback mode @fcoury-oai
- #21225 app-server: ignore persist_extended_history param @owenlin0
- #17089 [codex-analytics] add tool item event schemas @rhan-oai
- #20647 Route process tools to selected environments @starr-openai
- #20321 hook trust metadata and enforcement @abhinav-oai
- #21221 [codex] Use shared app-server JSON-RPC error helpers @pakrym-oai
- #21063 add turn items view to app-server turns @rhan-oai
- #21001 feat(tui): route /diff through workspace commands @fcoury-oai
- #20065 feat(tui): redesign session picker @fcoury-oai
- #21127 fix(linux-sandbox): avoid panic on bwrap build failures @viyatb-oai
- #21234 fix(linux-sandbox): isolate Linux sandbox synthetic mount registry per user for shared codex use case @viyatb-oai
- #20687 [codex] Split tool handlers by tool name @pakrym-oai
- #21113 Auto-deny MCP elicitations for Xcode 26.4 clients @etraut-openai
- #21243 [codex] fix TUI turn items view fixtures @fcoury-oai
- #21146 Enable V8 sandboxing for source-built builds @cconger
- #20689 Inject state DB, agent graph store @rasmusrygaard
- #19575 Add cloud executor registration to exec-server @miz-openai
- #20577 codex: use ThreadStore history for core review forks @wiltzius-openai
- #21261 fix build @bolinfest
- #21251 chore(app-server-protocol): split v2 API definitions into modules @owenlin0
- #21259 ci: trigger rusty-v8 releases from tags @cconger
- #21255 linux-sandbox: use standalone bundled bwrap @bolinfest
- #21256 release: publish standalone bwrap artifacts @bolinfest
- #21260 [codex] Move thread naming to app server @pakrym-oai
- #21219 Add model and reasoning effort to MCP turn metadata @mchen-oai
- #21275 Share Git safe-command logic on Windows @iceweasel-oai
- #21257 release/npm: bundle standalone bwrap on Linux @bolinfest
- #21276 [codex] Remove unused ListModels op @pakrym-oai
- #21282 [codex] Remove legacy ListSkills op @pakrym-oai
- #21271 Expose plugin manifest keywords in app server @alfozan
- #20949 [codex-analytics] rework thread_source for thread analytics @rhan-oai
- #21124 feat: Add plugin share access controls @xl-openai
- #20724 app-server: align dynamic tool identifiers with Responses API @eternal-openai
- #21055 Preserve session MCP config on refresh @aaronl-openai
- #21277 [mcp] Return Accept early per feedback. @mzeng-openai
- #21285 fix(bwrap): emit libcap after standalone archive @viyatb-oai
- #21312 release: bundle bwrap with Linux codex DotSlash artifact @bolinfest
- #19193 Support Codex Apps auth elicitations @mzeng-openai
- #20437 feat: add
session_id@jif-oai - #21328 test: isolate app-server-client in-process test state @jif-oai
- #21329 feat: include thread ID in MCP turn metadata @jif-oai
- #21332 feat: return session ID from thread/fork @jif-oai
- #21337 Revert "feat: support template interpolation in multi-agent usage hints" @jif-oai
- #21249 Propagate cache key and service tiers in compact @aibrahim-oai
- #21182 Move installation ID resolution out of core startup @jif-oai
- #21214 chore: spawn MCP for memories @jif-oai
- #21336 feat(app-server): move v2
sessionIdontoThread@jif-oai - #21350 [codex] fix builtin MCP Windows path test @jif-oai
- #20971 2- Use string service tiers in session protocol @aibrahim-oai
- #21278 Move message history out of core @pakrym-oai
- #21284 [codex] Add response.processed websocket request @pakrym-oai
- #21367 rollout: coalesce thread updated_at touches @jif-oai
- #21378 feat: move auto vaccum @jif-oai
- #21263 [codex] Coordinate OpenAI docs sample with API key setup @mifan-oai
- #21351 fix(tui): keep Ctrl-C stashed drafts after /clear @fcoury-oai
- #21389 vendor: update bubblewrap to 0.11.2 @bolinfest
- #21281 Remove core MCP list tools op @pakrym-oai
- #21381 [codex] Handle git pagination flags by position @iceweasel-oai
- #21397 fix(tui): persist ctrl-c draft via app event @fcoury-oai
- #19431 Route opted-in MCP elicitations through Guardian @cd-oai
- #21107 Avoid noisy OTEL diagnostics in codex exec @cpaasch-oai
- #21390 Avoid hard-coded environment context shell @starr-openai
- #21090 [codex] Dedupe fallback model metadata warnings @canvrno-oai
- #21395 [codex] Split tool handlers into separate files @pakrym-oai
- #21401 [codex-tui] pass thread source for tui threads @rhan-oai
- #17090 [codex-analytics] emit tool item events from item lifecycle @rhan-oai
- #21409 [codex] Fix Windows sandbox git safe.directory for worktrees @iceweasel-oai
- #21379 Document Codex git commit attribution config @henzelmann-oai
- #21287 Move skills watcher to app-server @pakrym-oai
- #21416 [codex] Move tool specs into core handlers @pakrym-oai
- #21419 feat: Add marketplace source filtering and plugin share context @xl-openai
- #19905 Add compact lifecycle hooks (started by vincentkoc - external contrib) @eternal-openai
- #21460 Revert "Move skills watcher to app-server" @pakrym-oai
- #21450 fix(tui): clear first inline viewport render @fcoury-oai
- #21427 [codex] Delete tool handler plan indirection @pakrym-oai
- #21423 [codex] Add OpenAI Developers to tool suggest allowlist @mifan-oai
- #21340 [codex] allow shared config reads in app-server queue @xli-oai
- #21441 [codex] Parallelize skills list cwd loading @xli-oai
- #21481 Revert state DB injection and agent graph store @pakrym-oai
- The TUI now supports modal Vim editing in the composer, including
-
Codex analytics governance docs update
Updated the Codex enterprise governance guide with more detailed coverage of the Analytics dashboard charts, data export options, and enterprise Analytics API endpoints.
-
Create Codex access tokens
ChatGPT Enterprise workspace owners and admins can allow permitted members to create Codex access tokens for trusted, non-interactive Codex local workflows. Members can use access tokens to run Codex from scripts, schedulers, and private CI runners with their ChatGPT workspace identity.
Learn more in Access tokens.
April 2026
-
Codex CLI 0.128.0
$ npm install -g @openai/codex@0.128.0View details
New Features
- Added persisted
/goalworkflows with app-server APIs, model tools, runtime continuation, and TUI controls for create, pause, resume, and clear. (#18073, #18074, #18075, #18076, #18077, #20082) - Added
codex update, configurable TUI keymaps, plan-mode nudges, action-required terminal titles, and active-turn/statuslineand/titleedits. (#19933, #18593, #19901, #18372, #19917) - Expanded permission profiles with built-in defaults, sandbox CLI profile selection, cwd controls, and active-profile metadata for clients. (#19900, #20117, #20118, #20095)
- Improved plugin workflows with marketplace installation, remote bundle caching, remote uninstall, plugin-bundled hooks, hook enablement state, and external-agent config import. (#18704, #19914, #19456, #19705, #19840, #19949)
- Added external agent session import, including background imports and imported-session title handling. (#19895, #20284, #20261)
- Made MultiAgentV2 configuration more explicit with thread caps, wait-time controls, root/subagent hints, and v2-specific depth handling. (#19360, #19792, #19805, #20052, #20180)
Bug Fixes
- Fixed several resume and interruption issues, including stale interrupt hangs, persisted provider restoration, large remote resume responses, and slow filtered resume lists. (#18392, #19287, #19920, #19591)
- Improved TUI reliability around terminal resize reflow, markdown list spacing, slash-command popup layout, keyboard cleanup, shell-mode escape, and working status updates. (#18575, #19706, #19511, #19625, #19986, #19939)
- Hardened managed network behavior for deferred denials, proxy bypass defaults, resolved target checks, IPv6 host matching, and
git -Capproval handling. (#19184, #20002, #19999, #19995, #20085) - Fixed Windows sandbox and PTY edge cases, including pseudoconsole startup, elevated runner process handling, core shell environment inheritance, and named-pipe validation. (#20042, #19211, #20089, #19283)
- Fixed Bedrock model support for
apply_patch, GPT-5.4 reasoning levels, and updated Bedrock GPT-5.4 endpoint/model metadata. (#19416, #19461, #20109) - Fixed MCP/plugin edge cases around stdio server cleanup, plugin MCP approval persistence, and custom MCP metadata isolation. (#19753, #19537, #19836, #19875)
Documentation
- Updated the bundled OpenAI Docs skill for GPT-5.5,
gpt-image-2, and clearer upgrade guidance. (#19407, #19443, #19422) - Clarified contributor-facing docs, including the PR template, Rust async trait guidance, and README wording. (#19912, #20242, #19514)
- Added a checked-in
codex-corepublic API listing and a ThreadManager sample crate. (#20243, #20141)
Chores
- Published
codex-app-serverrelease artifacts, stopped publishing GNU Linux binaries, and increased release workflow timeouts. (#19447, #19445, #20271, #20343) - Added Codex-pinned versioning for the Python app-server SDK package. (#18996)
- Deprecated
--full-autowhile steering users toward explicit permission profiles and trust flows. (#20133) - Stabilized CI and release plumbing with Bazel setup migration, release smoke-test pinning, and updated workflow pins/timeouts. (#19851, #19854, #19472, #19609)
Changelog
Full Changelog: rust-v0.125.0...rust-v0.128.0
- #19124 Make MultiAgentV2 interruption markers assistant-authored @jif-oai
- #19354 chore: alias max_concurrent_threads_per_session @jif-oai
- #19360 feat: surface multi-agent thread limit in spawn description @jif-oai
- #19351 Add agents.interrupt_message for interruption markers @jif-oai
- #18392 Fix hang on turn/interrupt @danwang-oai
- #19380 chore: drop MCP Plugins and App from Morpheus @jif-oai
- #18907 respect workspace option for disabling plugins @zamoshchin-openai
- #19283 check PID of named pipe consumer @iceweasel-oai
- #19407 Update bundled OpenAI Docs skill for GPT-5.5 @kkahadze-oai
- #19163 Harden package-manager install policy @mcgrew-oai
- #19416 Fix: use function apply_patch tool for Bedrock model @celia-oai
- #19093 [codex] Omit fork turns from thread started notifications @euroelessar
- #19244 Update unix socket transport to use WebSocket upgrade @willwang-openai
- #19170 Skip disabled rows in selection menu numbering and default focus @canvrno-oai
- #19414 permissions: make legacy profile conversion cwd-free @bolinfest
- #18900 Migrate fork and resume reads to thread store @wiltzius-openai
- #19445 ci: stop publishing GNU Linux release artifacts @bolinfest
- #19443 Add gpt-image-2 to bundled OpenAI Docs skill @kkahadze-oai
- #18584 [4/4] Honor Streamable HTTP MCP placement @aibrahim-oai
- #19447 ci: publish codex-app-server release artifacts @bolinfest
- #19422 Clarify bundled OpenAI Docs upgrade guide wording @kkahadze-oai
- #19266 [codex] add non-local thread store regression harness @wiltzius-openai
- #19098 feat: Compress skill paths with root aliases @xl-openai
- #19207 [codex] Forward Codex Apps tool call IDs to backend metadata @rreichel3-oai
- #19453 Serialize legacy Windows PowerShell sandbox tests @dylan-hurd-oai
- #19234 Refactor log DB into LogWriter interface @rasmusrygaard
- #19461 fix: Bedrock GPT-5.4 reasoning levels @celia-oai
- #19449 permissions: remove legacy read-only access modes @bolinfest
- #19472 ci: pin codex-action v1.7 @viyatb-oai
- #19468 Fix Bazel cargo_bin runfiles paths @fjord-oai
- #19410 Remove js_repl feature @fjord-oai
- #18073 Add goal persistence foundation (1 / 5) @etraut-openai
- #18074 Add goal app-server API (2 / 5) @etraut-openai
- #18075 Add goal model tools (3 / 5) @etraut-openai
- #18076 Add goal core runtime (4 / 5) @etraut-openai
- #18077 Add goal TUI UX (5 / 5) @etraut-openai
- #19454 Split approval matrix test groups @dylan-hurd-oai
- #19514 Fix codex-rs README grammar @etraut-openai
- #19459 Enable unavailable dummy tools by default @mzeng-openai
- #19524 [codex] Prune unused codex-mcp API and duplicate helpers @aibrahim-oai
- #19526 [codex] Order codex-mcp items by visibility @aibrahim-oai
- #19578 fix: increase Bazel timeout to 45 minutes @bolinfest
- #19287 Restore persisted model provider on thread resume @etraut-openai
- #19593 test: isolate remote thread store regression from plugin warmups @bolinfest
- #19511 Keep slash command popup columns stable while scrolling @etraut-openai
- #19595 [codex] Bypass managed network for escalated exec @viyatb-oai
- #19604 test: stabilize app-server path assertions on Windows @bolinfest
- #19609 fix: restore 30-minute timeout for Bazel builds @bolinfest
- #19389 Guard npm update readiness @shijie-oai
- #18575 fix(tui): reflow scrollback on terminal resize @fcoury-oai
- #19610 Support end_turn in response.completed @andmis
- #19640 [codex] remove responses command @tibo-openai
- #19683 test: harden app-server integration tests @bolinfest
- #18904 feat: load AgentIdentity from JWT login/env @efrazer-oai
- #19606 permissions: make runtime config profile-backed @bolinfest
- #19392 permissions: derive compatibility policies from profiles @bolinfest
- #19484 Lift app-server JSON-RPC error handling to request boundary @pakrym-oai
- #19487 [codex] Move config loading into codex-config @pakrym-oai
- #19393 permissions: migrate approval and sandbox consumers to profiles @bolinfest
- #19726 Fix codex-core config test type paths @pakrym-oai
- #19727 test: increase core-all-test shard count to 16 @bolinfest
- #19725 Split MCP connection modules @aibrahim-oai
- #19605 Delete unused ResponseItem::Message.end_turn @andmis
- #19394 permissions: remove core legacy policy round trips @bolinfest
- #19733 Allow agents.max_threads to work with multi_agent_v2 @andmis
- #19395 permissions: finish profile-backed app surfaces @bolinfest
- #19739 inline hostname resolution for remote sandbox config @abhinav-oai
- #19734 permissions: centralize legacy sandbox projection @bolinfest
- #19058 Add /auto-review-denials retry approval flow @won-openai
- #19735 permissions: store only constrained permission profiles @bolinfest
- #19736 permissions: constrain requirements as profiles @bolinfest
- #19737 permissions: derive legacy exec policies at boundaries @bolinfest
- #19779 Add Codex issue digest skill @etraut-openai
- #19792 multi_agent_v2: move thread cap into feature config @jif-oai
- #18982 feat: use git-backed workspace diffs for memory consolidation @jif-oai
- #19809 Allow Phase 2 memory claims after retry exhaustion @jif-oai
- #19812 Avoid rewriting Phase 2 selection on clean workspace @jif-oai
- #19813 nit: one more fix @jif-oai
- #19818 chore: split memories part 1 @jif-oai
- #19510 Hide rewind preview when no user message exists @etraut-openai
- #19618 Persist shell mode commands in prompt history @etraut-openai
- #19709 Render delegated patch approval details @etraut-openai
- #19490 Streamline plugin, apps, and skills handlers @pakrym-oai
- #19762 refactor: make auth loading async @efrazer-oai
- #19854 ci: pin npm staging smoke test to a recent rust-release run @bolinfest
- #19851 ci: migrate Bazel setup away from archived setup-bazelisk @bolinfest
- #19491 Streamline account and command handlers @pakrym-oai
- #19771 fix: filter dynamic deferred tools from model_visible_specs @sayan-oai
- #19863 [codex-analytics] remove ga flag @rhan-oai
- #19865 Cap original-detail image token estimates @fjord-oai
- #19591 Fix filtered thread-list resume regression in TUI @etraut-openai
- #19513 Delay approval prompts while typing @etraut-openai
- #19706 Preserve TUI markdown list spacing after code blocks @etraut-openai
- #19841 permissions: remove cwd special path @bolinfest
- #19492 Streamline thread start handler @pakrym-oai
- #19874 [codex-backend] Prefer state git metadata in filtered thread lists @joeytrasatti-openai
- #19493 Streamline thread mutation handlers @pakrym-oai
- #19862 [codex] Shard exec Bazel integration test @starr-openai
- #18996 Publish Python SDK with Codex-pinned versioning @sdcoffey
- #19494 Streamline thread read handlers @pakrym-oai
- #19839 [codex] Trace cancelled inference streams @cassirer-openai
- #19495 Streamline thread resume and fork handlers @pakrym-oai
- #19497 Streamline turn and realtime handlers @pakrym-oai
- #18372 Show action required in terminal title @canvrno-oai
- #19884 Add MCP app feature flag @mzeng-openai
- #19498 Streamline review and feedback handlers @pakrym-oai
- #19772 permissions: derive config defaults as profiles @bolinfest
- #19836 disallow fileparams metadata for custom mcps @colby-oai
- #19892 Refactor exec-server filesystem API into codex-file-system @miz-openai
- #19452 Stabilize plugin MCP fixture tests @dylan-hurd-oai
- #19481 Remove ghost snapshots @pakrym-oai
- #19773 permissions: require profiles in TUI thread state @bolinfest
- #19917 Allow /statusline and /title slash commands during active turns @canvrno-oai
- #19763 refactor: load agent identity runtime eagerly @efrazer-oai
- #17689 [codex-analytics] include user agent in default headers @marksteinbrick-oai
- #19912 Clarify PR template invitation requirement @etraut-openai
- #19630 Avoid persisting ShutdownComplete after thread shutdown @etraut-openai
- #19774 permissions: make SessionConfigured profile-only @bolinfest
- #19775 permissions: derive snapshot sandbox projections @bolinfest
- #19920 Allow large remote app-server resume responses @etraut-openai
- #19776 permissions: store thread sessions as profiles @bolinfest
- #19899 app-server-protocol: mark permission profiles experimental @bolinfest
- #19933 Add
codex updatecommand @etraut-openai - #19914 feat: Cache remote plugin bundles on install @xl-openai
- #19456 Add remote plugin uninstall API @xli-oai
- #19805 Add MultiAgentV2 root and subagent context hints @jif-oai
- #19860 feat: split memories part 2 @jif-oai
- #19961 feat: fix hinting 2 @jif-oai
- #19963 feat: fix hinting 3 @jif-oai
- #19967 Stabilize memory Phase 2 input ordering @jif-oai
- #19970 feat: trigger memories from user turns with cooldown @jif-oai
- #19904 fix: configure AgentIdentity AuthAPI base URL @efrazer-oai
- #19990 feat: skip memory startup when Codex rate limits are low @jif-oai
- #19998 feat: house-keeping memories 1 @jif-oai
- #20000 feat: house-keeping memories 2 @jif-oai
- #19832 Preserve assistant phase for replayed messages @friel-openai
- #19625 Reset TUI keyboard reporting on exit @etraut-openai
- #18593 feat(tui): add configurable keymap support @fcoury-oai
- #19846 [sandbox] Enforce protected workspace metadata paths @evawong-oai
- #20005 feat: house-keeping memories 3 @jif-oai
- #19929 TUI: use cumulative turn duration for worked-for separator @etraut-openai
- #19753 Terminate stdio MCP servers on shutdown to avoid process leaks @etraut-openai
- #19473 Add turn start timestamp to turn metadata @mchen-oai
- #19875 Strip connector provenance metadata from custom MCP tools @colby-oai
- #19764 feat: verify agent identity JWTs with JWKS @efrazer-oai
- #19847 Enforce workspace metadata protections in Seatbelt @evawong-oai
- #19509 Record MCP result telemetry on mcp.tools.call spans @mchen-oai
- #19907 Clarify network approval auto-review prompts @maja-openai
- #19901 feat(tui): suggest plan mode from composer drafts @fcoury-oai
- #19931 Move local /resume cwd filtering into thread/list @canvrno-oai
- #19986 fix(tui): let esc exit empty shell mode @fcoury-oai
- #19895 External agent session support @stefanstokic-oai
- #20002 fix(network-proxy): tighten network proxy bypass defaults @viyatb-oai
- #19900 permissions: add built-in default profiles @bolinfest
- #20045 Fix plan mode nudge test after task completion signature change @canvrno-oai
- #19432 [codex] Add token usage to turn tracing spans @charley-openai
- #20001 fix(network-proxy): harden linux proxy bridge helpers @viyatb-oai
- #19959 Fix log db batch flush flake @dylan-hurd-oai
- #17373 app-server: run initialized rpcs with keyed serialization @euroelessar
- #19708 Load cloud requirements for agent identity @shijie-oai
- #19999 fix(network-proxy): recheck network proxy connect targets @viyatb-oai
- #20047 app-server: allow remote_control runtime feature override @euroelessar
- #20052 Make MultiAgentV2 wait minimum configurable @jif-oai
- #20008 tui: use permission profiles for sandbox state @bolinfest
- #20068 app-server: disable remote control without sqlite @euroelessar
- #20066 [rollout-trace] Include x-request-id in rollout trace. @cassirer-openai
- #19705 Discover hooks bundled with plugins @abhinav-oai
- #18704 /plugins: add marketplace install flow @canvrno-oai
- #20085 fix: don't auto approve git -C ... @owenlin0
- #20088 Fix flaky plugin hook env test @abhinav-oai
- #19995 fix(network-proxy): normalize network proxy host matching @viyatb-oai
- #20010 core tests: submit turns with permission profiles @bolinfest
- #20092 Return None when auth refresh fails @gpeal
- #19919 app-server: notify clients of remote-control status changes @euroelessar
- #20097 Refine Codex issue digest summaries @etraut-openai
- #20011 core tests: build user turns from permission profiles @bolinfest
- #20013 core tests: migrate more turns to permission profiles @bolinfest
- #20015 core tests: configure profiles directly @bolinfest
- #20016 core tests: send model turns with permission profiles @bolinfest
- #20100 Increase plugin hook env test timeout @abhinav-oai
- #20018 core tests: migrate model/personality turns to profiles @bolinfest
- #20021 core tests: migrate view image turns to profiles @bolinfest
- #20024 core tests: migrate safety check turns to profiles @bolinfest
- #20026 core tests: migrate plan item turns to profiles @bolinfest
- #20027 core tests: migrate tools tests to permission profiles @bolinfest
- #20028 core tests: migrate permissions message tests to profiles @bolinfest
- #20030 core tests: migrate exec policy turns to profiles @bolinfest
- #20032 core tests: migrate prompt caching turns to profiles @bolinfest
- #20033 core tests: migrate request permissions tool turns to profiles @bolinfest
- #20034 core tests: migrate zsh-fork permissions to profiles @bolinfest
- #20035 core tests: migrate compact turns to profiles @bolinfest
- #20037 core tests: migrate rmcp turns to profiles @bolinfest
- #20040 core tests: migrate apply patch turns to profiles @bolinfest
- #20041 core tests: migrate hook turns to profiles @bolinfest
- #20072 Support disabling tool suggest for specific tools. @mzeng-openai
- #19949 Support detect and import MCP, Subagents, hooks, commands from external @alexsong-oai
- #19442 feat: disable capabilities by model provider @celia-oai
- #20108 fix: restore live event submit path for apply patch tests @bolinfest
- #19939 Restore TUI working status after steer message is set @canvrno-oai
- #20086 Fix plugin list workspace settings test isolation @canvrno-oai
- #20049 feat: expose provider capability bounds to app server clients @celia-oai
- #20109 feat: update Bedrock Mantle endpoint and GPT-5.4 model ID @celia-oai
- #20106 linux-sandbox: switch helper plumbing to PermissionProfile @bolinfest
- #20112 Soften skill description budget warnings @xl-openai
- #20058 Add environment provider snapshot @starr-openai
- #20133 chore(cli) deprecate --full-auto @dylan-hurd-oai
- #20117 feat(cli): add explicit sandbox permission profiles @viyatb-oai
- #20139 Delete multi_agent_v2 followup_task interrupt parameter @andmis
- #20118 feat(cli): add sandbox profile config controls @viyatb-oai
- #20144 Fix migrated hook path rewriting @alexsong-oai
- #20042 Fix Windows pseudoconsole attribute handling for sandboxed PTY sessions @iceweasel-oai
- #20186 nit: drop old memories things @jif-oai
- #20180 Make multi-agent v2 ignore agents.max_depth @jif-oai
- #20082 Use /goal resume for paused goals @etraut-openai
- #20172 TUI: Remove core protocol dependency [1/7] @etraut-openai
- #19211 Improve Windows process management edge cases @iceweasel-oai
- #20123 [rollout-tracer] Match analysis messages on encrypted id. @cassirer-openai
- #20173 TUI: Remove core protocol dependency [2/7] @etraut-openai
- #20174 TUI: Remove core protocol dependency [3/7] @etraut-openai
- #20228 [codex-backend] Prefer sqlite git info for rollout-path reads @joeytrasatti-openai
- #20141 Add ThreadManager sample crate @pakrym-oai
- #20046 test protocol: lock inter-agent commentary phase @friel-openai
- #20064 Include auto-review rollout in feedback uploads @won-openai
- #20096 feat: Use remote installed plugin cache for skills and MCP @xl-openai
- #19184 fix: handle deferred network proxy denials @viyatb-oai
- #20089 expand the set of core shell env vars for Windows. @iceweasel-oai
- #17088 [codex-analytics] ingest server requests and responses @rhan-oai
- #20091 [tool_suggest] Improve tool_suggest triggering conditions. @mzeng-openai
- #20258 app-server: fix outgoing sender test setup @sayan-oai
- #20050 [app-server] type client response payloads @rhan-oai
- #19966 Require remote plugin detail before uninstall @xli-oai
- #20059 [app-server] centralize client response analytics @rhan-oai
- #19334 Fallback login callback port when default is busy @xli-oai
- #20231 [apps] Add apps MCP path override @adaley-openai
- #20242 docs: discourage
#[async_trait]and#[allow(async_fn_in_trait)]@bolinfest - #19620 Escape turn metadata headers as ASCII JSON @etraut-openai
- #19537 [mcp] Fix plugin MCP approval policy. @mzeng-openai
- #19229 Add agent graph store interface @rasmusrygaard
- #20243 Add codex-core public API listing @pakrym-oai
- #19435 stop blocking unified_exec on Windows @iceweasel-oai
- #19852 Enforce workspace metadata protections in Linux sandbox @evawong-oai
- #20136 Update Codex login success page UX @rafael-jac
- #20271 chore: increase release build timeout from 60 min to 90 @bolinfest
- #19778 Add hooks/list app-server RPC @abhinav-oai
- #20261 Consume ai-title from external sessions and add end marker @alexsong-oai
- #20284 Import external agent sessions in background @stefanstokic-oai
- #20149 Reduce the surface of collaboration modes @pakrym-oai
- #20282 tui: return from side chat on Ctrl-D @etraut-openai
- #20250 update codex_plugins_beta_setting (from workspace settings) @zamoshchin-openai
- #20080 [codex-analytics] prevent stale guardian events from satisfying reused reviews @rhan-oai
- #20291 app-server: remove dead api version handling from bespoke events @pakrym-oai
- #20304 [plugins] Allow MSFT curated plugins in tool_suggest @mzeng-openai
- #20095 permissions: expose active profile metadata @bolinfest
- #19840 Add persisted hook enablement state @abhinav-oai
- #20343 ci: increase Windows release workflow timeouts @bolinfest
- Added persisted
-
Codex CLI 0.125.0
$ npm install -g @openai/codex@0.125.0View details
New Features
- App-server integrations now support Unix socket transport, pagination-friendly resume/fork, sticky environments, and remote thread config/store plumbing. (#18255, #18892, #18897, #18908, #19008, #19014)
- App-server plugin management can install remote plugins and upgrade configured marketplaces. (#18917, #19074)
- Permission profiles now round-trip across TUI sessions, user turns, MCP sandbox state, shell escalation, and app-server APIs. (#18284, #18285, #18286, #18287, #19231)
- Model providers now own model discovery, with AWS/Bedrock account state exposed to app clients. (#18950, #19048)
codex exec --jsonnow reports reasoning-token usage for programmatic consumers. (#19308)- Rollout tracing now records tool, code-mode, session, and multi-agent relationships, with a debug reducer command for inspection. (#18878, #18879, #18880)
Bug Fixes
- Interrupting
/reviewand exiting the TUI no longer leaves the interface wedged on delegate startup or unsubscribe. (#18921) - Exec-server no longer drops buffered output after process exit and now waits correctly for stream closure. (#18946, #19130)
- App-server now respects explicitly untrusted project config instead of auto-persisting trust. (#18626)
- WebSocket app-server clients are less likely to disconnect during bursts of turn and tool-output notifications. (#19246)
- Windows sandbox startup handles multiple CLI versions and installed app directories better, and background
Start-Processcalls avoid visible PowerShell windows. (#19044, #19180, #19214) - Config/schema handling now rejects conflicting MultiAgentV2 thread limits, resolves relative agent-role config paths, hides unsupported MCP bearer-token fields, and rejects invalid
js_replimage MIME types. (#19129, #19261, #19294, #19292)
Documentation
- App-server docs and generated schemas were refreshed for the new transport, thread, marketplace, sticky environment, and permission-profile APIs. (#18255, #18897, #19014, #19074, #19231)
- Rollout-trace documentation now covers the debug trace reduction workflow. (#18880)
Chores
- Refreshed
models.jsonand related core, app-server, SDK, and TUI fixtures for the latest model catalog and reasoning defaults. (#19323) - Windows Bazel CI now uses a stable PATH and shared query startup path for better cache reuse. (#19161, #19232)
- Plugin marketplace add/remove/startup-sync internals moved out of
codex-core, and curated plugin cache versions now use short SHAs. (#19099, #19095) - Reverted a macOS signing entitlement change after it caused alpha startup failures. (#19167, #19350)
- Stabilized flaky approval-popup and plugin MCP tool-discovery tests. (#19178, #19191)
Changelog
Full Changelog: rust-v0.124.0...rust-v0.125.0
- #19129 Reject agents.max_threads with multi_agent_v2 @jif-oai
- #19130 exec-server: wait for close after observed exit @jif-oai
- #19149 Update safety check wording @etraut-openai
- #18284 tui: sync session permission profiles @bolinfest
- #18710 [codex] Fix plugin marketplace help usage @xli-oai
- #19127 feat: drop spawned-agent context instructions @jif-oai
- #18892 Add remote thread config loader protos @rasmusrygaard
- #19014 Add excludeTurns parameter to thread/resume and thread/fork @ddr-oai
- #18882 [codex] Route live thread writes through ThreadStore @wiltzius-openai
- #19008 [codex] Implement remote thread store methods @wiltzius-openai
- #18626 Respect explicit untrusted project config @etraut-openai
- #18255 app-server: add Unix socket transport @euroelessar
- #19167 ci: add macOS keychain entitlements @euroelessar
- #19099 Move marketplace add/remove and startup sync out of core. @xl-openai
- #19168 Use Auto-review wording for fallback rationale @maja-openai
- #18908 Add remote thread config endpoint @rasmusrygaard
- #18285 tui: carry permission profiles on user turns @bolinfest
- #18286 mcp: include permission profiles in sandbox state @bolinfest
- #18878 [rollout_trace] Trace tool and code-mode boundaries @cassirer-openai
- #18287 shell-escalation: carry resolved permission profiles @bolinfest
- #18946 fix(exec-server): retain output until streams close @bolinfest
- #19074 Add app-server marketplace upgrade RPC @xli-oai
- #19180 use a version-specific suffix for command runner binary in .sandbox-bin @iceweasel-oai
- #19178 Stabilize approvals popup disabled-row test @etraut-openai
- #18921 Fix /review interrupt and TUI exit wedges @etraut-openai
- #19191 Stabilize plugin MCP tools test @etraut-openai
- #19194 Mark hooks schema fixtures as generated @abhinav-oai
- #18288 tests: isolate approval fixtures from host rules @bolinfest
- #19044 guide Windows to use -WindowStyle Hidden for Start-Process calls @iceweasel-oai
- #19214 do not attempt ACLs on installed codex dir @iceweasel-oai
- #19161 ci: derive cache-stable Windows Bazel PATH @bolinfest
- #18811 refactor: route Codex auth through AuthProvider @efrazer-oai
- #19246 Increase app-server WebSocket outbound buffer @etraut-openai
- #19048 feat: expose AWS account state from account/read @celia-oai
- #18880 [rollout_trace] Add debug trace reduction command @cassirer-openai
- #18897 Add sticky environment API and thread state @starr-openai
- #18879 [rollout_trace] Trace sessions and multi-agent edges @cassirer-openai
- #19095 feat: Use short SHA versions for curated plugin cache entries @xl-openai
- #18950 feat: let model providers own model discovery @celia-oai
- #19206 app-server: persist device key bindings in sqlite @euroelessar
- #18917 [codex] Support remote plugin install writes @xli-oai
- #19231 permissions: make profiles represent enforcement @bolinfest
- #19261 Resolve relative agent role config paths from layers @etraut-openai
- #19232 ci: reuse Bazel CI startup for target-discovery queries @bolinfest
- #19292 Reject unsupported js_repl image MIME types @etraut-openai
- #19247 chore: apply truncation policy to unified_exec @sayan-oai
- #19294 Hide unsupported MCP bearer_token from config schema @etraut-openai
- #19308 Surface reasoning tokens in exec JSON usage @etraut-openai
- #19323 Update models.json and related fixtures @sayan-oai
- #19350 fix alpha build @jif-oai
-
GPT-5.5 and Codex app updates
GPT-5.5 is now available in Codex as OpenAI’s newest frontier model for complex coding, computer use, knowledge work, and research workflows.
GPT-5.5 in Codex
GPT-5.5 is the recommended choice for most Codex tasks when it appears in your model picker. It’s especially useful for implementation, refactors, debugging, testing, validation, and knowledge-work artifacts.
To switch to GPT-5.5:
- In the CLI, start a new thread with:
Or usecodex --model gpt-5.5/modelduring a session. - In the IDE extension, choose GPT-5.5 from the model selector in the composer.
- In the Codex app, choose GPT-5.5 from the model selector in the composer.
If you don’t see GPT-5.5 yet, update the CLI, IDE extension, or Codex app to the latest version. During the rollout, continue using GPT-5.4 if GPT-5.5 is not yet available.
Browser use in the Codex app
The Codex app can now let Codex operate the in-app browser for local development servers and file-backed pages. Ask Codex to use the browser when it needs to click through a rendered UI, reproduce a visual bug, or verify a local fix inside the app.
Browser use runs through the bundled Browser plugin. In settings, you can manage the plugin and review allowed or blocked websites.
Automatic approval reviews
Codex can route eligible approval prompts through an automatic reviewer agent before the request runs. When configured, the Codex app shows an automatic review item with the review status and risk level, so you can see whether the reviewer approved, denied, stopped, or timed out before deciding.
- In the CLI, start a new thread with:
-
Codex CLI 0.124.0
$ npm install -g @openai/codex@0.124.0View details
New Features
- The TUI now has quick reasoning controls:
Alt+,lowers reasoning,Alt+.raises it, and accepted model upgrades now reset reasoning to the new model’s default instead of carrying over stale settings. (#18866, #19085) - App-server sessions can now manage multiple environments and choose an environment and working directory per turn, which makes multi-workspace and remote setups easier to target precisely. (#18401, #18416)
- Added first-class Amazon Bedrock support for OpenAI-compatible providers, including AWS SigV4 signing and AWS credential-based auth. (#17820)
- Remote plugin marketplaces can now be listed and read directly, with more reliable detail lookups and larger result pages. (#18452, #19079)
- Hooks are now stable, can be configured inline in
config.tomland managedrequirements.toml, and can observe MCP tools as well asapply_patchand long-running Bash sessions. (#18893, #18385, #18391, #18888, #19012) - Eligible ChatGPT plans now default to the Fast service tier unless you explicitly opt out. (#19053)
Bug Fixes
- Preserved Cloudflare cookies across approved ChatGPT hosts, reducing auth breakage in HTTP-backed ChatGPT flows. (#17783)
- Fixed remote app-server reliability issues so websocket events keep draining under load and shutdown no longer fails when the remote worker exits during cleanup. (#18932, #18936)
- Fixed permission-mode drift so
/permissionschanges survive side conversations and updated Full Access state is correctly reflected in MCP approval handling. (#18924, #19033) - Fixed
wait_agentso it returns promptly when mailbox work is already queued instead of waiting for a fresh notification or timing out. (#18968) - Fixed local stdio MCP launches for relative commands without an explicit
cwd, bringing fallback path resolution in line with CLI behavior. (#19031) - Startup now fails less often on managed config edge cases: unknown feature requirements warn instead of aborting, and cloud-requirements errors are clearer about what failed. (#19038, #19078)
Changelog
Full Changelog: rust-v0.123.0...rust-v0.124.0
- #18870 Load app-server config through ConfigManager @pakrym-oai
- #18866 feat(tui): shortcuts to change reasoning level temporarily @fcoury-oai
- #18430 app-server: implement device key v2 methods @euroelessar
- #18757 fix: fully revert agent identity runtime wiring @efrazer-oai
- #17783 Preserve Cloudfare HTTP cookies in codex @shijie-oai
- #18876 [rollout_trace] Add rollout trace crate @cassirer-openai
- #18401 Support multiple managed environments @starr-openai
- #18797 Allow guardian bare allow output @maja-openai
- #18886 Normalize /statusline & /title items @canvrno-oai
- #18768 [codex] Tighten external migration prompt tests @alexsong-oai
- #18909 Update /statusline and /title snapshots @canvrno-oai
- #18867 sandboxing: materialize cwd-relative permission globs @bolinfest
- #18915 fix: windows snapshot for external_agent_config_migration::tests::prompt_snapshot did not match windows output @bolinfest
- #18416 Add turn-scoped environment selections @starr-openai
- #18391 fix(core): emit hooks for apply_patch edits @fcoury-oai
- #18916 test(core): move prompt debug coverage to integration suite @bolinfest
- #17820 feat: add AWS SigV4 auth for OpenAI-compatible model providers @celia-oai
- #18913 bazel: run wrapped Rust unit test shards @bolinfest
- #18452 feat: Support remote plugin list/read. @xl-openai
- #18936 Fix remote app-server shutdown race @bolinfest
- #18871 refactor: add agent identity crate @efrazer-oai
- #18276 exec-server: carry filesystem sandbox profiles @bolinfest
- #18926 ci: keep argument comment lint checks materialized @bolinfest
- #18935 Keep TUI status surfaces in sync @etraut-openai
- #18923 chore(tui) debug-config guardian_policy_config @dylan-hurd-oai
- #18943 tests: serialize process-heavy Windows CI suites @bolinfest
- #18934 [codex] Clean guardian instructions @dylan-hurd-oai
- #18948 chore: remove unused Bedrock auth lazy loading @celia-oai
- #18277 core: derive active permission profiles @bolinfest
- #18785 feat: add explicit AgentIdentity auth mode @efrazer-oai
- #18953 use long-lived sessions for codex sandbox windows @iceweasel-oai
- #18278 app-server: expose thread permission profiles @bolinfest
- #17693 [codex-analytics] guardian review analytics events emission @rhan-oai
- #17695 [codex-analytics] guardian review truncation @rhan-oai
- #17696 [codex-analytics] guardian review TTFT plumbing and emission @rhan-oai
- #18962 nit: expose lib @jif-oai
- #18502 Support multiple cwd filters for thread list @acrognale-oai
- #18968 fix: wait_agent timeout for queued mailbox mail @jif-oai
- #18971 fix: cargo deny @jif-oai
- #18973 chore: prep memories for AB @jif-oai
- #18852 [codex] Update imagegen system skill @vb-openai
- #18865 Stage publishable Python runtime wheels @sdcoffey
- #18932 TUI: Keep remote app-server events draining @etraut-openai
- #18877 [rollout_trace] Record core session rollout traces @cassirer-openai
- #18959 feat(auto-review) policy config @dylan-hurd-oai
- #18955 Add plumbing to approve stored Auto-Review denials @won-openai
- #18999 arg0: keep dispatch aliases alive during async main @bolinfest
- #18925 feat: Fairly trim skill descriptions within context budget @xl-openai
- #18890 feat(auto-review) short-circuit @dylan-hurd-oai
- #18279 app-server: accept permission profile overrides @bolinfest
- #18582 [2/4] Implement executor HTTP request runner @aibrahim-oai
- #18197 feat: add guardian network approval trigger context @viyatb-oai
- #19033 Fix MCP permission policy sync @leoshimo-oai
- #19016 exec-server: expose arg0 alias root to fs sandbox @bolinfest
- #19036 Overlay state DB git metadata for filtered thread lists @joeytrasatti-openai
- #18956 [Codex] Register browser requirements feature keys @khoi-oai
- #19043 Update bundled OpenAI Docs skill freshness check @kkahadze-oai
- #18504 Rebrand approvals reviewer config to auto-review @won-openai
- #19046 exec-server: require explicit filesystem sandbox cwd @bolinfest
- #18280 clients: send permission profiles to app-server @bolinfest
- #18281 rollout: persist turn permission profiles @bolinfest
- #18888 hooks: emit Bash PostToolUse when exec_command completes via write_stdin @eternal-openai
- #19056 Rename approvals reviewer variant to auto-review @won-openai
- #18583 [3/4] Add executor-backed RMCP HTTP client @aibrahim-oai
- #19059 core: box multi-agent wrapper futures @bolinfest
- #19031 Fix relative stdio MCP cwd fallback @mzeng-openai
- #19063 chore(auto-review) feature => stable @dylan-hurd-oai
- #19050 feat(request-permissions) approve with strict review @dylan-hurd-oai
- #19067 test: set Rust test thread stack size @bolinfest
- #19072 tui: fix approvals popup disabled shortcut test @bolinfest
- #18893 codex: support hooks in config.toml and requirements.toml @eternal-openai
- #18282 protocol: report session permission profiles @bolinfest
- #19053 Default Fast service tier for eligible ChatGPT plans @shijie-oai
- #19055 Add safety check notification and error handling @etraut-openai
- #18283 app-server: accept command permission profiles @bolinfest
- #19012 Mark codex_hooks stable @abhinav-oai
- #18924 TUI: preserve permission state after side conversations @etraut-openai
- #19071 Add computer_use feature requirement key @leoshimo-oai
- #19079 Use remote plugin IDs for detail reads and enlarge list pages @xl-openai
- #19038 feat: Warn and continue on unknown feature requirements @xl-openai
- #19078 Clarify cloud requirements error messages @gverma-openai
- #19085 Persist target default reasoning on model upgrade @shijie-oai
- #19086 app-server: include filesystem entries in permission requests @bolinfest
- #18385 Support MCP tools in hooks @abhinav-oai
- #19113 Fix auto-review config compatibility across protocol and SDK @won-openai
- The TUI now has quick reasoning controls:
-
Codex CLI 0.123.0
$ npm install -g @openai/codex@0.123.0View details
New Features
- Added a built-in
amazon-bedrockmodel provider with configurable AWS profile support (#18744). - Added
/mcp verbosefor full MCP server diagnostics, resources, and resource templates while keeping plain/mcpfast (#18610). - Made plugin MCP loading accept both
mcpServersand top-level server maps in.mcp.json(#18780). - Improved realtime handoffs so background agents receive transcript deltas and can explicitly stay silent when appropriate (#18597, #18761, #18635).
- Added host-specific
remote_sandbox_configrequirements for remote environments (#18763). - Refreshed bundled model metadata, including the current
gpt-5.4default (#18586, #18388, #18719).
Bug Fixes
- Fixed
/copyafter rollback so it copies the latest visible assistant response, not a pre-rollback response (#18739). - Queued normal follow-up text submitted while a manual shell command is running, preventing stuck
Workingstates (#18820). - Fixed Unicode/dead-key input in VS Code WSL terminals by disabling the enhanced keyboard mode there (#18741).
- Prevented stale proxy environment variables from being restored from shell snapshots (#17271).
- Made
codex execinherit root-level shared flags such as sandbox and model options (#18630). - Removed leaked review prompts from TUI transcripts (#18659).
Documentation
- Added and tightened the Code Review skill instructions used by Codex-driven reviews (#18746, #18818).
- Documented intentional await-across-lock cases and enabled Clippy linting for them (#18423, #18698).
- Updated app-server protocol docs for threadless MCP resource reads and namespaced dynamic tools (#18292, #18413).
Chores
- Fixed high-severity dependency alerts by pinning patched JS and Rust dependencies (#18167).
- Reduced Rust dev build debug-info overhead while preserving useful backtraces (#18844).
- Refreshed generated Python app-server SDK types from the current schema (#18862).
Changelog
Full Changelog: rust-v0.122.0...rust-v0.123.0
- #18662 feat: add metric to track the number of turns with memory usage @jif-oai
- #18659 chore: drop review prompt from TUI UX @jif-oai
- #18661 feat: log client use min log level @jif-oai
- #18094 [codex] Use background agent task auth for backend calls @adrian-openai
- #18441 Avoid false shell snapshot cleanup warnings @etraut-openai
- #18260 [codex] Use background task auth for additional backend calls @adrian-openai
- #18657 fix: auth.json leak in tests @jif-oai
- #18610 Add verbose diagnostics for /mcp @etraut-openai
- #18633 Use app server thread names in TUI picker @etraut-openai
- #18591 Surface parent thread status in side conversations @etraut-openai
- #18361 codex: move thread/name/set and thread/memoryModeSet into ThreadStore @wiltzius-openai
- #18274 protocol: canonicalize file system permissions @bolinfest
- #18403 refactor: use semaphores for async serialization gates @bolinfest
- #18586 Update models.json @aibrahim-oai
- #18289 Wire the PatchUpdated events through app_server @akshaynathan
- #18631 Remove simple TUI legacy_core reexports @etraut-openai
- #18697 [codex] Fix agent identity auth test fixture @adrian-openai
- #18388 Update models.json @github-actions
- #18167 [codex] Fix high severity dependency alerts @caseysilver-oai
- #17692 [codex-analytics] guardian review analytics schema polishing @rhan-oai
- #18722 chore(guardian) disable mcps and plugins @dylan-hurd-oai
- #18597 Update realtime handoff transcript handling @guinness-oai
- #18627 Surface TUI skills refresh failures @etraut-openai
- #18719 Fix stale model test fixtures @aibrahim-oai
- #18714 Add experimental remote thread store config @wiltzius-openai
- #18739 fix(tui): keep /copy aligned with rollback @fcoury-oai
- #18701 [codex] prefer inherited spawn agent model @tibo-openai
- #18632 Use app server metadata for fork parent titles @etraut-openai
- #18112 feat: cascade thread archive @jif-oai
- #18716 Read conversation summaries through thread store @wiltzius-openai
- #18635 Add realtime silence tool @guinness-oai
- #18254 uds: add async Unix socket crate @euroelessar
- #18746 Add Code Review skill @pakrym-oai
- #18208 Add session config loader interface @rasmusrygaard
- #18753 Refactor TUI app module into submodules @etraut-openai
- #18630 Fix exec inheritance of root shared flags @etraut-openai
- #18027 [6/6] Fail exec client operations after disconnect @aibrahim-oai
- #17271 fix: fix stale proxy env restoration after shell snapshots @viyatb-oai
- #18602 Warn when trusting Git subdirectories @etraut-openai
- #18761 [codex] Send realtime transcript deltas on handoff @guinness-oai
- #18435 /statusline & /title - Shared preview values @canvrno-oai
- #18744 feat: add a built-in Amazon Bedrock model provider @celia-oai
- #18581 [1/4] Add executor HTTP request protocol @aibrahim-oai
- #18418 refactor: narrow async lock scopes @bolinfest
- #18780 feat: Support more plugin MCP file shapes. @xl-openai
- #18713 protocol: preserve glob scan depth in permission profiles @bolinfest
- #18795 fix(guardian) Dont hard error on feature disable @dylan-hurd-oai
- #18292 Make MCP resource read threadless @mzeng-openai
- #18786 Fallback display names for TUI skill mentions @canvrno-oai
- #18807 chore(app-server) linguist-generated @dylan-hurd-oai
- #18393 feat(auto-review) Handle request_permissions calls @dylan-hurd-oai
- #18763 Add remote_sandbox_config to our config requirements @abhinav-oai
- #18794 Organize context fragments @pakrym-oai
- #18423 chore: document intentional await-holding cases @bolinfest
- #18698 chore: enable await-holding clippy lints @bolinfest
- #18413 [tool search] support namespaced deferred dynamic tools @pash-openai
- #18818 [codex] Tighten code review skill wording @pakrym-oai
- #18271 show bash mode in the TUI @abhinav-oai
- #18741 fix(tui): disable enhanced keys for VS Code WSL @fcoury-oai
- #18850 Move external agent config out of core @pakrym-oai
- #18844 build: reduce Rust dev debuginfo @bolinfest
- #18848 feat: baseline lib @jif-oai
- #18846 core: make test-log a dev dependency @bolinfest
- #18428 app-server: define device key v2 protocol @euroelessar
- #18093 Propagate thread id in MCP tool metadata @rennie-openai
- #17836 [codex] Add tmux-aware OSC 9 notifications @caseychow-oai
- #18820 Queue follow-up input during user shell commands @etraut-openai
- #18858 Stabilize debug clear memories integration test @jif-oai
- #18799 Move TUI app tests to modules they cover @etraut-openai
- #18442 Refactor app-server config loading into ConfigManager @pakrym-oai
- #18813 Split DeveloperInstructions into individual fragments. @pakrym-oai
- #18275 sandboxing: intersect permission profiles semantically @bolinfest
- #18862 Refresh generated Python app-server SDK types @sdcoffey
- #15578 Add Windows sandbox unified exec runtime support @iceweasel-oai
- #18429 app-server: add codex-device-key crate @euroelessar
- #18872 app-server: fix Bazel clippy in tracing tests @euroelessar
- #18885 skip busted tests while I fix them @iceweasel-oai
- #18873 chore: default multi-agent v2 fork to all @jif-oai
- Added a built-in
-
Codex CLI 0.122.0
$ npm install -g @openai/codex@0.122.0View details
New Features
- Standalone installs are more self-contained, and
codex appnow opens or installs Desktop correctly on Windows and Intel Macs (#17022, #18500). - The TUI can open
/sideconversations for quick side questions, and queued input now supports slash commands and!shell prompts while work is running (#18190, #18542). - Plan Mode can start implementation in a fresh context, with context-usage shown before deciding whether to carry the planning thread forward (#17499, #18573).
- Plugin workflows now include tabbed browsing, inline enable/disable toggles, marketplace removal, and remote, cross-repo, or local marketplace sources (#18222, #18395, #17752, #17751, #17277, #18017, #18246).
- Filesystem permissions now support deny-read glob policies, managed deny-read requirements, platform sandbox enforcement, and isolated
codex execruns that ignore user config or rules (#15979, #17740, #18096, #18646). - Tool discovery and image generation are now enabled by default, with higher-detail image handling and original-detail metadata support for MCP and
js_replimage outputs (#17854, #17153, #17714, #18386).
Bug Fixes
- App-server approvals, user-input prompts, and MCP elicitations now disappear from the TUI when another client resolves them, instead of leaving stale prompts behind (#15134).
- Remote-control startup now tolerates missing ChatGPT auth, and MCP startup cancellation works again through app-server sessions (#18117, #18078).
- Resumed and forked app-server threads now replay token usage immediately so context/status UI starts with the restored state (#18023).
- Security-sensitive flows were tightened: logout revokes managed ChatGPT tokens, project hooks and exec policies require trusted workspaces, and Windows sandbox setup avoids broad user-profile and SSH-root grants (#17825, #14718, #18443, #18493).
- Sandboxed
apply_patchwrites work correctly with split filesystem policies, and file watchers now notice files created after watching begins (#18296, #18492). - Several TUI rough edges were fixed, including fatal skills-list failures, invalid resume hints, duplicate context statusline entries,
/modelmenu loops, redundant memory notices, and terminal title quoting in iTerm2 (#18061, #18059, #18054, #18154, #18580, #18261).
Documentation
- Added a security-boundaries reference to
SECURITY.mdfor sandboxing, approvals, and network controls (#17848, #18004). - Documented custom MCP server approval defaults and exec-server stdin behavior (#17843, #18086).
- Updated app-server docs for plugin API changes, marketplace removal, resume/fork token-usage replay, and warning notifications (#17277, #17751, #18023, #18298).
- Added a short guide for the responses API proxy (#18604).
Chores
- Split plugin and marketplace code into
codex-core-plugins, moved more connector code intoconnectors, and continued breaking up the large core session/turn modules (#18070, #18158, #18200, #18206, #18244, #18249). - Refactored config loading and
AGENTS.mddiscovery behind narrower filesystem and manager abstractions (#18209, #18035). - Stabilized Bazel and CI with flake fixes, native Rust test sharding, scoped repository caches, stronger Windows clippy coverage, and updated
rules_rs/LLVM pins (#17791, #18082, #18366, #18350, #18397). - Added core CODEOWNERS and a smaller development build profile (#18362, #18612).
- Removed the stale core
models.jsonand updated release preparation to refresh the active model catalog (#18585).
Changelog
Full Changelog: rust-v0.121.0...rust-v0.122.0
- #17958 Support remote compaction for Azure responses providers @ivanmurashko
- #17848 [docs] Add security boundaries reference in SECURITY.md @evawong-oai
- #17990 Auto install start-codex-exec.sh dependencies @pakrym-oai
- #17892 Migrate archive/unarchive to local ThreadStore @wiltzius-openai
- #17989 [codex] Restore remote exec-server filesystem tests @starr-openai
- #15134 Dismiss stale app-server requests after remote resolution @ebrevdo
- #18002 Re-enable it @jif-oai
- #17885 feat: Support alternate marketplace manifests and local string @xl-openai
- #18003 [docs] Revert extra changes from PR 17848 @evawong-oai
- #17714 Support original-detail metadata on MCP image outputs @fjord-oai
- #17022 Significantly improve standalone installer @efrazer-oai
- #17853 [mcp] Add dummy tools for previously called but currently missing tools. @mzeng-openai
- #18004 [docs] Restore SECURITY.md update from PR 17848 @evawong-oai
- #17896 Clarify realtime v2 context and handoff messages @bxie-openai
- #17742 removing network proxy for yolo @won-openai
- #17999 [codex] Make command exec delta tests chunk tolerant @euroelessar
- #18033 feat: introduce codex-pr-body skill @bolinfest
- #17877 Display YOLO mode permissions if set when launching TUI @canvrno-oai
- #18022 Async config loading @pakrym-oai
- #17854 Update ToolSearch to be enabled by default @mzeng-openai
- #17831 [codex][mcp] Add resource uri meta to tool call item. @mzeng-openai
- #18070 Extract plugin loading and marketplace logic into codex-core-plugins @xl-openai
- #18078 Fix MCP startup cancellation through app server @etraut-openai
- #17151 [codex] Route Fed ChatGPT auth through Fed edge @jackz-oai
- #18006 fix: more flake @jif-oai
- #18127 fix: windows flake @jif-oai
- #18137 nit: add min values for memories @jif-oai
- #18135 debug: windows flake @jif-oai
- #18138 chore: more pollution filtering @jif-oai
- #18134 chore: unify memory drop endpoints @jif-oai
- #18144 nit: get rid of an expect @jif-oai
- #17791 Stabilize Bazel tests (timeout tweaks and flake fixes) @ddr-oai
- #18117 fix: auth preflight @jif-oai
- #18146 chore: use
justfile_directoryin just file @jif-oai - #18085 [1/8] Add MCP server environment config @aibrahim-oai
- #18054 fix(tui): remove duplicate context statusline item @etraut-openai
- #17287 [code mode] defer mcp tools from exec description @sayan-oai
- #18057 Prefill rename prompt with current thread name @etraut-openai
- #18059 Fix invalid TUI resume hints @etraut-openai
- #17153 Launch image generation by default @won-openai
- #18042 Make yolo skip managed-network tool enforcement @won-openai
- #18154 fix: model menu pop @jif-oai
- #17826 [codex] Add remote thread store implementation @wiltzius-openai
- #18086 [2/8] Support piped stdin in exec process API @aibrahim-oai
- #18061 Avoid fatal TUI errors on skills list failure @etraut-openai
- #15979 feat(permissions): add glob deny-read policy support @viyatb-oai
- #18055 Improve external agent plugin migration for configured marketplaces @alexsong-oai
- #17425 Auto-upgrade configured marketplaces @xli-oai
- #18035 Refactor AGENTS.md discovery into AgentsMdManager @pakrym-oai
- #18158 Move more connector logic into connectors crate @pakrym-oai
- #17843 Add server-level approval defaults for custom MCP servers @mzeng-openai
- #18178 fix: drop lock earlier; was held across send_event().await unnecessarily @bolinfest
- #18000 Make thread unsubscribe test deterministic @starr-openai
- #17996 Add codex_hook_run analytics event @abhinav-oai
- #18184 fix: fix clippy issue in examples/ folder @bolinfest
- #18023 fix(app-server): replay token usage after resume and fork @fcoury-oai
- #18172 [codex] Make realtime startup context truncation deterministic @bxie-openai
- #18192 Throttle Windows Bazel test concurrency @starr-openai
- #18200 [codex] Split codex op handlers @pakrym-oai
- #17387 Register agent tasks behind use_agent_identity @adrian-openai
- #18026 Add OTEL metrics for hook runs @abhinav-oai
- #18092 [codex] Update realtime V2 VAD silence delay and 1.5 prompt @bxie-openai
- #18188 Add tabbed lists, single line rendering, col width changes @canvrno-oai
- #18206 [codex] Split codex turn logic @pakrym-oai
- #18169 Use codex-auto-review for guardian reviews @jeffsharris
- #18196 Use in-process app-server for unknown-thread MCP read test @mzeng-openai
- #18116 Move marketplace add under plugin command @xli-oai
- #18096 feat(sandbox): add glob deny-read platform enforcement @viyatb-oai
- #17971 fix: deprecate use_legacy_landlock feature flag @viyatb-oai
- #18209 Refactor config loading to use filesystem abstraction @pakrym-oai
- #17862 Stream apply_patch changes @akshaynathan
- #18244 Split codex session modules @pakrym-oai
- #17713 feat: add opt-in provider runtime abstraction @celia-oai
- #18182 feat: Handle alternate plugin manifest paths @xl-openai
- #18219 Move Computer Use tool suggestion to core @leoshimo-oai
- #18231 codex: split thread/read view loading @wiltzius-openai
- #18126 fix(exec-policy) rules parsing @dylan-hurd-oai
- #17825 [codex] Revoke ChatGPT tokens on logout @sashank-oai
- #18304 Fix Windows exec policy test flake @etraut-openai
- #17947 fix: reduce writable root @jif-oai
- #18246 Sync local plugin imports, async remote imports, refresh caches after… @alexsong-oai
- #18097 defer all tools behind feature flag @sayan-oai
- #17563 Add PermissionRequest hooks support @abhinav-oai
- #18338 nit: phase 2 ephemeral @jif-oai
- #18267 Support Ctrl+P/Ctrl+N in resume picker @etraut-openai
- #18261 fix(tui): use BEL for terminal title updates @etraut-openai
- #17740 feat(config): support managed deny-read requirements @viyatb-oai
- #18249 Move codex module under session @pakrym-oai
- #18351 Fix config-loader tests after filesystem abstraction race @bolinfest
- #18021 Guardian -> Auto-Review @won-openai
- #18140 feat: config aliases @jif-oai
- #17232 Make app tool hint defaults pessimistic for app policies @colby-oai
- #17499 feat(tui): add clear-context plan implementation @fcoury-oai
- #18352 codex: route thread/read persistence through thread store @wiltzius-openai
- #18263 enable tool search over dynamic tools @sayan-oai
- #18350 ci: make Windows Bazel clippy catch core test imports @bolinfest
- #18362 Add core CODEOWNERS @aibrahim-oai
- #18366 ci: scope Bazel repository cache by job @bolinfest
- #17305 Add sorting/backwardsCursor to thread/list and new thread/turns/list api @ddr-oai
- #18020 [3/6] Add pushed exec process events @aibrahim-oai
- #12640 Update models.json @github-actions
- #18373 Show default reasoning in /status @aibrahim-oai
- #18379 Attribute automated PR Babysitter review replies @etraut-openai
- #18087 [4/6] Abstract MCP stdio server launching @aibrahim-oai
- #18370 perf(tui): defer startup skills refresh @fcoury-oai
- #18222 /plugins: Add v2 tabbed marketplace menu @canvrno-oai
- #18227 [codex] Propagate rate limit reached type @richardopenai
- #18380 exec-server: preserve fs helper runtime env @starr-openai
- #18381 Remove the tier constraint from connectors directory requests @xl-openai
- #18211 refactor: narrow async lock guard lifetimes @bolinfest
- #18017 [codex] Add cross-repo plugin sources to marketplace manifests @xli-oai
- #18398 refactor: use cloneable async channels for shared receivers @bolinfest
- #18296 fix: fix fs sandbox helper for apply_patch @viyatb-oai
- #18397 [codex] Upgrade rules_rs and llvm to latest BCR versions @zbarsky-openai
- #18082 bazel: use native rust test sharding @bolinfest
- #18384 Update image resizing to fit 2048 square bounds @pakrym-oai
- #17277 feat: Add remote plugin fields to plugin API @xl-openai
- #18395 /plugins: Add inline enablement toggles @canvrno-oai
- #14718 fix: trust-gate project hooks and exec policies @viyatb-oai
- #17891 [TUI] add external config migration prompt when start TUI @alexsong-oai
- #18369 Feat/auto review dev message marker @won-openai
- #18298 feat: Budget skill metadata and surface trimming as a warning @xl-openai
- #18449 [codex] Describe uninstalled cross-repo plugin reads @xli-oai
- #18220 [codex] Add owner nudge app-server API @richardopenai
- #17752 [codex] Add marketplace remove command and shared logic @xli-oai
- #18382 Add max context window model metadata @aibrahim-oai
- #18325 Revert "[codex] drain mailbox only at request boundaries" @jif-oai
- #18386 Update image outputs to default to high detail @pakrym-oai
- #18499 Fix plugin cache panic when cwd is unavailable @etraut-openai
- #18212 [5/6] Wire executor-backed MCP stdio @aibrahim-oai
- #18573 feat(tui): show context used in plan implementation prompt @fcoury-oai
- #18500 Support
codex appon macOS (Intel) and Windows @etraut-openai - #18542 Queue slash and shell prompts in the TUI @etraut-openai
- #18524 Add fallback source for external official marketplace @alexsong-oai
- #18571 Log realtime session id @aibrahim-oai
- #18585 Remove unused models.json @aibrahim-oai
- #18190 Add
/sideconversations @etraut-openai - #18580 Avoid redundant memory enable notice @etraut-openai
- #18443 Do not grant Windows sandbox ACLs on USERPROFILE @efrazer-oai
- #18493 Filter Windows sandbox roots from SSH config dependencies @efrazer-oai
- #17978 Persist and prewarm agent tasks per thread @adrian-openai
- #18604 Add tldr docs for responses-api-proxy @andmis
- #18601 Soften Fast mode plan usage copy @pash-openai
- #18596 chore(multiagent) skills instructions toggle @dylan-hurd-oai
- #18599 fix(guardian) disable skills message in guardian thread @dylan-hurd-oai
- #18612 Create dev-small build profile @andmis
- #18440 Use thread IDs in TUI resume hints @etraut-openai
- #18605 TUI: remove simple legacy_core re-exports @etraut-openai
- #18625 Add
codex debug modelsto show model catalog @andmis - #18221 [codex] Add workspace owner usage nudge UI @richardopenai
- #17980 [codex] Use AgentAssertion downstream behind use_agent_identity @adrian-openai
- #17751 [codex] Add marketplace/remove app-server RPC @xli-oai
- #18644 feat: add mem 2 agent header @jif-oai
- #18353 chore: morpheus to path @jif-oai
- #18649 fix: main 2 @jif-oai
- #17721 Stabilize marketplace/remove installedRoot test @xli-oai
- #18492 fix: FS watcher when file does not exist yet @jif-oai
- #18646 feat: add
--ignore-user-configand--ignore-rules@jif-oai - #18652 nit: telepathy to chronicle in tests @jif-oai
- #18654 fix: exec policy loading for sub-agents @jif-oai
- #18651 feat: chronicle alias @jif-oai
- Standalone installs are more self-contained, and
-
Codex can now help with more of your work 26.415
Codex is becoming a broader workspace for getting work done with AI. This update makes it easier to start work with less setup, verify what Codex is building, create richer outputs, and keep momentum across longer-running tasks.
Verify more of your work
The Codex app now includes an early in-app browser. You can open local or public pages that don’t require sign-in, comment directly on the rendered page, and ask Codex to address page-level feedback.
Computer use lets Codex operate macOS apps by seeing, clicking, and typing, which helps with native app testing, simulator flows, low-risk app settings, and GUI-only bugs.
The feature isn’t available in the European Economic Area, the United Kingdom, or Switzerland at launch.
Start, follow, and steer work
Chats are threads you can start without choosing a project folder first. They’re useful for research, writing, planning, analysis, source gathering, and tool-driven work that doesn’t begin in a codebase.
For work that needs a later check-in, thread automations can wake up the same thread on a schedule while preserving the conversation context. Use them to check a long-running process, watch for updates, or continue a follow-up loop without starting from scratch.
The task sidebar makes plans, sources, generated artifacts, and summaries easier to follow while Codex works. Context-aware suggestions can also help you pick up relevant follow-ups when you start or return to Codex.
Stronger for software development
Codex now brings more of the pull request workflow into the app. You can inspect GitHub pull requests in the sidebar, review comments in the diff, review changed files, then ask Codex to explain feedback, make changes, check them, and keep the review moving.
Review richer outputs
The artifact viewer can preview generated files such as PDF files, spreadsheets, documents, and presentations in the sidebar before you commit or share them. Memories, where available, can also carry useful context from past tasks into future threads, including stable preferences, project conventions, and recurring work patterns.
Other features
- Remote connections - We are gradually rolling out SSH remote connections in alpha
- Support for multiple terminals
- macOS menu bar and Windows system tray support
- Multi-window support
- Intel Mac support
- New plugins
- Improved thread and tool rendering
-
Codex CLI 0.121.0
$ npm install -g @openai/codex@0.121.0View details
New Features
- Added
codex marketplace addand app-server support for installing plugin marketplaces from GitHub, git URLs, local directories, and directmarketplace.jsonURLs (#17087, #17717, #17756). - Added TUI prompt history improvements, including
Ctrl+Rreverse search and local recall for accepted slash commands (#17550, #17336). - Added TUI and app-server controls for memory mode, memory reset/deletion, and memory-extension cleanup (#17632, #17626, #17913, #17937, #17844).
- Expanded MCP/plugin support with MCP Apps tool calls, namespaced MCP registration, parallel-call opt-in, and sandbox-state metadata for MCP servers (#17364, #17404, #17667, #17763).
- Added realtime and app-server APIs for output modality, transcript completion events, raw turn item injection, and symlink-aware filesystem metadata (#17701, #17703, #17719).
- Added a secure devcontainer profile with bubblewrap support, plus macOS sandbox allowlists for Unix sockets (#10431, #17547, #17654).
Bug Fixes
- Fixed macOS sandbox/proxy handling for private DNS and removed the
danger-full-accessdenylist-only network mode (#17370, #17732). - Fixed Windows cwd/session matching so
resume --lastandthread/listwork when paths use verbatim prefixes (#17414). - Fixed rate-limit/account handling for
proliteplans and made unknown WHAM plan values decodable (#17419). - Made Guardian timeouts distinct from policy denials, with timeout-specific guidance and visible TUI history entries (#17381, #17486, #17521, #17557).
- Stabilized app-server behavior by avoiding premature thread unloads, tolerating failed trust persistence on startup, and skipping broken symlinks in
fs/readDirectory(#17398, #17595, #17907). - Fixed MCP/tool-call edge cases including flattened deferred tool names, elicitation timeout accounting, and empty namespace descriptions (#17556, #17566, #17946).
Documentation
- Documented the secure devcontainer profile and its bubblewrap requirements (#10431, #17547).
- Added TUI composer documentation for history search behavior (#17550).
- Updated app-server docs for new MCP, marketplace, turn injection, memory reset, filesystem metadata, external-agent migration, and websocket token-hash APIs (#17364, #17717, #17703, #17913, #17719, #17855, #17871).
- Documented WSL1 bubblewrap limitations and WSL2 behavior (#17559).
- Added memory pipeline documentation for extension cleanup (#17844).
Chores
- Hardened supply-chain and CI inputs by pinning GitHub Actions, cargo installs, git dependencies, V8 checksums, and cargo-deny source allowlists (#17471).
- Added Bazel release-build verification so release-only Rust code is compiled in PR CI (#17704, #17705).
- Introduced the
codex-thread-storecrate/interface and moved local thread listing behind it (#17659, #17824). - Required reviewed pnpm dependency build scripts for workspace installs (#17558).
- Reduced Rust maintenance surface with broader absolute-path types and removal of unused helper APIs (#17407, #17792, #17146).
Changelog
Full Changelog: rust-v0.120.0...rust-v0.121.0
- #17087 Add marketplace command @xli-oai
- #17409 Fix Windows exec-server output test flake @etraut-openai
- #17381 representing guardian review timeouts in protocol types @won-openai
- #17399 TUI: enforce core boundary @etraut-openai
- #17370 fix: unblock private DNS in macOS sandbox @viyatb-oai
- #17396 update cloud requirements parse failure msg @alexsong-oai
- #17364 [mcp] Support MCP Apps part 3 - Add mcp tool call support. @mzeng-openai
- #17424 Stabilize marketplace add local source test @ningyi-oai
- #17414 Fix thread/list cwd filtering for Windows verbatim paths @etraut-openai
- #10431 feat(devcontainer): add separate secure customer profile @viyatb-oai
- #17314 Pass turn id with feedback uploads @ningyi-oai
- #17336 fix(tui): recall accepted slash commands locally @fcoury-oai
- #17430 Handle closed TUI input stream as shutdown @etraut-openai
- #17385 Add use_agent_identity feature flag @adrian-openai
- #17483 Update issue labeler agent labels @etraut-openai
- #17493 fix @aibrahim-oai
- #17419 Support prolite plan type @etraut-openai
- #17416 Clear /ps after /stop @etraut-openai
- #17415 Restore codex-tui resume hint on exit @etraut-openai
- #17402 chore: refactor name and namespace to single type @sayan-oai
- #17486 changing decision semantics after guardian timeout @won-openai
- #17521 Clarify guardian timeout guidance @won-openai
- #17547 [codex] Support bubblewrap in secure Docker devcontainer @viyatb-oai
- #17519 Budget realtime current thread context @aibrahim-oai
- #17556 [codex] Support flattened deferred MCP tool calls @fc-oai
- #17558 build(pnpm): require reviewed dependency build scripts @mcgrew-oai
- #17559 fix(sandboxing): reject WSL1 bubblewrap sandboxing @viyatb-oai
- #17520 Mirror user text into realtime @aibrahim-oai
- #17550 feat(tui): add reverse history search to composer @fcoury-oai
- #17420 Remove context status-line meter @etraut-openai
- #17506 Expose instruction sources (AGENTS.md) via app server @etraut-openai
- #17566 fix(mcp) pause timer for elicitations @dylan-hurd-oai
- #17406 Add MCP tool wall time to model output @pakrym-oai
- #17294 Run exec-server fs operations through sandbox helper @starr-openai
- #17605 Stabilize exec-server process tests @etraut-openai
- #17221 feat: ignore keyring on 0.0.0 @jif-oai
- #17216 Build remote exec env from exec-server policy @jif-oai
- #17633 nit: change consolidation model @jif-oai
- #17640 fix: stability exec server @jif-oai
- #17643 fix: dedup compact @jif-oai
- #17247 Make forked agent spawns keep parent model config @friel-openai
- #17470 Fix custom tool output cleanup on stream failure @etraut-openai
- #17417 Emit plan-mode prompt notifications for questionnaires @etraut-openai
- #17481 Wrap status reset timestamps in narrow layouts @etraut-openai
- #17601 Suppress duplicate compaction and terminal wait events @etraut-openai
- #17657 Fix TUI compaction item replay @etraut-openai
- #17595 Do not fail thread start when trust persistence fails @etraut-openai
- #17407 Use AbsolutePathBuf in skill loading and codex_home @pakrym-oai
- #17626 feat: disable memory endpoint @jif-oai
- #17365 Include legacy deny paths in elevated Windows sandbox setup @iceweasel-oai
- #17638 feat: Avoid reloading curated marketplaces for tool-suggest discovera… @jif-oai
- #17398 app-server: Only unload threads which were unused for some time @euroelessar
- #17669 only specify remote ports when the rule needs them @iceweasel-oai
- #17691 Fix tui compilation @davidhao3300
- #17384 Update phase 2 memory model to gpt-5.4 @kliu128
- #17395 Remove unnecessary tests @kliu128
- #17685 Cap realtime mirrored user turns @aibrahim-oai
- #17699 change realtime tool description @aibrahim-oai
- #17667 Add
supports_parallel_tool_callsflag to included mcps @josiah-openai - #17703 Add turn item injection API @pakrym-oai
- #17671 Stabilize exec-server filesystem tests in CI @starr-openai
- #17557 guardian timeout fix pr 3 - ux touch for timeouts @won-openai
- #17719 [codex] Add symlink flag to fs metadata @pakrym-oai
- #17146 [codex] Remove unused Rust helpers @pakrym-oai
- #17471 fix: pin inputs @viyatb-oai
- #17717 [codex] Refactor marketplace add into shared core flow @xli-oai
- #17747 Refactor plugin loading to async @pakrym-oai
- #17709 [codex] Initialize ICU data for code mode V8 @pakrym-oai
- #17749 [codex] drain mailbox only at request boundaries @tibo-openai
- #16640 [codex-analytics] feature plumbing and emittance @rhan-oai
- #17761 Tighten realtime handoff finalization @aibrahim-oai
- #17701 Add realtime output modality and transcript events @aibrahim-oai
- #17777 nit: feature flag @jif-oai
- #17637 feat: add context percent to status line @jif-oai
- #17665 Always enable original image detail on supported models @fjord-oai
- #17374 [codex-analytics] add session source to client metadata @marksteinbrick-oai
- #17489 Moving updated-at timestamps to unique millisecond times @ddr-oai
- #17784 feat: codex sampler @jif-oai
- #17732 fix: Revert danger-full-access denylist-only mode @viyatb-oai
- #17234 Redirect debug client output to a file @rasmusrygaard
- #17803 Keep image_detail_original as a removed feature flag @fjord-oai
- #17372 app-server: prepare to run initialized rpcs concurrently @euroelessar
- #17704 Refactor Bazel CI job setup @bolinfest
- #17674 Route apply_patch through the environment filesystem @starr-openai
- #17702 Fix remote skill popup loading @starr-openai
- #17830 [codex] Fix app-server initialized request analytics build @etraut-openai
- #17389 [codex-analytics] enable general analytics by default @rhan-oai
- #17659 thread store interface @wiltzius-openai
- #17792 Spread AbsolutePathBuf @pakrym-oai
- #17808 fix: apply patch bin refresh @jif-oai
- #17838 Add realtime wire trace logs @aibrahim-oai
- #17684 Adjust default tool search result caps @malone-oai
- #17705 Add Bazel verify-release-build job @bolinfest
- #17720 Make skill loading filesystem-aware @pakrym-oai
- #17756 [codex] Support local marketplace sources @xli-oai
- #17846 Fix for Guardian CI Tests stack overflow, applying Box to reduce stack pressure @won-openai
- #17855 support plugins in external agent config migration @alexsong-oai
- #17872 Disable hooks in guardian review sessions @abhinav-oai
- #17868 Wrap delegated input text @guinness-oai
- #17884 Fix clippy warnings in external agent config migration @canvrno-oai
- #17837 Reuse remote exec-server in core tests @starr-openai
- #17859 sandbox: remove dead seatbelt helper and update tests @bolinfest
- #17870 fix: cleanup the contract of the general-purpose exec() function @bolinfest
- #17871 fix: add websocket capability token hash support @viyatb-oai
- #17763 Send sandbox state through MCP tool metadata @aaronl-openai
- #17654 Support Unix socket allowlists in macOS sandbox @aaronl-openai
- #17915 fix: cargo deny @jif-oai
- #17913 feat: add endpoint to delete memories @jif-oai
- #17844 feat: cleaning of memories extension @jif-oai
- #17921 chore: exp flag @jif-oai
- #17917 [codex] Fix current main CI blockers @sayan-oai
- #17919 chore: do not disable memories for past rollouts on reset @jif-oai
- #17924 nit: stable test @jif-oai
- #17632 feat: memories menu @jif-oai
- #17404 register all mcp tools with namespace @sayan-oai
- #17941 nit: doc @jif-oai
- #17938 feat: sanitize rollouts before phase 1 @jif-oai
- #17937 feat: reset memories button @jif-oai
- #17883 Remove exec-server fs sandbox request preflight @pakrym-oai
- #17386 Register agent identities behind use_agent_identity @adrian-openai
- #17907 Fix fs/readDirectory to skip broken symlinks @willwang-openai
- #17960 chore(features) codex dependencies feat @dylan-hurd-oai
- #17965 fix: rename is_azure_responses_wire_base_url to is_azure_responses_provider @bolinfest
- #17946 Fix empty tool descriptions @shijie-oai
- #17824 [codex] Add local thread store listing @wiltzius-openai
- #17942 Add CLI update announcement @shijie-oai
- #17866 Refactor auth providers to mutate request headers @pakrym-oai
- #17902 app-server: track remote-control seq IDs per stream @euroelessar
- #17957 mcp: remove codex/sandbox-state custom request support @bolinfest
- #17953 fix: propagate log db @jif-oai
- #17920 chore(tui) cleanup @dylan-hurd-oai
- #17981 chore: tmp disable @jif-oai
- Added
-
Codex CLI 0.120.0
$ npm install -g @openai/codex@0.120.0View details
New Features
- Realtime V2 can now stream background agent progress while work is still running and queue follow-up responses until the active response completes (#17264, #17306)
- Hook activity in the TUI is easier to scan, with live running hooks shown separately and completed hook output kept only when useful (#17266)
- Custom TUI status lines can include the renamed thread title (#17187)
- Code-mode tool declarations now include MCP
outputSchemadetails so structured tool results are typed more precisely (#17210) - SessionStart hooks can distinguish sessions created by
/clearfrom fresh startup or resume sessions (#17073)
Bug Fixes
- Fixed Windows elevated sandbox handling for split filesystem policies, including read-only carveouts under writable roots (#14568)
- Fixed sandbox permission handling for symlinked writable roots and carveouts, preventing failures in shell and
apply_patchworkflows (#15981) - Fixed
codex --remote wss://...panics by installing the Rustls crypto provider before TLS websocket connections (#17288) - Preserved tool search result ordering instead of alphabetically reordering results (#17263)
- Fixed live Stop-hook prompts so they appear immediately instead of only after thread history reloads (#17189)
- Fixed app-server MCP cleanup on disconnect so unsubscribed threads and resources are torn down correctly (#17223)
Documentation
- Documented the elevated vs restricted-token Windows sandbox support split in the core README (#14568)
- Updated app-server protocol documentation for the new
/clearSessionStart source (#17073)
Chores
- Made rollout recording more reliable by retrying failed flushes and surfacing durability failures instead of dropping buffered items (#17214)
- Added analytics schemas and metadata wiring for compaction and Guardian review events (#17155, #17055)
- Improved Guardian follow-up efficiency by sending transcript deltas instead of repeatedly resending full history (#17269)
- Added stable Guardian review IDs across app-server events and internal approval state (#17298)
Changelog
Full Changelog: rust-v0.119.0...rust-v0.120.0
- #17268 remove windows gate that disables hooks @iceweasel-oai
- #17267 Stop Realtime V2 response.done delegation @aibrahim-oai
- #14568 fix: support split carveouts in windows elevated sandbox @viyatb-oai
- #17263 preserve search results order in tool_search_output @sayan-oai
- #17189 Emit live hook prompts before raw-event filtering @abhinav-oai
- #17288 Install rustls provider for remote websocket client @etraut-openai
- #16969 Option to Notify Workspace Owner When Usage Limit is Reached @richardopenai
- #17278 Rename Realtime V2 tool to background_agent @aibrahim-oai
- #17280 Extract realtime input task handlers @aibrahim-oai
- #17249 adding parent_thread_id in guardian @won-openai
- #17264 Stream Realtime V2 background agent progress @aibrahim-oai
- #17210 Add output_schema to code mode render @vivi
- #16344 feat: move exec-server ownership @jif-oai
- #17214 feat: make rollout recorder reliable against errors @jif-oai
- #17223 fix: MCP leaks in app-server @jif-oai
- #17338 feat: description multi-agent v2 @jif-oai
- #17269 feat(guardian): send only transcript deltas on guardian followups @owenlin0
- #17306 Queue Realtime V2 response.create while active @aibrahim-oai
- #17352 fix: main @jif-oai
- #17363 Strengthen realtime backend delegation prompt @aibrahim-oai
- #17155 [codex-analytics] add compaction analytics event @rhan-oai
- #17187 Add thread title to configurable TUI status line @canvrno-oai
- #17194 add parent-id to guardian context @won-openai
- #17266 [codex] Improve hook status rendering @abhinav-oai
- #17073 Support clear SessionStart source @abhinav-oai
- #17298 fix(guardian, app-server): introduce guardian review ids @owenlin0
- #17391 Revert "Option to Notify Workspace Owner When Usage Limit is Reached" @shijie-oai
- #17371 app-server: add pipelined config rpc regression test @euroelessar
- #15981 fix(permissions): fix symlinked writable roots in sandbox permissions @viyatb-oai
- #17055 feat(analytics): add guardian review event schema @owenlin0
-
Codex CLI 0.119.0
$ npm install -g @openai/codex@0.119.0View details
New Features
- Realtime voice sessions now default to the v2 WebRTC path, with configurable transport, voice selection, native TUI media support, and app-server coverage for the new flow (#16960, #17057, #17058, #17093, #17097, #17145, #17165, #17176, #17183, #17188).
- MCP Apps and custom MCP servers gained richer support, including resource reads, tool-call metadata, custom-server tool search, server-driven elicitations, file-parameter uploads, and more reliable plugin cache refreshes (#16082, #16465, #16944, #17043, #15197, #16191, #16947).
- Remote/app-server workflows now support egress websocket transport, remote
--cdforwarding, runtime remote-control enablement, sandbox-aware filesystem APIs, and an experimentalcodex exec-serversubcommand (#15951, #16700, #16973, #16751, #17059, #17142, #17162). - The TUI can copy the latest agent response with
Ctrl+O, including better clipboard behavior over SSH and across platforms (#16966). /resumecan now jump directly to a session by ID or name from the TUI (#17222).- TUI notifications are more configurable, including Warp OSC 9 support and an opt-in mode for notifications even while the terminal is focused (#17174, #17175).
Bug Fixes
- The TUI starts faster by fetching rate limits asynchronously, and
/statusnow refreshes stale limits instead of showing frozen or misleading quota information (#16201, #17039). - Resume flows are more stable: the picker no longer flashes false empty states, uses fresher thread names, stabilizes timestamp labels, preserves resume hints on zero-token exits, and avoids crashing when resuming the current thread (#16591, #16601, #16822, #16987, #17086).
- Composer and chat behavior are smoother, including fixed paste teardown, CJK word navigation, stale
/copyoutput, percent-decoded local file links, and clearer truncated exec-output hints (#16202, #16829, #16648, #16810, #17076). - Fast Mode no longer stays stuck on after
/fast offin app-server-backed TUI sessions (#16833). - MCP status and startup are less noisy and faster: hyphenated server names list tools correctly,
/mcpavoids slow full inventory probes, disabled servers skip auth probing, and residency headers are honored bycodex mcp-server(#16674, #16831, #17098, #16952). - Sandbox, network, and platform edge cases were tightened, including clearer read-only
apply_patcherrors, refreshed network proxy policy after sandbox changes, suppressed irrelevant bubblewrap warnings, a macOS HTTP-client sandbox panic fix, and Windows firewall address handling (#16885, #17040, #16667, #16670, #17053).
Documentation
- The README now uses the current ChatGPT Business plan name (#16348).
- Developer guidance for
argument_comment_lintwas updated to favor getting CI started instead of blocking on slow local lint runs (#16375). - Obsolete
codex-cliREADME content was removed to avoid stale setup guidance (#17096). codex exec --helpnow shows clearer usage and approval-mode wording (#16881, #16888).
Chores
codex-corewas slimmed down through major crate extractions for MCP, tools, config, model management, auth, feedback, protocol, and related ownership boundaries (#15919, #16379, #16508, #16523, #16962).- Rust CI and workspace guardrails were simplified by blocking new crate features and dropping routine
--all-featuresruns (#16455, #16473). - Core compile times were reduced by removing expensive async-trait expansion from hot tool/task abstractions (#16630, #16631).
- Bazel diagnostics and dependency wiring improved with compact execution logs, repository-cache persistence, remote downloader support, and several platform-specific build fixes (#16577, #16926, #16928, #16634, #16744).
Changelog
Full Changelog: rust-v0.118.0...rust-v0.119.0
- #16308 fix: one shot end of turn @jif-oai
- #16238 fix: ma2 @jif-oai
- #16317 chore: clean wait v2 @jif-oai
- #16318 nit: update aborted line @jif-oai
- #15771 feat: fork pattern v2 @jif-oai
- #16322 fix: update fork boundaries computation @jif-oai
- #16325 feat: restrict spawn_agent v2 to messages @jif-oai
- #16324 chore: drop interrupt from send_message @jif-oai
- #16345 fix: fix clippy issue caught by cargo but not bazel @bolinfest
- #16184 Route TUI
/feedbacksubmission through the app server @etraut-openai - #16330 feat: log db better maintenance @jif-oai
- #15690 [codex-analytics] thread events @rhan-oai
- #16363 Fix PR babysitter review comment monitoring @etraut-openai
- #16356 Refactor external auth to use a single trait @etraut-openai
- #16366 Fix Windows external bearer refresh test @bolinfest
- #16353 ci: verify codex-rs Cargo manifests inherit workspace settings @bolinfest
- #16361 Refactor chatwidget tests into topical modules @etraut-openai
- #16201 Fix stale /status rate limits in active TUI sessions @etraut-openai
- #16351 ci: sync Bazel clippy lints and fix uncovered violations @bolinfest
- #16378 fix: suppress status card expect_used warnings after #16351 @bolinfest
- #16406 Use message string in v2 spawn_agent @jif-oai
- #16409 Use message string in v2 send_message @jif-oai
- #16419 Use message string in v2 assign_task @jif-oai
- #16424 feat: tasks can't be assigned to root agent @jif-oai
- #16425 nit: update wait v2 desc @jif-oai
- #16426 chore: interrupted as state @jif-oai
- #16427 nit: deny field v2 @jif-oai
- #16433 chore: drop log DB @jif-oai
- #16434 feat: auto vaccum state DB @jif-oai
- #16422 fix(core) rm execute_exec_request sandbox_policy @dylan-hurd-oai
- #16375 docs: update argument_comment_lint instructions in AGENTS.md @bolinfest
- #16449 fix: remove unused import @bolinfest
- #15772 Make fuzzy file search case insensitive @meyers-oai
- #16455 ci: block new workspace crate features @bolinfest
- #16456 cloud-tasks: split the mock client out of cloud-tasks-client @bolinfest
- #16457 tui: remove debug/test-only crate features @bolinfest
- #16467 tui: remove the voice-input crate feature @bolinfest
- #16379 Extract tool config into codex-tools @bolinfest
- #16469 otel: remove the last workspace crate feature @bolinfest
- #16471 Extract tool spec helpers into codex-tools @bolinfest
- #16473 ci: stop running rust CI with --all-features @bolinfest
- #16477 Extract tool discovery helpers into codex-tools @bolinfest
- #16480 login: treat provider auth refresh_interval_ms=0 as no auto-refresh @bolinfest
- #16448 fix(guardian): make GuardianAssessmentEvent.action strongly typed @owenlin0
- #16481 Extract update_plan tool spec into codex-tools @bolinfest
- #15919 Extract MCP into codex-mcp crate @aibrahim-oai
- #16482 Remove client_common tool re-exports @bolinfest
- #16495 fix: remove unused import @bolinfest
- #16493 Extract built-in tool spec constructors into codex-tools @bolinfest
- #16273 Fix regression: "not available in TUI" error message @etraut-openai
- #16497 Extract tool-search output helpers into codex-tools @bolinfest
- #16498 fix: guard guardian_command_source_tool_name with cfg(unix) @bolinfest
- #16499 Extract tool-suggest wire helpers into codex-tools @bolinfest
- #16284 Fix TUI app-server permission profile conversions @etraut-openai
- #16202 Fix paste-driven bottom pane completion teardown @etraut-openai
- #16504 core: use codex-tools config types directly @bolinfest
- #16503 Extract request_user_input normalization into codex-tools @bolinfest
- #16510 core: use codex-mcp APIs directly @bolinfest
- #16509 Extract code-mode nested tool collection into codex-tools @bolinfest
- #16512 core: remove cross-crate re-exports from lib.rs @bolinfest
- #16516 fix: add update to Cargo.lock that was missed in #16512 @bolinfest
- #16513 Extract tool registry planning into codex-tools @bolinfest
- #16521 Move tool registry plan tests into codex-tools @bolinfest
- #16523 [codex] Move config types into codex-config @bolinfest
- #16524 fix: move some test utilities out of codex-rs/core/src/tools/spec.rs @bolinfest
- #16529 [codex] Remove codex-core config type shim @bolinfest
- #16559 chore: memories mini model @jif-oai
- #16561 fix: race pending @jif-oai
- #16564 nit: lint @jif-oai
- #16566 fix: races in end of turn @jif-oai
- #16567 chore: rework state machine further @jif-oai
- #16569 nit: state machine desc @jif-oai
- #16571 chore: rename assign_task for followup_task @jif-oai
- #16577 ci: upload compact Bazel execution logs for bazel.yml @bolinfest
- #16581 chore: move codex-exec unit tests into sibling files @bolinfest
- #16590 Fix non-determinism in rules_rs/crate_git_repository.bzl @tyler-french
- #16604 test: deflake external bearer auth token tests on Windows @bolinfest
- #16606 fix: add more detail to test assertion @bolinfest
- #16608 fix: increase timeout to account for slow PowerShell startup @bolinfest
- #16591 Fix resume picker initial loading state @etraut-openai
- #16613 fix: increase another startup timeout for PowerShell @bolinfest
- #16601 Fix resume picker stale thread names @etraut-openai
- #16616 Fixed some existing labels and added a few new ones @etraut-openai
- #16588 Fix stale turn steering during TUI review follow-ups @etraut-openai
- #16617 fix: add shell fallback paths for pwsh/powershell that work on GitHub Actions Windows runners @bolinfest
- #16596 Fix fork source display in /status (expose forked_from_id in app server) @etraut-openai
- #16578 fix(tui): handle zellij redraw and composer rendering @fcoury-oai
- #16630 core: cut codex-core compile time 63% with native async ToolHandler @bolinfest
- #16631 core: cut codex-core compile time 48% with native async SessionTask @bolinfest
- #16492 Auto-trust cwd on thread start @aibrahim-oai
- #16633 fix: address unused variable on windows @bolinfest
- #16635 app-server: make thread/shellCommand tests shell-aware @bolinfest
- #16629 test: use cmd.exe for ProviderAuthScript on Windows @bolinfest
- #16634 build: fix Bazel lzma-sys wiring @starr-openai
- #16658 Fix deprecated login --api-key parsing @etraut-openai
- #16508 extract models manager and related ownership from core @aibrahim-oai
- #16662 fix: changes to test that should help them pass on Windows under Bazel @bolinfest
- #16665 fix: use COMSPEC in Windows unicode shell test @bolinfest
- #16668 fix: use cmd.exe in Windows unicode shell test @bolinfest
- #16626 remove temporary ownership re-exports @aibrahim-oai
- #16648 Fix stale /copy output after commentary-only turns @etraut-openai
- #16674 Fix MCP tool listing for hyphenated server names @etraut-openai
- #16667 Suppress bwrap warning when sandboxing is bypassed @etraut-openai
- #16670 Fix macOS sandbox panic in Codex HTTP client @etraut-openai
- #16699 Fix macOS malloc diagnostics leaking into TUI composer @etraut-openai
- #16700 Add remote --cd forwarding for app-server sessions @etraut-openai
- #16707 fix: preserve platform-specific core shell env vars @bolinfest
- #16715 fix: address clippy violations that sneaked in @bolinfest
- #16722 fix windows-only clippy lint violation @bolinfest
- #16710 fix(tui): sort skill mentions by display name first @fcoury-oai
- #16709 Sanitize forked child history @aibrahim-oai
- #16711 Fix Windows Bazel app-server trust tests @bolinfest
- #16720 Remove OPENAI_BASE_URL config fallback @etraut-openai
- #16528 Codex/windows bazel rust test coverage no rs @bolinfest
- #16450 bazel: lint rust_test targets in clippy workflow @bolinfest
- #16735 [codex] allow disabling prompt instruction blocks @tibo-openai
- #16745 [codex] allow disabling environment context injection @tibo-openai
- #16725 Preempt mailbox mail after reasoning/commentary items @aibrahim-oai
- #16755 Use Node 24 for npm publish @aibrahim-oai
- #16753 [codex] add responses proxy JSON dumps @tibo-openai
- #16746 Add spawn context for MultiAgentV2 children @aibrahim-oai
- #16757 Back out "bazel: lint rust_test targets in clippy workflow (#16450)" @bolinfest
- #16737 test: avoid PowerShell startup in Windows auth fixture @bolinfest
- #16740 ci: align Bazel repo cache and Windows clippy target handling @bolinfest
- #16758 [codex] add context-window lineage headers @tibo-openai
- #16763 Add CODEX_SKIP_VENDORED_BWRAP @andmis
- #15915 [codex-analytics] subagent analytics @rhan-oai
- #16823 Fix flaky test relating to metadata remote URL @etraut-openai
- #16825 Fix flaky permissions escalation test on Windows @etraut-openai
- #16881 Fix misleading codex exec help usage @etraut-openai
- #16888 Clarify
codex execapproval help @etraut-openai - #16876 [codex] add response proxy subagent header test @tibo-openai
- #16829 Fix CJK word navigation in the TUI composer @etraut-openai
- #16833 Fix TUI fast mode toggle regression @etraut-openai
- #16795 [regression] Fix ephemeral turn backfill in exec @etraut-openai
- #16822 Fix resume picker timestamp labels and stability @etraut-openai
- #16813 Annotate skill doc reads with skill names @etraut-openai
- #16810 (tui): Decode percent-escaped bare local file links @etraut-openai
- #16877 [codex-backend] Make thread metadata updates tolerate pending backfill @joeytrasatti-openai
- #16701 feat(requirements): support allowed_approval_reviewers @owenlin0
- #16925 fix(bazel): fix simdutf @owenlin0
- #16926 bazel: Always save bazel repository cache @euroelessar
- #16928 bazel: Enable
--experimental_remote_downloader@euroelessar - #16462 fix(guardian): fix ordering of guardian events @owenlin0
- #16924 fix(sqlite): don't hard fail migrator if DB is newer @owenlin0
- #16744 build: restore lzma-sys Bazel wiring for devbox codex run @starr-openai
- #16764 app-server: centralize AuthManager initialization @euroelessar
- #16939 Fix clippy warning @mzeng-openai
- #16923 Revert "[codex-backend] Make thread metadata updates tolerate pending backfill" @joeytrasatti-openai
- #15951 app-server: Add egress websocket transport @euroelessar
- #16945 [codex] Allow PyTorch libomp shm in Seatbelt @viyatb-oai
- #16947 feat: fallback curated plugin download from backend endpint. @xl-openai
- #16191 feat: refresh non-curated cache from plugin list. @xl-openai
- #16952 Respect residency requirements in mcp-server @etraut-openai
- #16827 tui: route device-code auth through app server @etraut-openai
- #16638 [codex-analytics] add protocol-native turn timestamps @rhan-oai
- #16831 Speed up /mcp inventory listing @etraut-openai
- #16349 Disable env-bound tools when exec server is none @starr-openai
- #16957 Promote image_detail_original to experimental @fjord-oai
- #16962 Refactor config types into a separate crate @pakrym-oai
- #16153 Add setTimeout support to code mode @pakrym-oai
- #16961 app-server: Unify config changes handling a bit @euroelessar
- #16890 Validate exec input before starting app-server @etraut-openai
- #16082 [mcp] Support MCP Apps part 1. @mzeng-openai
- #15893 fix: warn when bwrap cannot create user namespaces @viyatb-oai
- #16946 [codex] Add danger-full-access denylist-only network mode @viyatb-oai
- #16972 app-server: Fix compilation of a test in mcp_resource @euroelessar
- #15826 Make AGENTS.md discovery FS-aware @pakrym-oai
- #16964 Honor null thread instructions @aibrahim-oai
- #16988 collapse dev message into one @won-openai
- #16724 [codex] ez - rename env=>request in codex-rs/core/src/unified_exec/process_manager.rs @starr-openai
- #16999 feat: empty role ok @jif-oai
- #17002 chore: debug flag to hide some parameters @jif-oai
- #17005 feat: drop agent ID from v2 @jif-oai
- #17008 chore: send_message and followup_task do not return anything @jif-oai
- #17007 chore: hide nickname for debug flag @jif-oai
- #16442 feat: /feedback cascade @jif-oai
- #16978 [codex] reduce module visibility @pakrym-oai
- #17009 chore: keep request_user_input tool to persist cache on multi-agents @jif-oai
- #16739 Stabilize flaky multi-agent followup interrupt test @etraut-openai
- #16885 Fix read-only apply_patch rejection message @etraut-openai
- #16882 Fix nested exec thread ID restore @etraut-openai
- #16976 Preserve null developer instructions @aibrahim-oai
- #16987 Fix missing resume hint on zero-token exits @etraut-openai
- #16912 feat(analytics): generate an installation_id and pass it in responsesapi client_metadata @owenlin0
- #16956 fix(guardian): don't throw away transcript when over budget @owenlin0
- #16981 [codex] Make AbsolutePathBuf joins infallible @pakrym-oai
- #16348 Update README @romainhuet
- #16977 [codex] Make unified exec tests remote aware @pakrym-oai
- #16465 [mcp] Support MCP Apps part 2 - Add meta to mcp tool call result. @mzeng-openai
- #17026 app-server: Move watch_id to request of fs/watch @euroelessar
- #16980 Add full-ci branch trigger @pakrym-oai
- #16973 app-server: Allow enabling remote control in runtime @euroelessar
- #17032 [codex] Fix unified exec test build @pakrym-oai
- #17031 fix(core) revert Command line in unified exec output @dylan-hurd-oai
- #17027 [codex] Migrate apply_patch to executor filesystem @pakrym-oai
- #17044 [app-server-protocol] introduce generic ServerResponse for app-server-protocol @rhan-oai
- #17047 fix(app-server) revert null instructions changes @dylan-hurd-oai
- #16960 Add WebRTC transport to realtime start @aibrahim-oai
- #17053 Fix remote address format to work with Windows Firewall rules. @iceweasel-oai
- #17048 [codex] Apply patches through executor filesystem @pakrym-oai
- #16949 Use model metadata for Fast Mode status @pash-openai
- #17039 fix(tui): reduce startup and new-session latency @fcoury-oai
- #17052 Add regression tests for JsonSchema @vivi
- #17059 Add remote exec start script @pakrym-oai
- #17064 Add project-local codex bug triage skill @etraut-openai
- #17040 fix: refresh network proxy settings when sandbox mode changes @viyatb-oai
- #16698 Remove expired April 2nd tooltip copy @etraut-openai
- #17096 Remove obsolete codex-cli README @etraut-openai
- #16875 Support anyOf and enum in JsonSchema @vivi
- #16880 Render function attribute descriptions @vivi
- #16879 Render namespace description for tools @vivi
- #16582 feat: single app-server bootstrap in TUI @jif-oai
- #17117 codex debug 1 (guardian approved) @jif-oai
- #17119 codex debug 3 (guardian approved) @jif-oai
- #17121 codex debug 5 (guardian approved) @jif-oai
- #17123 codex debug 7 (guardian approved) @jif-oai
- #17125 codex debug 9 (guardian approved) @jif-oai
- #17127 codex debug 11 (guardian approved) @jif-oai
- #17129 codex debug 13 (guardian approved) @jif-oai
- #17131 codex debug 15 (guardian approved) @jif-oai
- #17118 codex debug 2 (guardian approved) @jif-oai
- #17120 codex debug 4 (guardian approved) @jif-oai
- #17122 codex debug 6 (guardian approved) @jif-oai
- #17124 codex debug 8 (guardian approved) @jif-oai
- #17126 codex debug 10 (guardian approved) @jif-oai
- #17128 codex debug 12 (guardian approved) @jif-oai
- #17130 codex debug 14 (guardian approved) @jif-oai
- #17071 Configure multi_agent_v2 spawn agent hints @pakrym-oai
- #17091 Show global AGENTS.md in /status @etraut-openai
- #17086 Fix TUI crash when resuming the current thread @etraut-openai
- #17098 Skip MCP auth probing for disabled servers @etraut-openai
- #17097 Add realtime transport config @aibrahim-oai
- #17043 [mcp] Support server-driven elicitations @mzeng-openai
- #17058 Add WebRTC media transport to realtime TUI @aibrahim-oai
- #17063 Use AbsolutePathBuf for exec cwd plumbing @pakrym-oai
- #17138 fix(debug-config, guardian): fix /debug-config rendering and guardian… @owenlin0
- #17046 release ready, enabling only for siwc users @won-openai
- #16751 Add sandbox support to filesystem APIs @starr-openai
- #17142 [codex] Support remote exec cwd in TUI startup @pakrym-oai
- #17149 Fix missing fields @canvrno-oai
- #17154 Fix ToolsConfigParams initializer in tool registry test @won-openai
- #17145 Wire realtime WebRTC native media into Bazel @aibrahim-oai
- #17057 Attach WebRTC realtime starts to sideband websocket @aibrahim-oai
- #17162 Add top-level exec-server subcommand @starr-openai
- #17061 Update guardian output schema @maja-openai
- #17164 Auto-approve MCP server elicitations in Full Access mode @leoshimo-oai
- #17093 Add WebRTC realtime app-server e2e tests @aibrahim-oai
- #17174 Support Warp for OSC 9 notifications @etraut-openai
- #16646 Fix stale thread-name resume lookups @etraut-openai
- #17165 Move default realtime prompt into core @aibrahim-oai
- #17176 Add realtime voice selection @aibrahim-oai
- #17175 Add TUI notification condition config @etraut-openai
- #17183 Default realtime startup to v2 model @aibrahim-oai
- #17186 Skip update prompts for source builds @etraut-openai
- #17188 make webrtc the default experience @aibrahim-oai
- #17163 [codex] Defer steering until after sampling the model post-compaction @jgershen-oai
- #17222 feat: /resume per ID/name @jif-oai
- #17226 feat: advanced announcements per OS and plans @jif-oai
- #17170 Render statusline context as a meter @etraut-openai
- #17217 Skip local shell snapshots for remote unified exec @jif-oai
- #17116 chore: merge name and title @jif-oai
- #16276 [codex] add memory extensions @kliu128
- #17168 refactor(proxy): clarify sandbox block messages @viyatb-oai
- #17076 [codex] Show ctrl + t hint on truncated exec output in TUI @mom-oai
- #15197 Add Codex Apps sediment file remapping @caseychow-oai
- #16009 Forward app-server turn clientMetadata to Responses @neil-oai
- #17256 app-server: Use shared receivers for app-server message processors @euroelessar
- #16944 [mcp] Expand tool search to custom MCPs. @mzeng-openai
- #16966 feat(tui): Ctrl+O copy hotkey and harden copy-as-markdown behavior @fcoury-oai
- #17262 app-server: Fix clippy by removing extra
mut@euroelessar - #17258 Omit empty app-server instruction overrides @aibrahim-oai
-
Codex model availability update
We’re updating model availability for users who sign in with ChatGPT. Starting April 7, the model picker no longer shows
gpt-5.2-codex,gpt-5.1-codex-mini,gpt-5.1-codex-max,gpt-5.1-codex,gpt-5.1, orgpt-5. On April 14, we’ll remove those models from Codex for ChatGPT sign-in.Users can still choose from
gpt-5.4,gpt-5.4-mini,gpt-5.3-codex, andgpt-5.2. ChatGPT Pro users can also choosegpt-5.3-codex-spark.To use another API-supported model in Codex, sign in with an API key or configure a model provider.
March 2026
-
Build and install plugins in Codex
Codex now supports plugins: installable bundles that package skills, app integrations, and MCP server configuration for reusable workflows.
Plugins are available in the Codex app, CLI, and IDE extensions.
You can install curated plugins from the plugin directory, or scaffold a local plugin with
@plugin-creatorand test it with workspace-scoped or home-scoped marketplaces.Learn more in the plugins documentation.

Plugin structure
Every plugin is a folder with a required
.codex-plugin/plugin.jsonmanifest and optional supporting files:my-plugin/ .codex-plugin/ plugin.json # Required: plugin manifest skills/ # Optional: packaged skills .app.json # Optional: app or connector mappings .mcp.json # Optional: MCP server configuration assets/ # Optional: icons, logos, screenshotsInstall plugins per-user or per-repo
You can install plugins for just yourself with
~/.agents/plugins/marketplace.jsonand~/.codex/plugins/, or for everyone on a project with.agents/plugins/marketplace.jsonand a repo-local plugin directory such as./plugins/.Curated plugins and local development
Codex surfaces curated public plugins in the plugin directory. Codex also ships with the built-in
@plugin-creatorskill to help you scaffold a plugin, add a local marketplace entry, and test it before sharing it with teammates. -
Codex app 26.323
New features
- Added search for past Codex app threads, including a sidebar shortcut and keyboard shortcuts for jumping to recent threads.
- Added a one-click option to archive all local threads in a project.
- Synced key settings between the Codex app and the VS Code extension, and added a settings entry point in the extension.
Performance improvements and bug fixes
- Additional performance improvements and bug fixes.
-
Codex app 26.318
New features
- Added skills to the
@menu so you can insert them from the composer alongside other mentions. Cmd/Ctrl+Fnow starts with your current text selection, which makes searching reviews and diffs faster.
Performance improvements and bug fixes
- Additional performance improvements and bug fixes.
- Added skills to the
-
Codex app 26.317
New features
- You can now fork a conversation from an earlier message, not just the latest turn.
- Added slash commands for switching models and reasoning levels, and made slash commands work in the middle of a draft prompt.
- Added notifications for plan mode questions so it’s easier to notice when Codex needs input.
Performance improvements and bug fixes
- Fixed thread handoff and subagent navigation issues across worktrees and the VS Code extension.
- Additional performance improvements and bug fixes.
-
Introducing GPT-5.4 mini in Codex
GPT-5.4 mini is now available in Codex as a fast, efficient model for lighter coding tasks and subagents.
It improves over GPT-5 mini across coding, reasoning, image understanding, and tool use while running more than 2x faster. In Codex, GPT-5.4 mini uses 30% as much of your included limits as GPT-5.4, so comparable tasks can last about 3.3x longer before you hit those limits.
GPT-5.4 mini is available in the Codex app, the CLI, the IDE extension, and Codex on the web. GPT-5.4 mini is also available in the API.
Use GPT-5.4 mini for codebase exploration, large-file review, processing supporting documents, and other less reasoning-intensive subagent work. For more complex planning, coordination, and final judgment, start with GPT-5.4.
To switch to GPT-5.4 mini:
- In the CLI, start a new thread with:
Or usecodex --model gpt-5.4-mini/modelduring a session. - In the IDE extension, choose GPT-5.4 mini from the model selector in the composer.
- In the Codex app, choose GPT-5.4 mini from the model selector in the composer.
If you don’t see GPT-5.4 mini yet, update the CLI, IDE extension, or Codex app to the latest version.
- In the CLI, start a new thread with:
-
Codex app 26.313
New features
- Added back and forward buttons in the header so you can move between recent screens more quickly.
- Added an Open in Finder, Open in Explorer, or Open in File Manager action from thread menus to jump straight to a thread’s project folder.
Performance improvements and bug fixes
- Improved resume and thread error toasts with clearer details when something goes wrong.
- Additional performance improvements and bug fixes.
-
Codex app 26.312
Themes
Change the Codex app appearance in Settings by choosing a base theme, adjusting accent, background, and foreground colors, and changing the UI and code fonts. You can also share your custom theme with friends.
Revamped Automations
You can now choose whether automations run locally or on a worktree, define custom reasoning levels and models, and use templates to find inspiration for new automations.
Performance improvements and bug fixes
Various bug fixes and performance improvements.
-
Codex app 26.311
New features
- Codex can now read the integrated terminal for the current thread, so it can check the status of a running development server or refer back to failed build output while it works with you.
Performance improvements and bug fixes
- Additional performance improvements and bug fixes.
-
Introducing GPT-5.4 in Codex
GPT-5.4 is now available in Codex as OpenAI’s most capable and efficient frontier model for professional work.
It combines recent advances in reasoning, coding, and agentic workflows in one model, and it’s the recommended choice for most Codex tasks.
In Codex, GPT-5.4 is the first general-purpose model with native computer-use capabilities. GPT-5.4 in Codex includes experimental support for the 1M context window. It supports complex workflows across applications and long-horizon tasks, with stronger tool use and tool search that help agents find and use the right tools more efficiently.
GPT-5.4 is available everywhere you can use Codex: the Codex app, the CLI, the IDE extension, and Codex Cloud on the web. GPT-5.4 is also available in the API.
To switch to GPT-5.4:
- In the CLI, start a new thread with:
Or usecodex --model gpt-5.4/modelduring a session. - In the IDE extension, choose GPT-5.4 from the model selector in the composer.
- In the Codex app, choose GPT-5.4 from the model selector in the composer.
If you don’t see GPT-5.4 yet, update the CLI, IDE extension, or Codex app to the latest version.
- In the CLI, start a new thread with:
-
Codex app 26.305
Performance improvements and bug fixes
- Improved remote connections with clearer connection errors, better status updates, and clearer host labels in thread and settings views.
- Fixed copy and paste shortcuts in the integrated terminal on Windows.
- Fixed an issue where archived pinned threads could reappear in the sidebar.
- Fixed an issue where repeated
codex://newlinks could stop prefilling a new conversation when the app was already open. - Additional performance improvements and bug fixes.
-
Codex app 26.304
Codex app for Windows
The Codex app is now available on Windows. The app gives you one interface for working across projects, running parallel agent threads, and reviewing results in one place.
The Codex app runs natively on Windows using PowerShell and a native Windows sandbox for bounded permissions, so you can use Codex on Windows without moving your workflow into WSL, onto a virtual machine, or by deactivating the sandbox.
The Windows app includes the same core features as the rest of the Codex app:
- Skills to discover and extend Codex capabilities.
- Automations to run work in the background.
- Worktrees to handle independent tasks in the same project.
If you prefer to develop in WSL, you can also switch the Codex agent and the integrated terminal to run there.
Download it from the Microsoft Store and sign in with your ChatGPT account or an API key. For setup and configuration details, see Setup, Use WSL with the Codex app, and Customize the app for your development setup.
-
Codex app 26.303
New features
- Added a Worktrees setting to turn automatic cleanup of Codex-managed worktrees on or off.
- Added Handoff support for moving a thread between Local and Worktree.
- Added an explicit English option in the language menu.
Performance improvements and bug fixes
- Improved GitHub and pull request workflows.
- Improved approval prompts and app connection sign-in flows.
- Additional performance improvements and bug fixes.
February 2026
-
Codex app 26.228
Performance improvements and bug fixes
- Fixed a regression where conversation and task views could stop updating while Codex was streaming a response.
- Additional performance improvements and bug fixes.
-
Codex app 26.227
New features
- Added pull request status badges in task rows and PR buttons, including draft, open, merged, and closed states.
- Added a Worktrees setting to choose how many Codex-managed worktrees to keep before older ones are cleaned up.
Performance improvements and bug fixes
- Improved scrolling and navigation in long conversations and code review, including fixes for thread jumpiness, sidebar jitter, and diff scrolling.
- Improved app startup reliability and keyboard zoom behavior.
- Additional performance improvements and bug fixes.
-
Codex app 26.226
New features
- Added new MCP shortcuts in the composer, including install keyword suggestions and an MCP server submenu in Add context.
- Added support for
@mentionsand skill mentions in inline review comments.
Performance improvements and bug fixes
- Improved rendering of MCP tool calls and Mermaid diagram error handling.
- Fixed an issue where stopped terminal commands could continue appearing as running.
- Additional performance improvements and bug fixes.
-
Codex app 26.217
New features
- Added drag-and-drop support to reorder queued messages.
- Added a warning when the selected model is downgraded.
Improvements and bug fixes
- Improved file workflows with fuzzy file search and better attachment recovery after restart.
- Additional performance improvements and bug fixes.
-
Introducing GPT-5.3-Codex-Spark
Today, we’re releasing a research preview of GPT-5.3-Codex-Spark, a smaller version of GPT-5.3-Codex and our first model designed for real-time coding. Codex-Spark is optimized to feel near-instant, delivering more than 1000 tokens per second while remaining highly capable for real-world coding tasks.
Codex-Spark is available in research preview for ChatGPT Pro users in the latest Codex app, CLI, and IDE extension. This release also marks the first milestone in our partnership with Cerebras.
At launch, Codex-Spark is text-only with a 128k context window. During the research preview, usage has separate model-specific limits and doesn’t count against standard Codex limits. During high demand, access may slow down or queue while we balance reliability across users.
To switch to GPT-5.3-Codex-Spark:
- In the CLI, start a new thread with:
Or usecodex --model gpt-5.3-codex-spark/modelduring a session. - In the IDE extension, choose GPT-5.3-Codex-Spark from the model selector in the composer.
- In the Codex app, choose GPT-5.3-Codex-Spark from the model selector in the composer.
If you don’t see GPT-5.3-Codex-Spark yet, update the CLI, IDE extension, or Codex app to the latest version.
GPT-5.3-Codex-Spark isn’t available in the API at launch. For API-key workflows, continue using
gpt-5.2-codex. - In the CLI, start a new thread with:
-
Codex app 26.212
New features
- Support for GPT-5.3-Codex-Spark
- Added conversation forking
- Added floating pop-out window to take a conversation with you
Bug fixes
- Improved performance and bug fixes
Alpha testing for the Codex app on Windows is also starting. Sign up here to be a potential alpha tester.
-
Codex app 26.210
New features
- Added branch search in the branch picker.
- Added clearer guidance for entering plan mode when you type
planin the composer. - Added support for parallel approvals.
Improvements and bug fixes
- Additional performance improvements and bug fixes.
-
GPT-5.3-Codex in Cursor and VS Code
Starting today, GPT-5.3-Codex is available natively in Cursor and VS Code.
API access is starting with a small set of customers as part of a phased release.
This is the first model treated as a high security capability under the Preparedness Framework.
Safety controls will continue to scale, and API access will expand over the next few weeks.
-
Codex app 26.208
New features
- Added MCP and personality actions to the command palette.
- Updated follow-up behavior to queue by default.
Improvements and bug fixes
- Additional performance improvements and bug fixes.
-
Codex app 26.206
New features
- Added a file-reference action to reveal files directly in your OS file manager.
Improvements and bug fixes
- Improved handling of large reviews by removing the overall diff-size cap in the review pane.
- Additional performance improvements and bug fixes.
-
Introducing GPT-5.3-Codex
Today we’re releasing GPT-5.3-Codex, the most capable agentic coding model to date for complex, real-world software engineering.
GPT-5.3-Codex combines the frontier coding performance of GPT-5.2-Codex with stronger reasoning and professional knowledge capabilities, and runs 25% faster for Codex users. It’s also better at collaboration while the agent is working—delivering more frequent progress updates and responding to steering in real time.
GPT-5.3-Codex is available with paid ChatGPT plans everywhere you can use Codex: the Codex app, the CLI, the IDE extension, and Codex Cloud on the web. API access for the model will come soon.
To switch to GPT-5.3-Codex:
- In the CLI, start a new thread with:
Or usecodex --model gpt-5.3-codex/modelduring a session. - In the IDE extension, make sure you are signed in with ChatGPT, then choose GPT-5.3-Codex from the model selector in the composer.
- In the Codex app, make sure you are signed in with ChatGPT, then choose GPT-5.3-Codex from the model selector in the composer.
- If you don’t see GPT-5.3-Codex, update the CLI, IDE extension, or Codex app to the latest version.
For API-key workflows, continue using
gpt-5.2-codexwhile API support rolls out. - In the CLI, start a new thread with:
-
Codex app 26.205
New features
- Support for GPT-5.3-Codex.
- Added mid-turn steering. Submit a message while Codex is working to direct its behavior.
- Attach or drop any file type.
Bug fixes
- Fix flickering of the app.
-
Codex app 26.204
New features
- Added Zed and Textmate as options to open files and folders.
- Added PDF preview in the review panel.
Bug fixes
- Performance improvements.
-
Codex app 26.203
New features
- Added thread renaming on double-click in the thread list.
Improvements and bug fixes
- Renamed Sync to Handoff and added clearer source/destination stats in the handoff UI.
- Additional performance improvements and bug fixes.
-
Introducing the Codex app
Codex app
The Codex app for macOS is a desktop interface for running agent threads in parallel and collaborating with agents on long-running tasks. It includes a project sidebar, thread list, and review pane for tracking work across projects.
Key features:
- Multitask across projects
- Built-in worktree support
- Voice dictation
- Built-in Git tooling
- Skills
- Automations
For a limited time, ChatGPT Free and Go include Codex, and Plus, Pro, Business, Enterprise, and Edu plans get double rate limits. Those higher limits apply in the app, the CLI, your IDE, and the cloud.
Learn more in the Introducing the Codex app blog post.
Check out the Codex app documentation for more.
January 2026
-
Web search is now enabled by default
Codex now enables web search for local tasks in the Codex CLI and IDE Extension. By default, Codex uses a web search cache, which is an OpenAI-maintained index of web results. Cached mode returns pre-indexed results instead of fetching live pages, while live mode fetches the most recent data from the web. If you are using
--yoloor another full access sandbox setting, web search defaults to live results. To disable this behavior or switch modes, use theweb_searchconfiguration option:web_search = "cached"(default; serves results from the web search cache)web_search = "live"(fetches the most recent data from the web; same as--search)web_search = "disabled"to remove the tool
To learn more, check out the configuration documentation.
-
Team Config for shared configuration
Team Config groups the files teams use to standardize Codex across repositories and machines. Use it to share:
config.tomldefaultsrules/for command controls outside the sandboxskills/for reusable workflows
Codex loads these layers from
.codex/folders in the current working directory, parent folders, and the repo root, plus user (~/.codex/) and system (/etc/codex/) locations. Higher-precedence locations override lower-precedence ones.Admins can still enforce constraints with
requirements.toml, which overrides defaults regardless of location.Learn more in Team Config.
-
Custom prompts deprecated
Custom prompts are now deprecated. Use skills for reusable instructions and workflows instead.
-
GPT-5.2-Codex API availability
GPT-5.2-Codex is now available in the API and for users who sign into Codex with the API.
To learn more about using GPT-5.2-Codex check out our API documentation.
December 2025
-
Agent skills in Codex
Codex now supports agent skills: reusable bundles of instructions (plus optional scripts and resources) that help Codex reliably complete specific tasks.
Skills are available in both the Codex CLI and IDE extensions.
You can invoke a skill explicitly by typing
$skill-name(for example,$skill-installeror the experimental$create-planskill after installing it), or let Codex select a skill automatically based on your prompt.Learn more in the skills documentation.




Folder-based standard (agentskills.io)
Following the open agent skills specification, a skill is a folder with a required
SKILL.mdand optional supporting files:my-skill/ SKILL.md # Required: instructions + metadata scripts/ # Optional: executable code references/ # Optional: documentation assets/ # Optional: templates, resourcesInstall skills per-user or per-repo
You can install skills for just yourself in
~/.codex/skills, or for everyone on a project by checking them into.codex/skillsin the repository.Codex also ships with a few built-in system skills to get started, including
$skill-creatorand$skill-installer. The$create-planskill is experimental and needs to be installed (for example:$skill-installer install the create-plan skill from the .experimental folder).Curated skills directory
Codex ships with a small curated set of skills inspired by popular workflows at OpenAI. Install them with
$skill-installer, and expect more over time. -
Introducing GPT-5.2-Codex
Today we are releasing GPT-5.2-Codex, the most advanced agentic coding model yet for complex, real-world software engineering.
GPT-5.2-Codex is a version of GPT-5.2 further optimized for agentic coding in Codex, including improvements on long-horizon work through context compaction, stronger performance on large code changes like refactors and migrations, improved performance in Windows environments, and significantly stronger cybersecurity capabilities.
Starting today, the CLI and IDE Extension will default to
gpt-5.2-codexfor users who are signed in with ChatGPT. API access for the model will come soon.If you have a model specified in your
config.tomlconfiguration file, you can instead try outgpt-5.2-codexfor a new Codex CLI session using:codex --model gpt-5.2-codexYou can also use the
/modelslash command in the CLI. In the Codex IDE Extension you can select GPT-5.2-Codex from the dropdown menu.If you want to switch for all sessions, you can change your default model to
gpt-5.2-codexby updating yourconfig.tomlconfiguration file:model = "gpt-5.2-codex” -
Introducing Codex for Linear
Assign or mention @Codex in an issue to kick-off a Codex cloud task. As Codex works, it posts updates back to Linear, providing a link to the completed task so you can review, open a PR, or keep working.

To learn more about how to connect Codex to Linear both locally through MCP and through the new integration, check out the Codex for Linear documentation.
November 2025
-
Usage and credits fixes
Minor updates to address a few issues with Codex usage and credits:
- Adjusted all usage dashboards to show “limits remaining” for consistency. The CLI previously displayed “limits used.”
- Fixed an issue preventing users from buying credits if their ChatGPT subscription was purchased via iOS or Google Play.
- Fixed an issue where the CLI could display stale usage information; it now refreshes without needing to send a message first.
- Optimized the backend to help smooth out usage throughout the day, irrespective of overall Codex load or how traffic is routed. Before, users could get unlucky and hit a few cache misses in a row, leading to much less usage.
-
Introducing GPT-5.1-Codex-Max
Today we are releasing GPT-5.1-Codex-Max, our new frontier agentic coding model.
GPT‑5.1-Codex-Max is built on an update to our foundational reasoning model, which is trained on agentic tasks across software engineering, math, research, and more. GPT‑5.1-Codex-Max is faster, more intelligent, and more token-efficient at every stage of the development cycle–and a new step towards becoming a reliable coding partner.
Starting today, the CLI and IDE Extension will default to
gpt-5.1-codex-maxfor users that are signed in with ChatGPT. API access for the model will come soon.For non-latency-sensitive tasks, we’ve also added a new Extra High (
xhigh) reasoning effort, which lets the model think for an even longer period of time for a better answer. We still recommend medium as your daily driver for most tasks.If you have a model specified in your
config.tomlconfiguration file, you can instead try outgpt-5.1-codex-maxfor a new Codex CLI session using:codex --model gpt-5.1-codex-maxYou can also use the
/modelslash command in the CLI. In the Codex IDE Extension you can select GPT-5.1-Codex from the dropdown menu.If you want to switch for all sessions, you can change your default model to
gpt-5.1-codex-maxby updating yourconfig.tomlconfiguration file:model = "gpt-5.1-codex-max” -
Introducing GPT-5.1-Codex and GPT-5.1-Codex-Mini
Along with the GPT-5.1 launch in the API, we are introducing new
gpt-5.1-codex-miniandgpt-5.1-codexmodel options in Codex, a version of GPT-5.1 optimized for long-running, agentic coding tasks and use in coding agent harnesses in Codex or Codex-like harnesses.Starting today, the CLI and IDE Extension will default to
gpt-5.1-codexon macOS and Linux andgpt-5.1on Windows.If you have a model specified in your
config.tomlconfiguration file, you can instead try outgpt-5.1-codexfor a new Codex CLI session using:codex --model gpt-5.1-codexYou can also use the
/modelslash command in the CLI. In the Codex IDE Extension you can select GPT-5.1-Codex from the dropdown menu.If you want to switch for all sessions, you can change your default model to
gpt-5.1-codexby updating yourconfig.tomlconfiguration file:model = "gpt-5.1-codex” -
Introducing GPT-5-Codex-Mini
Today we are introducing a new
gpt-5-codex-minimodel option to Codex CLI and the IDE Extension. The model is a smaller, more cost-effective, but less capable version ofgpt-5-codexthat provides approximately 4x more usage as part of your ChatGPT subscription.Starting today, the CLI and IDE Extension will automatically suggest switching to
gpt-5-codex-miniwhen you reach 90% of your 5-hour usage limit, to help you work longer without interruptions.You can try the model for a new Codex CLI session using:
codex --model gpt-5-codex-miniYou can also use the
/modelslash command in the CLI. In the Codex IDE Extension you can select GPT-5-Codex-Mini from the dropdown menu.Alternatively, you can change your default model to
gpt-5-codex-miniby updating yourconfig.tomlconfiguration file:model = "gpt-5-codex-mini” -
GPT-5-Codex model update
We’ve shipped a minor update to GPT-5-Codex:
- More reliable file edits with
apply_patch. - Fewer destructive actions such as
git reset. - More collaborative behavior when encountering user edits in files.
- 3% more efficient in time and usage.
- More reliable file edits with
October 2025
-
Credits on ChatGPT Pro and Plus
Codex users on ChatGPT Plus and Pro can now use on-demand credits for more Codex usage beyond what’s included in your plan. Learn more.
-
Tag @Codex on GitHub Issues and PRs
You can now tag
@codexon a teammate’s pull request to ask clarifying questions, request a follow-up, or ask Codex to make changes. GitHub Issues now also support@codexmentions, so you can kick off tasks from any issue, without leaving your workflow.
-
Codex is now GA
Codex is now generally available with 3 new features — @Codex in Slack, Codex SDK, and new admin tools.
@Codex in Slack

You can now questions and assign tasks to Codex directly from Slack. See the Slack guide to get started.
Codex SDK
Integrate the same agent that powers the Codex CLI inside your own tools and workflows with the Codex SDK in Typescript. With the new Codex GitHub Action, you can easily add Codex to CI/CD workflows. See the Codex SDK guide to get started.
import { Codex } from "@openai/codex-sdk"; const agent = new Codex(); const thread = await agent.startThread(); const result = await thread.run("Explore this repo"); console.log(result); const result2 = await thread.run("Propose changes"); console.log(result2);New admin controls and analytics

ChatGPT workspace admins can now edit or delete Codex Cloud environments. With managed config files, they can set safe defaults for CLI and IDE usage and monitor how Codex uses commands locally. New analytics dashboards help you track Codex usage and code review feedback. Learn more in the enterprise admin guide.
Availability and pricing updates
The Slack integration and Codex SDK are available to developers on ChatGPT Plus, Pro, Business, Edu, and Enterprise plans starting today, while the new admin features will be available to Business, Edu, and Enterprise. Beginning October 20, Codex Cloud tasks will count toward your Codex usage. Review the Codex pricing guide for plan-specific details.
September 2025
-
GPT-5-Codex in the API
GPT-5-Codex is now available in the Responses API, and you can also use it with your API Key in the Codex CLI. We plan on regularly updating this model snapshot. It is available at the same price as GPT-5. You can learn more about pricing and rate limits for this model on our model page.
-
Introducing GPT-5-Codex
New model: GPT-5-Codex

GPT-5-Codex is a version of GPT-5 further optimized for agentic coding in Codex. It’s available in the IDE extension and CLI when you sign in with your ChatGPT account. It also powers the cloud agent and Code Review in GitHub.
To learn more about GPT-5-Codex and how it performs compared to GPT-5 on software engineering tasks, see our announcement blog post.
Image outputs

When working in the cloud on front-end engineering tasks, GPT-5-Codex can now display screenshots of the UI in Codex web for you to review. With image output, you can iterate on the design without needing to check out the branch locally.
New in Codex CLI
- You can now resume sessions where you left off with
codex resume. - Context compaction automatically summarizes the session as it approaches the context window limit.
Learn more in the latest release notes
- You can now resume sessions where you left off with
August 2025
-
Late August update
IDE extension (Compatible with VS Code, Cursor, Windsurf)

Codex now runs in your IDE with an interactive UI for fast local iteration. Easily switch between modes and reasoning efforts.
Sign in with ChatGPT (IDE & CLI)

One-click authentication that removes API keys and uses ChatGPT Enterprise credits.
Move work between local ↔ cloud

Hand off tasks to Codex web from the IDE with the ability to apply changes locally so you can delegate jobs without leaving your editor.
Code Reviews

Codex goes beyond static analysis. It checks a PR against its intent, reasons across the codebase and dependencies, and can run code to validate the behavior of changes.
-
Mid August update
Image inputs

You can now attach images to your prompts in Codex web. This is great for asking Codex to implement frontend changes or follow up on whiteboarding sessions.
Container caching

Codex now caches containers to start new tasks and followups 90% faster, dropping the median start time from 48 seconds to 5 seconds. You can optionally configure a maintenance script to update the environment from its cached state to prepare for new tasks. See the docs for more.
Automatic environment setup
Now, environments without manual setup scripts automatically run the standard installation commands for common package managers like yarn, pnpm, npm, go mod, gradle, pip, poetry, uv, and cargo. This reduces test failures for new environments by 40%.
June 2025
-
Best of N

Codex can now generate multiple responses simultaneously for a single task, helping you quickly explore possible solutions to pick the best approach.
Fixes & improvements
Added some keyboard shortcuts and a page to explore them. Open it by pressing ⌘-/ on macOS and Ctrl+/ on other platforms.
Added a “branch” query parameter in addition to the existing “environment”, “prompt” and “tab=archived” parameters.
Added a loading indicator when downloading a repo during container setup.
Added support for cancelling tasks.
Fixed issues causing tasks to fail during setup.
Fixed issues running followups in environments where the setup script changes files that are gitignored.
Improved how the agent understands and reacts to network access restrictions.
Increased the update rate of text describing what Codex is doing.
Increased the limit for setup script duration to 20 minutes for Pro and Business users.
Polished code diffs: You can now option-click a code diff header to expand/collapse all of them.
-
June update
Agent internet access

Now you can give Codex access to the internet during task execution to install dependencies, upgrade packages, run tests that need external resources, and more.
Internet access is off by default. Plus, Pro, and Business users can enable it for specific environments, with granular control of which domains and HTTP methods Codex can access. Internet access for Enterprise users is coming soon.
Learn more about usage and risks in the docs.
Update existing PRs

Now you can update existing pull requests when following up on a task.
Voice dictation

Now you can dictate tasks to Codex.
Fixes & improvements
Added a link to this changelog from the profile menu.
Added support for binary files: When applying patches, all file operations are supported. When using PRs, only deleting or renaming binary files is supported for now.
Fixed an issue on iOS where follow up tasks where shown duplicated in the task list.
Fixed an issue on iOS where pull request statuses were out of date.
Fixed an issue with follow ups where the environments were incorrectly started with the state from the first turn, rather than the most recent state.
Fixed internationalization of task events and logs.
Improved error messages for setup scripts.
Increased the limit on task diffs from 1 MB to 5 MB.
Increased the limit for setup script duration from 5 to 10 minutes.
Polished GitHub connection flow.
Re-enabled Live Activities on iOS after resolving an issue with missed notifications.
Removed the mandatory two-factor authentication requirement for users using SSO or social logins.
May 2025
-
Reworked environment page
It’s now easier and faster to set up code execution.

Fixes & improvements
Added a button to retry failed tasks
Added indicators to show that the agent runs without network access after setup
Added options to copy git patches after pushing a PR
Added support for unicode branch names
Fixed a bug where secrets were not piped to the setup script
Fixed creating branches when there’s a branch name conflict.
Fixed rendering diffs with multi-character emojis.
Improved error messages when starting tasks, running setup scripts, pushing PRs, or disconnected from GitHub to be more specific and indicate how to resolve the error.
Improved onboarding for teams.
Polished how new tasks look while loading.
Polished the followup composer.
Reduced GitHub disconnects by 90%.
Reduced PR creation latency by 35%.
Reduced tool call latency by 50%.
Reduced task completion latency by 20%.
Started setting page titles to task names so Codex tabs are easier to tell apart.
Tweaked the system prompt so that agent knows it’s working without network, and can suggest that the user set up dependencies.
Updated the docs.
-
Codex in the ChatGPT iOS app
Start tasks, view diffs, and push PRs—while you’re away from your desk.
