# Build and deploy websites with Sites [**Sites**](/codex/sites) is now available in preview in the Codex app. Use the Sites plugin to create, save, deploy, and inspect websites, dashboards, internal tools, web apps, and games hosted by OpenAI. Open **Sites** in the app sidebar to return to your projects and manage hosted environment variables and secrets. ChatGPT Business workspaces include Sites by default. ChatGPT Enterprise admins can enable Sites for the appropriate roles through role-based access control (RBAC).
Codex Changelog
# ChatGPT for iOS ### New features - Added an optional Face ID or passcode lock for Codex. - Added a new settings screen for choosing Queue or Steer as the default follow-up behavior and toggling line wrapping for code diffs. - Added support for connecting to Windows machines over SSH. ### Improvements and bug fixes - Added support for `/side ` to start a side conversation with an initial question. - Improved follow-up prompts, the Codex home screen, and viewing changed files. - Fixed issues with reconnecting, archiving threads, loading tasks, and connecting to hosts.
# Use Codex with Amazon Bedrock Codex can now use supported OpenAI models available through Amazon Bedrock. Configure [Amazon Bedrock as your model provider](/codex/amazon-bedrock) to run Codex locally with AWS-managed authentication, account controls, and billing.
New Features
- TUI markdown now keeps web links clickable with OSC 8 metadata, and cramped tables switch to readable key/value records without losing link targets. (#24472, #24636, #24825)
- Sessions can now be archived from the TUI with
/archiveor from the CLI withcodex archive/codex unarchive; archived sessions are protected from resume/fork until restored. (#25027, #25021) - App-server integrations can resume a thread with its initial turns page, see richer MCP server status, and launch stdio mode with
codex app-server --stdio. (#23534, #24698, #24940) - Remote execution setup now supports
CODEX_API_KEYregistration for approved OpenAI hosts, while remote-control websockets use short-lived server tokens instead of ChatGPT access tokens. (#24666, #24141) - Windows admins get an alpha
codex sandbox setup --elevatedprovisioning path, plus requirements support for allowed Windows sandbox implementations. (#24831, #23766) - A feature-gated standalone image generation extension can run through the native Codex image artifact completion pipeline. (#24723, #24972)
Bug Fixes
- ChatGPT auth refreshes tokens before the five-minute expiry window and shows a relogin-required path for reused refresh tokens instead of collapsing into a generic cloud error. (#23546, #24830)
- Command-safety hardening prevents
/difffrom running repository-provided Git helpers/hooks, avoids PowerShell parser execution on non-Windows hosts, and rejects browser-origin exec-server websocket handshakes. (#24954, #24946, #24947) - Sandboxed commands clean up more reliably after interruptions or denied Windows network attempts, and
denyread rules stay enforced for safe-command and approval-bypass paths. (#22729, #19880, #23943) - Resumed TUI sessions seed prompt history from the session transcript, multiline hook output renders as separate rows, and Vim normal-mode editing behaves correctly. (#24298, #24965, #25022)
- App-server filesystem watchers debounce later batches correctly, and standalone web search calls now show and restore completed search activity. (#24716, #24693)
- Bedrock auth now falls back to
AWS_REGION/AWS_DEFAULT_REGION, and unsupported Bedrock GPT service tiers are no longer advertised or sent. (#25171, #25318)
Documentation
- Python SDK beta docs and package metadata now present the standard
pip install openai-codexpath, refreshed quickstarts, API reference, FAQ, and examples. (#24836, #24866, #24868, #24870) - Python SDK examples and docs now use the public
CodexConfigname for configuringCodex/AsyncCodex. (#24800) - The bundled OpenAI Docs skill was updated with current Codex manual routing and a cached manual fetch helper. (#24914)
- Built-in tool schema descriptions now clarify defaults, optional fields, bounds, and enums across shell, Code Mode, MCP, image, goal, plan, multi-agent, and related tools. (#24794)
- App-server and exec-server docs now cover API-key remote registration,
--stdio, runtime extra skill roots, and remote-control server-token behavior. (#24666, #24940, #24977, #24141)
Chores
- Python SDK releases can now be staged and published independently from runtime releases using
python-v*tags while preserving the reviewed runtime dependency pin. (#24828, #24872) - Updated MCP dependencies to
rmcp1.7.0 and refreshed compatibility code. (#24763) - Refreshed Amazon Bedrock catalog metadata, including GPT-5.5, removal of unsupported OSS entries, and default-tier-only GPT model behavior. (#24701, #24960, #25318)
- Removed the stale app-server debug-client pieces and cleaned up the workspace after deletion. (#25063, #25064, #25065, #25066, #25067, #25068, #25069, #25070, #25075)
- Trimmed CI/build maintenance by moving Bazel Windows jobs to Codex runners, removing the libubsan workaround, and reverting the startup benchmark that broke musl builders. (#24952, #24782, #24937)
Changelog
Full Changelog: rust-v0.135.0...rust-v0.136.0
- #22729 fix(linux-sandbox): preserve shell cleanup on interruption @viyatb-oai
- #24472 feat(tui): add OSC 8 web links to rich content @fcoury-oai
- #24636 feat(tui): render cramped markdown tables as key-value records [2 of 2] @fcoury-oai
- #24666 Allow API-key auth for remote exec-server registration @sdcoffey
- #24763 Update rmcp to 1.7.0 @anp-oai
- #24825 [codex] Fix hyperlink-aware key-value table rendering @sayan-oai
- #24800 [codex] Rename Python SDK AppServerConfig to CodexConfig @aibrahim-oai
- #24819 [codex] Remove redundant SQLite dynamic tool storage @sayan-oai
- #24828 [codex] Add independent beta release for the Python SDK @aibrahim-oai
- #24836 [codex] Prepare Python SDK beta documentation and package metadata @aibrahim-oai
- #24830 Treat refresh_token_reused 400s as relogin-required @alexsong-oai
- #24866 [codex] Simplify Python SDK install guidance @aibrahim-oai
- #24868 [codex] Remove Python SDK language classifiers @aibrahim-oai
- #24870 [codex] Remove Python SDK beta warning note @aibrahim-oai
- #24872 [codex] Stage Python SDK beta versions from release tags @aibrahim-oai
- #24758 Move memories root setup out of core config @jif-oai
- #24891 Stabilize Guardian client cache key handling @jif-oai
- #24892 Export Guardian prompt cache key helper @jif-oai
- #24893 Add Guardian review prompt cache key @jif-oai
- #24894 Assert Guardian prompt cache key reuse @jif-oai
- #24895 Thread Guardian cache key through session @jif-oai
- #24803 Use stable Guardian prompt cache keys @jif-oai
- #24902 [codex] Fix Guardian argument comment lint @jif-oai
- #24898 Fix memories namespace for Responses API tools @jif-oai
- #24897 Add Guardian review metrics @jif-oai
- #23546 [codex-cli] Refresh near-expiry ChatGPT access tokens before requests @cooper-oai
- #24915 Add thread start contributor facts @jif-oai
- #24916 Add turn error lifecycle contributor @jif-oai
- #24865 [codex] Store pending response items directly @pakrym-oai
- #24914 [codex] Update OpenAI Docs skill @vb-openai
- #24651 Add app-server startup benchmark crate @anp-oai
- #24925 Gate goal tools by thread eligibility @jif-oai
- #24782 Remove libubsan CI workaround @anp-oai
- #24813 extension-api: add TurnItemEmitter to tool calls @sayan-oai
- #23534 feat(app-server): include turns page on thread resume @btraut-openai
- #24698 Expose MCP server info as part of server status @gpeal
- #24903 Reap stale multi-agent slots @jif-oai
- #24936 Fix extension turn item emitter test event ordering @bolinfest
- #24700 [codex] Support ui visibility meta for tools @gpeal
- #24701 chore: add GPT-5.5 to the Amazon Bedrock catalog @celia-oai
- #23363 TUI: Unified mentions tweaks + polish mentions rendering @canvrno-oai
- #24937 Revert "Add app-server startup benchmark crate" @anp-oai
- #24928 Wire task completion into thread-idle lifecycle @jif-oai
- #24723 Add feature-gated standalone image generation extension @won-openai
- #24952 Move Bazel Windows jobs onto codex-runners @anp-oai
- #24940 Add
codex app-server --stdioalias @anp-oai - #24954 fix(tui): prevent repository-configured code execution in /diff @fcoury-oai
- #24949 [codex] Handle PowerShell UTF-8 setup failures @iceweasel-oai
- #24960 [codex] Remove Bedrock OSS models from catalog @celia-oai
- #23768 runtime: prepend zsh fork bin dir to PATH @bolinfest
- #19880 fix: cancel Windows sandbox on network denial @viyatb-oai
- #24947 fix(exec-server): reject websocket requests with Origin headers @viyatb-oai
- #24653 [codex] Add user input client ids @alexi-openai
- #23924 Surface filesystem permission profiles in prompt context @bolinfest
- #24108 windows-sandbox: pass workspace roots to runner @bolinfest
- #24974 windows-sandbox: fix capture cancellation test roots @bolinfest
- #24962 Tighten hook output event schemas @abhinav-oai
- #24141 feat(app-server): migrate remote control to server tokens @apanasenko-oai
- #24970 fix(config): use deny for Unix socket permissions @viyatb-oai
- #24946 [codex] Avoid PowerShell safety parsing off Windows @adrian-openai
- #24977 Add runtime extra skill roots API @xl-openai
- #24298 Seed prompt history from resumed messages @etraut-openai
- #23943 fix: preserve deny-read sandboxing for safe commands @bolinfest
- #24716 Fix fs/watch debounce batching @etraut-openai
- #24918 Use internal model context fragments for goal steering @jif-oai
- #24924 Use inject_if_running for active goal steering @jif-oai
- #25063 Drop the stale debug-client manifest @jif-oai
- #25064 Remove the generated debug-client README @jif-oai
- #25065 Delete debug-client app-server process plumbing @jif-oai
- #25066 Retire debug-client interactive command parsing @jif-oai
- #25067 Remove the debug-client CLI entrypoint @jif-oai
- #25068 Delete debug-client JSONL output helper @jif-oai
- #25069 Remove debug-client server event reader @jif-oai
- #25070 Drop debug-client prompt state tracking @jif-oai
- #25075 fix: main @jif-oai
- #24794 [codex] Improve built-in tool schema docs @jif-oai
- #25095 Handle goal usage limits from turn errors @jif-oai
- #25106 Remove stale rollout TODO tests @jif-oai
- #24965 Render multiline hook output in TUI @abhinav-oai
- #25031 [codex] Add model tool mode selector @aibrahim-oai
- #24693 Show activity for standalone web search calls @sayan-oai
- #25110 Move config document helpers into their own module @jif-oai
- #25013 feat: Add focused diagnostics for MCP HTTP send failures @xl-openai
- #24964 [codex] Wait for MCP readiness in core integration tests @anp-oai
- #24972 Route extension image generation through the native image completion pipeline @won-openai
- #24831 Add Windows sandbox provisioning setup command @iceweasel-oai
- #25017 Align TUI permissions labels with app @etraut-openai
- #25027 Add
/archiveslash command @etraut-openai - #25035 Use session wording in
/renameconfirmation @etraut-openai - #24161 Add subagent lineage metadata for responsesapi @owenlin0
- #25116 [exec-server] Kill dropped filesystem helpers @erichoracek
- #24180 code-mode: introduce durable session interface @cconger
- #23165 thread-store: store permission profiles @bolinfest
- #25131 [codex] Require model for standalone web search @sayan-oai
- #25134 ci: use issue triage environment for issue workflows @etraut-openai
- #25118 exec-server: preserve fs helper CoreFoundation env @starr-openai
- #25022 [codex] Fix Vim normal mode editing @jinghanx88
- #25161 Recommend Bazel VSCode extension. @anp-oai
- #24996 Filter plugin install suggestions by installed apps @nm-openai
- #23766 Constrain Windows sandbox requirements @abhinav-oai
- #25172 [codex] Update remote connector suggestions @ericning-o
- #25171 fix: Bedrock API key region fallback @celia-oai
- #24541 feat(config) experimental_request_user_input toggle @dylan-hurd-oai
- #25021 Add thread archive CLI commands @etraut-openai
- #25267 Rename multi-agent v2 assignment tool @jif-oai
- #25318 fix: Limit Bedrock GPT models to default service tier @owenlin0
- #25381 [codex] Avoid forced directory refresh during plugin install auth checks @xl-openai
# Computer use and mobile access on Windows ### New features - [Computer Use](/codex/app/computer-use) now works on Windows. Codex can operate Windows desktop apps by seeing, clicking, and typing in the foreground while it works. - [Remote control](/codex/remote-connections) now supports Windows devices. You can start Codex work on a Windows device from ChatGPT on iOS or Android, or from a Mac running Codex, and check its progress remotely. - The [Profile section](/codex/app/settings#profile) now shows your profile details, usage stats, and token activity. ### Performance improvements and bug fixes - Additional performance improvements and bug fixes.
New Features
codex doctornow reports richer environment, Git, terminal, app-server, and thread inventory diagnostics for support cases. (#24261, #24311, #24305)/statusshows remote connection details and server version when the TUI is connected over a remote transport. (#24420)- Vim mode gained text-object editing, improved word/line-end behavior, and a configurable interrupt-turn binding. (#24382, #24380, #24766)
/permissionsnow understands named permission profiles and displays configured custom profiles. (#21559)- Packaged Codex builds can discover and use the bundled patched zsh helper across supported macOS and Linux targets. (#23756, #24171)
- The Python SDK now exposes friendly
Sandboxpresets for thread and turn APIs. (#24772)
Bug Fixes
- Markdown tables and multiline lists render more readably in the TUI, with better column sizing and app-style table formatting. (#24489, #24346, #24351)
- TUI output is more stable on macOS and Zellij, avoiding stderr/composer corruption and raw-output overlap. (#24459, #24479, #24593)
- Slash-command completion now preserves existing draft text for commands that accept inline arguments. (#23950)
- Older tmux/iTerm control-mode sessions no longer lose normal
Ctrl-Chandling from unsupported keyboard enhancement setup. (#24371) - App mentions now exclude inaccessible or disabled apps instead of offering unusable
$suggestions. (#24625) - Resume flows now include non-interactive exec sessions when requested and honor cwd overrides for idle cached threads. (#24503, #24528)
Documentation
- Clarified image-viewing tool detail behavior and removed stale TUI composer documentation references. (#23949, #24641)
- Updated Python SDK docs, examples, and notebook content to use the new sandbox preset API. (#24772)
Chores
- Updated Rust toolchain pins and SQLx/SQLite dependencies. (#24684, #24728)
- Moved memory runtime state into a dedicated SQLite database. (#24591)
- Removed remaining legacy config-profile consumers and routed more TUI config/plugin state through app-server-owned APIs. (#24076, #24254, #24255, #24265, #24266, #24257)
- Centralized Responses retry handling and MCP tool naming logic to reduce duplicated internal plumbing. (#24131, #21576)
Changelog
Full Changelog: rust-v0.134.0...rust-v0.135.0
- #24164 fix(remote-control): cap reconnect backoff @apanasenko-oai
- #23756 package: include zsh fork in Codex package @bolinfest
- #23757 Default function tools into tool hooks @abhinav-oai
- #24171 package: add x64 macOS codex-zsh artifact @bolinfest
- #24159 code-mode: merge stored values by key @cconger
- #23983 fix: plugin bundle archive handling for upload and install @xl-openai
- #24261 feat(doctor): add environment diagnostics @fcoury-oai
- #24311 Report app-server version in codex doctor @etraut-openai
- #24314 tui: label compact rate-limit percentages @etraut-openai
- #24420 Show remote connection details in /status @etraut-openai
- #24317 Respect hook trust bypass during TUI startup @etraut-openai
- #24254 TUI config cleanup: oss_provider @etraut-openai
- #24255 TUI config cleanup: trusted projects @etraut-openai
- #24265 TUI config cleanup: MCP inventory @etraut-openai
- #24305 Add doctor thread inventory audit @etraut-openai
- #24346 fix(tui): improve markdown table column allocation @fcoury-oai
- #24351 fix(tui): improve multiline markdown list readability @fcoury-oai
- #24459 fix(tui): prevent macos stderr from corrupting composer @fcoury-oai
- #24479 fix(process-hardening): preserve macos malloc diagnostics @fcoury-oai
- #24474 Log rollout writer OS errors @etraut-openai
- #24076 chore: stop consuming legacy config profiles @jif-oai
- #24131 centralize Responses retry policy @rhan-oai
- #23858 [wip] goal shift @jif-oai
- #24555 chore: drop orphaned codex memories MCP crate @jif-oai
- #24558 chore: move memory prompt builder into extension @jif-oai
- #24562 Add ad-hoc memory note tool @jif-oai
- #24567 Wire metrics client into memories extension @jif-oai
- #24588 fix: drop flake @jif-oai
- #24583 Add memory tool call metrics to memories extension @jif-oai
- #24586 Wire app-server extension event sink @jif-oai
- #24532 Use thread config for TUI MCP inventory @etraut-openai
- #24105 [codex] Make active turn task singular @pakrym-oai
- #21576 Move MCP tool naming mode into manager @pakrym-oai
- #24503 tui: include exec sessions in resume list @etraut-openai
- #24600 feat: gate dedicated memories tools in config @jif-oai
- #21559 tui: add named permission profile picker @viyatb-oai
- #24608 feat: add manual and remote_v2 tags to compaction metric @jif-oai
- #24611 test: clean up apply_patch allow-session artifact @jif-oai
- #24609 Remove reserved namespaces dedup @pakrym-oai
- #23964 Move slash input logic out of chat composer @canvrno-oai
- #24615 Add goal extension telemetry parity @jif-oai
- #24371 fix(tui): avoid modifyOtherKeys for unknown tmux formats @fcoury-oai
- #24626 fix: restore goal accounting after thread resume @jif-oai
- #24591 Move memory state to a dedicated SQLite DB @jif-oai
- #23823 standalone websearch extension @sayan-oai
- #24593 fix(tui): keep raw output above composer in zellij @fcoury-oai
- #24625 tui: keep inaccessible apps out of mentions @canvrno-oai
- #24154 Add experimental turn additional context @pakrym-oai
- #24473 fix(remote-control): surface websocket task stalls @apanasenko-oai
- #24528 Respect resume cwd overrides for idle cached threads @etraut-openai
- #24160 Add forked_from_thread_id turn metadata @owenlin0
- #24646 make direct only allowed caller for standalone websearch @sayan-oai
- #23949 Clarify view_image tool description @fjord-oai
- #24266 TUI config cleanup: plugin mentions @etraut-openai
- #24320 Avoid repeated marketplace upgrades for alternate layouts @etraut-openai
- #23813 windows-sandbox: remove SandboxPolicy runner plumbing @bolinfest
- #24652 [codex] remove plain image wrapper spans @pakrym-oai
- #24623 Attach Windows sandbox log to feedback reports @iceweasel-oai
- #24644 Restore legacy image detail values @rhan-oai
- #24655 [codex-analytics] add grouped session id to runtime events @marksteinbrick-oai
- #24658 [codex] Remove obsolete goal continuation turn marker @pakrym-oai
- #24660 fix: dont compact standalone websearch schema @sayan-oai
- #24667 fix(core): instrument stalled tool-listing handoff @apanasenko-oai
- #24684 Uprev Rust toolchain pins to 1.95.0 @anp-oai
- #21567 fix: add noninteractive install script mode @efrazer-oai
- #24707 Allow runtime enablement for remote plugins @xl-openai
- #24714 fix(auto-review) skip legacy notify for auto review threads @dylan-hurd-oai
- #24690 Revert "Add Bedrock Mantle GovCloud region (#23860)" @celia-oai
- #24628 feat: handle goal usage limits in goal extension @jif-oai
- #24746 Fix guardian review test user input @jif-oai
- #24744 feat: add thread idle lifecycle hook @jif-oai
- #24751 Drop startup context when truncating forked rollouts @jif-oai
- #24257 TUI config cleanup: plugin marketplace @etraut-openai
- #24380 fix(tui): complete vim word-end and line-end behavior @fcoury-oai
- #24728 Bump SQLx to pick up newer bundled SQLite @jif-oai
- #24637 fix: run standalone updates noninteractively @efrazer-oai
- #24778 make vercel webhook url an env secret @sayan-oai
- #23950 fix: Preserve draft text when completing argument-taking slash commands @canvrno-oai
- #24641 [codex] Remove stale composer narrative doc references @canvrno-oai
- #24368 [codex] add compaction metadata to turn headers @ningyi-oai
- #24772 [codex] Add friendly Python SDK sandbox presets @aibrahim-oai
- #24382 feat(tui): add vim text object bindings @fcoury-oai
- #24766 feat(tui): make turn interruption keybind configurable @fcoury-oai
- #24489 feat(tui): render markdown tables in app style [1 of 2] @fcoury-oai
- #24713 chore: enable namespace tools for Bedrock @celia-oai
New Features
- Added search across local conversation history, including case-insensitive content matches with result previews. (#23519, #23921)
- Made
--profilethe primary profile selector across CLI, TUI permissions, and sandbox flows, with legacy profile configs rejected through migration guidance. (#23708, #23883, #23890, #24051, #24055, #24059, #24067, #24110) - Improved MCP setup with per-server environment targeting and OAuth options for streamable HTTP servers. (#23583, #24120)
- Made connector tool schemas more reliable by preserving local
$ref/$defsstructures and compacting oversized schemas before exposure. (#23357, #23904) - Let read-only MCP tools run concurrently when they advertise
readOnlyHint. (#23750) - Added richer extension and hook context, including conversation history for extension tools and subagent identity in hook inputs. (#22882, #23963)
Bug Fixes
- Improved remote reliability by reconnecting stale exec-server websocket clients, retrying remote control immediately after auth recovery, and retrying remote compaction v2 streams. (#23867, #23775, #23951)
- Fixed Windows TUI rendering corruption by restoring virtual terminal mode before drawing. (#24082)
- Displayed workspace-specific usage-limit messages for credit and spend-cap failures. (#24114)
- Allowed plugin skills to reuse shared plugin-level icon assets. (#23776)
- Preserved active permission profile metadata when syncing auto-review runtime settings. (#23956)
- Ensured Node-based tools honor Codex’s managed network proxy environment. (#23905)
Documentation
- Documented the curl and PowerShell installer paths in the README. (#24106)
- Updated developer docs to prefer
just testover directcargo testfor repo-local test runs. (#23910) - Added profile migration documentation links to relevant config errors. (#23879)
Chores
- Simplified release packaging around canonical native artifacts, reusable DotSlash fetching, and a new macOS x64 zsh artifact. (#23833, #23836, #24129, #24165)
- Added release-build support for Codex-produced V8 artifacts. (#23934)
- Added image re-encoding benchmarks and connector-style JSON schema policy fixtures. (#23935, #24152)
- Improved tracing and analytics for websocket requests, turn starts, and remote compaction v2. (#23581, #23980, #24146)
Changelog
Full Changelog: rust-v0.133.0...rust-v0.134.0
- #23581 Trace logical websocket request after untraced warmup @jif-oai
- #23718 [codex] Steer budget-limited goal extension turns @jif-oai
- #23861 fix: cargo lock @jif-oai
- #23728 feat: retain remote compaction truncation parity in v2 @jif-oai
- #23870 Make tool executor specs mandatory @jif-oai
- #23882 [codex] Stabilize subagent start hook test @jif-oai
- #23876 refactor: centralize tool exposure planning @jif-oai
- #23879 chore: link doc in profile error messages @jif-oai
- #23883 cli: rename profile v2 flag to --profile @jif-oai
- #23835 docs: add description to codex-cli/package.json @bolinfest
- #23583 Route MCP servers through explicit environments @starr-openai
- #23886 cli: remove legacy profile v1 plumbing @jif-oai
- #23708 tui: plumb permission profile selection @viyatb-oai
- #23833 packaging: move rg manifest out of npm bin @bolinfest
- #23796 Improve
/goalerror messages for ephemeral sessions @etraut-openai - #23867 Reconnect disconnected exec-server websocket clients with fresh sessions @starr-openai
- #23792 TUI: skip goal replace prompt for completed goals @etraut-openai
- #23519 [codex] Add rollout-backed thread content search @fc-oai
- #22552 Remove plugin hooks feature flag @abhinav-oai
- #23836 npm: remove legacy package artifact synthesis @bolinfest
- #23921 [codex] Make thread search case-insensitive @fc-oai
- #23775 fix(remote-control): retry after auth recovery @apanasenko-oai
- #22882 Add subagent identity to hook inputs @abhinav-oai
- #22915 [3 of 4] tui: route feature and memory toggles through app server @etraut-openai
- #23776 fix: Allow plugin skills to share plugin-level icon assets @xl-openai
- #23860 Add Bedrock Mantle GovCloud region @CHARLESPALEN-OAI
- #23956 Fix auto-review permission profile override @etraut-openai
- #23357 feat: support local refs and defs in tool input schemas @celia-oai
- #23963 Expose conversation history to extension tools @sayan-oai
- #23904 feat: best-effort compact large tool schemas @celia-oai
- #23750 Allow parallel MCP tool calls when annotated readOnly @anp-oai
- #23905 [codex] Enable Node env proxy for managed network proxy @rreichel3-oai
- #23890 mcp: surface profile migration guidance under --profile @jif-oai
- #24051 config: remove legacy profile v1 resolution @jif-oai
- #24055 config: remove legacy profile write paths @jif-oai
- #24057 Avoid config snapshots in live agent subtree traversal @jif-oai
- #24061 otel: drop legacy profile usage telemetry @jif-oai
- #24059 fix: reject legacy profile selectors @jif-oai
- #23934 ci: Use codex produced v8 artifacts for release builds @cconger
- #24099 fix(app-server): fix optional bool annotations @owenlin0
- #23910 Prefer
just testovercargo testin docs @anp-oai - #23951 retry remote compaction v2 requests @rhan-oai
- #24081 tui: make
codex-tui.logopt-in @jif-oai - #24102 cli: infer host sandbox backend @bolinfest
- #24067 app-server: drop legacy profile config surface @jif-oai
- #23736 Add new enterprise requirement gate @adams-oai
- #24117 [codex] Use rolling files for Windows sandbox logs @iceweasel-oai
- #24106 docs: update README.md to mention curl-based installer @bolinfest
- #24082 fix(tui): restore Windows VT before TUI renders @fcoury-oai
- #24110 cli: support --profile for codex sandbox @bolinfest
- #23980 Add trace_id to TurnStartedEvent @mchen-oai
- #24120 Support OAuth options in codex mcp add @mzeng-openai
- #23989 Add typed Images client to codex-api @won-openai
- #24146 [codex-analytics] split compaction v2 analytics implementation @rhan-oai
- #24129 package: factor DotSlash executable fetching @bolinfest
- #24151 [codex] Use TurnInput for session task input @pakrym-oai
- #23935 [codex] Add image re-encoding benchmarks @anp-oai
- #24152 chore: add JSON schema policy fixture coverage @celia-oai
- #24157 [codex] Remove external client session reset plumbing @pakrym-oai
- #24114 Display workspace usage limit error copy from response header @dhruvgupta-oai
- #24165 release: build macOS x64 zsh artifact @bolinfest
# ChatGPT for iOS ### New features - Added Spotlight and Shortcuts support for opening Codex Mobile directly. - Added browsing for archived Codex threads. - Added `/side` for opening a side conversation. - Added options to save or copy rendered images. ### Improvements and bug fixes - Improved iPad keyboard shortcuts. - Improved setup and relaunch reliability. - Fixed issues with task progress, loading archived threads, previewing code changes, and switching hosts.
# Appshots, goal mode, and more [Appshots](/codex/appshots) are now available in the Codex app on macOS. Press both Command keys to send the frontmost app window to Codex with a screenshot and available text, so Codex can work from context in another app without you copying, pasting, or describing it manually. This launch also includes: - [Goal mode](/codex/prompting#goal-mode) is no longer an experimental feature and is available in the Codex app, IDE extension, and CLI. With Goal mode, you can have Codex drive toward a specific objective for hours or even days. - [Remote computer use](/codex/app/computer-use#locked-use), so Codex can use desktop apps after your Mac locks, including remotely via Codex Mobile. Codex scopes locked use to active, trusted computer use turns and includes safeguards such as short-lived authorization, covered displays, relock on local input, and manual-unlock fallback. - [Plugin sharing](/codex/plugins/build#share-a-local-plugin-with-your-workspace) through marketplace sources is available for ChatGPT Business. Enterprise support is coming soon. Teams can distribute reusable plugin bundles that include skills, app integrations, and MCP servers. - [Advanced in-app browser annotations](/codex/app/browser#styling-feedback) let you tweak styling such as font size, colors, and spacing directly using annotations. This gives Codex a clearer signal for changes. - Browser-use improvements across in-app browser & Chrome: - Codex can now download and extract all image assets from a page much more quickly. - Codex can now extract structured data from pages more effectively and find information more quickly with a read-only JS sandbox. - Chrome extension will create less clutter when using it. Codex will no longer create tab groups when taking over existing tabs, and at the end of a task for handoff. Instead, it uses tab icons to indicate status. - Significantly improved reliability for browser use. We fixed bugs on Windows, flaky availability of the plugin to non geo-blocked regions, and many other issues impacting performance.
New Features
- Goals are now enabled by default, backed by dedicated storage, and track progress across active turns. (#23300, #23685, #23696, #23732)
codex remote-controlnow runs like a foreground command, waits for readiness, reports machine status, and keeps explicit daemon-stylestart/stopcommands. (#22878)- Permission profiles gained list APIs, inheritance, managed
requirements.tomlsupport, runtime refresh behavior, and stronger Windows sandbox integration. (#22928, #23412, #22270, #23433, #22931, #23715) - Plugin discovery is easier to inspect, with marketplace-aware list output, installed versions, visible marketplace roots, and remote collection support. (#23372, #23584, #23727, #23730)
- Extensions can observe more lifecycle events, including subagent start/stop, tool execution, turn metadata, and async approval/turn processing. (#22782, #22873, #23309, #23688, #23690, #23692)
Bug Fixes
- Fixed TUI startup choosing the wrong working directory when reusing a local app-server socket. (#23538)
- Fixed plan-mode free-form answers so modified Enter keys, like Shift+Enter, no longer submit unexpectedly. (#23536)
- Removed stale background terminal poll events after a process exits. (#23231)
- Preserved raw code-mode exec output unless an explicit output token limit is requested. (#23564)
- Made AGENTS instruction loading more reliable, including local global reads and warnings for invalid UTF-8 instead of silent drops. (#23343, #23232)
- Fixed app-server startup/shutdown races, empty resume/fork paths, plugin upgrade failures, and realtime v1 websocket compatibility. (#23516, #23578, #23400, #23356, #23771)
Documentation
- Added clearer plugin-creator guidance for updating and reinstalling local personal plugins. (#23542)
- Expanded app-server/API docs and schema coverage around managed permission profile requirements. (#23433, #23555)
Chores
- Added a canonical Codex package archive pipeline and moved installers, npm packages, DotSlash, and SDK runtimes toward that shared layout. (#23513, #23582, #23586, #23596, #23635, #23636, #23637, #23638, #23786)
- Fixed Linux Python runtime wheel tags so glibc-based systems can install the runtime artifacts. (#21812)
- Improved release and CI reliability with package-builder tests, prebuilt resource packaging, DotSlash zstd handling, platform-sharded Rust tests, and Codex Linux release runners. (#23760, #23759, #23752, #23358, #23761)
Changelog
Full Changelog: rust-v0.132.0...rust-v0.133.0
- #23343 codex: route global AGENTS reads through LOCAL_FS @starr-openai
- #22380 fix: default unknown tool schemas to empty schemas @celia-oai
- #23309 Add tool lifecycle extension contributor @jif-oai
- #23253 Reduce rust-ci-full Windows nextest timeout flakes @starr-openai
- #22878 Improve
codex remote-controlCLI UX @owenlin0 - #21812 Publish Linux runtime wheels with glibc-compatible tags @aibrahim-oai
- #22709 [codex] Trim unused TurnContextItem fields @pakrym-oai
- #23353 Include plugin id in plugin MCP tool metadata @mzeng-openai
- #22728 [codex] Move pending input into input queue @pakrym-oai
- #23371 fix(tui): warn on unsupported iTerm2 pet versions @fcoury-oai
- #23376 [codex-analytics] preserve user thread source for exec threads @marksteinbrick-oai
- #23360 app-server: use profile ids in v2 permission params @bolinfest
- #23384 [codex] Remove external websocket session resets @pakrym-oai
- #22721 cleanup: Remove skill env var dependency prompting @xl-openai
- #23389 Remove ToolSearch feature toggle @sayan-oai
- #23080 [1 of 7] Add thread settings to UserInput @etraut-openai
- #23081 [2 of 7] Remove UserInputWithTurnContext @etraut-openai
- #23075 [3 of 7] Remove UserTurn @etraut-openai
- #23396 [codex] Extract turn skill and plugin injections @pakrym-oai
- #23356 fix(plugins): keep version upgrades additive @iceweasel-oai
- #22508 [5 of 7] Replace OverrideTurnContext with ThreadSettings @etraut-openai
- #22086 CI: Customize v8 building @cconger
- #23390 Remove explicit connector tool undeferral @sayan-oai
- #22928 core: expose permission profile picker metadata @viyatb-oai
- #23352 Preserve context baselines for full-history agent forks @jif-oai
- #23300 feat: dedicated goal DB @jif-oai
- #22835 Remove ToolsConfig from tool planning @jif-oai
- #22870 Add
body_after_prefixauto-compact token limit scope @jif-oai - #23144 Defer v1 multi-agent tools behind tool search @jif-oai
- #23409 [codex] Allow empty turn/start requests @pakrym-oai
- #23388 [codex] Move hook request plumbing into hook runtime @pakrym-oai
- #23405 [codex] Preserve steer input as user input @pakrym-oai
- #22914 [2 of 4] tui: route app and skill enablement through app server @etraut-openai
- #23397 [codex] Make contextual user fragments dyn-renderable @pakrym-oai
- #23475 chore: namespace v1 sub-agent tools @jif-oai
- #23493 Make
denycanonical for filesystem permission entries @viyatb-oai - #22929 Harden CLI rate limit window labels @ase-openai
- #22782 Add SubagentStart hook @abhinav-oai
- #23513 build: add Codex package builder @bolinfest
- #23369 Make local environment optional in EnvironmentManager @starr-openai
- #23327 Refactor exec-server websocket pump @starr-openai
- #23536 fix(tui): preserve modified enter in plan questions @fcoury-oai
- #23400 Fix empty rollout path app-server handling @wiltzius-openai
- #23551 Route local-only app-server gating through processors @starr-openai
- #23372 Split plugin install discovery into list and request tools @mzeng-openai
- #23516 fix: serialize unix app-server startup @efrazer-oai
- #22169 [codex] Honor role-defined spawn service tiers @aibrahim-oai
- #23555 Add CUA requirements subsection for locked computer use @adams-oai
- #23538 Fix: TUI starting in wrong CWD @canvrno-oai
- #23526 build: fetch rg for Codex packages @bolinfest
- #23573 Remove unused ARC monitor path @mzeng-openai
- #23576 test: fix multi-agent service tier assertion @bolinfest
- #23541 build: default Codex package target and output @bolinfest
- #23358 Fan out rust-ci-full nextest by platform @starr-openai
- #23593 feat: expose codex-app-server version flag @bolinfest
- #23412 feat: add permission profile list api @viyatb-oai
- #23535 Move plugin and skill warmup into session startup @aibrahim-oai
- #23231 Fix stale background terminal poll events @etraut-openai
- #23564 [codex] Preserve raw code-mode exec output by default @aibrahim-oai
- #23232 Warn on invalid UTF-8 in AGENTS.md files @etraut-openai
- #23584 feat: Add vertical remote plugin collection support @xl-openai
- #23586 build: package prebuilt Codex entrypoints @bolinfest
- #23582 ci: build Codex package archives in release workflow @bolinfest
- #23596 runtime: detect Codex package layout @bolinfest
- #23500 add encryptedcontent to functioncalloutput @sayan-oai
- #23633 Migrate exec-server remote registration to environments @richardopenai
- #23451 Add timeout for remote compaction requests @jif-oai
- #23667 feat: rename 1 @jif-oai
- #23669 feat: rename 3 @jif-oai
- #23668 feat: rename 2 @jif-oai
- #23675 fix: main @jif-oai
- #23685 feat: wire goal extension tools to the dedicated goal store @jif-oai
- #23690 feat: async approval contrib @jif-oai
- #23692 feat: async turn item process @jif-oai
- #23688 feat: expose turn-start metadata to extensions @jif-oai
- #23605 [codex] Hide deferred tools from code mode prompt @pakrym-oai
- #23634 runtime: use install context for bundled bwrap @bolinfest
- #23635 release: publish Codex package archive checksums @bolinfest
- #23592 feat: Add btw alias for side slash command @anp-oai
- #23696 feat: account active goal progress in the goal extension @jif-oai
- #23176 [2 of 2] Start fresh TUI thread in background @etraut-openai
- #23578 fix(app-server): speed up shutdown @fcoury-oai
- #22896 windows-sandbox: add resolved permissions helper @bolinfest
- #23502 Add thread/settings/update app-server API @etraut-openai
- #23507 Sync TUI thread settings through app server @etraut-openai
- #23666 feat: add turn_id and truncation_policy to extension tool calls @jif-oai
- #23636 install: consume Codex package archives @bolinfest
- #23717 [codex] Preserve failed goal accounting flushes @jif-oai
- #23655 add standalone websearch api client @sayan-oai
- #23724 Fix thread settings clippy failure @etraut-openai
- #23637 npm: ship platform packages in Codex package layout @bolinfest
- #23729 fix(config): resolve cloud requirements deny-read globs @viyatb-oai
- #23638 dotslash: publish Codex entrypoints from package archives @bolinfest
- #22918 windows-sandbox: send permission profiles to elevated runner @bolinfest
- #23735 windows-sandbox: share bundled helper lookup @bolinfest
- #18868 Add MITM hook config model @evawong-oai
- #22270 feat(permissions): resolve permission profile inheritance @viyatb-oai
- #23719 cli: add strict config to exec-server @bolinfest
- #23542 [skills] Create a personal update flow for plugin creator @caseychow-oai
- #21272 Support compact SessionStart hooks @abhinav-oai
- #20659 Wire MITM hooks into runtime enforcement @evawong-oai
- #23752 release: use DotSlash zstd for package archives @bolinfest
- #22923 windows-sandbox: drive write roots from resolved permissions @bolinfest
- #23761 chore: use Codex Linux runners for Rust releases @bolinfest
- #23759 release: package prebuilt resource binaries @bolinfest
- #23167 windows-sandbox: feed setup from resolved permissions @bolinfest
- #22931 core: refresh active permission profiles at runtime @viyatb-oai
- #22873 Add SubagentStop hook @abhinav-oai
- #23727 feat(plugins): tabulate plugin list output @caseychow-oai
- #23732 Make goals feature on by default and no longer experimental @etraut-openai
- #23537 Honor client-resolved service tier defaults @shijie-oai
- #23771 [codex] Fix realtime v1 websocket compatibility @guinness-oai
- #23764 Remove Windows sandbox resource stamping @iceweasel-oai
- #23730 [codex] List marketplaces considered by plugin discovery @caseychow-oai
- #23760 ci: run Codex package builder tests @bolinfest
- #23737 [codex] Add plugin id to MCP tool call items @mzeng-openai
- #18240 Use named MITM permissions config @evawong-oai
- #23774 [codex] Reject read-only fallback with approvals disabled @viyatb-oai
- #23714 windows-sandbox: add profile-native elevated APIs @bolinfest
- #23433 feat: support managed permission profiles in requirements.toml @viyatb-oai
- #23715 core: pass permission profiles to Windows runner @bolinfest
- #23786 sdk: launch packaged Codex runtimes @bolinfest
New Features
- The Python SDK now supports first-class authentication, including API key login, ChatGPT browser and device-code flows, account inspection, and logout APIs. (#23093)
- Python turn APIs are easier to use for text-only workflows: you can pass a plain string as input, and handle-based runs now return a richer
TurnResultwith collected items, timing, and usage data. (#23151, #23162) codex exec resumenow accepts--output-schema, so resumed automations can keep session context while still enforcing structured JSON output. (#23123)- TUI startup is faster because terminal capability probes are now batched instead of waiting on several serial checks before the first interactive frame. (#23175)
- Remote executor registration can now use standard Codex auth instead of a separate registry credential flow. (#22769)
- App-server turns can preserve requested image fidelity, including original-resolution local images, across user inputs and image-producing tools. (#20693)
Bug Fixes
- Goal continuations now stop when they hit usage limits or a repeated blocker instead of looping and burning more tokens, and completion responses phrase usage more naturally. (#23094, #22907)
- The session picker is easier to trust: renamed threads now show
name (thread-id)in resume hints, and pasted text works in the picker search box. (#23234, #23338) - Multi-session TUI flows are more reliable: in-progress MCP calls stay marked as active during replay, and elicitation replies are sent back to the thread that requested them. (#23236, #23241)
- Remote sessions now keep websocket connections alive and show repo-relative diff paths again instead of
/tmp/...-prefixed paths. (#23226, #23261) - Windows installs are more robust:
codex doctornow detects npm-managed installs correctly, and MSVC release binaries no longer depend on separately installed VC++ runtime DLLs. (#22967, #22905) - TUI polish fixes include immediate shutdown feedback on exit, hiding the ChatGPT usage link for non-OpenAI providers, and keeping a cleared Fast tier from reappearing after side-thread resume. (#23323, #23127, #23121)
Documentation
- The Python SDK docs, FAQ, and examples were refreshed around the new auth flow and turn APIs, with clearer setup guidance and simpler text-only examples. (#22941, #23093, #23151, #23162)
Chores
- Memory summaries are now versioned and rebuilt when the stored format is stale, which should keep long-lived memory context leaner and more predictable. (#23148)
Changelog
Full Changelog: rust-v0.131.0...rust-v0.132.0
- #20693 Preserve image detail in app-server inputs @fjord-oai
- #22891 tui: pass active permission profiles through app commands @bolinfest
- #22924 app-server-protocol: remove PermissionProfile from API @bolinfest
- #22941 [codex] Refine Python SDK user-facing docs @aibrahim-oai
- #22967 Fix Windows doctor npm root probe @etraut-openai
- #22920 core: set permission profiles from snapshots @bolinfest
- #22939 [codex] Split Python SDK helper logic @aibrahim-oai
- #22907 Improve goal completion usage reporting @etraut-openai
- #23030 test: construct permission profiles directly @bolinfest
- #22769 exec-server: support auth-backed remote executor registration @miz-openai
- #22946 [codex] preserve MCP result meta in McpToolCallItemResult @miaolin-oai
- #23069 multiagent: trim model-visible description, cap to 5 models @sayan-oai
- #22913 [1 of 4] tui: route primary settings writes through app server @etraut-openai
- #23093 sdk/python: add first-class login support @aibrahim-oai
- #23151 [codex] Return TurnResult from Python turn handles @aibrahim-oai
- #23147 Make multi-agent v2 tool namespace configurable @jif-oai
- #23036 test: reduce core sandbox policy test setup @bolinfest
- #23162 [codex] Accept string input for Python turns @aibrahim-oai
- #23226 Add exec-server websocket keepalive @starr-openai
- #23148 Densify and version memory summaries @jif-oai
- #22448 [codex] Add installed-plugin mention API @xli-oai
- #23288 chore: goal ext skeleton @jif-oai
- #23291 Make extension lifecycle hooks async @jif-oai
- #23293 feat: add extension event sink capability @jif-oai
- #23295 chore: isolate thread goal storage behind GoalStore @jif-oai
- #23301 chore: goal resumed metrics @jif-oai
- #23305 chore: make token usage async @jif-oai
- #23306 Emit goal update events from goal extension tools @jif-oai
- #23121 tui: keep cleared Fast tier from reappearing after side-thread resume @etraut-openai
- #23123 Support --output-schema for exec resume @etraut-openai
- #23128 Fix TUI stream cleanup after turn errors @etraut-openai
- #23127 Hide ChatGPT usage link for non-OpenAI status @etraut-openai
- #23175 [1 of 2] Optimize TUI startup terminal probes @etraut-openai
- #22706 [codex] Remove legacy shell output formatting paths @pakrym-oai
- #23332 nit: read prompt @jif-oai
- #22905 windows: link MSVC release binaries with static CRT @iceweasel-oai
- #23323 fix(tui): show shutdown feedback on exit @fcoury-oai
- #23261 Fix remote turn diff display roots @starr-openai
- #22569 Simplify legacy Windows sandbox ACL persistence @iceweasel-oai
- #23273 Upload rust full CI JUnit reports @starr-openai
- #22893 fix: harden plugin creator sharing validation @efrazer-oai
- #23094 goal: pause continuation loops on usage limits and blockers @etraut-openai
- #23234 Clarify resume hints for renamed threads @etraut-openai
- #23241 TUI: route elicitation responses to request thread @etraut-openai
- #23236 TUI: replay in-progress MCP calls as started @etraut-openai
- #23088 goals: keep pause transitions explicit @etraut-openai
- #23338 feat(tui): handle paste in session picker @fcoury-oai
- #23335 feat(app-server): add optional thread_id to experimentalFeature/list @owenlin0
# ChatGPT for iOS ### New features - Added support for opening completed Codex tasks directly from iOS notifications. - Added the ability to open changed files directly while reviewing a task. ### Improvements and bug fixes - Improved task resume, reconnection, and foreground reliability. - Improved task progress updates, code review, and message composition.
TUI gains session controls; remote workflows support daemon management; Python SDK moves to openai-codex
↗New Features
-
The TUI now offers richer session controls and display: data-driven service-tier commands, blended token usage, permissions/approval mode, effective workspace roots, and responsive Markdown tables. (#21745, #21906, #21991, #21669, #21677, #22052, #22612)
-
@mentions now search files, directories, plugins, and skills in one picker, backed by app-server plugin metadata. (#19068, #22375) -
Plugin workflows gained marketplace CLI commands, version-aware sharing, share checkout, clearer shared-workspace buckets, and default-enabled plugin hooks. (#21396, #22397, #22425, #22435, #22549)
-
Remote workflows now support daemon-managed
codex remote-control, runtime enable/disable APIs, status reads, and registry-backed/configured remote environments. (#20718, #22218, #22562, #22578, #22877, #20667, #21323) -
The Python SDK moved to
openai-codex/openai_codex, with pinned runtime-generated types, concurrent turn routing, approval modes, and integration coverage. (#21778, #21891, #21893, #21896, #21905, #21910, #22014) -
Added
codex doctorfor support-ready diagnostics across runtime, auth, terminal, network, config, and local state. (#22336)
Bug Fixes
-
Fixed several TUI interaction and rendering issues, including URL wrapping, light-mode selection contrast, Shift+Enter in tmux,
/reviewMCP startup status,/sideEsc handling, and network approval history text. (#21760, #21950, #21943, #21624, #22710, #22229) -
Hardened Windows sandbox behavior around deny-read rules, scoped write roots, ineffective firewall policy, and PowerShell edge cases. (#18202, #21479, #22353, #21400, #22643)
-
Preserved managed read restrictions during permission escalation and cleaned up workspace-root permission profile resolution. (#15977, #22624, #22683)
-
Made app-server and local state startup safer by preserving SQLite data, failing closed when state cannot open, adding recovery paths, and softening optional metadata sync failures. (#21831, #21847, #22580, #22734, #22899)
-
Improved Git and auth reliability by using root worktree hooks consistently, ignoring repo hook/fsmonitor config in helper commands, binding local MCP OAuth callbacks, and revoking superseded login tokens. (#21969, #22843, #22652, #20237, #21747)
-
Reduced remote and Windows cleanup friction with longer exec-server transport timeouts, quieter
taskkillcleanup, and non-queued plugin reads. (#21825, #21759, #22058, #22703)
Documentation
-
Clarified that general Codex product docs should not be added to this repo, while app-server API docs remain in scope. (#21772)
-
Updated plugin-creator guidance for the simplified local plugin handoff links. (#22240)
-
Documented new app-server/API contracts for remote environments and the desktop-owned config namespace. (#21323, #22584)
Chores
-
Improved CI and release reliability across Rust CI, exact PR-head checkout, Windows Bazel sharding, unsigned macOS artifacts, and signed macOS promotion. (#21604, #21628, #21835, #22408, #22559, #22649, #22737, #22788, #22900)
-
Split large TUI ChatWidget, history, and composer code into focused modules without intended behavior changes. (#21866, #22269, #22407, #22433, #22518, #22537, #22704, #22581, #22656)
-
Continued extracting extension and tool internals, including shared tool contracts plus guardian and memory extension plumbing. (#21736, #21737, #21738, #22138, #22147, #22216, #22258, #22344, #22476, #22480, #22485, #22498)
-
Removed obsolete tool paths, feature flags, config gates, and legacy hooks as defaults stabilized. (#21651, #21805, #22173, #22246, #22565, #22711, #22717, #22724, #22730)
Changelog
Full Changelog: rust-v0.130.0...rust-v0.131.0
-
#21550 [codex] make shutdown pending-touch test deterministic @jif-oai
-
#21697 Allow string service tiers in config TOML @aibrahim-oai
-
#21687 [codex] Enable apply_patch freeform by default @aibrahim-oai
-
#19896 Update models.json @github-actions
-
#21669 Display blended token count in status line @etraut-openai
-
#21677 Show permissions and approval mode in the TUI status line @etraut-openai
-
#21757 api: send hyphenated session and thread headers @jif-oai
-
#21749 codex-otel: validate provider span attributes consistently @bbrown-oai
-
#21443 [sandboxing] Remove Darwin user cache write from Seatbelt network policy @evawong-oai
-
#21604 Fix
rust-ci-fullfailures due to missingbwrap@zanie-oai -
#21628 Use
CARGO_NET_GIT_FETCH_WITH_CLIinrust-ci-fullfor more reliable git fetches @zanie-oai -
#21745 [codex] Generalize service tier slash commands @aibrahim-oai
-
#21772 Clarify docs folder guidance in AGENTS.md @etraut-openai
-
#21662 feat: Use installation ID in remote enrollments @ddr-oai
-
#20667 Load configured environments from CODEX_HOME @starr-openai
-
#21776 Update models.json @github-actions
-
#21787 Support resource binaries in Python runtime staging @aibrahim-oai
-
#21784 Publish Python runtime wheels on release @aibrahim-oai
-
#21601 Emit accepted line fingerprint analytics @alexsong-oai
-
#21465 Remove ToolName display helper @pakrym-oai
-
#20619 [codex] request desktop attestation from app @jiamingz42
-
#21810 Revert "Publish Python runtime wheels on release" @aibrahim-oai
-
#21651 [codex] Delete function-style apply_patch @pakrym-oai
-
#21805 [codex] Remove legacy after tool use hooks @pakrym-oai
-
#21616 Enable
--deny-warningsforcargo shear@charliemarsh-oai -
#21497 Using cached connector directory for discoverable tools list @mzeng-openai
-
#21835 ci: check out PR head commits in workflows @bolinfest
-
#21794 Make environment provider snapshots path-free @starr-openai
-
#21831 app-server: support daemon-safe restart handling @euroelessar
-
#21323 [codex] support executor registry remote environments @miz-openai
-
#21825 Increase exec-server environment transport timeouts @starr-openai
-
#20718 [daemon] Add app-server daemon lifecycle management @euroelessar
-
#21840 feat: add Bedrock Mantle client agent header @celia-oai
-
#21652 Reapply "Move skills watcher to app-server" @pakrym-oai
-
#21290 Move file watcher out of core @pakrym-oai
-
#21867 feat: Add role-aware plugin share context APIs @xl-openai
-
#21875 [codex] compact network context rendering @sayan-oai
-
#21778 Route Python SDK turn notifications by ID @aibrahim-oai
-
#21906 [codex] Lowercase TUI service tier commands @aibrahim-oai
-
#21819 tests: cover sandbox link write behavior @bolinfest
-
#21760 fix(tui): preserve wrapped prose beside URLs @fcoury-oai
-
#21950 fix(tui): improve light-mode selection contrast @fcoury-oai
-
#21755 Improve hooks trust flow in TUI @abhinav-oai
-
#21870 Avoid blocking TUI on agent metadata hydration @etraut-openai
-
#21866 Split ChatWidget state into focused modules @etraut-openai
-
#21991 Persist 'priority' service tier as fast in config @aibrahim-oai
-
#21943 fix(tui): preserve Shift+Enter in tmux csi-u panes @fcoury-oai
-
#21759 fix(tui): suppress taskkill output for MCP teardown on Windows @fcoury-oai
-
#22039 Deduplicate issue digest interactions by user @etraut-openai
-
#22052 feat(tui): render responsive Markdown tables in TUI @fcoury-oai
-
#20825 Read cached metadata for installed Git plugins @xli-oai
-
#21737 extension: wire extension registries into sessions @jif-oai
-
#21738 extension: move git attribution into an extension @jif-oai
-
#22138 refactor: extract executable tool contracts into codex-tool-api @jif-oai
-
#22143 [codex] default unknown contributed tools to mutating @jif-oai
-
#21860 Persist /goal commands in history @etraut-openai
-
#22141 [codex] Harden overflow auto-compaction recovery @aibrahim-oai
-
#22170 Revert "[codex] Harden overflow auto-compaction recovery" @aibrahim-oai
-
#22106 Fix side conversation config inheritance @etraut-openai
-
#22045 Improve goal continuation based on feedback @etraut-openai
-
#21981 Use goal preview metadata for goal-first threads @etraut-openai
-
#21843 app-server: remove TCP websocket listener @euroelessar
-
#21954 Fix goal update and add
/goal editcommand in TUI @etraut-openai -
#22110 Make auto-review denial short-circuit use a rolling review window @won-openai
-
#21431 [codex-analytics] add turn tool counts to turn events @rhan-oai
-
#19068 Unified mentions in TUI @canvrno-oai
-
#20305 fix(exec-policy) use is_known_safe_command less @dylan-hurd-oai
-
#22058 fix(exec-server): suppress Windows taskkill output @fcoury-oai
-
#22178 fix(app-server): thread history redaction for remote clients @owenlin0
-
#15977 fix(permissions): preserve managed deny-read during escalation @viyatb-oai
-
#21061 feat(connectors): support managed app tool approval requirements @viyatb-oai
-
#22188 [elicitation] Advertise new url elicitation capability when auth_elicitation is enabled. @mzeng-openai
-
#22192 config: accept
minusin TUI keymap config @fcoury-oai -
#21853 daemon: refresh updater after validated binary rollout @euroelessar
-
#21747 [login] revoke superseded auth tokens on relogin @cooper-oai
-
#20147 feat: add network proxy feature flag @viyatb-oai
-
#21891 [1/8] Pin Python SDK runtime dependency @aibrahim-oai
-
#21893 [2/8] Generate Python SDK types from pinned runtime @aibrahim-oai
-
#21895 [3/8] Run Python SDK tests in CI @aibrahim-oai
-
#21896 [4/8] Define Python SDK public API surface @aibrahim-oai
-
#21905 [5/8] Rename Python SDK package to openai-codex @aibrahim-oai
-
#21910 [6/8] Add high-level Python SDK approval mode @aibrahim-oai
-
#22014 [7/8] Add Python SDK app-server integration harness @aibrahim-oai
-
#22021 [8/8] Add Python SDK Ruff formatting @aibrahim-oai
-
#18748 [codex-analytics] emit terminal review events @rhan-oai
-
#22159 Add Windows hook command overrides @abhinav-oai
-
#22218 Update codex remote-control to start the daemon @owenlin0
-
#22180 Stop uploading accepted line fingerprints @alexsong-oai
-
#21617 Support multi-environment apply_patch selection @starr-openai
-
#22198 Add production startup and TTFT telemetry @mzeng-openai
-
#21963 [exec-server] serve websocket listener via HTTP upgrade @euroelessar
-
#21946 fix(tui): handle hidden app git directives @fcoury-oai
-
#21595 Simplify MCP tool handler plumbing @pakrym-oai
-
#22221 feat(skills): default plugin creator to personal share flow @efrazer-oai
-
#21861 Apply sandbox context to local view_image reads @starr-openai
-
#20527 Support PreToolUse updatedInput rewrites @abhinav-oai
-
#22243 [codex] Filter legacy warning messages during compaction @pakrym-oai
-
#22254 [codex] Make handlers own parallel tool support @pakrym-oai
-
#18202 feat(sandbox): add Windows deny-read parity @viyatb-oai
-
#22265 feat: Normalize remote plugin summary identities. @xl-openai
-
#22216 feat: guardian as an extension (contributors part) @jif-oai
-
#22311 [rollout-trace] Add x-codex-inference-call-id header to inference calls. @cassirer-openai
-
#21206 feat(tui): add ambient terminal pets @fcoury-oai
-
#22207 [codex] Tighten unified exec sandbox setup @bookholt-oai
-
#22382 tools: remove is_mutating dispatch gating @pakrym-oai
-
#22383 chore(config) include_collaboration_mode_instructions @dylan-hurd-oai
-
#22377 code-mode: carry nested tool kind through runtime @pakrym-oai
-
#22392 test(tui): relax configured pet load timeout @fcoury-oai
-
#22343 feat(exec-server): use protobuf relay frames @apanasenko-oai
-
#20509 [codex] Remove workspace owner usage nudge gate @richardopenai
-
#22256 Refactor namespaced tool spec registration @pakrym-oai
-
#22280 code-mode: Add pending-aware code mode execution @cconger
-
#22266 core: box multi-agent handler futures @bolinfest
-
#22398 [codex] Add search term coverage for tool_search @pakrym-oai
-
#22236 Unify thread metadata updates above store @wiltzius-openai
-
#22269 Refactor chatwidget state into modules @etraut-openai
-
#22381 [codex] Remove tool search bucket limit override @sayan-oai
-
#22240 docs(skills): simplify plugin creator deeplink shape @efrazer-oai
-
#22397 feat: Expose plugin versions and gate plugin sharing @xl-openai
-
#22404 Restore app-server websocket listener with auth guard @etraut-openai
-
#22258 feat: route guardian review model selection through providers @celia-oai
-
#22268 hooks: use new session IDs instead of thread IDs for hooks, apply parent's session ID to subagents' hooks @eternal-openai
-
#20319 Add allow_managed_hooks_only hook requirement @eternal-openai
-
#22413 Remove CODEX_RS_SSE_FIXTURE test hook @pakrym-oai
-
#22406 tools: infer code-mode namespace descriptions from specs @pakrym-oai
-
#22261 Encapsulate tool search entries in handlers @pakrym-oai
-
#22425 feat: Split shared workspace plugins by discoverability @xl-openai
-
#22414 Add support for UDS in
codex --remote@etraut-openai -
#22407 Refactor chatwidget input flow into modules @etraut-openai
-
#22439 Remove unavailable MCP placeholder tool backfill @sayan-oai
-
#21969 Use root repo hooks in linked worktrees @abhinav-oai
-
#21768 add --dangerously-bypass-hook-trust CLI flag @abhinav-oai
-
#22435 feat: Add plugin share checkout @xl-openai
-
#22355 chore: Keep view_image sandbox test in temp dir @jif-oai
-
#22344 extension-api: add approval review contributor flow @jif-oai
-
#22359 feat: extract shared tool executor interface @jif-oai
-
#22369 Refactor extension tools onto shared ToolExecutor @jif-oai
-
#22338 [app-server] Gate login issuer override constant @cassirer-openai
-
#22437 [codex] isolate plugin/list from config serialization queue @xli-oai
-
#22476 feat: add thread lifecycle contributor hooks @jif-oai
-
#22482 fix: emit thread stop lifecycle on implicit shutdown @jif-oai
-
#22443 Scope macOS signing secrets to release environment @shijie-oai
-
#22490 feat: move extension scope ids into ExtensionData @jif-oai
-
#22214 feat(tui): remove Zellij TUI workarounds @fcoury-oai
-
#22139 Add service tier overrides to spawned agents @aibrahim-oai
-
#22488 feat: add config-change extension contributor @jif-oai
-
#22347 feat(tui): standardize picker navigation keys @fcoury-oai
-
#22500 refactor: split memories extension crate modules @jif-oai
-
#22433 Refactor chatwidget protocol flows into modules (phase 3) @etraut-openai
-
#22505 fix: prevent fmt from updating Python SDK lockfile @jif-oai
-
#22326 [rollout-trace] Add a trace ID to MCP calls. @cassirer-openai
-
#20559 config: add strict config parsing @bolinfest
-
#22489 Introduce tool exposure for deferred registration @jif-oai
-
#22246 [codex] Remove unused legacy shell tools @pakrym-oai
-
#22520 revert: mark Feature::RemoteControl as removed @owenlin0
-
#22513 Revert "Scope macOS signing secrets to release environment" @shijie-oai
-
#22514 feat: expose multi-agent v2 as model-only tools @jif-oai
-
#22366 Pass Codex product SKU to ChatGPT backend @ericning-o
-
#22519 Deprecate TurnContext cwd and resolve_path @pakrym-oai
-
#22518 Refactor chatwidget settings surfaces into modules (phase 4) @etraut-openai
-
#21479 [codex] Scope Windows sandbox write-root capability SIDs @adrianbravo-oai
-
#22353 windows-sandbox: fail elevated setup when firewall policy is ineffective @iceweasel-oai
-
#22527 [codex] Reuse Apps MCP path override for plugin-service rollout @adaley-openai
-
#22412 chore(config) rm Feature::CodexGitCommit @dylan-hurd-oai
-
#22501 chore(config) rm tools.view_image @dylan-hurd-oai
-
#22533 fix: prevent codex-backend from stealing originator @owenlin0
-
#22408 Shard Bazel Windows tests across jobs @starr-openai
-
#22542 Use selected environment cwd for filesystem helpers @pakrym-oai
-
#20237 Add callback ids to local MCP OAuth redirects @stevenlee-oai
-
#22549 Enable plugin hooks by default @abhinav-oai
-
#22375 Use plugin/list to get list of plugins for mentions @canvrno-oai
-
#21235 [codex] Fix TUI wrapping for external borrowed slices @canvrno-oai
-
#22336 feat(cli): add codex doctor diagnostics @fcoury-oai
-
#22543 clean up instructions @sayan-oai
-
#21400 Avoid PowerShell profiles in elevated Windows sandbox @iceweasel-oai
-
#22528 Make multi_agent_v2 wait_agent timeouts configurable @andmis
-
#22529 Spill oversized PreToolUse additionalContext @abhinav-oai
-
#22535 Remove resurrected
/collabslash command @etraut-openai -
#22537 Refactor chatwidget orchestration into modules (phase 5) @etraut-openai
-
#22564 [codex] Canonicalize shared workspace plugin IDs @xl-openai
-
#22559 Add unsigned macOS release artifacts @shijie-oai
-
#22574 Deprecate issue labeler @maxb-openai
-
#22555 Remove connector_openai prefix filtering @ericning-o
-
#22580 fix: Block appserver startup if state db can't be opened @ddr-oai
-
#22565 chore(config) rm experimental_use_freeform_apply_patch @dylan-hurd-oai
-
#22578 enable/disable remote control at runtime, not via features @owenlin0
-
#22573 Simplify TUI startup test coverage @etraut-openai
-
#22587 Defer startup NUX impressions until startup succeeds @etraut-openai
-
#22494 Wire turn item contributors into stream output @jif-oai
-
#22643 [codex] treat PowerShell stop-parsing forms as unsupported @bookholt-oai
-
#22624 permissions: canonicalize workspace_roots and danger-full-access names @bolinfest
-
#22649 Chore: better published unsigned artifacts @shijie-oai
-
#22581 tui: split composer attachment and popup state @etraut-openai
-
#21396 [codex] add plugin marketplace CLI commands @caseychow-oai
-
#22576 tests: avoid ambient temp sandbox roots @starr-openai
-
#22652 [codex] Ignore fsmonitor config in Git metadata reads @bookholt-oai
-
#22229 fix(tui): render network approval history by target @fcoury-oai
-
#22547 Prefer the model list fetched from the backend for SIWC users @jeevnayak
-
#22666 [codex] fix plugin CLI active user layer compile @caseychow-oai
-
#22575 Support explicit MCP OAuth client IDs @mzeng-openai
-
#22512 test: isolate exec review policy config test @bolinfest
-
#22572 Fix remote environment test fixtures @starr-openai
-
#22563 tests: isolate codex home for live cli @starr-openai
-
#18161 [codex] Support multiple forced ChatGPT workspaces @rreichel3-oai
-
#22702 make rust-release-prepare use env secret @sayan-oai
-
#22687 Fix Windows sandbox clippy clones @starr-openai
-
#22711 chore(features) rm Feature::ApplyPatchFreeform @dylan-hurd-oai
-
#22717 chore(config) rm windows_wsl_setup_acknowledged @dylan-hurd-oai
-
#22695 Trim TUI legacy core helper usage @etraut-openai
-
#21624 Fix /review mode MCP startup render issue @canvrno-oai
-
#22684 Remove SSE fixture loaders @pakrym-oai
-
#22730 [codex] Group removed feature flags @dylan-hurd-oai
-
#22724 [codex] Remove experimental instructions file config @dylan-hurd-oai
-
#22237 Add
user_input_requested_during_turnto MCP turn metadata @mchen-oai -
#22737 ci: support signed macOS release promotion @bolinfest
-
#22303 Stabilize compact rollback follow-up test @dylan-hurd-oai
-
#22683 permissions: resolve profile identity with constraints @bolinfest
-
#22734 tui: recover local state db startup failures @etraut-openai
-
#22584 [codex] Add opaque desktop config namespace @guinness-oai
-
#22710 Prevent Esc from dismissing or rewinding
/side@etraut-openai -
#22704 TUI: split history cells into focused modules @etraut-openai
-
#22611 app-server: use permission ids and runtime workspace roots @bolinfest
-
#22612 tui/exec: show effective workspace roots in summaries @bolinfest
-
#22788 Fix signed macOS release promotion follow-up jobs @shijie-oai
-
#22647 Reject legacy [profiles] when using profile-v2 @jif-oai
-
#22809 [codex] Use compaction_trigger item for remote compaction v2 @jif-oai
-
#22636 Simplify tool executor and registry plumbing @jif-oai
-
#22841 Move memory prompt injection to app-server extension @jif-oai
-
#22789 guardian: use permission profile for review sandbox @bolinfest
-
#22656 tui: split remaining composer draft and footer state @etraut-openai
-
#22843 Ignore configured hooks in git helpers @bookholt-oai
-
#22790 context: remove legacy permissions instructions helper @bolinfest
-
#22791 telemetry: tag sandboxes from permission profiles @bolinfest
-
#22872 Forward apps MCP product SKU from Codex config @kumquatexpress
-
#22582 Workflow updates @viyatb-oai
-
#22792 app-server: stop returning thread permission profiles @bolinfest
-
#22795 core: construct test permission profiles directly @bolinfest
-
#22900 Disable DMG staging for signed macOS promotion @shijie-oai
-
#22877 feat(app-server): update remote control APIs for better UX @owenlin0
-
#22899 [codex] Soften SQLite metadata sync failures @wiltzius-openai
# Added Amazon Bedrock setup guidance We added [Amazon Bedrock setup guidance](/codex/amazon-bedrock) for teams that want to use Codex with supported OpenAI models available through AWS-managed infrastructure.
Added documentation for using Codex from the ChatGPT mobile app, including setup steps, connected-host behavior, security requirements, and troubleshooting for common connection issues.
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 app ### New features - Added an in-app trust review flow for hooks and kept Hooks settings reachable even before hooks are fully configured. ### Performance improvements and bug fixes - Restored tooltip-wrapped dropdowns that could stop opening after the tooltip rewrite. - Preserved in-progress message edits across thread switches. - Fixed several desktop workflow regressions, including `Ctrl+V` paste in the Windows terminal, opening modified external links outside the in-app browser, and keeping feedback slash commands attached to the right thread. - Improved loading and panel polish by showing model loading while a thread resumes, hiding unavailable model controls during load, and bundling summary-panel layout and hover fixes. - Kept the Computer Use settings control visible even when uninstalled and disabled problematic extension hover panels. - Additional performance improvements and bug fixes.
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
-
#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
-
#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
-
#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
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.
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
-
#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
-
#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
-
#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
-
#20560 feat: Track local paths for shared plugins @xl-openai
-
#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
-
#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
-
#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
-
#20773 feat: add remote compaction v2 Responses client path @jif-oai
-
#20997 feat: add context lines to memories MCP search @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
-
#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
-
#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
-
#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
-
#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
-
#21328 test: isolate app-server-client in-process test state @jif-oai
-
#21329 feat: include thread ID in MCP turn metadata @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
-
#21336 feat(app-server): move v2
sessionIdontoThread@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
-
#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
-
#21481 Revert state DB injection and agent graph store @pakrym-oai

