OpenAI Codex CLI rust-v0.169.0
OpenAI Codex CLI rust-v0.169.0 was released on .
Summary
Codex CLI rust-v0.169.0 is here: multiple side-chat tabs, searchable past tasks, collapsible turn details, and in-terminal provider setup. Want to see what else changed?
Release Context
- This was the 116th OpenAI Codex CLI release of 2026 tracked by Havoptic.
- It shipped the same day as OpenAI Codex CLI rust-v0.168.0 (November 13, 2026).
- OpenAI Codex CLI: ships every 3.9 days — 7 releases in the last month.
Why it matters: Multiple side-chat tabs now live in Codex terminal.
Shipped around the same time
Within 3 days of this release, other AI coding tools also shipped:
- Antigravity CLI v1.5.9 (November 14, 2026)
- Factory Droid v1.12.0 (November 14, 2026)
- GitHub Copilot CLI v1.0.112 (November 13, 2026)
- Claude Code v2.1.325 (November 13, 2026)
- Grok Build v1.0.85 (November 13, 2026)
Compare OpenAI Codex CLI
- OpenAI Codex CLI vs Claude Code
- OpenAI Codex CLI vs Cursor
- OpenAI Codex CLI vs Gemini CLI
- OpenAI Codex CLI vs Kiro CLI
- OpenAI Codex CLI vs GitHub Copilot CLI
- OpenAI Codex CLI vs Devin Desktop
- OpenAI Codex CLI vs Antigravity CLI
- OpenAI Codex CLI vs Grok Build
- OpenAI Codex CLI vs Cline
- OpenAI Codex CLI vs OpenCode
- OpenAI Codex CLI vs Zed
- OpenAI Codex CLI vs Factory Droid
- OpenAI Codex CLI vs Devin
- OpenAI Codex CLI vs Lovable
- OpenAI Codex CLI vs Amp
- OpenAI Codex CLI vs GitHub Copilot in VS Code
- OpenAI Codex CLI vs Replit Agent
- OpenAI Codex CLI vs Bolt
- OpenAI Codex CLI vs v0
Release Notes
New Features - The opt-in terminal workspace supports multiple side-chat tabs. Switch between them with the keyboard or mouse, and reopen saved local side chats after restarting Codex. (59784, 60152, 60181) - Search older tasks from the agent command center by name, prompt preview, or working directory. (60286) - Turn on Collapse turn details in the full-screen transcript to fold completed activity beneath each prompt while keeping answers visible and tool output searchable. (60554, 60555, 60556, 60557) - Add or edit custom model providers from the terminal. With custom gateway onboarding enabled, you can create a provider during sign-in and use a device code for supported gateways over SSH or without a local browser. (59779, 60009, 60186, 60486, 60662) - Press Ctrl+S in the terminal report editor to save a diagnostic ZIP locally, even when uploads are disabled. (60542) - With the opt-in Cloud connection on macOS and Linux, send images, choose a model and reasoning effort, and archive or restore Cloud conversations from the terminal. (59828, 60061, 60635, 60651) Bug Fixes - codex exec keeps project configuration and MCP servers disabled in untrusted directories, even with --sandbox workspace-write. Use --trust with codex exec or codex review to explicitly save project trust. (60041) - Yes, clear context and implement now hands the full approved plan to the fresh session and keeps the current session open if the handoff fails. (60763) - Fixed Windows sandbox handling for quoted cmd.exe paths and for PowerShell sessions whose working directory has an unreadable parent. (60624, 60647) - Pasted images on macOS retain their intended orientation and use native PNG or JPEG clipboard data when available. (60455) - The terminal no longer stays busy waiting for MCP servers that a shared app server did not report. (60280, 60622) - Interrupted turns now close cleanly, and delayed aborts or file approval cancellations no longer interrupt a later turn. (59910, 60700) Documentation - Updated the openai-docs skill to focus on Codex and ChatGPT Work questions and first-time API setup, with dedicated guidance for configuring Codex across a team. (59944, 59949) - Documented how app-server clients can list models or authorize a gateway for a configured provider without changing the default provider. (59776, 59819) Chores - Updated bundled SQLite to 3.54 to pick up write-ahead log fixes. (60432) - Plugin marketplace upgrades can reuse Git objects already on disk, reducing repeat downloads. (60528) Changelog Full Changelog: https://github.com/openai/codex/compare/rust-v0.168.0...rust-v0.169.0 - 59739 Add a sidebar chooser and floating workspace shortcut panels @fcoury-oai - 59743 Forward explicit cyber access programs with header authentication @jamy-OAI - 59745 Repair legacy Windows sandbox bin permissions for SYSTEM @zm-oai - 59746 Add typed Cloud user-message submission receipts @bc-openai - 59749 Use runtime authentication for OpenAI MCP and app requests @cooper-oai - 59750 Stop Noise relay recovery on rejected executor credentials @richardopenai - 59752 Configure the Opus Bazel patch and isolate auth tests @bkotsopoulos - 59754 Enforce host-required cyber access programs per thread @jamy-OAI - 59759 Update WebSocket dependency forks @charliemarsh-oai - 59767 Add sidebar tabs and nonblocking side-chat creation @fcoury-oai - 59768 Stop prefetching plugin discovery at app-server startup @zamoshchin-openai - 59769 Reuse decoded WebSocket event kinds in telemetry @charliemarsh-oai - 59770 Add shared service-tier support for host-owned agents @rhan-oai - 59772 Remove the legacy sandbox policy constructor @ioanbudea-OAI - 59774 Remove the legacy Seatbelt command wrapper @ioanbudea-OAI - 59776 Allow selecting a configured provider in model/list @abhinav-oai - 59778 Expose acceptance metadata and code-cell links in rollout traces @tz-openai - 59779 Add provider configuration editing to the TUI @alexsong-oai - 59780 Enable safe identical code folding for x86-64 musl releases @dkovalenko-oai - 59783 Tie gRPC code-mode connection lifetime to live sessions @frantic-openai - 59784 Support multiple side chats in the TUI sidebar @fcoury-oai - 59785 Decouple message lifecycle state from model-visible item IDs @euroelessar - 59787 Support credential export commands for gateway authentication @alexsong-oai - 59789 Render delegated thread messages as Markdown in the TUI @bc-openai - 59792 Centralize managed proxy preparation and sandbox routing @viyatb-oai - 59793 Support update-boundary paging across forked thread histories @owenlin0 - 59794 Check extension budgets before model generation requests @rhan-oai - 59795 Support optional thread IDs in hosted file uploads @lt-oai - 59805 Pack relative relocations in x86-64 musl release builds @dkovalenko-oai - 59816 Retry gateway credential exports after unauthorized responses @alexsong-oai - 59817 Handle TUI message submission receipts and preserve uncertain drafts @bc-openai - 59819 Allow provider selection for gateway OAuth reads and logins @abhinav-oai - 59822 Add device-code authorization for gateway OAuth @smurching-oai - 59823 Bind runtime auth to the provider's selected credential source @cooper-oai - 59824 Enable resizing the sidebar chooser @fcoury-oai - 59826 Preserve client metadata through queued submissions @eddie-openai - 59828 Add a gated Cloud backend to the TUI @bc-openai - 59832 Add opt-in incremental tools for regular OpenAI Responses @akira-oai - 59842 Carry targeted moderation decisions on final-answer messages @psachdeva-oai - 59887 Remove incomplete prereleases after asset upload failures @jif-oai - 59891 Bound REPL provenance costs in elastic context preparation @jif-oai - 59893 Recompute the approval reviewer when switching models @jif-oai - 59902 Keep verified question/answer records whole under elastic budgets @jif-oai - 59903 Delete incomplete prereleases by release ID @jif-oai - 59905 Validate implicit API keys for Guardian Decisions @jif-oai - 59908 Avoid full image decoding for original-detail context estimates @jif-oai - 59910 Scope file change approval cancellation to the requesting turn @jif-oai - 59913 Resolve Guardian policy from the reviewed thread's catalog @jif-oai - 59914 Bind Guardian Decisions requests to their credential source @jif-oai - 59928 Improve sidebar chat selection and tab hover highlighting @fcoury-oai - 59933 Use permission profiles for protected-model startup downgrades @ioanbudea-OAI - 59944 Narrow openai-docs to product Q&A and first-time API setup @provencher-oai - 59949 Route broad Codex setup questions through self-knowledge guidance @vb-openai - 59954 Resolve skill display names in read and installations tools @jif-oai - 59955 Bump ignore to 0.4.30 @iceweasel-oai - 59958 Expose model metadata from each thread's catalog and settings @seanh-oai - 59960 Skip the network denial grace period when remote decisions drain @jif-oai - 59963 Normalize turn context permissions to a required profile @ioanbudea-OAI - 59969 Reduce contention in thread writer lock coordination @dkovalenko-oai - 59972 Fix Opus header installation with relative symlink inputs @bc-openai - 59973 Enable gRPC and host output truncation by default for Code Mode @seanh-oai - 59974 Test command completion before network denial grace expires @jif-oai - 59980 Test rejection of PNGs with readable dimensions but corrupt pixels @fjord-oai - 59983 Render typed prompts as Markdown in the TUI @bc-openai - 59987 Resolve startup models using thread creation options @seanh-oai - 59988 Add inherited styling to TUI display trees @joesavona - 59991 Preserve app invocation context across MCP tool refreshes @fahad-OAI - 59993 Add fixed read views for local message boards @felixxia-oai - 59994 Add read-only evidence retrieval tools for Guardian reviewers @felixxia-oai - 59995 Add subscription tools for Guardian reviewers @felixxia-oai - 59998 Add atomic bulk channel subscription updates @felixxia-oai - 59999 Add model-driven Guardian channel selection @felixxia-oai - 60000 Plan Guardian evidence delivery in source order @felixxia-oai - 60001 Add bounded original-evidence delivery for Guardian reviewers @felixxia-oai - 60002 Decouple Guardian retrieval from local message-board handles @felixxia-oai - 60003 Apply runtime authentication to realtime connections @cooper-oai - 60004 Expose ChatGPT user IDs in account/read responses @dand-oai - 60006 Reduce SQLite write overhead for thread activity and history @jonluca - 60007 Start cloud threads with the local GitHub project @bc-openai - 60008 Refactor TUI clipboard and composer input handling @bc-openai - 60009 Add custom gateway selection to TUI sign-in @alexsong-oai - 60010 Add a shared Windows Bazel setup action @dkovalenko-oai - 60011 Adapt multi-agent mode guidance for hosted tools @rhan-oai - 60014 Honor managed runtime authentication modes and expand coverage @cooper-oai - 60017 Disable bundled skills in the prompt-prefix comparison test @felixxia-oai - 60018 Propagate turn triggers to usage analytics events @chrisdong-oai - 60019 Add theme-aware semantic colors to extension UI trees @joesavona - 60020 Strip terminal commands from UI tree strings @joesavona - 60021 Normalize inline UI tree text across styled leaves @joesavona - 60022 Separate UI tree preparation from line rendering @joesavona - 60026 Add multiline layout and row wrapping to UI trees @joesavona - 60027 Keep configured status lines on the native renderer @joesavona - 60028 Reuse prepared UI trees for footer rendering @joesavona - 60029 Render UI trees directly into terminal buffers @joesavona - 60031 Unify TUI status line layout for extension content @joesavona - 60032 Allow extension status content to use multiple footer rows @joesavona - 60034 Omit sensitive process inputs from spawn trace logs @etraut-openai - 60035 Fix authentication for git-attribution settings requests @cooper-oai - 60037 Preserve MCP sharing discovery when deferring cached stdio startup @charliemarsh-oai - 60038 Surface MCP server startup errors when preparing cached tool calls @charliemarsh-oai - 60039 Add opt-in lazy startup for cached stdio MCP servers @charliemarsh-oai - 60040 Restrict legacy incremental tools to Amazon Bedrock providers @akira-oai - 60041 Require explicit project trust in non-interactive runs @etraut-openai - 60042 Centralize Windows sandbox filesystem override resolution @viyatb-oai - 60046 Derive MCP network policy and preserve saved denials @viyatb-oai - 60048 Allow plugin starter prompts up to 512 characters @karenwong-openai - 60049 Preserve model catalogs when starting child agents @evanz-oai - 60055 Reauthenticate runtime requests before reusing WebSocket access @cooper-oai - 60061 Support Cloud image messages and editable draft handoffs @bc-openai - 60064 Use thread runtime auth for Guardian Decisions and memory quota checks @cooper-oai - 60067 Ensure side-chat policy reaches the first model request @fcoury-oai - 60073 Use runtime authentication for remote-control requests @cooper-oai - 60075 Support asynchronous host service-tier reads and acceptance @rhan-oai - 60080 Allow asynchronous model request budget checks @rhan-oai - 60082 Fetch account security reminders through app-server @cooper-oai - 60096 Stop retrying terminal runtime authentication denials @cooper-oai - 60101 Use runtime authentication for Analytics requests @cooper-oai - 60118 Buffer payload JSON reads during rollout trace replay @tz-openai - 60122 Preserve code mode dispatch errors in rollout traces @tz-openai - 60152 Persist local workspace side chats and add tab close controls @fcoury-oai - 60157 Add support for incremental code mode tool definitions @akira-oai - 60163 Wire incremental exec tool updates into Code Mode sessions @akira-oai - 60172 Preserve display instructions in answer moderation @psachdeva-oai - 60173 Test exec catalog preservation across session and compaction changes @akira-oai - 60177 Add metrics for incremental exec catalog updates @akira-oai - 60180 Attach typed punctuation to completed skill mentions @bc-openai - 60181 Add keyboard and mouse navigation for sidebar tabs @fcoury-oai - 60186 Allow creating custom providers during sign-in @alexsong-oai - 60188 Allow model overrides for incremental Code Mode tool messages @akira-oai - 60190 Expose agent tree IDs and environment removal @richardopenai - 60206 Increase Bazel core unit test shards from 8 to 16 @seanh-oai - 60270 Warn when a CLI model is absent from the ChatGPT model list @etraut-openai - 60271 Keep the agents overview open when there is no chat to return to @etraut-openai - 60280 Fix MCP startup tracking when attaching to shared app servers @charliemarsh-oai - 60286 Search task history from the command center @etraut-openai - 60309 Defer executor readiness when prewarming a selected project @bc-openai - 60319 Improve side-chat discovery and navigation in the TUI @fcoury-oai - 60320 Include older itemless Cloud failures in full transcripts @bc-openai - 60327 Suppress stale cloud stream disconnects after reopening a thread @bc-openai - 60335 Avoid duplicate assistant messages when resuming Cloud threads @bc-openai - 60342 Treat goal objectives as untrusted context @dylan-hurd-oai - 60389 Include Codex Apps configuration in cloud prewarm requests @bc-openai - 60390 Allow deferring plain-text MCP output in thread item listings @btraut-openai - 60391 Simplify Guardian's post-denial approval guidance @olliem-oai - 60414 Enable model catalog discovery with gateway OAuth @smurching-oai - 60416 Keep fitting URLs intact in fullscreen Markdown transcripts @etraut-openai - 60418 Let terminal status become done while background terminals run @etraut-openai - 60423 Expose deferred MCP servers in resource listings @charliemarsh-oai - 60432 Upgrade bundled SQLite to 3.54 for WAL fixes @ioanbudea-OAI - 60433 Bind API workload identity source reuse to session claims @cooper-oai - 60434 Reset app-server turn summaries when a turn starts @cooper-oai - 60435 Dismiss the model switch prompt when account usage recovers @etraut-openai - 60436 Revalidate request auth ownership after budget checks @won-openai - 60443 Support cancellation and deadlines for realtime attachments @parabolala - 60454 Update OpenSSL Rust dependencies @dkovalenko-oai - 60455 Prefer native clipboard images on macOS and honor image orientation @dkovalenko-oai - 60461 Honor permission grant scopes in executor capability discovery @dkovalenko-oai - 60462 Route TUI question answers through Cloud message admission @bc-openai - 60466 Keep thread storage available when diagnostic logs fail @dkovalenko-oai - 60472 Serialize default thread permissions as a permission profile @ioanbudea-OAI - 60473 Respect error retry policy during local compaction @charliemarsh-oai - 60475 Stop retrying explicit invalid-workspace errors @charliemarsh-oai - 60476 Treat access program denials as terminal errors @charliemarsh-oai - 60479 Treat content policy violations as terminal errors @charliemarsh-oai - 60480 Treat workspace access denials as terminal errors @charliemarsh-oai - 60481 Treat invalid access program stream errors as terminal @charliemarsh-oai - 60482 Handle context length errors consistently across response transports @charliemarsh-oai - 60486 Add device authorization to app-server gateway OAuth @smurching-oai - 60487 Enable untrusted context tool outputs by default @akira-oai - 60488 Remove the Xcode 26.4 MCP elicitation compatibility workaround @jameswt-oai - 60489 Honor feature overrides when starting the app-server daemon @iceweasel-oai - 60492 Add local-only Claude Code skill migration @aramaraju-oai - 60496 Preserve typed gRPC code-mode session admission errors @seanh-oai - 60498 Unify Guardian context preparation across reviewers @ioanbudea-OAI - 60500 Derive sandbox telemetry labels directly from permission profiles @ioanbudea-OAI - 60505 Trace MCP refresh causes and plugin metadata changes @charliemarsh-oai - 60506 Preserve MCP trace context when tracing is disabled @joesavona - 60507 Use hermetic LLVM for Windows MSVC Bazel builds @zbarsky-openai - 60511 Treat inference hook denials as terminal errors @ccui-oai - 60513 Record an MCP refresh reason for session permission grants @charliemarsh-oai - 60517 Route sandbox CLI launches through the shared sandbox manager @viyatb-oai - 60519 Handle unfinished tool calls in restored history @etraut-openai - 60522 Fragment large Responses WebSocket messages into bounded frames @charliemarsh-oai - 60523 Add policy-checked TCP upstream tunneling for SOCKS @viyatb-oai - 60524 Encapsulate thread metadata construction @ioanbudea-OAI - 60525 Preserve first-party catalog display order in app-server model lists @dpatel-oai - 60526 Disable Daybreak when the selected model lacks access @jamy-OAI - 60528 Reuse installed Git objects when upgrading marketplaces @charliemarsh-oai - 60542 Add local diagnostic ZIP saves to the TUI @smurching-oai - 60554 Add optional tool call summaries to the full-screen transcript @etraut-openai - 60555 Extend output-free transcript summaries to more tools @etraut-openai - 60556 Group consecutive tool calls in the full-screen conversation @etraut-openai - 60557 Collapse completed turn activity beneath transcript prompts @etraut-openai - 60558 Discard opening prompts when side chat creation fails @etraut-openai - 60559 Preserve inherited previews for paginated thread forks @etraut-openai - 60560 Avoid periodic wakeups in idle Windows file watchers @chess-oai - 60568 Add an OpenSSH ProxyCommand mode to codex tcp-tunnel @apanasenko-oai - 60574 Allow searching persisted attached threads @btraut-openai - 60578 Add published OAuth metadata discovery to the RMCP client @vishnu-oai - 60599 Keep the TUI responsive while opening saved side chats @fcoury-oai - 60613 Clarify safety recourse messaging and add a reporting option @xiaohk - 60617 Support incremental tool declarations on GCP @akira-oai - 60620 Allow sampling in-progress turns with thread/sample @keyz - 60622 Use app-server MCP configuration and startup events in the TUI @etraut-openai - 60624 Preserve script quotes in Windows sandbox cmd invocations @malsamiri-oai - 60635 Support archiving and restoring cloud threads @bc-openai - 60637 Show pending key chords in a shared floating shortcut guide @fcoury-oai - 60638 Honor read-only MCP tool hints in automatic approval @cazhang-oai - 60639 Refresh Apps tools outside the MCP runtime gate @dkovalenko-oai - 60644 Keep interrupts responsive during host service-tier updates @rhan-oai - 60645 Update the safety consent test for the current dialog @ambrosino-oai - 60646 Use trusted Guardian templates for managed policies @won-openai - 60647 Restore PowerShell's working directory in the MXC sandbox @zm-oai - 60651 Enable model and reasoning effort selection for Cloud conversations @bc-openai - 60655 Support environment updates in app-server settings APIs @sayan-oai - 60662 Support gateway device-code sign-in in headless TUI sessions @smurching-oai - 60663 Defer exec-server sandbox preparation to the execution host @viyatb-oai - 60665 Add a content helper for forwarding MCP blocks in Code Mode @cconger - 60669 Skip submodule worktree scans when checking repository changes @dhavalkapil-oai - 60670 Initialize Guardian evidence cursors from thread history state @felixxia-oai - 60671 Add sign-only mode and tighten macOS signing verification @tarunoai - 60673 Preserve agent message deliveries in rollout traces @cassirer-openai - 60675 Avoid redundant reads and screen clears when switching side chats @fcoury-oai - 60680 Keep TUI status content separate from composer hints @joesavona - 60681 Prioritize draft space when allocating composer footer rows @joesavona - 60682 Wrap built-in TUI status lines within the footer row budget @joesavona - 60683 Fit composer footer hints to available terminal space @joesavona - 60695 Add a Signer Service backend for macOS notarization @tarunoai - 60697 Limit MCP product attribution to configured REPL-backed calls @trpcic-openai - 60700 Finalize aborted turns and ignore unrelated late aborts @etraut-openai - 60702 Centralize permission config selection and legacy translation @ioanbudea-OAI - 60708 Canonicalize Windows sandbox homes and migrate saved junction paths @zm-oai - 60721 Gate plugin recommendation cache warming on feature flags @adaley-openai - 60730 Apply session app overrides during MCP config refresh @jameswt-oai - 60732 Allow model-facing ID sequences to resume from allocated IDs @euroelessar - 60735 Preserve file-backed audio in tool outputs @hung-oai - 60746 Add a Git credential helper for existing Codex logins @ccy-oai - 60748 Label seed arguments in the model-facing ID recovery test @bc-openai - 60749 Capture saved Daybreak preferences for native helpers @jamy-OAI - 60753 Add snapshot coverage for history and notes tool contracts @euroelessar - 60757 Use typed context window IDs throughout thread persistence @euroelessar - 60759 Fix Unicode caseless matching in thread search @etraut-openai - 60763 Hand off approved plans through attachments in fresh sessions @dylan-hurd-oai
Other Recent OpenAI Codex CLI Releases
- rust-v0.167.2 (November 11, 2026)
- rust-v0.167.1 (November 10, 2026)
- rust-v0.167.0 (November 6, 2026)
- rust-v0.166.0 (October 29, 2026)
- rust-v0.165.0 (October 27, 2026)
All OpenAI Codex CLI releases · All AI coding tool releases on Havoptic