Update Jun 8, 2026 tracked by Updatify

0.138.0

New Features

  • The /app command can now hand off the current CLI thread into Codex Desktop on macOS and native Windows, and Windows workspace launches can open directly into Desktop instead of stopping at a manual prompt. (#25638, #26500)
  • Local image attachments and standalone image generations now expose their saved file paths to the model, which makes follow-up edits and file references more reliable. (#25944, #25947)
  • Reasoning effort selection is more flexible: the TUI adds fallback shortcuts for terminals that miss Alt bindings, and model-defined effort levels now flow through in the order advertised by the model. (#25623, #26444, #26446)
  • App-server integrations can now read account token usage, and Codex auth supports v2 personal access tokens in CLI and app-server flows. (#25344, #25731)
  • Plugin automation got richer structured output: add/remove and marketplace commands support --json, plugin list JSON includes marketplace source, and plugin detail data now exposes default prompts, remote MCP servers, and unavailable app templates. (#26631, #26417, #25887, #26453, #26317)

Bug Fixes

  • Goal workflows are more predictable: multiline paste in /goal edit no longer submits early, idle auto-turns stay out of Plan mode, and goals stop auto-continuing after terminal turn failures. (#26047, #26147, #26690)
  • Forked threads now keep user-renamed titles instead of falling back to the original first-prompt name. (#26075)
  • The TUI no longer adds extra blank space while streaming, and cancelled prompts reopen with the cursor at the end so you can keep editing naturally. (#26636, #26457)
  • TUI config write failures now show the underlying cause, making validation problems and read-only filesystem issues much easier to diagnose. (#26537)
  • Startup is more resilient across environments, with support for /usr/bin/bash, shorter Linux proxy socket paths, and pre-refresh of expired OAuth-backed MCP credentials. (#26538, #26553, #26482)
  • Workspace instruction loading is more accurate for remote and symlinked workspaces, so the right AGENTS.md files are picked up consistently. (#26205, #26465)

Documentation

  • The CLI README was refreshed to remove stale guidance and better match the current documentation flow. (#26313)

Chores

  • TUI startup does less repeated plugin work by reusing discovery results and loading only hook metadata on the critical path. (#26469, #26272)
  • resume --last now finds the newest matching session through the state DB first, which speeds up restore on large local histories. (#26462)
  • Large MCP/Ollama streams and long message histories process much faster thanks to optimized byte scanning. (#26265)

Changelog

Full Changelog: https://github.com/openai/codex/compare/rust-v0.137.0…rust-v0.138.0

  • #26179 nit: small prompt update for MAv2 @jif-oai
  • #26175 feat: guard git enrichment @jif-oai
  • #26047 Fix multiline paste in /goal edit @etraut-openai
  • #25700 core: stop threading SandboxPolicy through exec @bolinfest
  • #25925 [codex] Copy user Bazel settings into Codex worktrees @anp-oai
  • #26216 [codex] Pin Python SDK to runtime 0.137.0a4 @aibrahim-oai
  • #25887 Preserve remote plugin default prompts @ericning-o
  • #25944 Expose local image paths to models @won-openai
  • #25469 [profile-switcher][rust] – [1/2] Add app-server account session protocol @dhruvgupta-oai
  • #26075 Fix forked thread name inheritance @etraut-openai
  • #25960 Restore Windows coverage for code-mode image generation exposure @won-openai
  • #26226 [codex] Split Python runtime release workflow @aibrahim-oai
  • #26254 feat: catalog multi-agent v2 config @jif-oai
  • #26251 Rewrite oversized tool outputs during remote compaction @pakrym-oai
  • #26260 codex-pr-body: avoid confidential references @anp-oai
  • #26074 Use Windows setup marker as completion signal @abhinav-oai
  • #26002 log plugin MCP server names @chrisdong-oai
  • #25623 fix(tui): add reasoning effort fallback shortcuts @fcoury-oai
  • #25638 feat(tui): add /app desktop handoff @fcoury-oai
  • #26189 cli: add package path from install context @bolinfest
  • #25946 [codex-analytics] report compaction request token counts @rhan-oai
  • #26252 ci: sign macOS release artifacts with Azure Key Vault @eburke-openai
  • #26367 chore: calm down @jif-oai
  • #26147 Gate automatic idle turns in Plan mode @jif-oai
  • #26172 Bridge host-loaded skills into the skills extension @jif-oai
  • #26265 Optimize unbounded byte scans with memchr @charliemarsh-oai
  • #26396 Reduce SQLite contention from OpenTelemetry SDK debug logs @zanie-oai
  • #26272 Load plugin hooks without other plugin capabilities @charliemarsh-oai
  • #26313 Simplify Codex CLI README @etraut-openai
  • #25947 Add saved image path hint to standalone image generation @won-openai
  • #26291 Bound external agent session detection work @stefanstokic-oai
  • #26417 Expose configured marketplace source in plugin list JSON @mpc-oai
  • #26436 app-server: support -c config overrides @bolinfest
  • #26435 external-agent-migration: avoid mixed MCP transport configs @stefanstokic-oai
  • #26248 [codex-analytics] emit forked thread id on initialization @kbazzi
  • #26320 core: allow excluding tool namespaces from code mode @sayan-oai
  • #25945 Use Azure artifact signing environment secrets @shijie-oai
  • #26205 Route AGENTS.md loading through environment filesystems @anp-oai
  • #26445 [codex] Fix Windows sandbox build script lint @pakrym-oai
  • #23710 build: use ThinLTO for release binaries @anp-oai
  • #26447 Remove response.processed websocket request @pakrym-oai
  • #26312 Cleanup experimentalFeature/enablement/set @mzeng-openai
  • #26444 [codex] Support model-defined reasoning efforts @aibrahim-oai
  • #26446 [codex] Use model-advertised reasoning effort order @aibrahim-oai
  • #26466 Use Winget release environment secret @shijie-oai
  • #26465 [codex] Preserve logical paths during AGENTS.md discovery @anp-oai
  • #26453 fix(app-server): expose remote MCP servers in plugin read @ericning-o
  • #26473 Add skill for pushing CI configuration changes @anp-oai
  • #26317 [codex] Expose unavailable app templates in plugin detail @charlesgong-openai
  • #26471 Improve Windows sandbox setup refresh diagnostics @iceweasel-oai
  • #26431 Pull plugin service less frequently @beggers-openai
  • #25000 ci: test windows cross build @cconger
  • #25955 [codex] Emit sandbox outcome telemetry event @rreichel3-oai
  • #26487 [codex] Add use_responses_lite ‘override’ logic @rka-oai
  • #26482 fix(rmcp): refresh expired OAuth tokens before startup @anp-oai
  • #26256 [codex] Keep Bazel startup options stable across commands @anp-oai
  • #26499 core: derive exec policy filesystem policy from profile @bolinfest
  • #26215 feat(remote-control): allow pairing while disabled @apanasenko-oai
  • #26480 [codex] Add environment shell info @pakrym-oai
  • #26210 Encrypt multi-agent v2 message payloads @jif-oai
  • #26566 nit: doc @jif-oai
  • #25710 [codex] Forward turn moderation metadata through app-server @carlc-oai
  • #26599 [codex] Keep v1 spawn metadata visible @jif-oai
  • #26610 refactor: split agent control modules @jif-oai
  • #25344 feat(app-server): expose account token usage [1 of 2] @fcoury-oai
  • #26553 [codex] Fix long proxy socket paths @viyatb-oai
  • #26537 Surface TUI config write error causes @etraut-openai
  • #26500 Open Windows app workspaces via deep link @etraut-openai
  • #26551 Fix /goal usage text for control commands @etraut-openai
  • #26554 Render code comment directives in TUI replay @etraut-openai
  • #26623 feat: reload v2 agents on delivery @jif-oai
  • #26532 Require absolute cwd in thread settings @pakrym-oai
  • #26625 [codex] Allow socketpair in proxy-routed Linux sandbox @viyatb-oai
  • #26538 [codex] Add /usr/bin/bash shell fallback @pakrym-oai
  • #26449 feat(remote-control): add pairing status transport @hefuc-oai
  • #26433 Make turn diff tracker multi-env aware @pakrym-oai
  • #26636 fix(tui): avoid doubled blank rows while streaming @fcoury-oai
  • #26450 feat(app-server): add remote control pairing status RPC @hefuc-oai
  • #26335 Clean up Rust release workflow @shijie-oai
  • #26547 [1 of 2] Align goal extension with core behavior @etraut-openai
  • #26181 fix(tui): Windows composer background @fcoury-oai
  • #26457 fix(tui): restore cancelled prompt cursor at end @fcoury-oai
  • #26307 [codex] Respect Windows sandbox backend in exec policy @iceweasel-oai
  • #26484 [codex] Add turn profiling analytics @aibrahim-oai
  • #26552 Make runtime workspace roots absolute in app-server API @pakrym-oai
  • #26462 Use state DB first for resume --last @charliemarsh-oai
  • #26469 Speed up TUI startup by reusing plugin discovery @charliemarsh-oai
  • #26631 Add JSON output for plugin subcommands @mpc-oai
  • #26669 [codex] Bound WSL local curated discovery @xl-openai
  • #26548 [2 of 2] Finish moving goal runtime to extension @etraut-openai
  • #26674 protocol: remove submission-side serde from Op @pakrym-oai
  • #26690 Block active goals after terminal turn errors @etraut-openai
  • #25936 [codex] Remove legacy remote plugin startup sync @xl-openai
  • #26490 [codex] Use standalone tools for Responses Lite @rka-oai
  • #26013 [codex] Gate terminal visualization instructions in TUI @vie-oai
  • #25731 [codex-rs] support v2 personal access tokens @cooper-oai
  • #26542 [codex] Send Responses Lite transport header @rka-oai
  • #24852 permissions: enforce managed permission profile allowlists @viyatb-oai
  • #26698 [codex] Deduplicate skill load warnings @xl-openai
  • #26716 Remove just bench-smoke from just test. @anp-oai