0.52.0
Highlights
- TUI polish: queued messages visible during streaming; Windows auto-mode guidance; undo op; compaction prompt configurable.
- Images: client-side image resizing; prevent crashes with MIME verification; SDK image forwarding tests re-enabled.
- Execute commands directly with
!<cmd> - Ability to buy credits for more usage. More information
Other improvements
- Auth: new CLI auth storage abstraction with keyring support and configurable backend.
- App server: GetConversationSummary RPC; fetch/resume conversation summaries by id; refined account/protocol types.
- Execution/events: item streaming events; ghost commits; clearer deprecation warnings; better token refresh handling and logs.
- Conversation management: centralized truncation for all tool outputs; filter out prior-turn reasoning; annotate conversations with model_provider.
List of merged PRs
- Log HTTP Version in https://github.com/openai/codex/pull/5475
- feat: local tokenizer in https://github.com/openai/codex/pull/5508
- chore: drop approve all in https://github.com/openai/codex/pull/5503
- [MCP] Add support for specifying scopes for MCP oauth in https://github.com/openai/codex/pull/5487
- chore: clean spec tests in https://github.com/openai/codex/pull/5517
- [MCP] Remove the legacy stdio client in favor of rmcp in https://github.com/openai/codex/pull/5529
- [app-server] send account/rateLimits/updated notifications in https://github.com/openai/codex/pull/5477
- Fix unified exec session id test helper in https://github.com/openai/codex/pull/5535
- [app-server] add new account method API stubs in https://github.com/openai/codex/pull/5527
- chore: clean handle_container_exec_with_params in https://github.com/openai/codex/pull/5516
- fix: approval issue in https://github.com/openai/codex/pull/5525
- tui: show aggregated output in display in https://github.com/openai/codex/pull/5539
- Handle cancelling/aborting while processing a turn in https://github.com/openai/codex/pull/5543
- chore: testing on apply_path in https://github.com/openai/codex/pull/5557
- feat: use actual tokenizer for unified_exec truncation in https://github.com/openai/codex/pull/5514
- feat: end events on unified exec in https://github.com/openai/codex/pull/5551
- Use Option symbol for mac key hints in https://github.com/openai/codex/pull/5582
- Moving token_info to ConversationHistory in https://github.com/openai/codex/pull/5581
- [MCP] Update rmcp to 0.8.3 in https://github.com/openai/codex/pull/5542
- [MCP] Improve startup errors for timeouts and github in https://github.com/openai/codex/pull/5595
- fix: flaky tests in https://github.com/openai/codex/pull/5625
- adding messaging for stale rate limits + when no rate limits are cached in https://github.com/openai/codex/pull/5570
- Add CodexHttpClient wrapper with request logging in https://github.com/openai/codex/pull/5564
- [app-server] fix account/read response annotation in https://github.com/openai/codex/pull/5642
- Add instruction for upgrading codex with brew in https://github.com/openai/codex/pull/5640
- Log more types of request IDs in https://github.com/openai/codex/pull/5645
- Added model summary and risk assessment for commands that violate sandbox policy in https://github.com/openai/codex/pull/5536
- [MCP] Redact environment variable values in /mcp and mcp get in https://github.com/openai/codex/pull/5648
- [MCP] Properly gate login after mcp add with experimental_use_rmcp_client in https://github.com/openai/codex/pull/5653
- [codex][app-server] introduce codex/event/raw_item events in https://github.com/openai/codex/pull/5578
- Fixed flaky unit test in https://github.com/openai/codex/pull/5654
- Improve feedback in https://github.com/openai/codex/pull/5661
- Followup feedback in https://github.com/openai/codex/pull/5663
- Skip flaky test in https://github.com/openai/codex/pull/5680
- Added support for sandbox_mode in profiles in https://github.com/openai/codex/pull/5686
- Reduced runtime of unit test that was taking multiple minutes in https://github.com/openai/codex/pull/5688
- [MCP] Minor docs clarifications around stdio tokens in https://github.com/openai/codex/pull/5676
- fix: use codex-exp prefix for experimental models and consider codex- models to be production in https://github.com/openai/codex/pull/5797
- fix: revert "[app-server] fix account/read response annotation (#5642)" in https://github.com/openai/codex/pull/5796
- Add feedback upload request handling in https://github.com/openai/codex/pull/5682
- feat: annotate conversations with model_provider for filtering in https://github.com/openai/codex/pull/5658
- feat: update NewConversationParams to take an optional model_provider in https://github.com/openai/codex/pull/5793
- feat: undo wiring in https://github.com/openai/codex/pull/5630
- feat: async ghost commit in https://github.com/openai/codex/pull/5618
- feat: TUI undo op in https://github.com/openai/codex/pull/5629
- nit: doc on session task in https://github.com/openai/codex/pull/5809
- chore: undo nits in https://github.com/openai/codex/pull/5631
- fix: test yield time in https://github.com/openai/codex/pull/5811
- feat: introduce GetConversationSummary RPC in https://github.com/openai/codex/pull/5803
- feat: return an error if unknown enabled/disabled feature in https://github.com/openai/codex/pull/5817
- Made token refresh code resilient to missing id_token in https://github.com/openai/codex/pull/5782
- [Auth] Introduce New Auth Storage Abstraction for Codex CLI in https://github.com/openai/codex/pull/5569
- feat: support verbosity in model_family in https://github.com/openai/codex/pull/5821
- [Auth] Add keyring support for Codex CLI in https://github.com/openai/codex/pull/5591
- Centralize truncation in conversation history in https://github.com/openai/codex/pull/5652
- fix: move account struct to app-server-protocol and use camelCase in https://github.com/openai/codex/pull/5829
- [MCP] Render MCP tool call result images to the model in https://github.com/openai/codex/pull/5600
- fix image drag drop in https://github.com/openai/codex/pull/5794
- Truncate the content-item for mcp tools in https://github.com/openai/codex/pull/5835
- feat(tui): clarify Windows auto mode requirements in https://github.com/openai/codex/pull/5568
- [Auth] Choose which auth storage to use based on config in https://github.com/openai/codex/pull/5792
- chore: speed-up pipeline in https://github.com/openai/codex/pull/5812
- chore: drop useless shell stuff in https://github.com/openai/codex/pull/5848
- chore: use anyhow::Result for all app-server integration tests in https://github.com/openai/codex/pull/5836
- chore: decompose submission loop in https://github.com/openai/codex/pull/5854
- fix advanced.md in https://github.com/openai/codex/pull/5833
- tui: show queued messages during response stream in https://github.com/openai/codex/pull/5540
- Filter out reasoning items from previous turns in https://github.com/openai/codex/pull/5857
- revert #5812 release file in https://github.com/openai/codex/pull/5887
- remove beta experimental header in https://github.com/openai/codex/pull/5892
- Fixed bug that results in a sporadic hang when attaching images in https://github.com/openai/codex/pull/5891
- verify mime type of images in https://github.com/openai/codex/pull/5888
- [app-server] Annotate more exported types with a title in https://github.com/openai/codex/pull/5879
- [App Server] Allow fetching or resuming a conversation summary from the conversation id in https://github.com/openai/codex/pull/5890
- [codex][app-server] resume conversation from history in https://github.com/openai/codex/pull/5893
- Refresh tokens more often and log a better message when both auth and token refresh fails in https://github.com/openai/codex/pull/5655
- fix(windows-path): preserve PATH order; include core env vars in https://github.com/openai/codex/pull/5579
- chore: merge git crates in https://github.com/openai/codex/pull/5909
- feat: deprecation warning in https://github.com/openai/codex/pull/5825
- feat: add output even in sandbox denied in https://github.com/openai/codex/pull/5908
- Add missing "nullable" macro to protocol structs that contain optional fields in https://github.com/openai/codex/pull/5901
- Add a wrapper around raw response items in https://github.com/openai/codex/pull/5923
- fix: icu_decimal version in https://github.com/openai/codex/pull/5919
- chore: config editor in https://github.com/openai/codex/pull/5878
- Delegate review to codex instance in https://github.com/openai/codex/pull/5572
- [exec] Add MCP tool arguments and results in https://github.com/openai/codex/pull/5899
- Add item streaming events in https://github.com/openai/codex/pull/5546
- Re-enable SDK image forwarding test in https://github.com/openai/codex/pull/5934
- ignore agent message deltas for the review mode in https://github.com/openai/codex/pull/5937
- asdf in https://github.com/openai/codex/pull/5940
- Add debug-only slash command for rollout path in https://github.com/openai/codex/pull/5943
- Add debug-only slash command for rollout path in https://github.com/openai/codex/pull/5936
- Send delegate header in https://github.com/openai/codex/pull/5942
- chore: unify config crates in https://github.com/openai/codex/pull/5958
- Pass initial history as an optional to codex delegate in https://github.com/openai/codex/pull/5950
- feat: compaction prompt configurable in https://github.com/openai/codex/pull/5959
- nit: log rmcp_client in https://github.com/openai/codex/pull/5978
- chore: testing on freeform apply_patch in https://github.com/openai/codex/pull/5952
- [codex] add developer instructions in https://github.com/openai/codex/pull/5897
- [app-server] remove serde(skip_serializing_if = "Option::is_none") annotations in https://github.com/openai/codex/pull/5939