Release notes
Codex CLI v0.168.0
New Features
- Browse model providers under Sessions → Model providers and choose the default for new chats. (#59541, #59722)
- Enable
features.tui_workspaceto view a side conversation beside the main chat. Drag the divider to resize the panes or pressleader zto zoom the focused pane. (#58992, #59527, #59595) - Attach recordings when using an audio-capable model. Codex skips confirmed rejected recordings on later turns and uses clip duration to keep more short recordings in context. (#59234, #59268)
- Enable
features.image_generation_animationto generate or edit animated GIFs with optional frame count and timing controls. (#59073) - Fullscreen Codex displays image previews and pets in tmux on Ghostty and Kitty with
allow-passthrough all. (#59579, #59580) - Set
tui.notification_method = "osc777"for terminal notifications. Approval notifications show longer command previews and distinguish terminal input from network access requests. (#59256)
Bug Fixes
- Local TUI history and resume pickers filter newly created threads by the signed-in ChatGPT account. (#58918)
- Open and resumed chats use their saved model provider after you change the default for new chats. (#59503)
- The TUI renders replies interrupted by tool calls as a single Markdown message and restores reasoning summaries when replaying a conversation. (#59698, #59700)
- Steering messages reach running turns when sent during the final transcript save or after switching back to a long-running chat. (#58877, #58998)
- Fuzzy file search gives filename matches more weight so matching parent directories are less likely to crowd them out. (#59709)
- Idle local MCP servers on Windows leave filesystem I/O available to the rest of Codex. (#59726)
Documentation
- The app-server reference covers listing model providers, creating custom gateways, and updating gateway, Bedrock, and GCP settings. (#58845, #58876)
Chores
- Codex warns when
features.multi_agentis explicitly configured and points toagents.enabledfor disabling subagent tools. (#59479) - Contributors can run Bazel CI jobs locally without BuildBuddy credentials. (#59055)
Changelog
Full Changelog: https://github.com/openai/codex/compare/rust-v0.167.0...rust-v0.168.0
- #58766 Distinguish update handoffs in TUI startup telemetry @etraut-openai
- #58767 Validate
/forkbefore consuming the composer draft @etraut-openai - #58829 Accept agent follow-ups through native turn input delivery @won-openai
- #58845 Add model provider discovery to the app server @alexsong-oai
- #58876 Add model provider configuration writes to the app-server @alexsong-oai
- #58877 Handle steers accepted during the final transcript flush @charliemarsh-oai
- #58886 Preserve timestamp ties when paginating threads @jif-oai
- #58890 Add a feature-gated account check for CLI thread resume @jif-oai
- #58894 Support model catalog overrides for plugin guidance @goodman-oai
- #58899 Add native patch support to direct Guardian review @swastik-oai
- #58903 Support permission requests in direct Guardian review @swastik-oai
- #58904 Add a standalone HTTP MCP server for the agent message board @jif-oai
- #58908 Package the message board MCP connection as a plugin @jif-oai
- #58909 Add an in-memory launcher for the message-board MCP server @jif-oai
- #58918 Scope local history discovery to the current ChatGPT account @jif-oai
- #58927 Fix live stream reflow at the allocated conversation width @fcoury-oai
- #58931 Support direct Guardian review of patches invoked through exec_command @swastik-oai
- #58933 Release message-board state before HTTP shutdown returns @jif-oai
- #58935 Defer Guardian context trimming in elastic preparation @ioanbudea-OAI
- #58936 Extract model-provider unit tests into separate files @ioanbudea-OAI
- #58937 Verify queued network approval wakeups before polling again @seanh-oai
- #58938 Skip attribution for direct MCP tool calls @victor-openai
- #58939 Refine additional-context byte histogram buckets @akira-oai
- #58940 Retire the daemon_auto_start feature flag @etraut-openai
- #58945 Fix model selection after provider setup @etraut-openai
- #58946 Preserve Guardian sender context for cloud deliveries with orbit IDs @felixxia-oai
- #58950 Recover WebSocket transport after transient HTTP fallback @charliemarsh-oai
- #58953 Support caller-owned sideband channels for realtime attachments @jiahao-oai
- #58954 Add a thread-store builder with host cleanup support @felixxia-oai
- #58955 Delete Guardian evidence boards when permanently deleting threads @felixxia-oai
- #58956 Allow volatile World State sections to refresh after compaction @rhan-oai
- #58957 Cache marketplace name mismatches during automatic upgrades @charliemarsh-oai
- #58959 Recover inherited history from alternate rollout copies @charliemarsh-oai
- #58960 Prefer indexed rollout paths when resolving ancestors @charliemarsh-oai
- #58962 Preserve Guardian budget policy through review recovery @ioanbudea-OAI
- #58963 Add host-owned turn admission to the agent runtime @rhan-oai
- #58964 Stabilize and enable client tool output retention by default @jif-oai
- #58966 Move protocol permissions tests into a separate file @viyatb-oai
- #58969 Avoid unnecessary rendering during TUI history loading and insertion @etraut-openai
- #58970 Keep automatic thread title saves off the TUI event loop @etraut-openai
- #58971 Fix Escape handling in memory reset confirmation @imac-oai
- #58973 Add opt-in MCP discovery for in-memory agent message boards @jif-oai
- #58974 Bind final-message output before running sandboxed tools @viyatb-oai
- #58975 Add usage accounting for host-owned agent runtimes @rhan-oai
- #58978 Enable the segment heap on Windows CI runners @anp-oai
- #58980 Record turn critical path metrics and trace fields @bkotsopoulos
- #58983 Extend and bound exec-server session recovery @richardopenai
- #58984 Allow hosts to restrict a thread's root-only capabilities @rhan-oai
- #58986 Move agent message-board backend construction into the extension @jif-oai
- #58988 Respect delivery boundaries for injected agent messages @won-openai
- #58989 Keep HTTP fallback active for the rest of the session @charliemarsh-oai
- #58990 Preserve modified Ctrl+C keys in active TUI views @imac-oai
- #58992 Add opt-in side conversation panes to the TUI @fcoury-oai
- #58996 Deliver environment hook decisions while output reads are queued @andrewgu-oai
- #58998 Preserve steering when returning to a long-running turn @tamird
- #59000 Allow hosted child threads to inherit a root session ID @rhan-oai
- #59001 Test connection events against active environment selections @anp-oai
- #59003 Preserve Guardian review framing under elastic context limits @ioanbudea-OAI
- #59007 Add host cycling and saved defaults for new TUI conversations @bc-openai
- #59009 Centralize filesystem permission resolution for sandbox enforcement @viyatb-oai
- #59011 Add optional total token limits to elastic section configuration @ioanbudea-OAI
- #59015 Make SQLite schema migrations safe for concurrent startup @dkovalenko-oai
- #59016 Make observed thread metadata writes atomic and retryable @dkovalenko-oai
- #59018 Add WebSocket connection metrics with reauthentication labels @bromano-oai
- #59020 Preserve sandbox context in prepared MCP calls @sayan-oai
- #59021 Allow concurrent readers of the installation ID @dkovalenko-oai
- #59025 Remove strict third-party tool deferral in Code Mode Only @rishab-openai
- #59028 Use prepared MCP owner permissions in Guardian reviews @sayan-oai
- #59033 Add web search provider metadata and configuration @yitaoh-oai
- #59034 Add model Search discovery to MCP bindings @yitaoh-oai
- #59036 Resolve model-selected search providers with policy-aware fallback @yitaoh-oai
- #59041 Expose assistant content token counts in completion notifications @aojiao-oai
- #59043 Tie executor attachments to environment selection lifetimes @anp-oai
- #59047 Decode live transcript updates in the cloud client @bc-openai
- #59055 Run Bazel CI locally without BuildBuddy credentials @dkovalenko-oai
…