- Highlights
- New commands and controls: support `/mcp` in TUI (#2430) and a slash command `/approvals` to control approvals (#2474).
- Reasoning controls: change reasoning effort and model at runtime (#2435) `/model`; add “minimal” effort for GPT‑5 models (#2326).
- Auth improvements: show login options when not signed in with ChatGPT (#2440) and auto‑refresh ChatGPT auth token (#2484).
- UI/UX polish: Ghostty Ctrl‑b/Ctrl‑f fallback (#2427), Ctrl+H as backspace (#2412), cursor position tweak after tab completion (#2442), color/accessibility updates (#2401, #2421).
- Distribution/infra: zip archived binaries added to releases (#2438) and DotSlash entry for Windows x86_64 (#2361); upgraded to Rust 1.89 (#2465, #2467).
- Full list of merged PRs
- [#2352](https://github.com/openai/codex/pull/2352) tui: skip identical consecutive entries in local composer history
- [#2355](https://github.com/openai/codex/pull/2355) fix: introduce codex-protocol crate
- [#2326](https://github.com/openai/codex/pull/2326) Fix #2296 Add "minimal" reasoning effort for GPT 5 models
- [#2357](https://github.com/openai/codex/pull/2357) Remove duplicated "Successfully logged in message"
- [#2337](https://github.com/openai/codex/pull/2337) color the status letter in apply patch summary
- [#2336](https://github.com/openai/codex/pull/2336) chore: remove duplicated lockfile
- [#2361](https://github.com/openai/codex/pull/2361) fix: include an entry for windows-x86_64 in the generated DotSlash file
- [#2245](https://github.com/openai/codex/pull/2245) Show progress indicator for /diff command
- [#2314](https://github.com/openai/codex/pull/2314) replace /prompts with a rotating placeholder
- [#2372](https://github.com/openai/codex/pull/2372) Added launch profile for attaching to a running codex CLI process
- [#2373](https://github.com/openai/codex/pull/2373) Added MCP server command to enable authentication using ChatGPT
- [#2388](https://github.com/openai/codex/pull/2388) fix: refactor login/src/server.rs so process_request() is a separate function
- [#2365](https://github.com/openai/codex/pull/2365) fix: introduce EventMsg::TurnAborted
- [#2360](https://github.com/openai/codex/pull/2360) remove mcp-server/src/mcp_protocol.rs and the code that depends on it
- [#2401](https://github.com/openai/codex/pull/2401) fix: clean up styles & colors and define in styles.md
- [#2411](https://github.com/openai/codex/pull/2411) chore(deps-dev): bump @types/node in /.github/actions/codex
- [#2421](https://github.com/openai/codex/pull/2421) fix: stop using ANSI blue
- [#2423](https://github.com/openai/codex/pull/2423) chore: move mcp-server/src/wire_format.rs to protocol/src/mcp_protocol.rs
- [#2424](https://github.com/openai/codex/pull/2424) chore: add TS annotation to generated mcp-types
- [#2428](https://github.com/openai/codex/pull/2428) consolidate reasoning enums into one
- [#2431](https://github.com/openai/codex/pull/2431) Add an operation to override current task context
- [#2425](https://github.com/openai/codex/pull/2425) protocol-ts
- [#2432](https://github.com/openai/codex/pull/2432) Add cache tests for UserTurn
- [#2412](https://github.com/openai/codex/pull/2412) Fix #2391 Add Ctrl+H as backspace keyboard shortcut
- [#2405](https://github.com/openai/codex/pull/2405) chore(deps): bump anyhow in /codex-rs
- [#2406](https://github.com/openai/codex/pull/2406) chore(deps): bump libc in /codex-rs
- [#2389](https://github.com/openai/codex/pull/2389) chore: prefer returning Err to expect()
- [#2393](https://github.com/openai/codex/pull/2393) fix: async-ify login flow
- [#2404](https://github.com/openai/codex/pull/2404) chore(deps): bump clap in /codex-rs
- [#2394](https://github.com/openai/codex/pull/2394) fix: change `shutdown_flag` from `Arc<AtomicBool>` to `tokio::sync::Notify`
- [#2438](https://github.com/openai/codex/pull/2438) Release zip archived binaries
- [#2395](https://github.com/openai/codex/pull/2395) fix: eliminate ServerOptions.login_timeout and use tokio::time::timeout()
- [#2396](https://github.com/openai/codex/pull/2396) fix: make ShutdownHandle a private field of LoginServer
- [#2398](https://github.com/openai/codex/pull/2398) fix: reduce references to Server in codex-login crate
- [#2399](https://github.com/openai/codex/pull/2399) fix: remove shutdown_flag param to run_login_server()
- [#2403](https://github.com/openai/codex/pull/2403) chore(deps): bump clap_complete in /codex-rs
- [#2440](https://github.com/openai/codex/pull/2440) Show login options when not signed in with ChatGPT
- [#2446](https://github.com/openai/codex/pull/2446) fix: exclude sysprompt etc from context left %
- [#2430](https://github.com/openai/codex/pull/2430) [tui] Support /mcp command
- [#2442](https://github.com/openai/codex/pull/2442) Fix #2429 Tweak the cursor position after tab completion
- [#2457](https://github.com/openai/codex/pull/2457) fix: fix missing spacing in review decision response
- [#2427](https://github.com/openai/codex/pull/2427) tui: support Ghostty Ctrl-b/Ctrl-f fallback
- [#2407](https://github.com/openai/codex/pull/2407) chore(deps): bump actions/checkout from 4 to 5
- [#2435](https://github.com/openai/codex/pull/2435) Support changing reasoning effort
- [#2462](https://github.com/openai/codex/pull/2462) feat: move session ID bullet in /status
- [#2464](https://github.com/openai/codex/pull/2464) docs: document writable_roots for sandbox_workspace_write
- [#2466](https://github.com/openai/codex/pull/2466) fix: prefer `cargo check` to `cargo build` to save time and space
- [#2465](https://github.com/openai/codex/pull/2465) chore: upgrade to Rust 1.89
- [#2467](https://github.com/openai/codex/pull/2467) chore: Rust 1.89 promoted file locking to stdlib
- [#2468](https://github.com/openai/codex/pull/2468) fix apply patch when only one file is rendered
- [#2475](https://github.com/openai/codex/pull/2475) Fix: Sign in appear even if using other providers.
- [#2460](https://github.com/openai/codex/pull/2460) Enable Dependabot updates for Rust toolchain
- [#2476](https://github.com/openai/codex/pull/2476) Diff command
- [#2487](https://github.com/openai/codex/pull/2487) Client headers
- [#2484](https://github.com/openai/codex/pull/2484) Refresh ChatGPT auth token
- [#2495](https://github.com/openai/codex/pull/2495) fix: prefer config var to env var
- [#2474](https://github.com/openai/codex/pull/2474) Add a slash command to control permissions