New Features
- The
/appcommand 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
Altbindings, 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 editno 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.mdfiles 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 --lastnow 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: 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
/goalusage 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-smokefromjust test. @anp-oai