codex:~/docs$ cat codex.md

Codex CLI Guide 2026: Setup, Sandbox, AGENTS.md & MCP

# Complete Codex CLI reference: install and auth, models and pricing, sandbox and approval modes, AGENTS.md, MCP, skills, and cloud tasks. Updated for v0.162.1.

author: words: 77789 read_time: 389m updated: 2026-10-14 00:00

Complete Codex CLI reference: install and auth, models and pricing, sandbox and approval modes, AGENTS.md, MCP, skills, and cloud tasks. Updated for v0.162.1.

Last updated: 2026-10-14 · 389 min read · 77K+ words

$ less codex.md

TL;DR: Codex is a multi-surface coding agent: it reads your codebase, runs commands in an OS-level sandbox, patches files, and delegates tasks to the cloud. Master five systems – config.toml, the sandbox/approval model, AGENTS.md, MCP, and skills – and it becomes a force multiplier. Which model: OpenAI’s models docs now point complex coding and agentic work at GPT-6.1 Sol (gpt-6.1-sol, the CLI’s bundled default since v0.159.1), the hardest end-to-end work at GPT-6-Astra, and focused, repeatable tasks at GPT-6 Luna. Availability depends on plan, client, and workspace settings; GPT-6 Sol and the GPT-5.6 models stay in the picker, and GPT-5.5 retires from Codex for ChatGPT sign-in on October 14, 2026.146171178 New here? Jump straight to Install and Quick Start. Tracking releases? The latest stable is v0.162.1 (October 9, 2026), two fixes on top of v0.162.0, which turns instant interrupt on by default; Release Highlights opens with a current-state summary (what is on by default, what is still experimental) and then covers each version, and the Changelog lists every guide update.116178182183

Codex operates as a multi-surface coding agent, not a chatbot that writes code. The CLI reads your codebase, executes commands in a sandbox, patches files, connects to external services via MCP, and delegates long-running tasks to the cloud. It runs locally but thinks globally; the same intelligence powers five distinct surfaces depending on how you work, including the browser extension (Chrome, Edge, Brave, Opera, and Vivaldi) that runs Codex in your browser without taking it over.90127

The difference between casual and effective Codex usage comes down to five core systems. Master these and Codex becomes a force multiplier:

  1. Configuration system: controls behavior via config.toml
  2. Sandbox & approval model: gates what Codex can do
  3. AGENTS.md: defines project-level operating contracts
  4. MCP protocol: extends capabilities to external services
  5. Skills system: packages reusable domain expertise

I spent months running Codex alongside Claude Code across production codebases, CI/CD pipelines, and team workflows. This guide distills that experience into the complete reference I wish existed when I started. Every feature includes actual syntax, real configuration examples, and the edge cases that trip up experienced users.

Key Takeaways

  • Five surfaces, one brain: CLI, desktop app, IDE extension, cloud tasks, and the browser extension (Chrome, Edge, Brave, Opera, and Vivaldi) all share the same model family, so pick the surface that fits your workflow.90
  • OS-level sandboxing: Codex enforces filesystem and network restrictions at the kernel level (Seatbelt on macOS, Landlock + seccomp on Linux), not inside containers.
  • AGENTS.md is cross-tool: Your project instructions work in Codex, Cursor, Copilot, Amp, Jules, Gemini CLI, Windsurf, Cline, Aider, Zed, and 60,000+ open source projects. Write once, use everywhere.
  • Profiles save context-switching overhead: Define named config presets (fast, careful, auto) and switch between them with --profile.
  • Context management matters: the bundled Codex catalog gives GPT-6.1 Sol, GPT-6 Astra, Sol, and Luna and the GPT-5.6 family a 272K context window (the API lists GPT-6.1 Sol, GPT-6 Sol, and Luna at 1.05M); GPT-5.5 provides 400K in Codex until it retires there on October 14, 2026. Use /compact, focused prompts, and @file references to manage token budgets proactively.83112178

How to Use This Guide

This is a 3,300+ line reference — start where your experience level fits:

Experience Start Here Then Explore
New to Codex Installation → Quick Start → Mental Model Configuration, Sandbox
Daily user AGENTS.md, Skills, Plan Mode MCP, Hooks
Team lead / enterprise Enterprise Deployment → Best Practices Decision Frameworks, Workflow Recipes
Migrating from another tool Migration Guide Decision Frameworks

The Quick Reference Card at the end provides a scannable summary of all major commands.


Release Highlights: What Changed Recently

The version-by-version record, newest first, for readers tracking Codex’s release train. New here? Skip to Quick Start; nothing below is required to get productive. Verification detail (compares, commit lists, docs checks) lives in the footnotes.

Current State

Codex CLI as of October 14, 2026

  • Stable: v0.162.1 (October 9, npm latest), two fixes, after v0.162.0 (October 8), which turns instant_interrupt on by default and adds worktree tools, Command Center pinning, and transcript copying, and v0.161.0 (October 7), which adds /mcp login, voice device selection, API-key model discovery on by default, and the opt-in Daybreak flag.
  • Alpha: npm alpha is 0.163.0-alpha.11 (October 14), after alpha.10 on October 13; the 0.163 line has produced no stable.
  • Default model since v0.159.1: GPT-6.1 Sol, replacing GPT-6-Astra, including on Amazon Bedrock. Set model in config.toml to keep another. The bundled catalog at v0.162.1 lists the same models as v0.159.1.
  • On by default since v0.162.0: instant_interrupt, so new input preempts a model response (instant_interrupt = false under [features] turns it off); the flag stays marked under development.
  • On by default since v0.161.0: API-key model discovery (api_key_model_discovery = false under [features] turns it off).
  • On by default since v0.158.0: approval for input to elevated terminals (write_stdin_approval = false under [features] turns it off), plus copy-on-select and right-click paste in the fullscreen TUI (copy_on_select = "never", right_click_paste = "off" under [tui]). Guardian thread context is always on; thread_context is ignored.
  • On by default since v0.157.0: the fullscreen transcript (fullscreen_transcript = false under [tui]) and background-server autostart (daemon_auto_start = false under [features], or --no-daemon).
  • On by default since v0.156.0: /voice, managed worktrees, Guardian parent-compaction reuse.
  • Opt-in or experimental: Codex Cloud, code mode and its ranked tool search (code_mode_tool_search, v0.162.0), Daybreak (cli_daybreak, v0.161.0), Guardian history retrieval (guardian_conversation_history_tools, v0.160.0). Experimental context management is not currently available.
  • Models: GPT-6.1 Sol for complex coding, GPT-6-Astra for the hardest work, GPT-6 Luna for repeatable tasks. GPT-6 Sol and Luna start on Fast (2.5x credits); GPT-6.1 Sol does not. GPT-5.5 leaves Codex October 14, 2026.
  • Pinning: npm install -g @openai/codex@0.162.1, then codex --version.176178186187188189

v0.162.1 (October 9, 2026)

Two fixes, three commits on top of v0.162.0. A TUI crash on asynchronous questions with multiple lines is fixed, with line breaks and complete hyperlink destinations preserved. And the startup failures some v0.162.0 users hit, caused by differences between a running background server’s feature settings and the CLI’s defaults, are gone: the compatibility check now applies only to explicit command-line feature overrides. No defaults, config keys, or models change.

What to do: upgrade, especially if v0.162.0 refused to start while a background server from an earlier version was running.188

v0.162.0 (October 8, 2026)

instant_interrupt turns on by default. The flag v0.159.0 shipped as opt-in, which lets new input preempt a model response or yield a long-running code-mode call, is on for everyone from this release (PR #51812, merged October 7); it stays marked under development. Set instant_interrupt = false under [features] to restore the old behavior, where typed input waits for the response to finish.

New in the TUI: tools for creating and listing managed Git worktrees from trusted local projects, when the worktrees feature is on, so the model can open a worktree itself (#50148); pinning in the agent Command Center with p, which keeps pinned tasks in a shared Pinned group when the server supports it (#51500); /copy navigates transcript blocks, Ctrl+Insert copies a selection, and tui.mouse_scroll_speed (a finite positive number, default 1.0) tunes mouse-wheel scrolling (#50434, #50215, #50209); URLs are clickable in approval headers, questions, MCP prompts, warnings, and banners, including links that wrap. New TUI threads respect the server’s model and reasoning-summary defaults while keeping explicit launch overrides. codex doctor reports the configured TUI mode, and /status shows the account email again after an account update.

Providers and models: a custom Responses-compatible provider can declare external_web_access and remote_compaction under [model_providers.<name>.capabilities] (#50459). The ultrafast_mode feature ships on, so a model catalog that advertises an Ultra Fast tier (Amazon Bedrock’s Astra models, #50472) can offer it independently of Fast mode; the bundled catalog at this tag lists no such tier. Code mode gains JavaScript helpers for streaming promise results and an opt-in ranked tool search (code_mode_tool_search). apply_patch always preserves existing CRLF line endings, and the apply_patch_preserve_line_endings flag is removed. Retryable Responses and WebSocket failures honor the server’s Retry-After advice.

Sandbox and platform: Linux sandbox startup with multiple denied files is fixed, writable sandbox-construction executables are rejected, and ripgrep configuration can no longer weaken deny-glob masks; Windows 10 regains ordinary drive-letter file access, sandbox temp permissions match the child process, archive checksum verification works with PowerShell 7 module paths, and Windows releases ship a signed PowerShell installer.

What to do: upgrade; if you relied on typing ahead without interrupting the model, set instant_interrupt = false.187189

v0.161.0 (October 7, 2026)

Cut from 0.161.0-alpha.13.1 plus one release commit, 155 commits ahead of v0.160.1. Its release notes list GPT-6.1 Sol as the new default (#49318, #49339), but those are the catalog changes v0.159.1 already shipped: the bundled models.json at this tag is byte-identical to v0.160.1’s, so nothing changes for anyone on 0.159.1 or later.

New: /mcp login <name> signs in to an MCP server from a running terminal session (#49290). Voice device selection: choose your microphone, speaker, and microphone input channels for /voice conversations, with preferences saved locally (#49437, #49836). API-key model discovery is on by default (api_key_model_discovery, promoted to stable, #49807): signed in with an OpenAI API key against an endpoint that supports it, Codex refreshes the model catalog from the API instead of relying only on the bundled list; api_key_model_discovery = false under [features] turns it off, and the change takes effect in a new session. Amazon Bedrock supports multi-agent V2 and Ultra reasoning on compatible models, and Bedrock Mantle accepts AWS GovCloud regions (#49345, #49813).

Daybreak (opt-in). A new cli_daybreak flag, off by default and under development, adds Daybreak controls to the CLI: a /daybreak toggle, indicators, and automatic Cyber access-program routing, for ChatGPT sign-ins on the OpenAI provider whose account and model catalog advertise support. Turn it on with --enable cli_daybreak or cli_daybreak = true under [features]; a saved daybreak = true preference alone does nothing. Independently, codex exec --cyber-access-program <standard|daybreak_blue|daybreak_red> (and the TypeScript SDK’s cyberAccessProgram) requests a Cyber access program for one turn, with or without the flag, and leaves the saved choice unchanged (#49856 through #49861, #49939, #51207). The bundled catalog already carries hidden gpt-daybreak-blue-latest and gpt-daybreak-red-latest entries.

Fixes: an approved filesystem escalation can grant broader write access while keeping denied reads and network restrictions, and background tasks keep their originating turn’s permissions; explicit launch permissions survive terminal reconnects; elevated Windows terminal sessions can start with an embedded server; Enter submits buffered input after paste detection expires, in Vim insert mode too; thread resume includes the latest committed history, and startup detects recoverable SQLite corruption earlier, keeping damaged databases as backups; Responses retries and the WebSocket-to-HTTP fallback honor server retry guidance. The authentication docs now say credentials may live in the keyring rather than always in auth.json.

What to do: upgrade. Nothing here changes a default you would notice unless you sign in with an API key, in which case check /model for the discovered catalog.186189

v0.160.1 (October 5, 2026)

A fix for remote MCP servers on Windows. When Codex on a macOS or Linux host launches a stdio MCP server on a remote Windows executor, and that server’s config sets explicit remote environment variables, Codex now passes SYSTEMROOT, TEMP, and TMP through as well, so the Windows process keeps the startup environment it needs. Variables you did not request, secrets included, stay excluded. The release is one backport on top of v0.160.0 and changes no defaults, config keys, or models.

What to do: upgrade if you run remote stdio MCP servers on a Windows executor from a Unix host.183

v0.160.0 (October 1, 2026)

The 0.160 line’s stable release, cut from 0.160.0-alpha.6.1 plus one backport. No default changes. The bundled model catalog at the tag is byte-identical to v0.159.1 and v0.159.2, so GPT-6.1 Sol stays the default, and the two new feature flags ship off. The backport (#49763) brought the frozen 0.160 candidate, branched before v0.159.1, up to the 0.159 maintenance line: the GPT-6.1 Sol bundled and Amazon Bedrock catalogs and the account-security reminders from v0.159.3. Without it, 0.160 would have shipped without GPT-6.1 Sol.

Opt-in Guardian additions (both under development, off by default):

  • Guardian can read earlier user messages. Set guardian_conversation_history_tools = true under [features]. With Apps enabled, the reviewer gets user_message.search_messages and user_message.read_messages through the parent session’s own Apps connection, so it can check earlier instructions, restrictions, and revoked permissions before approving an action with side effects. Each call rechecks the parent’s current app and tool policy. Responses are capped at an estimated 4,000 tokens by default (auto_review.conversation_history_max_output_tokens), and auto_review.experimental_conversation_history_prompt replaces the built-in retrieval instructions.
  • Handoff-aware root context (guardian_root_handoff_context): when Guardian reviews a worker agent’s action, it selects the three root messages before each handoff to that worker or its ancestors, plus the three latest root messages, so a recent cancellation stays visible.

Always on: encrypted agent messages now appear in Guardian transcripts, in order, instead of being dropped.

TUI changes: in a folder with no project config and no saved trust decision, a new session can start with workspace-write permissions and granular approvals, but only when local execution, your config, and managed policy all allow it. Resumed sessions restore their saved permissions unless you override them, and /cd can ask for folder trust with a “Keep current directory” option. The agent command center gains a “Show more” row that loads older tasks ten at a time. On local Linux X11 terminals (not Wayland, SSH, tmux, WSL, or VS Code), fullscreen transcript selections go to the primary selection, and middle-click pastes into the composer. The fullscreen status line shows Plan mode (shift+tab to cycle) when there is room. The Pro tiers now read “Pro 100,” “Pro 200,” and “Pro 500” in /status and analytics. Startup tips point to the desktop app for your platform instead of plan or Fast-mode promotions, and queued messages that were never sent resume after a reconnect without duplicates.

Providers and connections: the TUI keeps an app server’s provider, reasoning-summary, and verbosity settings, shows the right sessions in resume and fork history, and hides reasoning-summary settings in /status for server connections. A provider with an explicit model catalog (model_catalog_url) now gets only that catalog: no bundled models are merged in, metadata matches the exact model ID, a failed refresh discards cached entries instead of reusing them, and a startup with no available model reports a configuration error unless model is set. When a content filter stops a response, the retry tells the model to explain the limitation, offer a permitted alternative, and continue other work.

Fixes: Windows sandbox PowerShell fallbacks, ACL repair for long runtime paths, and no console windows from background helpers; subagents keep environments that are still starting; SQLite no longer stalls at connection setup and reports initialization errors instead of timeouts. The log database reclaims unused space in the background, and plugin loading caches parsed manifests and reuses HTTP connections. The provider docs now say that requires_openai_auth credentials use the backend chosen by cli_auth_credentials_store, and that env_key names the environment variable holding the API key.

What to do: upgrade. If a custom provider sets model_catalog_url, make sure its catalog lists every model you select.182

v0.159.3 (September 30, 2026)

Optional account-security reminders. Local TUI sessions signed in with ChatGPT on the OpenAI provider can show a dismissible banner asking you to finish account security setup, with a button that opens chatgpt.com. The server decides who sees it; the CLI fetches the notice in the background without blocking a turn, shows nothing when the state is unknown, skips remote workspaces and FedRAMP accounts, and remembers a dismissal across threads and reconnects. Usage banners take priority. It is the release’s only change, and v0.160.0 carries the same code.

What to do: nothing. The reminder is optional.184

v0.159.2 (September 29, 2026)

A Windows fix for flashing console windows. On Windows, Codex no longer opens a console window each time it starts a background process. That covers shell-tool commands, hooks, Git and npm calls, Amazon Bedrock credential refreshes run without a terminal, doctor checks, sandbox setup refreshes, and commands in the legacy Windows sandbox. Commands that need your terminal still inherit its console. The release is one backport of two fixes from main, published about three and a half hours after v0.159.1. It changes no defaults, config keys, or models, and the new launch helper behaves as before on macOS and Linux.

What to do: on Windows, upgrade if console windows flash while Codex works, especially with the background server installed.180

v0.159.1 (September 29, 2026)

GPT-6.1 Sol becomes the default model. When config.toml sets no model, the CLI now starts on GPT-6.1 Sol (gpt-6.1-sol) instead of GPT-6-Astra, and GPT-6.1 Sol replaces GPT-6 Sol as the default in the Amazon Bedrock Mantle and Runtime catalogs. The /model picker lists it first, as “Latest workhorse model for coding and everyday work,” followed by GPT-6-Astra, GPT-6 Sol (now “Previous generation workhorse model”), GPT-6 Luna, and the older models. Saved choices are not migrated: a config that names gpt-6-sol or gpt-6-astra keeps that model, and the migration prompts for older GPT-5 selections still point to GPT-6 Sol or GPT-6 Luna.

OpenAI’s docs added the model the same day and now recommend it for complex coding and agentic workflows: “near-Astra performance for complex work at a lower cost than Astra.” It costs 50 credits per 1M input tokens (2.5 cached, 250 output), and the Plus band is 15-160 messages. Two catalog details differ from GPT-6 Sol: it has no default service tier, so a session starts at Standard speed rather than Fast, and its default reasoning effort is low rather than medium. The launch rollout covers Plus, Pro, Business, Enterprise, and Edu; Enterprise and Edu keep it off until an administrator enables it, and Free and Go are not included at launch.

What to do: upgrade, then check the model in /status. If your account does not have GPT-6.1 Sol yet, pin one it does have with model in config.toml or -m.178

v0.159.0 (September 29, 2026)

Cut from 0.159.0-alpha.13, about 27 hours after v0.158.0. Several items in its release notes shipped earlier, in v0.158.0, as backports: the Windows console-window and launcher fixes, Markdown-preserving copy, the welcome screen and turn tips, and the sign-in fixes. The tui.prompt_suggestions setting the notes list as removed never appeared in a stable release.

New in this release:

  • instant_interrupt (opt-in, under development): new input preempts a model response or yields a long-running code-mode call. Set instant_interrupt = true under [features] to try it. On by default since v0.162.0.
  • The warnings viewer dismisses the warnings you have seen when it closes; press k to keep one for later.
  • You can scroll the transcript while deciding whether to implement a plan.
  • Mermaid rendering handles more flowchart edges, labels, and node groups.
  • Blank sessions keep their drafts when you switch tasks, and threads can be archived before their first turn.
  • /status renders without borders and wraps long values.
  • App-server clients can page thread history from a specific item.

Sandbox changes: approved commands keep explicit filesystem denials, .aws directories under writable roots are protected by default (explicit rules still override), network-enabled macOS sandboxes allow TLS trust evaluation, and execution environments that require a proxy now get one. The bundled plugin-creator skill is removed.

What to do: if a sandboxed task writes under .aws, expect it to be blocked unless you add an explicit rule.177

v0.158.0 (September 28, 2026)

The 0.158 line’s stable release, cut from 0.158.0-alpha.15.4: alpha.15 plus sixteen backports, including the four Windows fixes from v0.157.1. It is 207 commits ahead of v0.157.0.

Defaults that change:

  • Terminal input approval is on. When Codex sends input to a running command that has elevated permissions (extra permission grants, a sandbox bypass, or a policy that changed since the command started), the input needs approval first. Runtime-only grants, such as those plugins use for metrics, no longer trigger a review. To turn it off, set write_stdin_approval = false under [features].
  • Copy-on-select in the fullscreen transcript: mouse selections are copied when you release the button. The default, auto, skips direct terminals that forward their own copy shortcut (Ghostty 1.2+, Kitty on macOS, Windows Terminal, and VS Code on Windows). Copies keep Markdown formatting. Set copy_on_select = "never" (or "always") under [tui].
  • Right-click paste in the fullscreen TUI on Windows, WSL, and Linux. Set right_click_paste = "off" under [tui], or "on" to add macOS.
  • Guardian thread context is always on. The v0.157.0 off-switch is gone: thread_context under [features.guardianv2] is ignored, including in profiles, and Codex shows a notice asking you to remove it.

Models and plans: GPT-5.4 leaves the bundled and Bedrock catalogs, and saved GPT-5.4 selections still get the migration prompt to GPT-6 Sol. Codex recognizes the Pro Max plan and labels the Pro tiers “Pro,” “Pro (More),” and “Pro (Max).” Reasoning shortcuts can reach Max.

Also new: MCP servers that need a pre-registered OAuth client secret (codex mcp add --oauth-client-secret), bearer tokens for exec-server WebSocket connections, transparent backgrounds for generated images, and multiline command previews in /ps. Fixes cover Windows sandbox failures (ordinary Windows 10 paths, rejected stored credentials, large permission policies), Linux sandbox startup with nested writable roots, Git metadata protection across writable roots, macOS path aliases in patch approvals, and Guardian reviews that now retry instead of aborting when you send a message mid-review.

What to do: if automation sends keystrokes to elevated commands, expect approval prompts or turn the feature off, and remove thread_context from your config.176

v0.157.1 (September 26, 2026)

A Windows patch of four fixes backported from main. Codex no longer opens a console window when it starts the code-mode host or a local stdio MCP server. The background server can launch when Windows leaves the process inside an outer job object, and a detached background server no longer holds the launcher’s output pipes open, which could leave the calling command waiting after the launcher exited. The GitHub release notes and the changelog entry say only that highlights “could not be determined”; the list above comes from the release’s commits.

What to do: upgrade if you run Codex on Windows. The four fixes are Windows-only.174

v0.157.0 (September 25, 2026)

The release that flips three more defaults.

  • The fullscreen transcript is on by default. The fullscreen UI that v0.156.0 offered through /tui is now what a session opens in, including when config has no [tui] section. To keep terminal scrollback, pick Scrollback in /tui or set fullscreen_transcript = false under [tui]; --no-alt-screen and tui.alternate_screen = "never" still take precedence. Shift-click now extends a transcript selection.
  • The background server starts automatically for eligible interactive launches, and the option leaves /experimental. Launches with --no-daemon, --oss, --profile, or most -c overrides do not use it. If a running server’s settings do not match the session, Codex offers to run without it, restart it with the required settings, or cancel (the default). To turn automatic startup off, set daemon_auto_start = false under [features].
  • Guardian thread context is on by default for synchronous and asynchronous reviews, independent of the Guardian v2 enabled toggle. To turn it off, set thread_context = false under [features.guardianv2].

Models: GPT-6 Sol and Luna, first shipped in v0.156.1, are in this release too, and the Amazon Bedrock catalogs now carry them, with GPT-6 Sol replacing GPT-5.6 Sol as the Bedrock default. GPT-5.6 Sol loses its ultrafast service tier, leaving Fast. The bundled catalog no longer marks GPT-6-Astra as supporting experimental context management (see Context Management).

Also new: an f shortcut forks a conversation that is open in another app, keeping drafts and queued prompts; /import works in remote and background-server sessions; and the terminal renders Unicode bullets, checkboxes, and aligned equations. Fixes keep voice conversations running when you switch threads, recover unsent answers when a turn ends, respect tmux mouse settings, route realtime connections and standalone web search through configured proxies, retry transient file uploads with a five-minute timeout, and enforce network restrictions across redirects and open HTTP and WebSocket connections. On Windows, sandbox object access is limited to the runner’s logon session.174

v0.156.1 (September 23, 2026)

A one-change patch that brings GPT-6 Sol and GPT-6 Luna to the stable CLI. Both now appear in the /model picker below GPT-6-Astra, which stays first and remains the bundled default when config.toml sets no model. The picker relabels the GPT-5.6 family as older models (GPT-5.6 Sol reads “Older coding model for complex work”) and GPT-5.5 as a “Legacy coding model.” When you approach a rate limit, the switch prompt now suggests gpt-6-luna instead of gpt-5.6-luna.

If your config names an older model, expect a one-time migration prompt: saved selections of gpt-5.6-sol, gpt-5.6-terra, gpt-5.5, and gpt-5.4 point to GPT-6 Sol, and gpt-5.6-luna and gpt-5.4-mini point to GPT-6 Luna. The Amazon Bedrock catalogs do not change in this release: they carry no GPT-6 Sol or Luna, and GPT-5.6 Sol stays the Bedrock default.

One cost detail the docs do not mention: the bundled catalog sets Fast (priority) as the default service tier for GPT-6 Sol and Luna, so a TUI session with no service_tier set can start in Fast mode, which ChatGPT sign-in bills at 2.5x Standard credits. Check with /fast status; /fast off switches to Standard.

What to do: upgrade, then try codex -m gpt-6-sol on a familiar task. Availability depends on your plan, workspace settings, and the rollout; Enterprise administrators must enable the new models first.171

v0.156.0 (September 22, 2026)

The release that flips three defaults at once; the docs changelog announced the first two the same day.

  • Voice is on by default. /voice starts a live conversation on supported builds without a visit to /experimental. New alongside it: a configurable F8 toggle, a /voice settings picker for the voice used in future conversations, bundled voice runtimes for Linux and Windows, and reduced-motion support.
  • Managed worktrees are on by default. --worktree and /worktree no longer need a feature flag. Worktree sessions can attach to an existing local daemon and can be created from the agents overview.
  • Guardian parent-compaction reuse is on by default: when Guardian restarts a review session, it can reuse the parent thread’s encrypted compaction.

How to turn each off is in the /voice and /worktree rows of the slash-command table and in the Guardian section.

Also new: an optional fullscreen TUI, chosen with /tui, with transcript search, mouse selection and copy, right-click copy, clickable links, and a warnings viewer; six bundled themes in the /theme picker; the /usage analytics dashboard; Mermaid diagrams and TeX math rendered in the terminal, each with its own toggle; a /daemon menu and a --no-daemon flag; and reasoning summaries off by default for new TUI threads. Security fixes close Windows inbound-traffic, privileged-socket, and read-only-file-handle sandbox gaps, and codex doctor no longer echoes config values in its errors. Bug fixes keep streamed answers after failed or interrupted turns, repair clipboard forwarding in tmux and SSH, restore Plan mode on resume, and let login recover through system proxies.169

v0.155.1 (September 18, 2026)

A one-fix hotfix. On 0.155.0, a new local TUI thread with no model_reasoning_summary in config requested detailed summaries, and providers that do not support reasoning summaries rejected the request outright. 0.155.1 restores none as the fallback, so an unset key requests no summaries. Explicit auto, concise, and detailed settings were always honored and still are. The same one-line change also landed on main and shipped in 0.156.0.

What to do: if new TUI sessions on 0.155.0 failed against a non-OpenAI or self-hosted provider, upgrade. If you want summaries, set the key explicitly (see the config reference).158

v0.155.0 (September 17, 2026)

Voice arrived in the stable TUI as an experimental, opt-in feature: /voice opened a live conversation with a streaming transcript and microphone controls, enabled through /experimental on supported builds, with a configurable mute shortcut and signed voice resources in the macOS packages. v0.156.0 turned it on by default five days later. Managed worktrees stayed off by default in this release.

Also in 0.155.0:

  • MCP user verification: Touch ID verification of MCP requests, signed by the Secure Enclave, in local TUI sessions on supported Macs, with workspace-scoped identity restriction and native verification in MCP tool continuations.
  • The Windows /sandbox-add-read-dir slash command is removed.
  • Worktree management: hide, archive, and delete worktree sessions in the agents overview, see ownership details, and confirm before deleting a clean managed worktree.
  • Live reasoning summaries stream in the TUI status row, with completion timestamps on finished work.
  • Daemon: configurable update schedules, a codex app-server daemon update command, and thread recovery after daemon restarts.
  • Amazon Bedrock AWS credential commands, and Python SDK publishing aligned with stable CLI releases.

Security fixes close WSL interop escapes and shell-snapshot credential exposure. Memory v2 lands as storage and consolidation groundwork only, not a usable feature.156

v0.154.0 (September 9, 2026)

This release was cut at roughly the 0.154.0-alpha.6 boundary, so everything that first appeared in alpha.7 (live TUI voice, MCP user verification, Memory v2, daemon auto-update configuration, reasoning-effort pinning) waited for 0.155.

Removed: codex mcp-server and the standalone codex-mcp-server binary. Move integrations to the app-server protocol or the Codex plugin for Claude Code; codex mcp, which connects Codex to external MCP servers, is unaffected (see Running Codex AS an MCP Server). The legacy Guardian approval review paths are gone too, and approvals are now rejected when new user instructions invalidate them.

New:

  • Experimental managed worktrees via --worktree or /worktree, with codex exec support and a TUI worktree browser.
  • Asynchronous user messages: answer inline questions while Codex keeps working, without losing your draft.
  • Windows service support: sandbox provisioning, the app-server daemon on Windows, and managed daemon updates.
  • Remote permission profiles, discovered from the app server and selectable by name in the TUI.
  • Vim R replace mode, live context-compaction status, and experimental context management gated by model capability at session startup.

Security: PATH helpers no longer run before workspace trust is established, and the macOS sandbox is hardened against terminal input injection. MCP connections coordinate OAuth token refreshes, remote resume and fork keep saved permissions, and resuming a conversation open in another app shows a read-only transcript. Voice shipped only as runtime infrastructure, and the first Daybreak code references landed with no public docs.152153

v0.153.3 and v0.153.4 (September 4, 2026)

Same-day patches that carried the GPT-6-Astra launch into the CLI. v0.153.3 added Astra to the Amazon Bedrock catalogs (GPT-5.6 Sol stayed the Bedrock default) and corrected Astra’s async-clarification guidance. v0.153.4 put Astra in the model picker, made it the bundled default when no model is configured, and qualified async-question guidance by tool availability.

What to do: Astra works with -m gpt-6-astra from v0.153.1 and appears in the picker from v0.153.4; no minimum CLI version is documented, so treat those as the floors. If your account is not entitled to the model the bundled default selects, set model explicitly in config.toml rather than relying on the default.145146147148

v0.153.1 and v0.153.2 (September 3, 2026)

v0.153.1 makes Guardian’s computer-use scoring honor model requirements: computer-use-only scoring and fast approval decisions run only when the active model’s metadata sets node_repl_auto_review_required, and a model switch that skips scoring invalidates prior or in-flight scores, so switching back cannot revive a stale approval. The release body lists only a backported GPT-6-Astra catalog entry, configurable through the API; the picker and default did not change until v0.153.4. v0.153.2 corrects the Astra Fast-tier description from “1.5x” to “2x speed, increased usage” (display text only).142143

v0.153.0 (September 3, 2026)

  • Vim undo and redo: u and Ctrl+R restore complete composer drafts, including pasted content and image attachments; vim_normal.redo is a configurable keymap action.
  • Remote plugin marketplaces: the plugin CLI can list, install, and remove remote plugins, and codex plugin list shows source, version, install policy, and authentication policy.
  • tui.auto_recap = false turns off automatic recaps; manual /recap still works.
  • Earlier rate-limit warnings for Plus and Team when less than half the allowance remains in a roughly five-hour window; other plans keep the 75/90/95% thresholds.
  • Guardian scope follows approval mode: Full Access skips Guardian reviews for confirmation-only actions, and User approval mode skips background scoring and prewarming.
  • features.context_management.experimental_mode (off by default) enables token-budget context, history notes, and the new_context tool for eligible Plus, Pro, and Pro Lite sessions on the Codex backend.
  • tui.disable_paste_burst replaces the top-level key, which still works as a fallback.

Fixes: TUI sessions reconnect after an app-server drop with drafts intact, Guardian review history survives compaction, restarts, and forks, and remembered MCP approvals are scoped to the selected account.140

v0.152.0 and v0.152.1 (September 1, 2026)

update_plan became opt-in: tools.update_plan.enabled defaults to false, and while it is off the bundled update_plan guidance is removed from model, collaboration-mode, multi-agent, compaction, prewarm, and goal-continuation prompts (see Plan Mode & Collaboration). Also new: Vim search with / and ? plus n/N, composable with operators, with fresh drafts starting in Insert mode; actionable rate-limit banners; credential-refresh progress, including Amazon Bedrock reauthentication; package-style MCP server names (:, @, /, and . are allowed); MCP openai/elicitation form requests; a per-tool MCP output_token_limit; cloud task credentials restricted to trusted origins; configurable thread/shellCommand timeouts; and token budgeting on by default through model metadata. v0.152.1 lets Guardian approval review source its Node REPL policy from model metadata.138139

v0.151.0 (August 29, 2026)

  • /recap summarizes the conversation on demand, and Codex recaps eligible idle, unfocused conversations automatically.
  • Code-mode hosts drop the WebSocket transport (stdio and gRPC only).
  • Durable threads default to paginated history where the store supports it.
  • The persistent reasoning effort arrives with clock tools and bundled proactivity guidance.
  • Guardian v2 defaults to computer-use reviews with images.
  • Vim gains f/F/t/T find and till motions plus gg/G.
  • Input to escalated terminals can require fresh approval (write_stdin_approval, off by default).
  • A configurable grace period for optional MCP servers (mcp_optional_startup_grace_ms, default 1,000 ms), and extensions can inspect or replace MCP tool results.

Fixes stop /cd from weakening sandbox restrictions and stop stale Guardian classifications from authorizing actions after permission changes. The release body lists only the last few PRs; the full change set is in the compare.134135

v0.150.0 and v0.150.1 (August 26-27, 2026)

Hooks gain an Interrupt event that runs when an active top-level turn is interrupted (1-second default timeout, 3-second cap, never for subagents). /copy opens a picker for the full response, individual code blocks, or blockquotes. Tasks become addressable with @ mentions, agents can read, create, and message tasks, and /rename suggests an editable title. Markdown links render as clickable labels, shortcuts can cycle permission modes, Vim gains . repeat, and untrusted projects no longer supply project-level AGENTS.md instructions. features.network_proxy.credential_broker and Guardian v2’s review_scope.computer_use_only arrive as configurable, default-off surfaces. v0.150.1 counts retained images toward remote compaction’s token budget.132133

v0.149.0 and v0.149.1 (August 20-24, 2026)

The untrusted approval policy is retired; move configs that name it to on-request. New: an interactive codex agents dashboard, /cd, /pwd, and /cwd, codex queue for messaging existing local or remote sessions, more Vim change motions, a broader codex doctor (endpoint protection, network and proxy failures, desktop-app state, update connectivity), and max/ultra reasoning efforts in the SDKs. Resumed and forked threads restore their permission profile. v0.149.1 adds codex exec --thread-source <SOURCE> (user, subagent, memory_consolidation, or a feature name; threadSource in the TypeScript SDK).

Pricing in the same window: OpenAI cut GPT-5.6 Sol pricing by more than 20% for three months from August 21 (through at least November 21, 2026), and the Codex credit rate for Sol dropped from 125/12.5/750 to 100/10/500 credits per 1M input, cached, and output tokens.120121126

v0.147.0 and v0.148.0 (August 7-18, 2026)

v0.147.0 removes codex exec --full-auto (deprecated since v0.128); use --sandbox workspace-write plus an approval flag or profile. It also adds --approve-for-me, portable Agent Plugins with search across catalogs, the opt-in MCP 2026-07-28 protocol, and conversation sections. v0.148.0 adds /export to Markdown, codex exec fork, estimated credits or cost in /status, Amazon Bedrock Runtime as a built-in provider, asynchronous and MCP-invoking hooks, and sandbox restrictions that fail closed on denied or unreadable paths.116118

Earlier Releases (May-July 2026)

  • v0.146.0 and v0.146.1 (July 29, August 5): configured proxies cover every transport; Agent Plugins manifests plus the Amazon Bedrock and Claude Code marketplaces; session naming with thread pinning; executor-provided skills; hardened automatic-review defaults for cyber-capable models.114115
  • v0.145.0 (July 21): /import from Cursor as well as Claude Code; voice returns as streaming realtime V3 conversations; the opt-in multi-agent v2 experience is stabilized; experimental paginated thread history and Amazon Bedrock login; bundled GPT-5.4 selections migrate to GPT-5.6 Terra and Luna. v0.144.6 set the GPT-5.6 context windows to 272,000 tokens.111112
  • v0.140.0 (June 15): /usage, codex delete and /delete, /import from Claude Code, the unified @ mentions menu, Amazon Bedrock API-key authentication, and encrypted local storage for CLI and MCP OAuth credentials; the old /realtime voice controls were removed.102
  • v0.139.0 (June 9): code mode can call web search directly, tool schemas keep oneOf/allOf, codex doctor reports editor and pager details, and marketplace sources appear in JSON output.165
  • v0.138.0 (June 8): /app hands a CLI session to the desktop app, and parent-to-subagent task text is encrypted in multi-agent v2.166108
  • v0.137.0 (June 4): multi-agent v2, F13-F24 TUI keybindings, and a v1 skills extension.167
  • v0.132.0 through v0.135.0 (May 20-28): local conversation history search, --profile as the primary profile selector, goals on by default, permission-profile inheritance and managed requirements.toml, codex remote-control start and stop, richer codex doctor and /status, Vim text objects, named permission profiles in /permissions, Python SDK auth and Sandbox presets, and codex exec resume --output-schema. The May 21 app update added Appshots, Goal mode GA, and opt-in locked Computer Use.96979899100101192

Legacy --full-auto is removed as of v0.147.0, and js_repl remains removed.86878991116

Stability note: Stable, documented surfaces: the core CLI and TUI, sandboxing and approval policies, config.toml, AGENTS.md, skills, hooks, plugins, multi-agent tools, goals, permission profiles, /voice and managed worktrees (default since v0.156.0), the fullscreen transcript and automatic background-server startup (default since v0.157.0), terminal input approval, copy-on-select, and right-click paste (default since v0.158.0), and instant interrupt (default since v0.162.0, still marked under development). Browser, Computer Use, and Appshots are documented user-facing surfaces whose availability depends on platform and plan. Experimental or under development: Codex Cloud, code mode and code mode tool search, Memory v2, the local agent message board, Daybreak (cli_daybreak, v0.161.0), the Guardian history and handoff-context flags (v0.160.0), and anything marked [EXPERIMENTAL] in this guide or listed under /experimental; these can change between releases. Experimental context management is, per the config reference, “not currently available.” Removed: --full-auto (v0.147.0), the untrusted approval policy (v0.149.0), codex mcp-server (v0.154.0), the Guardian thread_context opt-out (v0.158.0), and js_repl.

Alpha channel: alpha builds ship several times a day, release bodies on the alpha lines are stubs, and out-of-band builds cut from older bases appear regularly. At least twice the npm alpha tag pointed at one of them, so @alpha installed a build older than latest. The 0.158 line ran from 0.158.0-alpha.2 (September 23) to alpha.15 (September 25); its stable, v0.158.0 (September 28), was cut from the out-of-band build 0.158.0-alpha.15.4, alpha.15 plus sixteen backports, and was npm latest until v0.159.0 published 27 hours later. The 0.159 line ran from alpha.1 (September 25) to alpha.13 (September 28) and shipped as v0.159.0 from alpha.13. The 0.160 line reached 0.160.0-alpha.6 (September 29) and froze there; 0.161.0-alpha.1 is alpha.6 with only the version number changed. On September 30, 0.160.0-alpha.6.1 added to alpha.6 the one v0.159.2 Windows console fix it lacked. The same day, the 0.159 line shipped one more patch, v0.159.3. The 0.160 line then shipped stable as v0.160.0 (October 1), cut from alpha.6.1 plus one backport, and v0.160.1 (October 5). The 0.161 line has produced alphas and out-of-band backports, the latest 0.161.0-alpha.13.1 (October 6), but no stable; it is not called skipped, because no higher version has shipped stable. alpha now points at 0.162.0-alpha.16. If you track alphas, check npm view @openai/codex dist-tags and install an exact version rather than @alpha.176179181185 A dated history of how recent alpha lines resolved into stable releases is in 173. The 0.161 line shipped as v0.161.0 on October 7 from 0.161.0-alpha.13.1 (one release commit on top of it); v0.162.0 followed on October 8 from 0.162.0-alpha.18.1, while 0.162.0-alpha.20 ran 52 commits ahead of that stable cut; v0.162.1 added three commits on October 9; alpha was 0.163.0-alpha.5 on October 10, moved through alpha.8, alpha.9, and alpha.10 on October 13, and is 0.163.0-alpha.11 as of October 14.189190191

How Codex Works: The Mental Model

Before diving into features, understand how Codex’s architecture shapes everything you do with it. The system operates across five surfaces backed by a shared intelligence layer:

┌─────────────────────────────────────────────────────────┐
│                    CODEX SURFACES                       │
├─────────────────────────────────────────────────────────┤
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌────────┐   │
│  │   CLI    │  │ Desktop  │  │   IDE    │  │ Cloud  │   │
│  │ Terminal │  │   App    │  │Extension │  │  Tasks │   │
│  └──────────┘  └──────────┘  └──────────┘  └────────┘   │
│  Local exec     Multi-task    Editor-native  Async      │
│  + scripting    + worktrees   + inline edits detached   │
│  ┌──────────┐                                           │
│  │ Browser  │  Signed-in browser workflows              │
│  │Extension │  (launched May 2026)                      │
│  └──────────┘                                           │
├─────────────────────────────────────────────────────────┤
│  EXTENSION LAYER                                        │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐  ┌─────────┐     │
│  │   MCP   │  │ Skills  │  │  Apps   │  │  Search │     │
│  └─────────┘  └─────────┘  └─────────┘  └─────────┘     │
│  External tools, reusable expertise, ChatGPT            │
│  connectors, web search (cached + live)                 │
├─────────────────────────────────────────────────────────┤
│  SECURITY LAYER                                         │
│  ┌─────────────────────────────────────────────────┐    │
│  │    Sandbox (Seatbelt / Landlock / seccomp)      │    │
│  │    + Approval Policy (on-request → never)       │    │
│  └─────────────────────────────────────────────────┘    │
│  OS-level filesystem + network restrictions             │
├─────────────────────────────────────────────────────────┤
│  CORE LAYER                                             │
│  ┌─────────────────────────────────────────────────┐    │
│  │         GPT-5.x-Codex Intelligence              │    │
│  │   Tools: Shell, Patch, Read, Web Search         │    │
│  │   (legacy artifact, read_file, grep_files       │    │
│  │    removed in v0.117.0)                         │    │
│  └─────────────────────────────────────────────────┘    │
│  Shared model across all surfaces; costs tokens         │
└─────────────────────────────────────────────────────────┘

Core Layer: The GPT model family powers everything. As of September 29, 2026, the current generation is GPT-6: gpt-6.1-sol for complex coding and agentic work (the bundled CLI default when no model is configured, since v0.159.1), gpt-6-astra for the hardest end-to-end work, gpt-6-luna for focused, high-volume tasks, and the previous-generation gpt-6-sol. The GPT-5.6 models (Sol, Terra, Luna) remain available during the rollout; gpt-5.5 (400K context in Codex, 1M in the API) retires from Codex for ChatGPT sign-in on October 14, 2026, and gpt-5.4 retired from Codex on August 31, 2026.83117146148149171178 It reads files, writes patches, executes shell commands, and reasons about your codebase. When context fills, Codex compacts the conversation to free space. This layer costs tokens.

Security Layer: Every command Codex runs passes through an OS-level sandbox. On macOS, Apple’s Seatbelt framework enforces kernel-level restrictions. On Linux, Landlock + seccomp filter filesystem and syscall access. The sandbox operates at the kernel level, not inside containers. The approval policy then decides when to ask for human confirmation.

Extension Layer: MCP connects external services (GitHub, Figma, Sentry). Skills package reusable workflows that Codex loads on demand. Apps connect to ChatGPT connectors. Web search adds real-time context from the internet.

Surface Layer: CLI for terminal power users and automation. Desktop app for multi-threaded project management. IDE extension for edit-compile-test loops. Cloud for async tasks that run independently.

The key insight: Most users only use one surface. Power users use all five: Cloud for long-running tasks, CLI for deterministic repo operations, IDE extension for tight coding loops, the desktop app for planning and coordination, and the browser extension for signed-in browser workflows.


Table of Contents

  1. How Do I Install Codex?
  2. Quick Start: Your First Session
  3. Core Interaction Surfaces
  4. Configuration System Deep Dive
  5. Which Model Should I Choose?
  6. What Does Codex Cost?
  7. Decision Frameworks
  8. How Does the Sandbox & Approval System Work?
  9. How Does AGENTS.md Work?
  10. Hooks
  11. What Is MCP (Model Context Protocol)?
  12. Code Mode
  13. JavaScript REPL Runtime
  14. What Are Skills?
  15. Plugins
  16. Plan Mode & Collaboration
  17. Memory System
  18. Session Management
  19. Non-Interactive Mode (codex exec)
  20. Codex Cloud & Background Tasks
  21. The Codex Desktop App
  22. GitHub Action & CI/CD
  23. Codex SDK
  24. Performance Optimization
  25. How Do I Debug Issues? – including codex doctor
  26. Enterprise Deployment
  27. Best Practices & Anti-Patterns
  28. Workflow Recipes
  29. Migration Guide
  30. Quick Reference Card
  31. Changelog
  32. References

How Do I Install Codex?

Package Managers

# npm (recommended)
npm install -g @openai/codex

# Homebrew (macOS)
brew install --cask codex

# winget (Windows)
winget install OpenAI.Codex

# Upgrade to latest
npm install -g @openai/codex@latest

How Do I Update, Downgrade, or Uninstall the Codex CLI?

Codex ships a self-update command as of v0.128.0; everything else runs through whichever package manager installed it.86 As of v0.146.0, release artifacts, channel metadata, and installer aliases are served from OpenAI-hosted release infrastructure, with GitHub as a fallback.114 If your network allowlists GitHub for Codex installs and updates, add the OpenAI release host too — the fallback means an allowlist miss degrades quietly rather than failing loudly.

# Check what you are running
codex --version                          # -> codex-cli 0.162.1
npm view @openai/codex version           # Latest published version

# Update
codex update                             # Built-in self-update (v0.128.0+)
npm install -g @openai/codex@latest      # Or update via npm
brew upgrade --cask codex                # Or via Homebrew

# Pin or downgrade to an exact version
npm install -g @openai/codex@0.144.6

# Uninstall
npm uninstall -g @openai/codex
brew uninstall --cask codex
winget uninstall OpenAI.Codex

Pinning is the right move when a release breaks you. Codex tracks a fast stable line, so installing an exact version is the fastest rollback – file the issue, pin, and move on. Verify the rollback took with codex --version, since a shadowed second install on your PATH will silently keep serving the old binary (codex doctor flags exactly this under Environment).

Uninstalling the package does not remove your state. Auth, config, and session history live in ~/.codex/. Leave it in place to preserve logins and history across a reinstall; delete it only for a genuinely clean slate – rm -rf ~/.codex also discards config.toml, auth.json, and every stored session.

Direct Install Script (v0.106.0+)

For macOS and Linux, a one-line install script is available as a GitHub release asset:60

curl -fsSL https://github.com/openai/codex/releases/latest/download/install.sh | sh

The script auto-detects your platform and architecture, downloads the correct binary, and places it on your PATH.

Binary Downloads

For environments without npm or Homebrew, download platform-specific binaries from GitHub Releases1:

Platform Binary
macOS Apple Silicon codex-aarch64-apple-darwin.tar.gz
macOS x86_64 codex-x86_64-apple-darwin.tar.gz
Linux x86_64 codex-x86_64-unknown-linux-musl.tar.gz
Linux arm64 codex-aarch64-unknown-linux-musl.tar.gz

System Requirements

  • macOS: Apple Silicon or Intel (full sandbox support via Seatbelt)
  • Linux: x86_64 or arm64 (sandbox via Landlock + seccomp)
  • Windows: Native sandbox with restricted tokens (promoted from experimental in v0.100.0). WSL also supported2

Authentication

codex login                  # Interactive OAuth (recommended)
codex login --device-auth    # OAuth device code flow (headless)
codex login --with-api-key   # API key from stdin
codex login status           # Check auth state (exit 0 = logged in)
codex logout                 # Clear stored credentials

Two authentication paths:

  1. ChatGPT Account (recommended): Sign in with your existing Plus, Pro, Team, Business, Edu, or Enterprise subscription. Full feature access including cloud tasks.
  2. API Key: Set via CODEX_API_KEY environment variable or codex login --with-api-key. Some features (cloud threads) may be unavailable.

Expert tip: Credential storage is configurable via cli_auth_credentials_store in config.toml. Options: file (default), keyring (OS keychain), or auto (keyring if available, file fallback).

Amazon Bedrock login (v0.145.0, experimental): Teams whose model access runs through Amazon Bedrock get an experimental login path with custom endpoint and authentication support, alongside the existing managed API-key authentication (v0.140.0+) and the AWS credential chain (see Custom Model Providers). GPT-5.6 Sol is the default Bedrock model.112 v0.150.0 fixes conversation compaction and multi-agent compatibility for Amazon Bedrock models.132 v0.151.0 adds a feature-gated Amazon Bedrock option to eligible TUI sign-in flows: onboarding discovers existing AWS profiles and environment credentials, offers manual setup for profiles, access keys, environment variables, and Bedrock API keys, collects the AWS Region, masks secrets during entry, and restarts the embedded server when the provider changes.135 v0.152.0 surfaces credential-refresh progress: the TUI and codex exec show progress while a model provider refreshes expired credentials, Amazon Bedrock session reauthentication included, backed by stable modelProvider/authRecoveryStarted and modelProvider/authRecoveryCompleted app-server notifications carrying the thread, turn, provider, and a user-facing message.138

Shell Completions

# Generate completions for your shell
codex completion bash > /etc/bash_completion.d/codex
codex completion zsh > ~/.zsh/completions/_codex
codex completion fish > ~/.config/fish/completions/codex.fish

Verify Installation

codex --version
# codex-cli 0.162.1

Quick Start: Your First Session

Get from zero to productive in 5 minutes.

1. Install and authenticate:

npm i -g @openai/codex          # Install
codex login                      # Log in with your OpenAI account

2. Navigate to a project:

cd ~/my-project                  # Any git repo works

3. Start Codex:

codex

You’ll see the interactive TUI. Codex reads your project structure automatically.

4. Ask a question:

> What does this project do? Summarize the architecture.

Codex reads key files and explains the codebase. A question like this makes no changes — Codex only patches files when you ask for a change, and the sandbox and approval policy govern when it must ask first.

5. Make a change:

> Add input validation to the login endpoint

Codex proposes edits as a diff. Review and approve with y, or reject with n.

6. Use a slash command:

> /plan Refactor the database layer to use connection pooling

Codex creates a plan without executing. Review the plan, then approve to begin execution.

7. Check your work:

> /diff

See all changes Codex has made in the current session.

What’s next:


Core Interaction Surfaces

Codex provides five distinct interfaces backed by the same intelligence. Each surface optimizes for a different workflow pattern.

1. Interactive CLI (Terminal UI)

codex                        # Launch TUI
codex "fix the failing tests" # Launch with initial prompt
codex -m gpt-6-sol          # Specify model
codex --sandbox workspace-write --ask-for-approval on-request

The terminal UI is a full-screen application with:

  • Composer: Type prompts, attach files with @, run shell commands with ! prefix
  • Output pane: Streaming model responses, tool calls, and command output
  • Status bar: Model, token usage, git branch, sandbox mode

Key TUI shortcuts:

Shortcut Action
@ Fuzzy file search (attach to context)
!command Run shell command directly
Ctrl+G Open external editor ($VISUAL / $EDITOR)
Ctrl+R Reverse history search (v0.121.0+) — readline-style search through prior prompts, including slash commands issued in earlier turns82
Enter (while running) Inject new instructions mid-turn
Esc twice Edit previous messages
Arrow keys Navigate draft history

Status line change (v0.121.0): The old context-window meter in the status line has been replaced by a context-percent indicator showing how full your context window is. If you have scripts or hooks parsing the status line, check for this format change.82 Codex will also surface a CLI update announcement when a new version is available.

Slash commands available in the TUI:

Command Description
/quit or /exit Exit the CLI
/new Start new conversation in same session
/resume Resume a saved conversation
/fork Fork current conversation into new thread
/worktree Create an isolated managed-worktree checkout for a new or forked session (v0.154.0; on by default since v0.156.0). Also --worktree at launch; codex exec supports managed worktrees, and the TUI adds worktree session commands and a browser for resuming worktree sessions. v0.155.0: the agents overview adds hide, archive, and delete for worktree sessions, ownership details, and confirmed deletion of clean managed worktrees (#43942, #44424, #44433). v0.156.0: worktrees become a stable, default-on feature (#44870), worktree sessions can use an existing local daemon (#46498), and worktree sessions can be created from the agents overview (#45276). To turn worktrees off: set worktrees = false under [features] in config.toml, or run codex features disable worktrees (per run: --disable worktrees). If worktree creation or /cd fails with “The local Codex service cannot check background terminals”, your local daemon predates the method worktrees need: run codex app-server daemon update, then restart Codex (#44870).152156169171 v0.162.0: the model gets tools to create and list managed worktrees itself, in trusted local projects (#50148).187
/model Switch model and reasoning effort
/compact Summarize conversation to free tokens
/recap Summarize the current conversation now (v0.151.0). On-demand version of the recap Codex generates automatically for eligible idle, unfocused conversations, with visible progress and actionable errors.135 v0.153.0: tui.auto_recap = false turns off the automatic recaps; manual /recap stays available regardless.140
/diff Show git diff including untracked files
/review Code review of working tree
/plan Enter plan mode
/goal Create, pause, resume, or clear persisted work goals (v0.128.0+). v0.133.0: goals are enabled by default, backed by dedicated storage, and track progress across active turns; OpenAI now documents Goal mode as generally available across the Codex app, IDE extension, and CLI.98100
/vim Toggle modal Vim editing in the composer (v0.129.0+). Configure via TUI keymap settings to set Vim as the default editing mode. v0.150.0: use . to repeat your last edit.89132 v0.151.0: line-local f/F/t/T find and till motions plus gg/G buffer jumps, all usable with c/d/y operators and dot-repeat.135 v0.152.0: draft-local / and ? literal search with highlighted matches and n/N repeat navigation, also composable with operators; fresh drafts start in Insert mode.138 v0.153.0: bounded undo/redo with u and Ctrl+R, restoring complete drafts including pasted content and attachments.140 v0.154.0: R replace mode with undo and dot-repeat, plus recovered Escape handling in legacy terminals.152
/voice Live voice conversations in the TUI, on by default since v0.156.0. Shipped experimental and opt-in in v0.155.0 (a live conversation with a streaming transcript and microphone controls, #43581, #43651, #44331; a configurable mute shortcut, #43690; signed macOS voice resources, #43983), then promoted to a stable, default-on feature in v0.156.0 (#44921), so /voice no longer needs /experimental on a supported build. v0.156.0 also adds a configurable F8 toggle (#46071), a /voice settings picker for choosing the voice used by future conversations (#44622), bundled voice runtimes for Linux and Windows (#44714, #44922), voice-session analytics attribution (#46058), reduced-motion handling (#46835), and playback preserved across pauses and packet bursts (#46880). To turn voice off: set realtime_conversation = false under [features] in config.toml, or run codex features disable realtime_conversation. Distinct from spacebar voice transcription (v0.105.0).156169171 v0.161.0: pick your microphone, speaker, and microphone input channels; the choice is saved locally (#49437, #49836).186
/hooks Browse and toggle lifecycle hooks from the TUI (v0.129.0+). Discover available hooks, see which are active, and toggle individual hooks without leaving the session.89
/mention Attach file to conversation
/init Generate AGENTS.md scaffold
/status Session config and token usage; v0.148.0 adds estimated thread credits/cost for eligible workspaces118
/export Export the complete conversation to Markdown — clipboard or a new file (v0.148.0)118
/cd, /pwd, /cwd Manage the session’s working directory from inside the TUI (v0.149.0); as of v0.151.0, /cd preserves restored permission profiles and is rejected when a directory change cannot represent the profile safely, so it no longer weakens sandbox restrictions120134
/usage Daily, weekly, and cumulative account token activity (v0.140.0+). v0.142.0: also shows and redeems earned usage-limit reset credits, with confirmation, retry, and refreshed availability states.102104 v0.144.0: reset credits show their type and expiration, and the redemption picker lets you choose which credit to redeem.107 v0.156.0: /usage becomes an account analytics dashboard – stacked charts, a Summary tab, Top chats (consumer included), gated plan usage history, and plugin and skill activity (#45763, #45764, #45765, #45766, #45768, #45769, #45770, #45772), with keyboard help, mouse navigation, and preserved reading positions (#46863, #46864, #46866).169
/tui Choose the terminal UI mode for your next launch (v0.156.0). A picker between Scrollback and Fullscreen that, after confirmation, saves tui.fullscreen_transcript to your user config; the running session keeps its current mode until you restart, and launch overrides still apply (#46883). Fullscreen adds a transcript viewer with search and per-activity detail controls, mouse selection and copying, and right-click copy for transcript and composer selections (#46732, #46734, #46895). Fullscreen is on by default since v0.157.0 (#47178), after shipping off by default in v0.156.0: set fullscreen_transcript = false under [tui], or choose Scrollback here, to keep terminal scrollback; --no-alt-screen and tui.alternate_screen = "never" take precedence. v0.157.0 also adds Shift-click to extend a selection (#47414). v0.158.0 adds tui.copy_on_select (auto, the default, copies mouse selections on release except in direct terminals that forward their own copy shortcut; always; never) and tui.right_click_paste (auto, the default, on Windows, WSL, and Linux; on adds macOS; off), and copied selections keep Markdown formatting (#47639, #48469, #48118, #47896). The old features.transcript_v2 flag is deprecated and ignored (#46849).169171174176
/daemon Update the local background server from the TUI (v0.156.0) (#45854). Launch with --no-daemon to bypass the shared background server entirely (#46088); automatic background-server startup, opt-in in v0.156.0 (#46117), is on by default for eligible interactive launches since v0.157.0 (#47179); set daemon_auto_start = false under [features] to turn it off. /status identifies local background servers (#46905).169174
/import Selectively import setup, project configuration, and recent chats from Claude Code (v0.140.0+).102 v0.145.0: expanded to migrate from Cursor as well as Claude Code — settings, MCP servers, plugins, sessions, commands, and project-scoped memories.112
/delete Permanently delete the current session (v0.140.0+) — also codex delete on the CLI and thread/delete on the app-server, all with confirmation safeguards.102
/permissions Set approval policy
/personality Communication style (friendly/pragmatic/none)
/mcp List configured MCP tools; /mcp verbose for diagnostics, and since v0.161.0 /mcp login <name> signs in to a server from inside the session186
/apps Browse ChatGPT connectors
/ps Show background terminals
/skills Access and invoke skills
/plugins Browse and manage installed plugins (v0.117.0+); v0.129.0 adds workspace sharing and marketplace operations.89
/title Set terminal window title (v0.117.0+)
/debug-config Show config layers and requirement sources for debugging (there is no /config command as of 0.151.0)129132135
/statusline Configure TUI footer; v0.129.0 adds an optional theme-aware status line with PR + branch-change summaries.89
/theme Preview and persist a syntax-highlighting theme (v0.105.0+). v0.156.0: the picker adds six bundled themes (ada, babbage, curie, cushman, dali, davinci) and theme-aware accents for selected controls; a custom theme file with the same name takes precedence (#46504).61169
/feedback Send logs to Codex maintainers
/logout Sign out
/keymap Remap TUI shortcuts; v0.150.0 adds bindable shortcuts that cycle permission modes129132
/rename Rename the current thread; v0.150.0 suggests an editable title based on the conversation, and unnamed terminal tasks receive descriptive titles automatically129132
/approve Approve one retry of a recent auto-review denial129
/memories Configure memory use and generation129
/agents View and switch between all active agent sessions; /subagents switches between this session’s subagents129
/side or /btw Start a side conversation in an ephemeral fork129
/raw Toggle raw scrollback mode for copy-friendly terminal selection129
/ide Include current selection, open files, and other context from your IDE129
/stop or /clean Stop all background terminals129
/experimental Toggle experimental features129. It gated live voice conversations and managed worktrees in v0.155.0; since v0.156.0 both are stable and on by default and no longer appear in this menu (#44921, #44870)156169
/app Continue this session in the desktop app (macOS and Windows only)129
/daybreak Turn Daybreak on or off (v0.161.0). Present only with cli_daybreak = true under [features], on an eligible ChatGPT sign-in with the OpenAI provider186

Workflow picker redesign (v0.129.0): Resume and fork are now easier to reach from a redesigned picker, and a new raw scrollback mode lets you scroll through the unrendered transcript when you need to copy commands or model output verbatim. Useful when triaging a long debugging session or piping output to another tool.89

Unified @ mentions menu (v0.140.0): Typing @ in the composer now opens a single mentions menu spanning files, plugins, and skills by default, replacing the file-only attach flow — one keystroke to reference any project resource.102

2. Codex Desktop App (macOS + Windows)

codex app                    # Launch desktop app (auto-installs if missing)

The desktop app adds capabilities the CLI doesn’t have:

  • Multi-tasking: Run multiple parallel agents across different projects simultaneously
  • Git worktree isolation: Each thread works on an isolated copy of your repo
  • Inline diff review: Stage, revert, and commit changes without leaving the app
  • Integrated terminal: Per-thread terminal for running commands
  • Conversation forking: Branch conversations to explore alternatives
  • Floating pop-out windows: Detach conversations into portable windows
  • Automations: Schedule recurring tasks (issue triage, CI monitoring, alert response)
  • Appshots: Attach the frontmost Mac app window to a thread with a screenshot plus available text
  • In-app browser comments: Preview local or public pages, leave element/area comments, and let Codex address precise visual feedback
  • Computer Use: Let Codex operate allowed Mac apps for scoped GUI work; locked use is opt-in for eligible remote Mac Computer Use turns

ChatGPT Voice, powered by GPT-Live (desktop 26.715, July 23, 2026): The desktop app can now be driven by speech — talk through work and coordinate tasks across Chat, Work, and Codex without typing. On macOS, turning on Screen context shares an appshot of your frontmost window with the conversation, so you can ask about what you’re looking at instead of describing it. Available on Plus, Pro, Business, Edu, and Enterprise, on the desktop app and through Remote on iOS. This is desktop-surface voice. The CLI has its own, separate voice features: /voice live conversations in the TUI (on by default since v0.156.0) and spacebar dictation (added experimentally in v0.105.0).113169

Shared thread snapshots (August 20, 2026): On all Codex plans, the macOS desktop app can share a read-only snapshot of a local Codex thread. The snapshot does not update when the original thread changes; personal-account links open for anyone with the link, workspace-account links only for members of the originating workspace. Codex redacts known secret patterns before sharing, but OpenAI tells you to review the shared content because sensitive content may remain. View or revoke links in ChatGPT data controls under Shared links.128

When to use the app vs CLI: Use the desktop app when you’re coordinating multiple workstreams or need visual diff review. Use the CLI when you want terminal composability, scripting, or CI/CD integration.

3. IDE Extension (VS Code, Cursor, Windsurf)

The Codex IDE extension integrates directly into your editor:

  • Agent mode by default: Reads files, makes edits, runs commands
  • Inline edits: Context-aware suggestions in your active files
  • Shared sessions: Sessions sync between CLI and IDE extension
  • Same authentication: Sign in with ChatGPT account or API key

Install from the VS Code Marketplace or Cursor/Windsurf extension stores.3

4. Codex Cloud [EXPERIMENTAL]

Cloud tasks run asynchronously in OpenAI-managed environments:

  • Fire and forget: Queue tasks that run independently of your local machine
  • Parallel execution: Run multiple cloud tasks simultaneously
  • PR creation: Codex creates pull requests from completed work
  • Local apply: Pull cloud results into your local repo with codex apply <TASK_ID>
codex cloud list             # List recent cloud tasks
codex apply <TASK_ID>        # Apply diff from a specific cloud task

Cloud tasks are also accessible from chatgpt.com/codex.4

5. Browser Extension (Chrome, Edge, Brave, Opera, Vivaldi)

Codex ships as a browser extension for Google Chrome, Microsoft Edge, Brave, Opera, and Vivaldi, adding a fifth surface alongside the CLI, desktop app, IDE extension, and cloud. The extension launched for Chrome in May 2026; the August 25, 2026 changelog added the other four browsers, set up from Settings > Computer Use in the ChatGPT desktop app. All five support tab mentions and browser control; Opera does not support side chat, so start its tasks from the desktop app. The extension is designed to ride alongside your normal browsing rather than take it over: Codex works in parallel across tabs in the background, and you stay in control of which sites it touches.90127

  • Parallel tab execution: Codex operates across multiple tabs at once without locking the foreground tab.
  • Per-site control: You allow-list which websites Codex can interact with; default is no access.
  • Browser as the workbench: The extension is best for app-and-website work where the page is the source of truth — admin consoles, internal dashboards, content-management UIs, ticket systems — not a replacement for the CLI on local repos.
  • Same brain: the browser extension runs the same GPT-5.x-Codex intelligence the other surfaces use, so an AGENTS.md or skills configuration that works in the CLI carries the same conventions into browser-driven work.

Install from the browser extension docs, the page formerly titled Codex for Chrome.127


Configuration System Deep Dive

Codex uses TOML for configuration. Understanding the precedence hierarchy is critical because it determines which settings win when they conflict.

Precedence (Highest to Lowest)

  1. Session overrides (highest): CLI flags (--model, --sandbox, --ask-for-approval, --search, --enable/--disable, --profile) and -c key=value overrides
  2. Project config (.codex/config.toml, discovered from CWD upward to project root; closest directory wins)
  3. User config ($CODEX_HOME/config.toml, defaults to ~/.codex/config.toml)
  4. System config (/etc/codex/config.toml on Unix)
  5. Built-in defaults (lowest)

requirements.toml acts as a policy constraint layer that restricts what values users can select after normal config merging. See Enterprise Deployment.

Config File Locations

Scope Path Purpose
User ~/.codex/config.toml Personal defaults
Project .codex/config.toml Per-repo overrides
System /etc/codex/config.toml Machine-wide defaults
Managed /etc/codex/requirements.toml Admin-enforced policy constraints

Expert tip: The CODEX_HOME environment variable overrides the default ~/.codex directory. Useful for CI/CD or multi-account setups.

Desktop multi-folder projects (26.715, July 23, 2026): A local project in the ChatGPT desktop app can now span several related folders, with one of them designated the primary folder (project menu → Edit project). Automatic discovery of config.toml runs against the primary folder only; secondary folders stay available for file search, reading, and editing but contribute no configuration. A .codex/config.toml sitting in a secondary folder is a file Codex can read, not a config it loads. This is desktop-app project scoping, not a change to the precedence rules above — the CLI still resolves project config by walking upward from the current working directory.113

Complete Configuration Reference

# ~/.codex/config.toml — annotated reference

# ─── Model Selection ───────────────────────────────────
model = "gpt-6.1-sol"                  # Docs' example; unset = bundled default (gpt-6.1-sol since v0.159.1)
model_provider = "openai"               # Provider (openai, oss, or custom provider id)
model_context_window = 272000           # Token count available to active model (override)
model_auto_compact_token_limit = 200000 # Threshold triggering automatic history compaction
model_reasoning_effort = "medium"       # minimal|low|medium|high|xhigh (model-dependent)
model_reasoning_summary = "auto"        # auto|concise|detailed|none
model_verbosity = "medium"              # low|medium|high
personality = "pragmatic"               # none|friendly|pragmatic
review_model = "gpt-6-sol"             # Optional model for /review command
service_tier = "fast"                  # Preferred service tier for new turns
oss_provider = "lmstudio"              # lmstudio|ollama (used with --oss)

# ─── Sandbox & Approval ───────────────────────────────
sandbox_mode = "workspace-write"        # read-only|workspace-write|danger-full-access
approval_policy = "on-request"          # on-request|never (untrusted retired in v0.149.0)

[sandbox_workspace_write]
writable_roots = []                     # Additional writable paths
network_access = false                  # Allow outbound network
exclude_tmpdir_env_var = false          # Exclude $TMPDIR from sandbox
exclude_slash_tmp = false               # Exclude /tmp from sandbox

# ─── Web Search ────────────────────────────────────────
web_search = "live"                     # Web search mode (constrained by allowed modes)

# ─── Tools ─────────────────────────────────────────────
tools.update_plan.enabled = false       # Planning tool opt-in (v0.152.0); exposes update_plan when true

# ─── Instructions ──────────────────────────────────────
developer_instructions = ""             # Additional injected instructions
model_instructions_file = ""            # Custom instructions file path
compact_prompt = ""                     # Custom history compaction prompt

# ─── Shell Environment ─────────────────────────────────
allow_login_shell = false               # Allow login shell semantics (loads .profile/.zprofile)

[shell_environment_policy]
inherit = "all"                         # all|core|none
ignore_default_excludes = false         # Set true to keep KEY/SECRET/TOKEN vars
exclude = []                            # Glob patterns to exclude
set = {}                                # Explicit overrides
include_only = []                       # Whitelist patterns

# ─── Authentication ────────────────────────────────────
cli_auth_credentials_store = "file"     # file|keyring|auto
forced_login_method = "chatgpt"         # chatgpt|api
mcp_oauth_callback_port = 0            # Fixed port for MCP OAuth callback (0 = random)
mcp_oauth_credentials_store = "auto"   # auto|file|keyring

# ─── History & Storage ─────────────────────────────────
[history]
persistence = "save-all"                # save-all|none
max_bytes = 0                           # Cap size (0 = unlimited)

tool_output_token_limit = 10000         # Max tokens per tool output (global; per-tool MCP overrides in v0.152.0)
log_dir = ""                            # Custom log directory
sqlite_home = ""                        # Override SQLite-backed resumable state location

# ─── UI & Display ──────────────────────────────────────
file_opener = "vscode"                  # vscode|vscode-insiders|windsurf|cursor|none
hide_agent_reasoning = false
show_raw_agent_reasoning = false
check_for_update_on_startup = true

[tui]
notifications = false                   # Enable notifications
notification_method = "auto"            # auto|osc9|bel
animations = true
show_tooltips = true
alternate_screen = "auto"               # auto|always|never
status_line = ["model", "context-remaining", "git-branch"]
mouse_scroll_speed = 1.0                # Mouse-wheel scroll multiplier, a finite positive number (v0.162.0)

# ─── Project Trust ─────────────────────────────────────
project_doc_max_bytes = 32768           # Max AGENTS.md size (32 KiB)
project_doc_fallback_filenames = []     # Alternative instruction filenames
project_root_markers = [".git"]         # Project root detection

# ─── Feature Flags ─────────────────────────────────────
# Use `codex features list` for current names/stages/defaults.
[features]
shell_tool = true                       # Shell command execution (stable)
unified_exec = true                     # PTY-backed exec (stable)
shell_snapshot = true                   # Shell env snapshots (stable)
enable_request_compression = true       # zstd request compression where supported (stable)
fast_mode = true                        # Service-tier selection and Fast-tier commands (stable)
instant_interrupt = true                # New input preempts the model's response; on by default since v0.162.0 (under development)
api_key_model_discovery = true          # Fetch the model catalog when signed in with an OpenAI API key; on by default since v0.161.0 (stable)
goals = true                            # Goal mode; stable and on by default in v0.133.0+
hooks = true                            # Lifecycle hooks (stable)
multi_agent = true                      # Enable multi-agent collaboration tools (stable)
personality = true                      # Personality selection (stable)
plugins = true                          # Plugin system (stable)
plugin_hooks = true                     # Plugin-bundled hooks (stable)
plugin_sharing = true                   # Workspace plugin sharing (stable)
browser_use = true                      # In-app browser automation (stable)
browser_use_external = true             # Browser-extension browser use (stable)
computer_use = true                     # macOS Computer Use (stable, plan/region gated)
in_app_browser = true                   # Shared rendered-page preview (stable)
image_generation = true                 # Image-generation tool (stable)
guardian_approval = true                # Auto-review approval path (stable)
skill_mcp_dependency_install = true     # Prompt/install missing skill MCP deps (stable)
tool_suggest = true                     # Tool/plugin suggestion surface (stable)
workspace_dependencies = true           # Workspace dependency discovery (stable)
memories = true                         # Memories (experimental)
network_proxy = false                   # Sandboxed-command network proxy (experimental); boolean or table, see below
prevent_idle_sleep = true               # Keep machine awake during active turns (experimental)
terminal_resize_reflow = true           # Terminal reflow improvements (experimental)
guardian_conversation_history_tools = false  # Guardian reads earlier user messages (under development, v0.160.0)

# Removed or deprecated feature names still appear in `codex features list`
# for migration diagnostics. Do not set removed flags such as
# `collaboration_modes`, `request_rule`, `codex_git_commit`,
# `apply_patch_freeform`, `search_tool`, or `js_repl` in new configs.

# ─── Guardian Auto-Review (v0.160.0 history keys) ─────
[auto_review]
conversation_history_max_output_tokens = 4000   # Per history-tool response, estimated tokens (default 4,000)
experimental_conversation_history_prompt = ""   # Blank = built-in retrieval instructions

# ─── Multi-Agent Roles (v0.102.0+) ───────────────────
[agents]
max_threads = 4                         # Maximum concurrent agent threads

[agents.explorer]
description = "Read-only codebase navigator"
config_file = "~/.codex/profiles/explorer.toml"

# ─── Notifications ────────────────────────────────────
notify = ["terminal-notifier", "-title", "Codex"]  # Command for notifications

# ─── Per-Project Overrides ────────────────────────────
[projects."/absolute/path/to/repo"]
trust_level = "trusted"                 # Per-project trust override

features.network_proxy is boolean | table. The boolean form only starts or stops the proxy; the table form carries the policy. The proxy is what enforces permission-profile domain rules for sandboxed commands: with it off, [permissions.<name>.network] domain rules are not enforced and command network access is direct. It does not filter web search, apps, MCP servers, or other hosted tools.130

[features.network_proxy]
enabled = true
allow_local_binding = false
proxy_url = "http://127.0.0.1:3128"

[features.network_proxy.domains]
"api.github.com" = "allow"
"*.npmjs.org" = "allow"          # subdomains only
"**.example.com" = "deny"        # apex plus subdomains; deny wins on conflicts
Key Type Default Meaning
enabled boolean false Start the sandboxed-command network proxy when command network access is enabled
domains map of host to allow or deny unset (no external destinations allowed) Exact hosts, *.example.com (subdomains only), **.example.com (apex plus subdomains), or a global * allow rule; deny wins
unix_sockets map of path to allow or deny unset Unix socket policy; add allow entries for permitted sockets
allow_local_binding boolean false Broader local and private-network access; exact local IP or localhost allow rules still work without it
enable_socks5 boolean true Expose SOCKS5 support
enable_socks5_udp boolean true Allow UDP over SOCKS5
allow_upstream_proxy boolean true Chain through an upstream proxy from the environment
dangerously_allow_non_loopback_proxy boolean false Permit non-loopback listener addresses (exposes the proxy beyond localhost)
dangerously_allow_all_unix_sockets boolean false Permit arbitrary Unix socket destinations instead of allowlist-only access
proxy_url string "http://127.0.0.1:3128" HTTP listener URL
socks_url string "http://127.0.0.1:8081" SOCKS5 listener URL

Administrator-managed experimental_network requirements in requirements.toml can start the proxy without features.network_proxy.130

Profiles

Named configuration presets for different work modes. Since Codex 0.134.0 each profile is its own file — ~/.codex/<name>.config.toml, holding top-level keys only — and --profile <name> overlays that file on ~/.codex/config.toml. The older [profiles.<name>] tables inside config.toml and the top-level profile = "<name>" selector are no longer read; a leftover [profiles.<name>] table makes --profile <name> refuse to start until you move its keys into the profile file.122

# ~/.codex/fast.config.toml
model = "gpt-6-luna"
# GPT-6 Sol/Luna start on the Fast tier (2.5x credits) unless service_tier is set; check /fast status
model_reasoning_effort = "low"
approval_policy = "on-request"
sandbox_mode = "workspace-write"
personality = "pragmatic"
# ~/.codex/careful.config.toml
model = "gpt-6-astra"
model_reasoning_effort = "xhigh"
approval_policy = "on-request"   # `untrusted` retired in v0.149.0
sandbox_mode = "read-only"
# ~/.codex/auto.config.toml
model = "gpt-6.1-sol"
# GPT-6.1 Sol starts at Standard speed; /fast toggles Fast (2.5x credits)
model_reasoning_effort = "medium"
approval_policy = "never"
sandbox_mode = "workspace-write"

A profile file is a layer above your base user config and below project and CLI config, so it only needs the values that differ from your base.122

Activate a profile:

codex --profile fast "quick refactor"
codex --profile careful "security audit"
codex -p auto "fix CI"

Expert tip: Set a default profile with profile = "fast" at the top level of your config. Override per-session with --profile.

Custom Model Providers

Connect to Azure, AWS Bedrock, local models, or proxy services:

[model_providers.azure]
name = "Azure OpenAI"
base_url = "https://YOUR_PROJECT.openai.azure.com/openai"
wire_api = "responses"
query_params = { api-version = "2025-04-01-preview" }
env_key = "AZURE_OPENAI_API_KEY"

# Built-in amazon-bedrock provider (v0.123.0+, first-class in v0.124.0+)
# AWS SigV4 signing + credential-based auth; AWS profile selectable via the
# nested `aws.profile` field (NOT a top-level `aws_profile` key).
# v0.130.0+ also accepts credentials from `aws login` (the AWS console-login
# flow) — Codex resolves the cached console-login session for the chosen
# profile if static keys are absent.
# v0.140.0+ adds managed Amazon Bedrock API-key authentication, and stores
# CLI and MCP OAuth credentials in encrypted local storage.[^184]
[model_providers.amazon-bedrock]
name = "Amazon Bedrock"

[model_providers.amazon-bedrock.aws]
profile = "default"                   # any profile from ~/.aws/credentials
# Region/credential resolution otherwise follows the standard AWS chain;
# v0.130.0 added support for `aws login` console-login profiles in addition
# to static access keys and IAM role assumption.[^168]

[model_providers.ollama]
name = "Ollama (Local)"
base_url = "http://localhost:11434/v1"
wire_api = "chat"

env_key names the environment variable that holds the provider’s API key; the key itself never goes in config.toml. A provider with requires_openai_auth = true shows the login screen on first run and stores its credentials in the backend chosen by cli_auth_credentials_store (file, keyring, or auto), not necessarily in auth.json. Since v0.160.0, a provider that sets model_catalog_url gets only the models in that catalog, with no bundled models merged in, and a failed catalog refresh discards cached entries rather than reusing stale ones.182 Since v0.162.0 a custom Responses-compatible provider can also declare what it supports under [model_providers.<name>.capabilities]: external_web_access = false keeps hosted web search off the live web for that provider, and remote_compaction = "v2" opts it into the Responses compaction_trigger protocol, which otherwise only OpenAI and Azure Responses providers get ("unsupported" keeps compaction local).187

Warning: The chat/completions wire API (wire_api = "chat") was deprecated for OpenAI-hosted models, with OpenAI announcing removal in February 2026.34 Local providers (Ollama, LM Studio) may still accept this format. For OpenAI endpoints, use wire_api = "responses" instead.

Use local models with the --oss flag:

codex --oss "explain this function"               # Uses default OSS provider
codex --oss --local-provider lmstudio "explain"   # Explicit LM Studio
codex --oss --local-provider ollama "explain"      # Explicit Ollama

Or set in config:

model_provider = "oss"
oss_provider = "lmstudio"   # or "ollama"

Inline Config Overrides

Override any config value from the command line:

codex -c model="gpt-5.5" "refactor the API"
codex -c 'sandbox_workspace_write.network_access=true' "install dependencies"
codex -c model_reasoning_effort="xhigh" "debug the race condition"

Which Model Should I Choose?

Available Models (September 2026)

Model Input / Total Context Default Reasoning Best For
gpt-6.1-sol 1.05M (API); 272K in the Codex catalog low (catalog); the docs say to start with your client’s default Complex coding and agentic work; the bundled default since v0.159.1 (docs changelog September 29, 2026) – the models docs: “near-Astra performance for complex work at a lower cost than Astra,” recommended “for complex coding and agentic workflows” when available. First in the CLI picker and the Amazon Bedrock default since v0.159.1. Codex credits: 50 / 2.5 cached / 250 output per 1M tokens; API $2/$10 per MTok ($0.10 cached input), 128K max output, knowledge cutoff April 30, 2026. Reasoning Low through Ultra. The catalog sets no default service tier, so sessions start at Standard; Fast is available at 2.5x credits, Ultrafast later. Launch rollout: Plus, Pro, Business, Enterprise, and Edu, with Enterprise and Edu off until an administrator enables it; Free and Go are not included at launch178
gpt-6-astra 922K / 1.05M (API); 272K in the Codex catalog low (the docs’ “Light” starting point and the bundled catalog agree) Flagship for the hardest end-to-end work (launched September 3, 2026) – the models docs: “Choose Astra when a task needs the strongest capability across multiple steps and tools.” The bundled default when no model is configured from v0.153.4 until v0.159.1, which made GPT-6.1 Sol the default and moved Astra to second in the picker. API: $10/$50 per MTok at standard short-context rates ($20/$75 above 272K input tokens, applied to the full request), 128K max output, knowledge cutoff April 30, 2026. Codex credits: 250 / 25 cached / 1,250 output per 1M tokens, the most expensive current model. Availability depends on plan, sign-in method, and client; the September 23 models page marks Astra unavailable for Codex cloud (the September 15 access had marked it available). Reasoning ladder: Low, Medium, High, Extra High, Max, Ultra145146148153171178
gpt-6-sol 922K / 1.05M (API); 272K in the Codex catalog medium (docs and catalog) Previous-generation Sol (docs changelog September 22, 2026; in the CLI picker since v0.156.1, labeled “Previous generation workhorse model” since v0.159.1) – “Built for complex coding and agentic workflows, with stronger factual reliability and clearer communication than GPT-5.6 Sol.” The docs’ configuration examples moved to gpt-6.1-sol on September 29, 2026; the catalog’s migration prompt still moves saved GPT-5.6 Sol, GPT-5.6 Terra, GPT-5.5, and GPT-5.4 selections here. Codex credits: 50 / 5 cached / 250 output per 1M tokens (half of GPT-5.6 Sol’s promotional rate); API $2/$10 per MTok, knowledge cutoff April 20, 2026. Reasoning up to Ultra in the Codex catalog. The catalog defaults its service tier to Fast in the TUI (2.5x credits); check /fast status. The Amazon Bedrock default from v0.157.0 until v0.159.1. Not the same model as GPT-5.6 Sol171174178
gpt-6-luna 922K / 1.05M (API); 272K in the Codex catalog medium (catalog); the docs suggest starting at High Focused, high-volume tasks (in the CLI picker since v0.156.1) – “Our most efficient model for focused, high-volume tasks, including summarization, extraction, and focused coding.” The rate-limit switch prompt now suggests it. Codex credits: 2.5 / 0.25 cached / 12.5 output per 1M tokens; API $0.10/$0.50 per MTok, knowledge cutoff May 18, 2026. Reasoning up to Max, not Ultra. Free and Go plans get it at Standard speed in the desktop app, subject to rollout; in Enterprise and Edu an administrator must enable it. Catalog default service tier is Fast in the TUI, as with Sol171
gpt-5.5 (Codex) 400K / 400K medium Previous-generation flagship (April 23, 2026) – 82.7% Terminal-Bench 2.0 at launch; now labeled “Legacy coding model” in the picker. Retires from Codex for ChatGPT sign-in on October 14, 2026 (API unaffected); the docs name GPT-6 Sol as the replacement on paid plans and GPT-6 Luna on Free and Go. In API: 1M context window.83117171
gpt-5.5-pro 1M / 1M high Highest-effort tier on GPT-5.5 (April 24, 2026, API-available)83
gpt-5.4 1M / 1M medium Prior flagship; bundled selections migrated to GPT-5.6 Terra/Luna in v0.145.0; retired from Codex for ChatGPT sign-in on August 31, 2026; since v0.156.1 the migration prompt points to GPT-6 Sol; removed from the bundled and Bedrock catalogs in v0.158.0, which keeps that prompt for saved selections112117171176
gpt-5.4-mini 400K / 400K medium Subagent work, simpler tasks – superseded as the bundled pick by the GPT-5.6 variants in v0.145.0; retired from Codex for ChatGPT sign-in on August 31, 2026; since v0.156.1 the migration prompt points to GPT-6 Luna76112117171
gpt-5.6 Sol / Terra / Luna 272K / 272K medium (max supported) Previous generation, still available during the GPT-6 rollout. The v0.156.1 picker labels them “Older” models and offers a migration prompt (Sol and Terra to GPT-6 Sol, Luna to GPT-6 Luna); GPT-5.6 Sol was the Amazon Bedrock default until v0.157.0 moved that to GPT-6 Sol (GPT-6.1 Sol since v0.159.1), and per the pricing page it is the model Codex cloud chats on ChatGPT plans use. Useful as a pin if your account does not yet have GPT-6 Sol. Bundled CLI default family from v0.145.0 until v0.153.4; first shipped via Bedrock in v0.143.0; context corrected to 272,000 tokens in v0.144.6106111112117146148171174178
gpt-5.3-codex 272K / 400K medium Legacy coding specialist — deprecated in Codex when signed in with ChatGPT; still available via API117
gpt-5.3-codex-spark 128K / 128K high Near-instant iteration, text-only (Pro users, Cerebras partnership)67
gpt-5.2-codex 272K / 400K medium Shut down July 23, 2026 per OpenAI’s deprecation table; recommended substitute is now gpt-5.6-sol88
gpt-5.1-codex-mini 272K / 400K medium Shut down July 23, 2026 per OpenAI’s deprecation table; recommended substitute is now gpt-5.6-terra88

GPT-5.5 (April 23, 2026) was OpenAI’s recommended choice for most Codex tasks at launch: complex coding, computer use, knowledge work, and research workflows. Available in Codex CLI / web / desktop on April 23 for ChatGPT Plus / Pro / Business / Enterprise / Edu / Go; in the OpenAI API on April 24. Context window: 400K in Codex, 1M in the API — Codex caps the window at 400K to balance throughput and cost across subscriber tiers; the API exposes the full 1M. Pricing (API): $5 input / $30 output per MTok (2× the GPT-5.4 rate; OpenAI states ~20% effective increase after token-efficiency improvements). Benchmarks: 82.7% Terminal-Bench 2.0 (current SOTA across publicly available models), 84.9% GDPval (44 occupations), 78.7% OSWorld-Verified, 98.0% Tau2-bench Telecom (no prompt tuning). OpenAI used GPT-5.5 + Codex internally to rewrite serving infrastructure pre-launch — yielded a 20% boost in token generation speed.83

GPT-5.5 retires from Codex with ChatGPT sign-in on October 14, 2026 – the models docs scope the retirement to ChatGPT, ChatGPT Work, and Codex on all plans (consumer, Business, Enterprise, and Edu included) and state it does not apply to the OpenAI API.155 The replacement guidance changed with the GPT-6 launch: on Plus, Pro, Business, Enterprise, and Edu, choose gpt-6-sol; on Free and Go, choose gpt-6-luna in the desktop app, each “when available.” Replace gpt-5.5 in workspace defaults, saved model settings, managed configurations, custom agents, scheduled tasks, and scripts.171

GPT-5.4 and GPT-5.4 mini retired from Codex with ChatGPT sign-in on August 31, 2026.117 The models docs now name gpt-6-sol and gpt-6-luna as their replacements (in Enterprise and Edu, an administrator must enable Luna first); API-key use is unaffected.64171 The exact model list varies by account and rollout. Check your local cache: ~/.codex/models_cache.json.

Deprecation note (March 11, 2026): GPT-5.1 models are no longer available in ChatGPT. Existing conversations automatically continue on GPT-5.3 Instant, GPT-5.4 Thinking, or GPT-5.4 Pro. GPT-5.1-Codex-Mini remained available via API and CLI until the July 23, 2026 shutdown.7188

Free-tier note (May 5, 2026): GPT-5.5 Instant rolled out to the ChatGPT free tier on May 5, 2026. This widens the audience for the GPT-5.5 family beyond paid plans, though Codex CLI access continues to require an eligible Plus / Pro / Business / Enterprise / Edu / Go subscription or API key.92

GPT-5.4 mini (March 17, 2026): A smaller, faster variant of GPT-5.4 with 400K context at $0.75/$4.50 per MTok — uses only 30% of GPT-5.4 quota. Ideal for subagent delegation: let GPT-5.4 handle planning and coordination while GPT-5.4 mini subagents handle narrower subtasks (codebase search, file review, document processing) in parallel.76

Bedrock GPT-5.6 (Sol, Terra, Luna) (v0.143.0, July 8, 2026): Codex added first-class support for three GPT-5.6 model variants hosted on Amazon Bedrock, including support for the max reasoning-effort level. For teams whose model access runs through a Bedrock provider, these are selectable the same way as other custom-provider models (see Custom Model Providers); the max effort tier targets the hardest reasoning and agentic workloads.106 v0.144.6 (July 18, 2026) refreshed the bundled instructions for Sol, Terra, and Luna and corrected their context windows to 272,000 tokens.111 v0.145.0 (July 21, 2026) adds experimental Bedrock login with custom endpoint and authentication support, makes GPT-5.6 Sol the default Bedrock model, and migrates bundled GPT-5.4 model selections to the corresponding Terra and Luna variants.112

GPT-6-Astra (launched September 3, 2026; in Codex via v0.153.1-v0.153.4): the chronology, with explicit dates: v0.153.1 staged an API-only catalog entry on September 3, 2026; OpenAI announced GPT-6-Astra the same day; and v0.153.4 added the picker entry and the bundled-CLI-default flip on September 4. The announcement describes a phased rollout that begins with a limited set of organizations (cybersecurity-program partners first) and extends to ChatGPT Plus, Pro, Business, and Enterprise “over the coming days,” plus the OpenAI API and AWS – the rollout facts are press-reported (CNBC, Axios, Forbes, Al Jazeera, 9to5Mac).145 Superseded September 4: OpenAI announced on X that GPT-6 Astra “is now available to all Pro, Enterprise, and Business Premium users in ChatGPT Work and Codex” and “live in the API,” with Plus and Business expected within days, and the Codex lead Tibo Sottiaux followed up the same evening: “Astra is now rolled out to all Plus and Business users too.” Entitlement remains uneven in practice – September 5 community reports show Plus accounts still seeing only GPT-5.6 models in Codex – and the models docs availability line quoted below is unchanged, so it remains the operative first-party statement.149 First-party docs are live: the API model page lists gpt-6-astra as the flagship, “Our most capable model, built for the hardest end-to-end work” – $10/MTok input, $50/MTok output at standard short-context rates, a 1.05M-token context window with 922,000 max input tokens, 128K max output, knowledge cutoff April 30, 2026 – with a documented long-context tier: prompts above 272K input tokens are priced at 2x input and 1.5x output for the full request, $20/MTok in and $75/MTok out on the pricing page – above GPT-5.6 Terra (balanced) and Luna (budget), and the Codex docs name Astra the recommended Codex model, with availability that “depends on the rollout, your sign-in method, and your client” and eligibility named for Pro, Business ($100), and Enterprise accounts. Astra’s documented Codex reasoning ladder: Low, Medium, High, Extra High, Max, Ultra – the docs models page marks Medium as the default, while the bundled catalog v0.153.4 ships sets default_reasoning_level to low, so treat the effective default as surface-dependent and check /status in a session; the ladder is unchanged at the September 15 re-access, now with per-level picker descriptions (Ultra, verbatim: “Maximum reasoning with automatic task delegation”), and the Max and Ultra rungs carry SDK confirmation – the Python SDK 0.154.0 release (September 10, 2026) adds the max and ultra reasoning-effort values (#39662).146148153 In the CLI, Astra is API-configurable since v0.153.1 (-m gpt-6-astra), joins the Amazon Bedrock catalogs in v0.153.3 (GPT-5.6 Sol stayed the Bedrock default until v0.157.0 made it GPT-6 Sol174), and sits in the model picker and as the bundled default when no model is explicitly configured as of v0.153.4 – no minimum CLI version is documented, so treat those as the effective floors. That default flip is a bundled-CLI-catalog fact, not an all-surfaces one – though the cloud gap has since closed: the September 4 and September 7 accesses marked Astra unavailable for Codex cloud (GPT-5.6 Sol available there), while the September 15 re-access shows the availability matrix marking Astra available for Codex cloud as well; the page still notes “Currently, you can’t change the default model for Codex cloud chats.” Rollout caveat: entitlement varies by account, and on CLI 0.153.4+ an account outside the rollout carries a bundled default it cannot yet serve – pin a model in config.toml (or pass -m) for deterministic selection; since v0.156.1 the docs’ own example is model = "gpt-6-sol". Astra Fast-mode billing is documented even though the models page lists no Fast tier: the Codex speed docs put it at 2.5x Standard credits with ChatGPT sign-in (“where available”), and the API pricing page carries Fast-mode rates at exactly 2x the applicable Standard rates ($20/$100 per MTok short-context, $40/$150 long-context). The “2x speed” half of v0.153.2’s catalog string remains catalog display text only – the speed page states no speed multiplier for Astra.145146147148 Superseded in part, September 23, 2026: the models docs no longer describe Astra as the recommended Codex model. Their “Recommended models” section now leads with GPT-6 Sol and Luna, reserves Astra for “the hardest end-to-end work,” marks Astra unavailable for Codex cloud, and gives Astra’s starting effort as Light (low), which matches the bundled catalog. Astra remains the bundled CLI default when no model is configured.171 Superseded September 29, 2026: v0.159.1 makes GPT-6.1 Sol the bundled default and moves Astra to second in the picker, and the models docs now recommend GPT-6.1 Sol for complex coding while keeping Astra for the hardest end-to-end work; the docs’ configuration examples now use gpt-6.1-sol.178

Power presets under Astra (docs addition, on or before September 6, 2026): the Codex models docs’ model-picker passage now maps the picker’s Power options onto GPT-6-Astra reasoning tiers – the first docs mapping of the Power presets onto Astra – in a paragraph absent at 146’s September 5 re-access and confirmed live September 7. Verbatim: “For eligible Pro, Business ($100), and Enterprise accounts, the Astra rollout updates the Power options to Terra Light, Sol Light, Sol Medium, Astra Light, Astra Medium, and Astra Extra High. Options can differ by plan and rollout stage.” The preceding docs sentence notes the picker illustrations still show GPT-5.6 controls. Read alongside the models table above: “Power” has meant GPT-5.6 Sol at medium reasoning; on an entitled account the same preset ladder now spans Terra, Sol, and Astra at fixed reasoning levels, and the options remain plan- and rollout-dependent. The paragraph is unchanged verbatim at the September 15, 2026 re-access.146 Updated September 23, 2026: after the GPT-6 Sol and Luna launch the docs list the six Power presets as “Luna High, Sol Light (the starting preset), Sol Medium, Astra Light, Astra Medium, and Astra Extra High,” note that some paid plans omit Astra Extra High, and suggest starting at Medium for Sol, High for Luna, and Light (low) for Astra.171

Experimental cross-context notes (Astra, docs-published, opt-in): the Codex models docs page carries a section headed “Experimental context management,” verbatim: “On supported Codex clients, users signed in with ChatGPT Plus or Pro can opt in to experimental context management. Astra keeps notes across context windows and can search earlier messages and tool results from the same task. This experiment is off by default and isn’t available with Business, Enterprise, or API-key sign-in at launch.” The opt-in mechanism, verbatim: “To opt in, set features.context_management.experimental_mode = true in your config.toml, then start a new task.” That is the same features.context_management.experimental_mode surface v0.153.0 shipped (see Context Management) – the docs page now ties it to Astra by name and to Plus and Pro sign-in, where the v0.153.0 release notes had named eligible Plus, Pro, and Pro Lite sessions. v0.154.0 tightens the code side: eligibility for the experiment is now gated by the active model’s capabilities at session startup (#43147). The docs section is unchanged verbatim at the September 15, 2026 re-access. Experimental and off by default; expect the behavior and eligibility to change.140146152 v0.157.0: the bundled model catalog no longer marks GPT-6-Astra, or any other bundled model, as supporting experimental context (#47397), and the CLI turns the experiment on only for a model marked that way. With the bundled catalog, then, the opt-in has no effect; whether the catalog served to signed-in accounts differs is not documented. The models docs still described the opt-in on September 26, 2026.174 September 29, 2026: the models page no longer carries the section, the config reference describes features.context_management.experimental_mode as “Experimental context-management setting. The feature is not currently available,” and GPT-6.1 Sol is not marked as supporting it either.178

Model Selection Flowchart

Is this a quick fix, extraction, or other well-defined repeatable task?
├─ Yes → gpt-6-luna (most efficient; docs suggest starting at High)
└─ No
   ├─ Do you need real-time pairing speed?
   │  ├─ Yes → gpt-5.3-codex-spark (near-instant, Pro only)
   │  └─ No
   │     ├─ Hardest end-to-end work across many steps and tools?
   │     │  ├─ Yes → gpt-6-astra (strongest; most expensive)
   │     │  └─ No → gpt-6.1-sol (near-Astra at lower cost; default since v0.159.1)
   └─ GPT-6.1 Sol not yet available on your account? → gpt-6-sol, then gpt-5.6-sol

Reasoning Effort

Control how much the model “thinks” before responding:

Level Behavior When to Use
minimal Minimal reasoning (GPT-5 models only) Trivial tasks, quick lookups
low Brief reasoning Standard coding tasks, formatting
medium Balanced (default) Most development work
high Extended reasoning Complex bugs, architecture
xhigh Maximum reasoning Security audits, deep analysis
persistent Model-advertised persistent reasoning (v0.151.0); shown as “Persistent” in the TUI, preserved in local config while the Responses API receives the disabled wire value Long-lived proactive sessions where the model paces its own follow-ups
max / ultra Top rungs of Astra’s documented six-level ladder, above xhigh; exposed in the SDKs since v0.149.0 and added to the Python SDK at 0.154.0 (#39662); the models docs describe Ultra as maximum reasoning with automatic task delegation The hardest problems, on models that support them120153

Supported levels are model-dependent. minimal is only available for GPT-5 models. Not all models support every level.

persistent details (v0.151.0): turns running at persistent effort default the current-time reminder and the interruptible clock.sleep tool on (explicit features.current_time_reminder settings and managed requirements are preserved), and ship bundled proactivity and follow-up guidance that model metadata can override or disable via persistent_instructions.135

codex -c model_reasoning_effort="xhigh" "find the race condition"

Expert tip: xhigh reasoning can use 3-5x more tokens than medium for the same prompt. Reserve it for genuinely hard problems where the extra thinking pays off.

TUI quick reasoning controls (v0.124.0+).85 In an interactive TUI session, Alt+, lowers reasoning one step and Alt+. raises it one step — useful when a hard problem mid-session warrants a temporary medium → high → xhigh ramp without /effort or -c. When you accept a model upgrade mid-session, reasoning resets to the new model’s default rather than carrying the prior level over.

Model Switching

Switch models mid-session with the /model slash command, or set per-run via --model / -m:

codex -m gpt-5.3-codex-spark "pair with me on this component"

What Does Codex Cost?

See also Model Selection for capabilities and Decision Frameworks for choosing the right model per task.

Access via ChatGPT Plans

Codex availability depends on your ChatGPT plan and organization settings:51

Plan Price Codex Access Rate Limits (5-hour window)
Free / Go $0 / $8 GPT-6 Luna at Standard speed in the desktop app, subject to rollout171 Low
Plus $20/mo Local CLI + cloud tasks; GPT-6.1 Sol, GPT-6 Sol, and Luna Per-model bands, e.g. GPT-6.1 Sol 15-160 msgs, GPT-6 Sol 15-150, GPT-6 Luna 350-3,000, GPT-6 Astra 5-45162171178
Pro From $100/mo (5x) or $200/mo (20x) Priority processing, GPT-5.3-Codex-Spark Per-model bands, e.g. GPT-6 Sol 70-700 (5x) / 300-3,000 (20x) msgs, GPT-6 Astra 25-225 / 100-900162171
Business $25/user/mo ($20 annual) Standard seat includes Codex + ChatGPT, SAML SSO Rate-limited per plan
Business (Codex-only seat) Pay-as-you-go Token-based billing, no fixed seat fee, no rate limits Token-based
Enterprise / Edu Contact sales Custom allocation, admin controls, audit logs, Codex-only seats available Scales with contract
API Key Usage-based CLI, SDK, IDE only (no cloud features) Token-based

April 2026 pricing update: Business annual pricing dropped from $25 to $20/seat/mo. Codex-only seats with pay-as-you-go pricing are now available for Business and Enterprise workspaces — no fixed seat fee, billed on token consumption.79 The pricing page now publishes limits as per-model bands (see the table above) rather than the promotional 2x multipliers from the February 2026 Desktop App launch.16162

May 2026 usage limit boost (expired May 31, 2026): Codex on the Plus plan ran at a 25× 5-hour limit (vs the standard 20× boost), and the $100/month tier was doubled for the same window.89

Rate-limit UX in the TUI (v0.152.0-v0.153.0): hitting a limit is no longer a dead end. v0.152.0 renders actionable rate-limit banners above the composer – check usage, manage credits, reset limits, notify the workspace owner, and manage plans – filtered to the authenticated account and user; usage refreshes after limit errors, and when the banner instructs it, Codex switches to the first available fallback model without changing unrelated thread settings.138 v0.153.0 adds earlier warnings for Plus and Team plans: a warning fires when less than half of the allowance remains in an approximately five-hour usage window, while other plans and window lengths keep the existing 75%, 90%, and 95% thresholds.140

Credit Costs

Codex operations consume credits from your plan allocation:

Model Credits / 1M input tokens Cached / Output Notes
GPT-6 Astra 250 25 / 1,250 Strongest and most expensive current model; for the hardest end-to-end work171
GPT-6.1 Sol 50 2.5 / 250 Near-Astra performance at a lower cost; the docs’ pick for complex coding and the bundled default since v0.159.1178
GPT-6 Sol 50 5 / 250 Previous-generation Sol; half the GPT-5.6 Sol promotional rate171
GPT-6 Luna 2.5 0.25 / 12.5 Focused, high-volume tasks; the cheapest current model171
GPT-5.6 Sol 100 10 / 500 Previous-generation Sol; August 21 promotional cut (was 125 / 12.5 / 750), through at least November 21, 2026; Codex cloud chats on ChatGPT plans use it162121171
GPT-5.6 Terra 50 5 / 300 Previous-generation everyday model162
GPT-5.6 Luna 5 0.5 / 30 Previous-generation fast tier162

The rates are for Standard speed, and the pricing page says GPT-5.6 Sol, Terra, and Luna rates “remain unchanged” after the GPT-6 launch. In practice, “GPT-5.6 usage averages 5-30 credits per message” (the page said 5-40 at the August access); Fast mode costs 2.5x the Standard credit rate for GPT-6.1 Sol and GPT-6 Astra, Sol, and Luna “where available,” and the bundled catalog makes Fast the default tier for GPT-6 Sol and Luna (not GPT-6.1 Sol) in the TUI unless you set service_tier, so check /fast status if credits drain faster than expected. Image generation burns included limits 3-5x faster than comparable text-only turns.162171178

Enterprise and Edu plans scale credits with contract allocation. Check /status in the TUI for current usage.

API Billing

When using Codex through the API, OpenAI bills usage per token under standard OpenAI API pricing for the selected model (plus any applicable prompt-caching discounts). Current API rates per 1M tokens: GPT-6.1 Sol $2 input / $10 output ($0.10 cached input), GPT-6 Sol $2 / $10, GPT-6 Luna $0.10 / $0.50, GPT-6 Astra $10 / $50; for all four, prompts above 272K input tokens cost 2x input and 1.5x output for the full request, and Fast mode costs 2x.146171178 ChatGPT credit multipliers do not apply to API-key sign-in. Check the official API pricing page for current rates.20

Cost Optimization Strategies

  1. Use profiles: Create a fast profile with gpt-6-luna and model_reasoning_effort = "low" for routine tasks
  2. Reserve high reasoning: Only use xhigh for genuinely hard problems, as it costs 3-5x more tokens
  3. Use --ephemeral: Skip session persistence in CI/CD to reduce overhead
  4. Minimize reasoning summaries: Set model_reasoning_summary = "none" when you don’t need explanations
  5. Batch with exec mode: codex exec avoids TUI overhead for automation workflows
  6. Monitor usage: Check /status in the TUI and your org billing dashboards — as of v0.148.0, /status, status lines, and terminal titles show estimated thread credits or cost for eligible workspaces118

Real-World Cost Examples

Representative API costs for common tasks (a mid-2026 gpt-5.3-codex pricing snapshot, medium reasoning — the relative sizes transfer across models):

Task Input Tokens Output Tokens Approx. Cost
Explain a 500-line module ~15K ~2K ~$0.25
Fix a failing test (1-2 files) ~30K ~5K ~$0.50
Add a new API endpoint with tests ~60K ~15K ~$1.10
Refactor auth module (10 files) ~120K ~30K ~$2.25
Full repo audit via codex exec ~200K ~20K ~$3.00
Cloud task: triage 20 open issues ~250K ~40K ~$4.50

Costs vary by reasoning effort, caching, and conversation length. Use gpt-5.6-luna for routine tasks to cut routine-task spend substantially. Cached input tokens are billed at a discount.

Hidden Token Overhead

Every tool call adds tokens beyond your visible prompt:

Overhead Source Approx. Cost
System prompt + AGENTS.md ~2-5K tokens per turn (loaded once, cached thereafter)
Tool definitions ~500 tokens per registered tool
File reads (@file) Full file content tokens
MCP tool definitions ~200-500 tokens per connected server
Reasoning traces Variable; xhigh can add 3-5x overhead

Expert tip: Monitor your actual usage via /status in the TUI. The token count includes all overhead, not just your visible messages. If costs surprise you, check how many MCP servers are connected — each adds tool definitions to every API call.

Team Cost Management

Team Size Recommended Config Expected Monthly Cost
Solo developer Default model, medium reasoning $20-80
Small team (3-5) Profiles (fast/careful), code reviews via codex exec $200-500
Medium team (10-20) Enterprise plan, requirements.toml limits, CI integration $1,000-3,000
Large org (50+) Enterprise with admin controls, audit logging, allocated budgets Custom pricing

Strategies for team cost control:

  • Set requirements.toml to enforce model and reasoning effort limits organization-wide
  • Use gpt-5.6-luna for CI/CD — automated pipelines rarely need maximum reasoning
  • Profile-based budgeting — define ci, review, and dev profiles with appropriate cost ceilings
  • Monitor via OpenTelemetry — enterprise deployments can export usage telemetry to existing observability stacks

Decision Frameworks

When to Use Each Surface

Scenario Best Surface Why
Quick bug fix CLI Fast, focused, scriptable
Multi-file refactor CLI or App CLI for deterministic patches; App for visual diff review
Exploring unfamiliar code CLI Terminal composability, grep/find integration
Parallel workstreams Desktop App Worktree isolation, multi-task management
Active file editing IDE Extension Inline edits, tight compile-test loop
Long-running migration Cloud Runs independently, creates PR when done
CI/CD automation codex exec Non-interactive, JSON output, scriptable
Code review CLI or App /review command with presets
Team onboarding Desktop App Visual, guided, less terminal knowledge needed

When to Use Each Sandbox Mode

Scenario Mode Approval Why
Exploring unknown code read-only on-request Maximum safety, can’t break anything (untrusted retired in v0.149.0)
Daily development workspace-write on-request Good balance of speed and safety
Trusted automation workspace-write never Fast, uninterrupted, sandboxed
System administration danger-full-access on-request Needs full access; with no sandbox boundary left, on-request rarely prompts123
CI/CD pipeline workspace-write never Automated, sandboxed to workspace

When to Use Each Reasoning Level

Task Type Reasoning Model Profile
Formatting, linting low gpt-6-luna fast
Standard coding medium gpt-6.1-sol default
Complex debugging high gpt-6.1-sol or gpt-6-astra careful
Security audit xhigh gpt-6-astra careful
Rapid prototyping low gpt-5.3-codex-spark fast
Migration/refactor medium-high gpt-6.1-sol or gpt-6-astra default

Plan Mode vs Direct Execution

Will Codex need to change more than 3 files?
│
├── YES → Use Plan Mode (/plan)
│         Codex designs the approach BEFORE making changes.
│         You review and approve the plan.
│         Best for: refactors, new features, migrations
│
└── NO → Is the change well-defined?
         │
         ├── YES → Direct execution
         │         Just describe the task. Codex executes immediately.
         │         Best for: bug fixes, small features, test additions
         │
         └── NO → Use Plan Mode (/plan)
                  Let Codex explore and propose an approach first.
                  Best for: unfamiliar codebases, ambiguous requirements

Steer Mode: Enter vs Tab

Situation Use Enter Use Tab
Codex is about to make a mistake Send correction immediately
You have a follow-up task Queue it for after current work
Codex picked the wrong file Send redirect immediately
You want to add scope Queue the addition
Urgent priority change Send new priority immediately
Non-critical context Queue it — no rush

Rule of thumb: Enter = “stop, listen to this now.” Tab = “when you’re done, also do this.”

Desktop App vs CLI

How do you prefer to work?
│
├── Terminal-first → Use CLI
│   │
│   ├── Single focused task → codex (interactive TUI)
│   ├── Scripted automation → codex exec (non-interactive)
│   └── Quick one-shot → codex exec "prompt" -o result.txt
│
└── Visual/multi-project → Use Desktop App
    │
    ├── Multiple parallel tasks → Multi-thread with worktree isolation
    ├── Visual diff review → Built-in Git diff viewer
    ├── Scheduled automation → Automations tab
    └── Voice-driven → Ctrl+M for voice dictation
Capability CLI Desktop App
Interactive sessions Yes Yes
Parallel agents Manual (multiple terminals) Built-in (worktree isolation)
Diff review /diff (text) Visual inline diffs
Automations Cron + codex exec GUI scheduler
Voice input Yes: /voice live conversations, on by default with an F8 toggle (v0.156.0; experimental and opt-in in v0.155.0)156169 Yes (Ctrl+M)
CI/CD integration codex exec + GitHub Action No
Session sync Yes Yes (shared with CLI)

Which Profile?

Match your task to a pre-configured profile:

Task Type Profile Key Settings
Quick questions, formatting fast model = "gpt-6-luna", model_reasoning_effort = "low"
Daily development (default) model = "gpt-6.1-sol", model_reasoning_effort = "medium"
Architecture, security careful model = "gpt-6-astra", model_reasoning_effort = "xhigh"
Real-time pairing pair model = "gpt-5.3-codex-spark", model_reasoning_effort = "high"
CI/CD automation ci model = "gpt-6-luna", model_reasoning_effort = "low", sandbox_mode = "workspace-write"

Profile files (one per preset, in ~/.codex/; the legacy single-file profile = "default" + [profiles.*] layout is not read since 0.134.0122):

# ~/.codex/fast.config.toml
model = "gpt-6-luna"
# GPT-6 Sol/Luna start on the Fast tier (2.5x credits) unless service_tier is set; check /fast status
model_reasoning_effort = "low"
# ~/.codex/careful.config.toml
model = "gpt-6-astra"
model_reasoning_effort = "xhigh"
# ~/.codex/pair.config.toml
model = "gpt-5.3-codex-spark"
model_reasoning_effort = "high"
# ~/.codex/ci.config.toml
model = "gpt-6-luna"
# GPT-6 Sol/Luna start on the Fast tier (2.5x credits) unless service_tier is set; check /fast status
model_reasoning_effort = "low"
sandbox_mode = "workspace-write"

Switch profiles per-session: codex --profile careful


How Does the Sandbox & Approval System Work?

Codex uses a two-layer security model that separates what is technically possible from when Codex asks for human approval. The approach differs fundamentally from Claude Code’s permission system — Codex enforces restrictions at the OS kernel level.5 See also Enterprise Deployment for requirements.toml constraints that administrators enforce organization-wide.

v0.148.0 hardening: sandbox restrictions now fail closed — a denied or unreadable path is treated as blocked instead of silently allowed — on both Linux and Windows.118

Layer 1: Sandbox (What Is Possible)

The sandbox controls filesystem and network access using OS-native mechanisms:

Mode File Access Network Implementation
read-only Read only everywhere Blocked Strictest; mutations need explicit approval
workspace-write Reads machine-wide on macOS (the Seatbelt profile allows file-read* unless unreadable roots are configured); writes in workspace + /tmp193 Blocked by default Normal development; safe default
danger-full-access Full machine access Enabled Maximum capability; use with caution (denylist-only variant removed in v0.121.0 — now binary on/off)82

Platform-specific enforcement:

  • macOS: Apple’s Seatbelt framework via sandbox-exec with mode-specific profiles compiled at runtime and enforced by the kernel6. As of v0.121.0, macOS sandbox profiles can allowlist specific Unix sockets (e.g., docker.sock, editor IPC sockets) and private DNS resolution is no longer blocked by default.82
  • Linux: Landlock for filesystem restrictions + seccomp for syscall filtering. A standalone helper process (codex-linux-sandbox) provides defense-in-depth isolation.5 Bubblewrap (bwrap) is vendored and compiled as part of the Linux build (promoted from optional in v0.100.0)7. v0.117.0 improved sandbox reliability on older distros with legacy kernel configurations.75 v0.129.0 hardened sandbox startup on Linux and bumped vendored Bubblewrap to 0.11.2 with upstream security patches; v0.130.0 added further startup hardening.8991
  • Windows: Native sandbox with restricted tokens (promoted from experimental in v0.100.0). WSL also supported (inherits Linux Landlock + seccomp). v0.117.0 includes restricted-token sandbox improvements for better process isolation.75 v0.130.0 grants sandbox users access to the desktop runtime binary cache so that the Windows sandbox can resolve runtime binaries reliably for workspace-sandbox users.91

Why this matters: Unlike container-based sandboxing (Docker), OS-level sandboxing is faster, lighter, and harder to escape. The kernel enforces restrictions before Codex even sees the system call.

Security fixes:

  • zsh-fork sandbox bypass (v0.106.0): Fixed a vulnerability where shell execution via zsh forking could bypass sandbox restrictions.60 If you are on an earlier version, upgrade immediately.
  • Input size cap (v0.106.0): Codex now enforces an approximately 1-million-character input cap to prevent hangs from excessively large payloads.60
  • Secure devcontainer profile (v0.121.0): A new hardened customer profile for Docker devcontainers uses Bubblewrap for sandboxing inside the container. WSL2 is supported; WSL1 is explicitly rejected (Bubblewrap is incompatible with WSL1’s kernel shim).82
  • Guardian review + hooks (v0.121.0): Hooks are disabled during Guardian review sessions so pre/post-tool hooks cannot interfere with the Guardian subagent’s decisions.82 If you rely on hooks for logging or validation, be aware that a Guardian review skips them — fall back on app-server observability if you need a full audit trail.
  • Linux /dev filesystem (v0.105.0): Sandboxed commands on Linux now receive a minimal /dev filesystem, improving compatibility with tools that expect device nodes.61

ReadOnlyAccess policy (v0.100.0+): A configurable policy shape for granular read access control. Use it to restrict which directories Codex can read from, even in workspace-write mode:

[sandbox_workspace_write]
read_only_access = ["/etc", "/usr/local/share"]  # Only these paths readable outside workspace

Layer 2: Approval Policy (When To Ask)

The approval policy determines when Codex pauses to ask for human confirmation:

Policy Behavior Use Case
untrusted Auto-runs safe reads; prompts for everything else Retired in v0.149.0 — use on-request; configs naming it should migrate120
on-request Approves within sandbox; prompts for boundary violations Default; good balance
never No prompts whatsoever CI/CD, trusted automation

on-failure still appears in some older examples and compatibility paths, but current OpenAI configuration docs mark it deprecated. Prefer on-request for interactive runs and never for non-interactive runs that already have an external safety boundary.87

As of v0.150.0 you can bind a keyboard shortcut that cycles permission modes from the composer – configure it via /keymap.132

Distinct Approval IDs (v0.104.0+)

Codex now assigns distinct approval IDs to each command within a multi-step shell execution. This means approvals are granular — approving one command in a sequence doesn’t automatically approve subsequent ones in the same shell invocation.49

Flexible Approval Controls (v0.105.0+)

The approval flow now supports extra sandbox permissions and granular rejection:61

  • Extra sandbox permissions: When a command needs access beyond the current sandbox mode, Codex can request specific additional permissions rather than requiring a full mode change
  • Granular rejection: Reject individual tool calls with feedback so Codex can adjust its approach rather than simply re-attempting the same command

Runtime Permission Requests (v0.113.0+)

Codex now includes a built-in request_permissions tool that allows the model to request additional permissions at runtime.69 When the model encounters a task requiring elevated access, it can formally request specific permissions (filesystem paths, network access, etc.) through the TUI approval flow rather than failing silently or requiring the user to restart with different flags.

App Approval Mode writes (v0.144.0+)

Apps and connectors gain a middle approval tier: the writes app-approval mode lets an app’s declared read-only actions run without prompting while still pausing for anything that writes.107 Before this, app approvals were closer to all-or-nothing; writes matches the trust shape most operators actually want for integrations — free to look, ask to touch.

Automatically Reviewed Approvals: --approve-for-me (v0.147.0+)

The new --approve-for-me CLI flag turns approval prompts into automatically reviewed approvals: instead of interrupting you, each request is adjudicated by a review pass and approved or refused on your behalf.116 This sits between “approve everything” (the posture --full-auto used to encourage, now removed) and “interrupt for everything” — the prompts still exist as decision points, but a reviewer answers them. Pair it with the v0.146.1 safer auto-review defaults for cyber-capable models, which this flag inherits. Treat it like any delegation of authority: right for long unattended runs where interruption means a stall, wrong for sessions touching credentials or production state where you want to be the reviewer.

Approval for Escalated Terminal Input (v0.151.0; on by default since v0.158.0)

The write_stdin_approval feature flag – off by default when it arrived in v0.151.0, on by default since v0.158.0 – requires a fresh approval before non-empty input is sent to an escalated unified-exec terminal. These reviews route through hooks, Guardian, the app server, and the TUI as writeStdin approvals; the terminal’s environment, launch directory, and escalation state persist across turns, and the process identity is revalidated after approval before any bytes are written. The fully formatted action and approval reason must fit within 8,000 bytes – oversized or truncated actions are rejected before approval is requested or anything reaches the terminal.135 v0.158.0 turns the flag on (#47799) and stops runtime-only grants, such as those plugins use for metrics, from triggering a review, while extra agent permissions, sandbox bypasses, and policy changes since launch still do (#48073). To turn it off: set write_stdin_approval = false under [features] in config.toml.176

Permission Profiles (v0.113.0+, expanded in v0.128.0 and v0.133.0)

Permission profiles split filesystem and network sandbox policies into named, reusable sections. Set default_permissions to a built-in profile such as :read-only, :workspace, or point it at a custom [permissions.<name>] table.87 v0.133.0 promotes profiles as a managed surface: list APIs expose available profile metadata, profiles can inherit from one another, managed requirements.toml can declare permission requirements, active profiles refresh at runtime, and Windows sandbox setup now consumes the resolved profile rather than a separate ad hoc policy.98

default_permissions = "project-safe"

[permissions.project-safe.filesystem]
"/usr/local" = "read"
glob_scan_max_depth = 3

[permissions.project-safe.filesystem.":project_roots"]
"." = "write"
"**/*.env" = "none"

[permissions.project-safe.network]
enabled = true
mode = "limited"

[permissions.project-safe.network.domains]
"api.github.com" = "allow"
"registry.npmjs.org" = "allow"

Use none for sensitive files and globs that should be unreadable even when the project root is writable. For one-off command exceptions, prefer rules over broadly expanding a profile.87

v0.151.0: restored app-server threads keep their permission profiles instead of being flattened into legacy per-turn sandbox overrides – profiles survive turn routing and compatible /cd directory changes, and a /cd that cannot represent the restored profile safely as a legacy sandbox mode is rejected rather than silently weakening restrictions.134

Legacy --full-auto Guidance

Older guides described --full-auto as a convenience alias for:

codex --sandbox workspace-write --ask-for-approval on-request

In v0.128.0, release notes mark --full-auto deprecated, and current CLI help no longer lists it for interactive runs. Use the explicit flags above or a named permissions profile instead.86

v0.147.0 completes the removal: codex exec --full-auto is gone. A script still passing the flag now errors rather than running. The migration is mechanical — replace it with --sandbox workspace-write (plus an approval flag or profile if your old invocation relied on --full-auto’s approval behavior). Audit any automation that shells out to codex exec before upgrading: the failure shows up as a broken pipeline, not a deprecation warning.116

Sandbox reliability (v0.129.0): Linux sandbox startup hardening reduces races on slow filesystems or symlinked checkouts; Windows sandbox reliability improvements address several edge-case crashes during long-running runs; and the vendored Bubblewrap is bumped to 0.11.2 with upstream security patches. No config changes required. Run codex update to pick these up.89

Daily development (safe default):

sandbox_mode = "workspace-write"
approval_policy = "on-request"

Power user (full access, human-in-the-loop):

sandbox_mode = "danger-full-access"
approval_policy = "on-request"   # `untrusted` retired in v0.149.0

Community write-ups recommend the pairing as a “sweet spot”8; understand what it actually does before repeating the advice: approval prompts fire when a command needs to leave the sandbox or reach the network, and danger-full-access removes both boundaries, so on-request has almost nothing left to escalate. It is maximum capability with minimal asking, not maximum capability with a human check on every command; if you want the latter, keep workspace-write and let the sandbox boundary do the prompting.123

CI/CD automation:

sandbox_mode = "workspace-write"
approval_policy = "never"

Smart Approvals with Guardian Subagent (v0.115.0+)

Smart Approvals can route review requests through a guardian subagent instead of requiring human approval for every action. The guardian session persists across approvals to reuse prompt cache and avoid startup overhead. Each review gets a clean history (prior decisions don’t leak into later reviews).73

Configure the reviewer in config.toml:

approvals_reviewer = "guardian_subagent"   # "user" (default) or "guardian_subagent"

This is particularly useful for CI/CD workflows where you want automated review with reasoning rather than blanket approval_policy = "never".

Guardian v2 defaults flipped (v0.151.0): Guardian v2 now defaults to computer-use reviews with images. features.guardianv2.review_scope.computer_use_only defaults to true – set it to false to retain the broader tool review scope – and features.guardianv2.transcript.include_images defaults to true – set it to false to keep images out of Guardian transcripts. Both shipped as configurable, default-off surfaces in v0.150.0; v0.151.0 is where the defaults turned on.135

Guardian scope follows the approval mode (v0.153.0): two modes now skip Guardian work that cannot change the outcome. In Full Access (which already combines approvalPolicy: "never" with unrestricted permissions), confirmation-only Guardian and MCP requests are approved without synchronous review, sampler prewarming, or background scoring – pending, failed, or restricted environments are not treated as Full Access, and the active permission state is re-evaluated each turn so an existing thread can enter or leave Full Access safely. In User approval mode (approvals_reviewer = "user"), Guardian prewarming and asynchronous scoring are skipped and ordinary node_repl.js execution confirmations are accepted automatically, while sensitive-action checks and requests for user input keep their existing behavior.140 This narrows when Guardian runs, not the human approval layer: the prompting behavior this guide describes for danger-full-access under on-request is approval policy, a separate mechanism. v0.152.1 additionally lets Guardian approval review source its Node REPL policy from model metadata (auto_review.node_repl_policy), falling back to the bundled policy when the field is absent.139

Guardian computer-use scoring honors model requirements (v0.153.1): computer-use-only Guardian scoring and fast approval decisions now run only when the active model sets node_repl_auto_review_required in its metadata, and prior or in-flight scores are invalidated when a model switch skips scoring – so switching back to a reviewed model cannot revive a stale approval decision. This is the headline of the v0.153.1 patch, and it is unlisted in the release body: #42422 (a cherry-pick of 38ba8cdc) is provable only via the rust-v0.153.0…rust-v0.153.1 compare.142

Guardian parent-compaction reuse is on by default (v0.156.0): #46522 promotes guardian_reuse_parent_compaction to a stable feature and enables it by default, which lets Guardian reuse the parent thread’s encrypted compaction when it restarts a review session. Per the PR’s tests, cached review sessions are still invalidated when the parent history changes. To restore the previous behavior: set guardian_reuse_parent_compaction = false under [features] in config.toml, or run codex features disable guardian_reuse_parent_compaction.169171

Guardian thread context is on by default (v0.157.0): #47275 promotes guardianv2.thread_context to stable and enables it for synchronous and asynchronous Guardian reviews, so reviews use thread-owned context. It is independent of the Guardian v2 enabled toggle. In v0.157.0 you could turn it off with thread_context = false under [features.guardianv2]; v0.158.0 removed that option.174

Guardian thread context is always on (v0.158.0): #47686 and #47689 make thread-owned context unconditional for Guardian session capture and subagent history forks. Codex ignores thread_context under [features.guardianv2], including profile overrides and managed requirements, and shows a deprecation notice asking you to remove it from config.toml. There is no replacement off-switch.176

Guardian can read earlier user messages (v0.160.0, opt-in): the transcript Guardian reviews can omit an earlier instruction, restriction, or revoked permission. With guardian_conversation_history_tools = true under [features] and Apps enabled, the reviewer gets two tools, user_message.search_messages and user_message.read_messages, served through the parent session’s own Apps connection and identity. Each call rechecks the parent’s current app and tool policy and fails closed on a disabled tool or one that needs approval. Two [auto_review] keys tune it: conversation_history_max_output_tokens caps each response (an estimated 4,000 tokens by default; stricter parent limits still apply), and experimental_conversation_history_prompt replaces the built-in retrieval instructions (blank uses the default). A second opt-in flag, guardian_root_handoff_context, narrows the root-conversation evidence for a worker agent’s review to the messages around each handoff to it, plus the latest three. Both flags are under development and off by default; the config reference does not list them yet.182

[features]
guardian_conversation_history_tools = true

[auto_review]
conversation_history_max_output_tokens = 4000

PowerShell classifier tightening (v0.142.2): PowerShell commands containing executable AST regions the safety classifier cannot inspect now require approval instead of slipping through auto-approval — closing a gap where obfuscated or dynamically built PowerShell could evade classification on Windows.105

Dangerous-command detection expanded (v0.144.5): Detection now recognizes more forced rm forms, and rejected commands come back with clearer rejection reasons instead of an opaque denial — useful when you are tuning approval policies and need to know why a command was blocked.110

Enabling Network Access

Codex blocks network access by default in workspace-write mode. Enable it when needed:

# Per-run
codex -c 'sandbox_workspace_write.network_access=true' "install the packages"

# In config.toml
[sandbox_workspace_write]
network_access = true
writable_roots = ["/path/to/extra/dir"]   # Additional writable directories
exclude_slash_tmp = false                  # Prevent /tmp from being writable
exclude_tmpdir_env_var = false             # Prevent $TMPDIR from being writable

WebSocket Proxy Support (v0.104.0+)

For corporate environments that route WebSocket traffic through a proxy, Codex now supports WS_PROXY and WSS_PROXY environment variables:49

export WSS_PROXY="https://proxy.corp.example.com:8443"
codex "update the README"

These complement the existing HTTPS_PROXY and SOCKS5 proxy support (v0.93.0+).

v0.146.0 is the release that made “all transport layers” actually true. Configured proxies are now honored across authentication, plugin downloads, MCP authorization, remote execution, WebSocket connections, HTTP redirects, and LM Studio connections — seven paths that the changelog lists as previously ignoring the proxy.114 If you ran Codex behind a corporate proxy before v0.146.0 and saw logins or plugin installs fail while ordinary model calls worked, that gap is the likely explanation.

System proxy on macOS (v0.142.2+): with respect_system_proxy enabled, macOS authentication clients honor the system proxy, PAC, and WPAD settings — so corporate Macs that push proxy config via profiles no longer need per-shell proxy env vars for auth traffic.105 As of v0.143.0 this extends to Windows and to Responses API traffic: Codex routes both authentication and Responses API calls through the macOS or Windows system proxy, including PAC and WPAD autoconfiguration, closing the last gap for locked-down corporate networks on either OS.106

Testing the Sandbox

Verify sandbox behavior before trusting it:

codex sandbox macos --permissions-profile :workspace -- ls /etc/passwd   # macOS test
codex sandbox linux --permissions-profile :workspace -- cat /etc/shadow  # Linux test

If the sandbox is working correctly, both commands should fail with a permission denied error under a workspace-scoped profile. If either command succeeds, your sandbox configuration needs investigation.


How Does AGENTS.md Work?

AGENTS.md is Codex’s project instruction system — an open standard9 now governed by the Linux Foundation’s Agentic AI Foundation. Supported by Codex, Cursor, Copilot, Amp, Jules (Google), Gemini CLI, Windsurf, Cline, Aider, Zed, Factory, RooCode, and 60,000+ open source projects. It defines how Codex behaves within a specific repository or directory. See Skills for reusable expertise packages that complement AGENTS.md.

Discovery Hierarchy

Codex builds an instruction chain at session start by walking the directory tree:

  1. Global (~/.codex/): AGENTS.override.md > AGENTS.md
  2. Project (git root to current directory): Each level checked for AGENTS.override.md > AGENTS.md > fallback filenames
  3. Merging: Files concatenate root-down; closer files appear later in the prompt and override earlier guidance
~/.codex/AGENTS.md                     ← Global defaults
  └─ /repo/AGENTS.md                   ← Project-wide rules
      └─ /repo/services/AGENTS.md      ← Service-specific rules
          └─ /repo/services/payments/
               AGENTS.override.md      ← Overrides everything above for this dir

Untrusted projects skip project AGENTS.md (v0.150.0): the walk above assumes the project is trusted. Since v0.150.0, “Untrusted projects no longer supply project-level AGENTS.md instructions, and managed deny-read rules remain enforced after permission changes” – project-scoped discovery is skipped while user-level ~/.codex/AGENTS.md instructions are preserved, so an untrusted checkout cannot inject an operating contract before you trust it.132

Desktop multi-folder projects (26.715, July 23, 2026): The walk above describes the CLI, which resolves everything relative to the current working directory. The ChatGPT desktop app now lets a local project span several related folders, and it resolves discovery against exactly one of them: “New chats, Git operations, and automatic discovery of AGENTS.md, skills, and config.toml use the primary folder. Secondary folders remain available for file search, reading, and editing.” You choose which folder is primary from the project’s menu via Edit project.113

That single setting governs three of Codex’s five core systems at once — instructions, skills, and configuration all follow the primary folder. Practically: an AGENTS.md in a secondary folder is a file Codex can open, not an operating contract it loads. If the repo carrying your rules is the one you attached second, either promote it to primary or restate those rules in the primary folder’s AGENTS.md; the same applies to repository skill folders you expected to be picked up. Nothing about the CLI’s directory walk changed — this is desktop-app project scoping.

What Makes a Great AGENTS.md

Based on direct guidance from Codex itself and community patterns10:

DO:

  • Be specific: "Use rg --files for discovery" beats "search efficiently"
  • Define closure: What does “done” mean? (tests pass, lint clean, etc.)
  • Include commands: Build, test, lint, format (exact invocations)
  • Organize by task: Coding, review, release, incident/debug sections
  • Define escalation: What to do when blocked or encountering unexpected state

DON’T:

  • Dump entire style guides without execution rules
  • Use ambiguous directives (“be careful,” “optimize”)
  • Mix contradictory priorities (speed + exhaustive verification + no runtime budget)
  • Write prose documentation (AGENTS.md is operational policy, not README)

Example: Production AGENTS.md

# Repository Guidelines

## Build, Test, and Development Commands

- Run API (dev): `python3 -m uvicorn main:app --reload`
- Install deps: `pip install -r requirements.txt`
- Lint: `python3 -m ruff check .` (auto-fix: `--fix`)
- Format: `python3 -m ruff format .`
- Tests: `python3 -m pytest -v`
- Coverage: `python3 -m pytest --cov=app --cov-report=term-missing`

## Coding Style & Naming Conventions

- Python 3.11+. Type hints on all functions.
- Ruff enforced: 88-char lines, double quotes, spaces for indent.
- Naming: modules `snake_case.py`, classes `PascalCase`, functions `snake_case`.

## Commit & Pull Request Guidelines

- Conventional Commits: `feat:`, `fix:`, `docs:`, `refactor:`, `chore:`, `test:`
- Commits should be small and focused.
- PRs must include: description, test plan, and screenshots for UI changes.

## Security

- Never commit secrets. Use `.env` for local config.
- Validate all external API calls with proper error handling.

Secret Handling in Agent Sessions

Treat Codex-visible history as a security surface, not just source code. Codex release notes document shell snapshotting and environment-variable redaction work, and the memory system scans memory writes for secrets, but those protections do not turn command output, session transcripts, shell snapshots, local logs, or helper scripts into safe places to print credentials.375595

The operating rule is simple: do not print secrets for the model to inspect; keep helper credentials in environment-required config; separate executable source, docs, generated caches, session transcripts, shell snapshots, logs, and intentional secret stores during audits; redact local history when a high-confidence secret shape appears; and promote prevention hooks only after the manual hygiene loop is proven. The public lesson is the surface map and acceptance criteria, not private token values, exact paths, or detector internals.95

The Override Mechanism

AGENTS.override.md at any directory level replaces the normal AGENTS.md for that scope. Use for:

  • Release freezes: “No new features, fixes only”
  • Incident mode: “All changes must be reviewed by on-call”
  • Temporary hardening: “No dependency updates this sprint”

Configuration

# Custom fallback filenames (in addition to AGENTS.md)
project_doc_fallback_filenames = ["TEAM_GUIDE.md", ".agents.md"]

# Increase max size for large instruction files
project_doc_max_bytes = 65536    # 64 KiB (default: 32 KiB)

Scaffold Generation

codex                           # Launch TUI
/init                           # Generate AGENTS.md scaffold

Or verify your instruction chain:

codex --ask-for-approval never "Summarize your current instructions"

Hooks

Codex introduced hooks in v0.99.0 and v0.100.0 under the legacy AfterAgent and AfterToolUse names, added an experimental hooks engine in v0.114.0 with SessionStart and Stop,70 and made hooks stable in v0.124.0 (April 23, 2026).85 The engine shipping in rust-v0.150.0 registers twelve events (HOOK_EVENT_NAMES in codex-rs/hooks/src/lib.rs) – eleven at v0.149.1, with Interrupt added as the twelfth in v0.150.0132 – and the legacy names are gone from the configurable surface: AfterToolUse no longer appears anywhere in the source tree, and AfterAgent survives only as the internal payload name of the legacy notify bridge.124 Hooks run scripts or MCP tools during the agentic loop. Matching hooks from multiple files all run, multiple matching command hooks for one event launch concurrently, and every non-managed hook must be reviewed and trusted before it runs.124 v0.148.0 extends the engine: hooks can run commands asynchronously and can invoke MCP tools – set async = true on a command handler to let it run in the background while Codex continues, or use an mcp_tool handler to reach the same MCP servers the agent uses.118124

Available Hook Events

Event When It Fires Matcher Applies To
SessionStart When a session starts (startup, resume, clear, or compact); plain-text stdout is added as developer context before the first turn source
SessionEnd When the main thread ends: archiving or deleting an open conversation, a normal close, or 30 minutes idle with no connected client; never for subagents; 1-second default timeout, 3-second maximum, always synchronous end reason (currently only other)
UserPromptSubmit Before a user prompt is sent; receives prompt and can block or augment it not supported
PreToolUse Before Bash, apply_patch file edits, MCP tool calls, and other local function tools run; can block or rewrite the call tool_name (Bash; apply_patch, Edit, or Write; MCP names such as mcp__fs__read)
PermissionRequest When Codex is about to ask for approval (shell escalation, managed-network approval); can allow, deny, or defer to the normal prompt; skipped for commands that need no approval tool name
PostToolUse After supported tools produce output, including Bash commands that exit non-zero; cannot undo side effects; supports continue: false tool name
PreCompact Before Codex compacts the chat trigger (manual or auto)
PostCompact After Codex compacts the chat trigger (manual or auto)
SubagentStart When a subagent starts agent_type
SubagentStop When a subagent stops agent_type
Stop When a turn stops (the doc lists it under “During a turn”); stop_hook_active reports whether the turn was already continued by Stop; expects JSON on stdout. Not the session end, which is SessionEnd not supported
Interrupt When an active top-level turn is interrupted (v0.150.0+): “New Interrupt hooks can run commands or MCP handlers when an active top-level turn is interrupted.” Never for subagents; 1-second default timeout, 3-second maximum (the same clamp as SessionEnd), and async handlers are supported132 not supported

Hosted tools such as WebSearch do not pass through the hook path, and some specialized tool paths can opt out; OpenAI’s own framing is “a useful guardrail, not a complete enforcement boundary.”124

Hook Configuration

Hooks are organized in three levels – an event, a matcher group, and one or more handlers – and live either in hooks.json (~/.codex/hooks.json, <repo>/.codex/hooks.json, or a plugin’s hooks/hooks.json) or inline in config.toml and requirements.toml. Project-local hooks load only when the project .codex/ layer is trusted.124 The inline TOML form:

# ~/.codex/config.toml or <repo>/.codex/config.toml
[[hooks.SessionStart]]
matcher = "startup|resume"

[[hooks.SessionStart.hooks]]
type = "command"
command = "python3 ~/.codex/hooks/session_start.py"
additionalContextLimit = 5000

[[hooks.PreToolUse]]
matcher = "^Bash$"

[[hooks.PreToolUse.hooks]]
type = "command"
command = '/usr/bin/python3 "$(git rev-parse --show-toplevel)/.codex/hooks/pre_tool_use_policy.py"'
timeout = 30
statusMessage = "Checking Bash command"

[[hooks.PostToolUse]]
matcher = "^Bash$"

[[hooks.PostToolUse.hooks]]
type = "command"
command = "python3 ~/.codex/hooks/post_tool_use_review.py"
async = true
timeout = 120

Handler fields: type (command or mcp_tool; prompt and agent handlers are parsed but skipped), command, timeout in seconds (600 by default; SessionEnd 1 second, up to 3), statusMessage, additionalContextLimit (how much additionalContext reaches the model before Codex saves the full text to disk and sends a preview), commandWindows (Windows-only override), and async. Commands run with the session cwd as their working directory, so repo-local hooks should resolve paths from git rev-parse --show-toplevel rather than a relative .codex/hooks/... path.124

Review and trust. Codex records trust against each non-managed hook’s current hash; new or changed hooks are marked for review and skipped until trusted. Run /hooks to inspect hook sources, review, trust, or disable individual hooks; when hooks need review at startup, Codex prints a warning pointing at /hooks. Managed hooks from system, MDM, cloud, or requirements.toml sources are trusted by policy and cannot be disabled from the user hook browser. --dangerously-bypass-hook-trust runs enabled hooks without persisted trust for one invocation, for automation that vets hook sources elsewhere.124

The SessionStart hook’s stdout feeds into the model’s context, making it ideal for injecting dynamic information (dates, branch names, environment variables) at session start.

Replicating Claude Code Hook Patterns

Codex uses the same event names as Claude Code for the events it implements, so most hook configs port by moving the JSON into hooks.json and trusting it through /hooks:

Claude Code Pattern Codex Alternative
PreToolUse file blocking PreToolUse hook matched on apply_patch (or Edit/Write) or Bash; return the deny shape to block, or rewrite the call
PostToolUse linting PostToolUse hook matched on Bash or apply_patch running your linter; add async = true to keep it off the critical path
SessionStart context injection SessionStart hook returning additionalContext (plain stdout also works)
Stop notification Stop hook with a notification command (JSON output required)
SubagentStop notification SubagentStop hook, matched on agent_type
PreCompact PreCompact and PostCompact, matched on manual or auto
SessionEnd cleanup SessionEnd hook; 1-second default timeout, 3 maximum, runs synchronously
Async hooks async = true on a command handler (v0.148.0); SessionEnd hooks always run synchronously

Expert tip: New hook events still ship in releases – v0.150.0 added the Interrupt event (132) – so check HOOK_EVENT_NAMES in codex-rs/hooks/src/lib.rs and the Codex changelog for the current list.

In-TUI hook browser (v0.129.0): Run /hooks in the TUI to discover available hooks, see which are currently active, and toggle individual hooks without editing config.toml. Useful when troubleshooting a misbehaving plugin-bundled hook or temporarily disabling a PostToolUse linter for a heads-down editing session.89


What Is MCP (Model Context Protocol)? [EXPERIMENTAL]

MCP extends Codex’s capabilities by connecting to external tools and services. The codex mcp command group is currently marked experimental, and commands and config format may change between releases. Codex supports two transport types: STDIO (local processes) and Streamable HTTP (remote servers).11

v0.121.0 MCP changes: Tools are now registered with a namespace, so tool names in listings appear as <server>:<tool> rather than bare names — update any scripts or prompts that grep against unqualified tool names. A new supports_parallel_tool_calls flag is plumbed through to included MCPs, enabling parallel execution for servers that declare support. Sandbox-state metadata now flows through MCP tool metadata so servers can adapt behavior (e.g., warn if running under a read-only sandbox). The custom codex/sandbox-state request has been removed — use the metadata path instead. Phase 3 of the MCP Apps rollout lands here with tool-call support; flattened deferred tool calls are now supported for servers using the deferred-call pattern.82

v0.142.2 MCP changes (June 25, 2026): MCP tools now use tool search by default when supported — instead of loading every tool definition upfront, Codex discovers tools on demand, improving discovery in tool-heavy setups while staying compatible with older models and providers. Remote stdio MCP servers also accept absolute working directories written in the remote platform’s path format (a Windows-style path from a macOS client, or vice versa).105

v0.147.0 MCP changes (August 7, 2026): Codex adds opt-in support for the MCP 2026-07-28 protocol revision — paginated discovery (large tool catalogs stream in pages instead of one oversized listing), multi-round requests (a server can hold a multi-step exchange within one logical request), and non-blocking server startup, with cached MCP tools exposed before the server finishes starting so a slow server no longer stalls session launch. Opt-in, so servers on the older revision keep working unchanged.116

v0.151.0 MCP changes (August 29, 2026): Optional MCP servers get a configurable startup grace period – mcp_optional_startup_grace_ms (default 1,000 ms) controls how long tool catalog capture waits for optional servers, 0 disables the shared grace so optional servers fall back to their configured startup_timeout_sec, and updated values apply during runtime and MCP configuration refreshes. Extensions can also inspect or replace MCP tool results before they reach the model: ToolLifecycleContributor::on_mcp_tool_result runs before MCP completion is published and before the result is prepared for the model, for successful and error results alike, including through Code Mode.134

v0.152.0 MCP changes (September 1, 2026): Three additive changes. openai/elicitation form requests land: Codex advertises form support when the client declares an object-valued form capability, handles openai/elicitation/create requests, and forwards their metadata and opaque schema through the app server as openaiForm (preserving x-openai-* annotations); legacy openai/form handling stays independent, and the TUI automatically declines form requests it cannot render. Per-tool output limits: each entry under an MCP server’s tools configuration accepts a positive output_token_limit (for example [mcp_servers.context7.tools.search] with output_token_limit = 2000); the most restrictive limit wins when plugin and user policies overlap, and the effective budget is carried in conversation history so tool output, post-tool hook responses, and resumed sessions truncate at the same limit – additive alongside the global tool_output_token_limit. Package-style server names: MCP server names may now contain :, @, /, and . (so npm:@modelcontextprotocol/server-sequential.thinking is a legal name), preserved across mcp add/get/list/remove, runtime tool namespaces, and OAuth credential lookup, with non-bare names quoted in generated config.toml recovery hints.138

Configuring MCP Servers

STDIO servers (local processes):

# In ~/.codex/config.toml or .codex/config.toml

[mcp_servers.context7]
enabled = true
required = true                         # Fail startup if unavailable
command = "npx"
args = ["-y", "@upstash/context7-mcp"]
env = { "MY_VAR" = "value" }            # Static env vars
env_vars = ["PATH", "HOME"]             # Forward host env vars
cwd = "/path/to/project"                # Optional working directory
startup_timeout_sec = 10
tool_timeout_sec = 60
enabled_tools = ["search", "summarize"]  # Tool allowlist
disabled_tools = ["slow-tool"]           # Tool denylist

HTTP servers (remote):

[mcp_servers.figma]
enabled = true
url = "https://mcp.figma.com/mcp"
bearer_token_env_var = "FIGMA_OAUTH_TOKEN"
http_headers = { "X-Figma-Region" = "us-east-1" }
env_http_headers = { "X-Org-Id" = "FIGMA_ORG_ID" }  # Headers from env vars
startup_timeout_sec = 10
tool_timeout_sec = 60

CLI Management

codex mcp add context7 -- npx -y @upstash/context7-mcp
codex mcp add context7 --env API_KEY=... -- npx -y @upstash/context7-mcp   # With env vars
codex mcp add figma --url https://mcp.figma.com/mcp --bearer-token-env-var FIGMA_OAUTH_TOKEN
codex mcp list                          # List all configured servers
codex mcp list --json                   # JSON output
codex mcp get context7                  # Show server config
codex mcp get context7 --json           # JSON output
codex mcp login <server>                # OAuth flow for HTTP servers
codex mcp logout <server>               # Remove OAuth credentials
codex mcp remove <server>               # Delete server definition

In-session: /mcp shows active servers and available tools. /mcp verbose (v0.123.0+)84 returns full server diagnostics, resources, and resource templates — useful when a server is failing to load or tools aren’t appearing where expected. Plain /mcp stays fast. As of v0.144.0, MCP tools can request authentication interactively without an experimental opt-in — a server that needs auth mid-session prompts through the normal flow instead of failing until you pre-authenticate with codex mcp login.107

Plugin MCP loading (v0.123.0+) accepts both the standard mcpServers schema and top-level server maps in .mcp.json, so plugins authored against either convention load cleanly.84

MCP user verification (v0.155.0, supported Macs): local TUI sessions on supported Macs can verify MCP requests with Touch ID, signed by the Secure Enclave (#43624, #43712, #43715). The verification identity is restricted to the workspace it was enrolled in (#43524), and verification carries natively into MCP tool continuations (#44346). First watched on the v2.68 promotion checklist, cut from 0.154.0 with the alpha.7 cluster, shipped in 0.155.0.156

Running Codex AS an MCP Server

Removed (v0.154.0, September 9, 2026). The codex mcp-server command and the standalone codex-mcp-server binary are gone as of stable 0.154.0 (#42993), completing the August 24, 2026 deprecation. The official changelog (September 5, 2026): “The codex mcp-server command and standalone codex-mcp-server binary have been removed after their deprecation on August 24, 2026. Update integrations that launch either command before upgrading Codex.” Integrations should target the app-server protocol, the interface behind the VS Code extension and desktop app (authentication, conversation history, approvals, streamed agent events) – which the removal entry itself labels experimental and “isn’t supported for production workloads” – or, from Claude Code, the Codex plugin for Claude Code: “Use Codex from Claude Code to review code or delegate tasks.” Connecting Codex TO external MCP servers (codex mcp ..., /mcp) is unaffected.125152153

On CLI 0.153.4 and earlier the command still exists (deprecated since August 24, 2026; since v0.149.0 it prints warning: `codex mcp-server` is deprecated and will be removed in a future release. to stderr and then starts anyway, PR #39657), so pinning npm install -g @openai/codex@0.153.4 is the stopgap if an integration cannot migrate immediately:12125148152

codex mcp-server                        # REMOVED in 0.154.0; works only on 0.153.x and earlier (deprecated, warns)

On 0.153.x and earlier the server exposes two tools: 1. codex(): Start a new session with prompt, sandbox, model, and approval parameters 2. codex-reply(): Continue an existing session with threadId and prompt

Use with the Agents SDK (Python) – CLI 0.153.4 or earlier only:

from agents import Agent, Runner
from agents.mcp import MCPServerStdio

async with MCPServerStdio(
    name="Codex CLI",
    params={"command": "npx", "args": ["-y", "@openai/codex@0.153.4", "mcp-server"]},  # pin: removed in 0.154.0
    client_session_timeout_seconds=360000,
) as codex_mcp_server:
    agent = Agent(name="Developer", mcp_servers=[codex_mcp_server])
    result = await Runner.run(agent, "Fix the failing tests")

Notable MCP Servers

Server Purpose Install
Context7 Up-to-date library docs npx -y @upstash/context7-mcp
Figma Design file access HTTP: https://mcp.figma.com/mcp
Playwright Browser automation npx -y @playwright/mcp
Sentry Error monitoring HTTP: https://mcp.sentry.dev/mcp
GitHub Repository operations HTTP: https://api.githubcopilot.com/mcp/ (GitHub’s official MCP server)

Practical Patterns

Pattern 1: Context-aware development — Pair Context7 with your framework docs so Codex always has current API references:

[mcp_servers.context7]
enabled = true
required = true
command = "npx"
args = ["-y", "@upstash/context7-mcp"]

Pattern 2: Output limits — MCP tool responses are truncated at ~25K characters by default. For tools that return large payloads (database queries, log captures), use enabled_tools to restrict to specific tools and keep responses focused.

Pattern 2a: Multimodal tool output (v0.107.0) — Custom tools can now return multimodal output (images, rich content) alongside text. This enables tools that produce visual artifacts — screenshots, diagrams, chart renders — to pass them directly to the model for analysis.62

Pattern 3: Enterprise MCP governance — Lock down which MCP servers developers can use via requirements.toml:

# In /etc/codex/requirements.toml — only approved servers allowed
[mcp_servers.approved-internal]
identity = { command = "npx @company/internal-mcp" }

Any server not matching an identity in requirements.toml will be blocked at startup. See Enterprise Deployment for full policy configuration.


Code Mode [EXPERIMENTAL]

Code mode (v0.114.0) provides more isolated coding workflows by restricting the agent’s scope to code-focused operations.70 When enabled, the agent focuses on reading, writing, and testing code without broader system interactions.

As of v0.139.0, code mode can call standalone web search directly — including from nested JavaScript tool calls — and receives plaintext results, so a code-mode flow can fetch live information without leaving the sandboxed coding context.165 v0.146.0 extends standalone web search to compatible custom model providers, so the capability is no longer limited to OpenAI-hosted models.114

v0.146.0 let app-server connect to remote Code Mode hosts, so the code-mode runtime no longer has to live on the same machine as the client – originally over WebSocket.114 v0.151.0 removes the WebSocket transport (#40692): app server --code-mode-host connections accept only http:// and https:// gRPC endpoints, and the standalone code-mode host is limited to stdio and gRPC listeners – at tag rust-v0.151.0 its listener doc reads verbatim “Transport endpoint: stdio, stdio://, or grpc://IP:PORT.” WebSocket survives only as an optional endpoint that streams raw OTLP trace batches for tracing, not as a session transport.135

This feature is experimental. Check release notes for updates.


JavaScript REPL Runtime [REMOVED]

Codex v0.100.0 added an experimental JavaScript REPL runtime (js_repl) and v0.106.0 promoted it through the /experimental surface.60 That guidance is now historical. In v0.128.0, the release changelog includes “Remove js_repl feature,” and the current feature list marks both js_repl and js_repl_tools_only as removed.86

Do not add features.js_repl = true to new configs. Use shell commands, checked-in scripts, MCP tools, or a Codex skill with a scripts/ directory when you need repeatable executable logic.


What Are Skills?

Skills are reusable, task-specific capability packages that Codex loads on demand. They follow the open agent skills standard.13

Skill Structure

my-skill/
  SKILL.md           (required: instructions)
  scripts/           (optional: executable scripts)
  references/        (optional: reference docs)
  assets/            (optional: images, icons)
  agents/openai.yaml (optional: metadata, UI, dependencies)

Discovery Locations

Codex stores user-installed skills in $CODEX_HOME/skills (default: ~/.codex/skills), including built-in system skills under .system/. Codex supports symlinked skill folders.

Scope Path
Project/team Repository skill folders (layout may vary by version)
User ~/.codex/skills/ (or $CODEX_HOME/skills/)
Admin /etc/codex/skills/
System Bundled by OpenAI (under ~/.codex/skills/.system/)

Creating a Skill

SKILL.md format:

---
name: security-audit
description: Run a thorough security audit on the codebase.
---

## Security Audit Procedure

1. Scan for hardcoded secrets using `rg -i "(api_key|password|secret|token)\s*=" --type py`
2. Check for SQL injection: look for string interpolation in queries
3. Verify input validation on all API endpoints
4. Check dependency vulnerabilities: `pip audit` or `npm audit`
5. Review authentication and authorization patterns
6. Report findings with severity levels (Critical/High/Medium/Low)

Metadata (agents/openai.yaml):

interface:
  display_name: "Security Audit"
  short_description: "Full codebase security review"
  icon_small: "./assets/shield.svg"
  brand_color: "#DC2626"
  default_prompt: "Run a security audit on this repository"

policy:
  allow_implicit_invocation: false    # Require explicit $skill

dependencies:
  tools:
    - type: "mcp"
      value: "snyk"
      transport: "streamable_http"
      url: "https://mcp.snyk.io/mcp"

Invoking Skills

  • Explicit: /skills menu or $skill-name mention in prompt
  • Implicit: Codex auto-detects matching skills from task description (if allow_implicit_invocation: true)
  • Creator: Use $skill-creator to interactively build a new skill
  • Installer: Use $skill-installer install <name> to install community skills
  • Executor-provided (v0.146.0): Codex discovers skills offered by the executor and reads their associated resources, including skills you select explicitly114

Context budgets truncate skill catalogs. v0.146.0 retains more available skills under tight context and warns when a catalog has to be truncated.114 Before this, a large skill library could be silently trimmed, so a skill you expected to be in scope simply was not offered. If you rely on implicit invocation across many skills, watch for that warning.

Enable/Disable

[[skills.config]]
path = "/path/to/skill/SKILL.md"
enabled = false

Skills vs Slash Commands

Skills Slash Commands
Defined in SKILL.md files with optional metadata Built into Codex CLI binary
Scope Project, user, or admin level Global (always available)
Invocation $skill-name in prompt, /skills menu, or implicit detection /command syntax
Customizable Fully — you write the instructions Fixed behavior
Dependencies Can declare MCP server requirements None
Sharing Copy skill folder to team repo or ~/.codex/skills/ Not shareable

Debugging Skills

If a skill isn’t activating:

  1. Check discovery: /skills should list it in the TUI
  2. Verify path: Ensure the skill folder is in a recognized location (~/.codex/skills/, project root, or /etc/codex/skills/)
  3. Check enabled: Skills with enabled = false in config.toml won’t load
  4. Check implicit activation: If relying on auto-detection, ensure allow_implicit_invocation: true in agents/openai.yaml
  5. Use keywords: Include the skill’s description terms in your prompt to improve implicit matching

Production Example: Deploy Skill

A complete multi-file skill showing references and scripts working together:

deploy-skill/
  SKILL.md
  references/
    runbook.md
    rollback-checklist.md
  scripts/
    pre-deploy-check.sh
    smoke-test.sh
  agents/openai.yaml

SKILL.md:

---
name: deploy
description: Deploy the application to staging or production. Runs pre-flight checks, executes deployment, and verifies with smoke tests.
---

## Deployment Procedure

### Pre-flight
1. Run `scripts/pre-deploy-check.sh` to verify:
   - All tests pass
   - No uncommitted changes
   - Branch is up to date with remote
2. Review the runbook at `references/runbook.md` for environment-specific steps.

### Deploy
3. Execute the deployment command for the target environment.
4. Monitor logs for errors during rollout.

### Verify
5. Run `scripts/smoke-test.sh <environment-url>` to confirm critical paths.
6. If smoke tests fail, follow `references/rollback-checklist.md`.

Invoke with: $deploy to staging or $deploy production with canary rollout


Plugins

Plugins unify skills, MCP entries, hooks, and app connectors into a single installable package (v0.110.0+).65 As of v0.117.0, plugins are first-class citizens: product-scoped plugins sync automatically at startup and /plugins provides an in-TUI browser for discovery and management.75 v0.128.0 expanded plugin workflows with marketplace installation, remote bundle caching, remote uninstall APIs, plugin-bundled hooks, hook enablement state, and external-agent config import.86 v0.129.0 (May 7, 2026) adds plugin workspace sharing (push a plugin set to teammates without re-publishing), share access controls (per-recipient enable/disable, revoke), source filtering (limit which marketplaces a workspace pulls from), and marketplace operations that can be invoked directly from the /plugins browser instead of the CLI.89 v0.133.0 (May 21, 2026) makes plugin discovery easier to audit: list output is marketplace-aware, installed versions are visible, marketplace roots are listed, and remote plugin collections can be surfaced without guessing which registry a result came from.98 v0.130.0 (May 8, 2026) makes plugin packaging more transparent and the share workflow more controllable:91

  • Bundled hooks visible in plugin details. The /plugins detail view now lists every lifecycle hook a plugin bundles (SessionStart, UserPromptSubmit, Stop, etc.). Before installing a plugin, you can see exactly which hooks it will register against your session — no more surprise hook side effects from a plugin you trust on its tools alone.
  • Plugin share metadata in shareContext. When a plugin is shared from a workspace, the share-link payload now exposes link metadata (creator, scope, freshness) so receiving sessions can show provenance and decide whether to accept.
  • Discoverability controls on share settings. Share settings expose a discoverability toggle so teams can publish plugins to specific workspaces or recipient lists without making them generally listable across an organization.

v0.143.0 (July 8, 2026) turns remote plugins on by default. Remote plugins are now enabled without an opt-in flag, the /plugins catalog gains richer rows (npm marketplace sources alongside git and local), and each entry shows both its remote and locally installed versions so drift is visible at a glance.106 For a team standardizing on a shared plugin set, remote-by-default removes the per-machine enablement step that used to gate rollout.

Plugin Sources

Source Location Description
Config config.toml Manually declared plugins
Local marketplace marketplace.json Project-local plugin catalog
Install endpoint App server v2 Remote plugin installation
Product-scoped Synced at startup Automatically synchronized plugins (v0.117.0+)
Portable Agent Plugins Installable packages Plugin packages in the cross-vendor Agent Plugins 1.0 format — portable across Codex, ChatGPT, Cursor, VS Code, Copilot, and Kiro, not just across machines (v0.147.0+)161

As of v0.147.0, plugin search spans local, personal, workspace, and remote catalogs in one query — you search for a capability, not for the catalog that happens to hold it. Combined with portable Agent Plugin packages, a plugin built in one environment installs cleanly in another instead of being tied to the machine or workspace where it was authored.116

Plugin Discovery

Codex tells the model which plugins are enabled at session start (v0.111.0), improving discovery of installed MCPs, apps, and skills.65 The model can suggest relevant plugins during a session based on the task context. In v0.117.0, product-scoped plugins are synced at startup, ensuring the latest plugin catalog is available without manual intervention.75 As of v0.142.0, the /plugins menu organizes remote plugins into OpenAI Curated, Workspace, and Shared with me sections, and eligible turns can recommend and install relevant plugins inline.104 As of v0.151.0, plugin/list and plugin/installed load the effective plugin configuration for every requested cwd – local marketplaces combine in request order, installed and enabled state merges across repositories, and invalid project configurations are reported through marketplaceLoadErrors without dropping valid local catalogs or globally enabled remote catalogs.134

@plugin Mentions (v0.112.0+)

Reference any installed plugin directly in chat with @plugin-name.68 When you mention a plugin, its context (capabilities, tools, configuration) is automatically included in the model’s context window — no need to describe what the plugin does.

@deploy push this branch to staging with canary rollout
@linter check for unused imports in src/

This works with any installed plugin, including custom skills, MCP servers, and app connectors.

Plugin Marketplace (v0.113.0+)

The plugin marketplace now includes richer discovery with metadata, categories, and ratings.69 Install-time auth checks verify that plugins requiring API keys or OAuth have valid credentials before installation. An uninstall endpoint cleanly removes plugins and their associated configuration.

Adding Third-Party Marketplaces (v0.121.0+)

Current OpenAI Codex docs keep marketplace source management under codex plugin marketplace. This formalizes third-party plugin distribution beyond OpenAI’s first-party marketplace and supports GitHub repo shorthand, HTTP(S) Git URLs, SSH URLs, and local marketplace root directories; use --ref to pin a Git ref and repeat --sparse PATH only for Git-backed marketplace repos.93

# GitHub repository (shorthand)
codex plugin marketplace add owner/repo

# Arbitrary git URL
codex plugin marketplace add https://git.example.com/team/plugins.git

# SSH Git URL
codex plugin marketplace add git@example.com:team/plugins.git

# Local directory
codex plugin marketplace add /path/to/local/marketplace

# Upgrade or remove a configured marketplace
codex plugin marketplace upgrade <marketplace-name>
codex plugin marketplace remove <marketplace-name>

Once added, a marketplace’s plugins appear in the /plugins browser alongside the default ones. App-server callers (IDE/desktop integrations) have a parallel endpoint to register marketplaces programmatically.82

Security consideration: Third-party marketplaces run arbitrary plugin code with your Codex permissions. Vet sources before adding them, and prefer sandboxed execution during first runs.

Agent Plugins: the Cross-Vendor Standard (v0.146.0–v0.147.0)

“Agent Plugins” is not just a Codex feature name — it is an open, vendor-neutral packaging standard, published as Agent Plugins 1.0.0 on August 6, 2026, whose official site summarizes it as “A portable package format for reusable components that extend AI agents.”161 A plugin is a directory with a required plugin.json manifest (a closed schema of exactly ten permitted top-level fields — $schema, name, version, description, author, homepage, repository, license, keywords, extensions — where “Clients MUST report and ignore each unknown field”), an optional skills/ folder (each immediate child directory containing a SKILL.md is one skill), an optional mcp.json declaring stdio, Streamable HTTP, or legacy HTTP+SSE servers, and optional reverse-domain client-namespace directories that other clients “MUST ignore.” Its normative scope is packaging: the spec “defines the canonical Agent Plugins Specification v1.0.0 for packaging reusable components that extend AI agents into distributable plugins” — Agent Skills and MCP keep their own specifications underneath it.161

The governance is the story. Vercel initiated the proposal and developed the 1.0 specification with Amazon, Anysphere (Cursor), GitHub, Microsoft, and OpenAI; the spec repository’s maintainer roster spans Amazon, Cursor, Microsoft, OpenAI, and Vercel, and Google announced on launch day that it is joining the core maintainers.161 The named launch clients span ChatGPT, Codex, Cursor, GitHub Copilot, Kiro, and VS Code. One conspicuous absence: Anthropic, which created the underlying Agent Skills format and MCP itself, is not among the maintainers — Claude Code keeps its own plugin format, and Codex bridges the gap from its side with the Claude Code marketplace source (v0.146.0) and /import.161

In Codex terms: v0.146.0 adds Agent Plugins manifests, workspace plugin publishing, and two additional plugin marketplaces — Amazon Bedrock and Claude Code114 — and v0.147.0 completes the loop with portable Agent Plugins installation and search across local, personal, workspace, and remote catalogs.116 Workspace publishing is the operationally useful half for teams: publish plugins into your own workspace instead of standing up a public marketplace or asking every developer to add a Git source by hand.

The release notes announce the Codex surfaces without publishing their configuration keys or CLI syntax. This entry records that the capability landed and what the standard specifies, not how to drive it from Codex — treat the manifest-authoring workflow and any codex plugin publish invocation as unverified until OpenAI’s docs cover them.

Managing Plugins

codex plugin marketplace add <src>       # Add a marketplace source
codex plugin marketplace upgrade [name]  # Upgrade one marketplace or all
codex plugin marketplace remove <name>   # Remove a configured marketplace
codex plugin list                        # List plugins; includes remote catalog entries (v0.153.0)
codex plugin list --json                 # JSON adds source, version, install + auth policy (v0.153.0)

v0.153.0 extends the plugin CLI from marketplace management to plugin-level operations against remote marketplaces: codex plugin list includes remote catalog entries (with their source, version, install policy, and authentication policy in JSON output), and remote plugins can be added and removed through the existing plugin CLI. Remote catalogs are cached by scope and collection – fresh cached results are preferred, an add request that misses a plugin in the cache refetches once, and the local curated catalog is preserved when an unfiltered remote listing fails (errors still surface for explicitly selected remote marketplaces).140

In the TUI, use /plugins (v0.117.0+) to browse, install, and remove individual plugins interactively without leaving your session.75

Expert tip: Plugins consolidate what used to require separate MCP config, skill installation, and app connector setup. A single plugin can bundle all three — making team onboarding faster and configuration more portable.


Plan Mode & Collaboration

Plan mode lets Codex design an approach before executing changes. It’s enabled by default (since v0.94.0).14 See Decision Frameworks for the “Plan Mode vs Direct Execution” decision tree.

Plan mode vs the update_plan tool (v0.152.0): these are two different things, and only one of them is on by default. Plan mode – the collaboration mode this section describes, where Codex proposes before executing – has been enabled by default since v0.94.0 and is unchanged. update_plan is a planning tool the model can call to maintain a structured plan inside a turn, and it shipped opt-in in v0.152.0: tools.update_plan.enabled defaults to false, and while it is disabled Codex also strips the bundled update_plan guidance from its model, collaboration-mode, multi-agent, compaction, prewarm, and goal-continuation prompts (custom base instructions, model catalog instructions, collaboration policies, and user goal text are preserved even when they mention planning). Enable it explicitly with tools.update_plan.enabled = true in config.toml.138

Entering Plan Mode

/plan                              # Switch to plan mode
/plan "redesign the API layer"     # Plan mode with initial prompt

In plan mode, Codex:

  • Reads files and analyzes the codebase
  • Proposes an implementation plan
  • Does not make changes until you approve
  • Streams the plan in a dedicated TUI view

Steer Mode

Steer mode (enabled by default since v0.98.0) allows you to inject new instructions while Codex is actively working, without interrupting its current task.14

There are two injection methods:

Input Behavior When to Use
Enter Sends instructions immediately; Codex sees them during the current turn Urgent corrections (“stop — don’t modify that file”), clarifications (“the config is in /etc/app.conf, not the default path”), or priority changes (“focus on the tests first”)
Tab Queues instructions for the next turn; Codex finishes its current work first Follow-up tasks (“after this, also update the changelog”), scope additions (“when you’re done, run the linter”), or non-urgent context (“the deploy target is staging, not prod”)

Practical examples:

# Codex is refactoring the auth module...

[Enter] "Use bcrypt instead of argon2 — we already have it as a dependency"
→ Codex adjusts immediately, mid-turn

[Tab] "Once auth is done, update the migration script too"
→ Codex finishes auth refactor, then starts the migration

Steer mode is always active in the TUI. If you prefer to wait until Codex finishes before giving instructions, just type normally after the turn completes — no special mode needed.

TUI Enhancements (v0.105.0–v0.106.0)

Syntax highlighting (v0.105.0): The TUI now syntax-highlights fenced code blocks and diffs inline. Use /theme to choose a color scheme.61

New TUI commands (v0.105.0+):61

Command / Key Description
/copy Copy picker (v0.150.0+): choose the full response, an individual code block, or a blockquote; earlier versions copy the last response132. v0.162.0: navigate and copy transcript blocks from the picker, and Ctrl+Insert copies a mouse selection (#50434, #50215)187
/clear Clear the TUI screen
Ctrl+L Clear screen (keyboard shortcut)
/theme Preview and persist a syntax-highlighting theme; v0.156.0 adds six bundled themes (ada, babbage, curie, cushman, dali, davinci) and theme-aware accents (#46504)169
/plugins Browse, install, and remove plugins (v0.117.0+)75
/title Set terminal window title; works in TUI and app-server TUI (v0.117.0+)75
/archive Archive the current session; archived sessions are protected from resume/fork until restored (v0.136.0+)168

Voice transcription (v0.105.0, experimental): Press spacebar to dictate prompts via voice transcription. This feature is experimental and may require microphone permissions.61 As of v0.107.0, realtime voice sessions support microphone and speaker device selection, allowing you to choose specific audio input/output hardware.62 Removed in v0.140.0, returned in v0.145.0: the experimental /realtime voice controls and their audio dependencies were dropped from the TUI in v0.140.0 (spacebar voice transcription was unaffected).102 v0.145.0 brings voice back in a new form: audio inputs and audio tool outputs in common local audio formats, plus streaming realtime V3 conversations.112 v0.155.0 and v0.156.0: live voice conversations. v0.155.0 (September 17, 2026) added /voice as an experimental, opt-in feature: a live conversation with a streaming transcript and microphone controls, enabled through /experimental on supported builds (#43581, #43651, #44331), with a configurable mute shortcut (#43690) and signed voice resources in the macOS packages (#43983). v0.156.0 (September 22, 2026) made it stable and on by default (#44921), and the docs changelog announced it the same day: “Voice conversations are enabled by default, with an F8 toggle, a /voice settings picker, and bundled audio runtimes for Linux and Windows.” To turn it off, set realtime_conversation = false under [features] in config.toml. The CLI slash-command reference still does not list /voice, and the docs Voice feature page covers ChatGPT Voice in the desktop app, a separate surface.156169

Other improvements:

  • Long links now remain clickable even when wrapped across TUI lines (v0.105.0)61
  • Local file links render with improved formatting (v0.106.0)60
  • TUI markdown keeps web links clickable via OSC 8 metadata, and cramped tables fall back to readable key/value records without losing link targets (v0.136.0)168
  • Markdown links appear as clickable labels in supported terminals, with visible URLs retained elsewhere (v0.150.0)132
  • Ctrl+C handling for sub-agents fixed to properly terminate child processes (v0.106.0)60

Memory System

Codex has a persistent memory system (v0.100.0+) that stores facts, preferences, and project context across sessions.24

Memory Commands

Command Description
/m_update <fact> Save a memory (e.g., /m_update always use pytest, never unittest)
/m_drop <query> Remove a memory matching the query

Memories are stored in markdown files under ~/.codex/memory/. Codex loads them at session start and uses them to inform behavior across all future sessions.

What to Store

Memories work best for persistent preferences and project facts:

  • Project conventions: “This project uses tabs, not spaces” or “API responses always include a meta field”
  • Tool preferences: “Use pnpm instead of npm” or “Run tests with pytest -x --tb=short“
  • Architecture decisions: “The auth module is in src/core/auth/, not src/middleware/“
  • Workflow preferences: “Always run the linter before showing me a diff”

Memory in Pipelines

When running codex exec, memories are loaded automatically. This means CI/CD pipelines and scripts benefit from the same context as interactive sessions — no need to repeat instructions in every invocation.

Memory Refinements (v0.101.0–v0.107.0)

  • Secret sanitization: Memories are automatically scanned for secrets before being written to disk
  • CWD awareness: Memory files now include the working directory context for project-specific recall
  • Developer message exclusion: Developer/system messages are excluded from phase-1 memory input, improving memory quality by focusing on user interactions
  • Diff-based forgetting (v0.106.0): Memory now uses diff-based forgetting to remove stale facts, keeping the memory store lean and relevant over time60
  • Usage-aware selection (v0.106.0): Memory retrieval is now usage-aware, prioritizing frequently accessed and recently relevant memories60
  • Configurable memories (v0.107.0): Memories are now fully configurable. Use codex debug clear-memories to reset all stored memories for a clean slate — useful when switching contexts between unrelated projects or when memory state has drifted62
  • Phase-2 model upgrade (v0.121.0): The phase-2 memory consolidation model is now gpt-5.4 (up from the prior default). The phase-2 pipeline runs between sessions to distill phase-1 transcripts into durable facts; the model change improves recall quality at the same token cost.82
  • TUI memories menu (v0.121.0): A new in-session UI exposes memory mode, individual memory deletion, and a reset button. Memory reset now preserves past rollouts rather than invalidating them, so resetting clears the future recall surface without breaking session replay.82

Memory vs AGENTS.md

Use Case Memory (/m_update) AGENTS.md
Personal preferences Use memory (persists across all projects) Not appropriate
Project conventions Either (memory for personal recall, AGENTS.md for team sharing) AGENTS.md for team
Architecture decisions AGENTS.md (shared context) Primary choice
Tool commands Memory (quick personal reference) AGENTS.md for team

Tip: Use /m_update for facts that should persist indefinitely. For session-specific context, just tell Codex directly in the conversation. For shared team context, use AGENTS.md.


Session Management

Codex persists sessions under ~/.codex/sessions/, enabling resume, forking, and multi-thread workflows across CLI and desktop surfaces.

v0.146.0 makes threads addressable. /new and /clear now take a session name, important threads can be pinned, and side conversations stay open instead of forcing you to close one to reach another.114 The practical effect is that a long-running project stops being a list of timestamps you have to recognize by date. v0.147.0 adds conversation sections: conversations organize into persistent, manually ordered sections, and long transcripts browse incrementally instead of loading whole.116 v0.148.0 adds /export and command-line forking: /export writes the complete conversation to Markdown (clipboard or a new file), codex exec fork forks a session non-interactively, and the resume picker can archive and restore sessions.118 v0.149.0 adds codex queue — send messages to existing local or remote sessions from the command line — and fixes resumed/forked threads to restore their active permission profile.120 v0.150.0 adds automatic titles: unnamed terminal tasks receive descriptive titles automatically, and /rename suggests an editable title based on the conversation.132 v0.151.0 adds /recap: request a short summary of the conversation’s recent progress and next steps on demand; Codex also generates the same recap automatically for eligible idle, unfocused conversations and adds it to the transcript, with bounded, isolated requests and retries only for automatic failures.135 v0.153.0 makes the automatic half optional: tui.auto_recap = false cancels scheduled automatic recap checks and discards pending automatic results, while manual /recap keeps working.140

codex agents (v0.149.0) is the interactive dashboard for every active agent session on the machine: search, start, open, rename, and stop tasks from one screen, with configurable shortcuts. Inside a session, /agents switches between all active agent sessions and /subagents switches between the current session’s subagents.120129 v0.150.0 makes tasks addressable from the conversation: reference other Codex tasks with @ mentions, and ask agents to read, create, or message tasks from the terminal.132

Resume

Pick up where you left off:

codex resume                          # Interactive picker (sorted by recency)
codex resume <SESSION_ID>             # Resume a specific session
codex exec resume --last "continue"   # Non-interactive: resume most recent

The /resume slash command inside the TUI opens the same interactive picker with search.

Paginated thread history (v0.145.0, promoted in v0.151.0): Paginated thread history brings efficient resume, search across history, persisted thread names, sub-agent support, and memories to session management – history loads page by page instead of all at once, which matters for long-lived working directories with hundreds of sessions. Introduced as experimental in v0.145.0; v0.151.0 promotes the APIs out of experimental (thread/turns/list, thread/items/list, and thread/revert no longer need the experimental API capability) and makes paginated the resolved default ONLY for durable threads whose store supports thread/turns/list and thread/items/list, and only when thread/start omits historyMode. Ephemeral threads and threads backed by stores without those APIs still default to legacy, explicit selections keep their behavior, and the protocol-level ThreadHistoryMode enum still defaults to Legacy at tag rust-v0.151.0 (protocol.rs:755-758) – a resolved default for supporting durable threads, not a blanket flip.112135

Fork

Branch a conversation to explore alternatives without losing your current progress:

/fork                              # Fork current conversation
/fork "try a different approach"   # Fork with new prompt

Forks create independent threads sharing the same history up to the fork point. As of v0.146.0, fork history is paginated, and forks can be created as temporary — a temporary fork does not appear in thread listings, which keeps throwaway experiments out of the thread list you actually navigate.114 Changes in one fork don’t affect the other. This is useful for comparing approaches (e.g., “fork and try Redis instead of Memcached”) or exploring risky changes safely.

Thread forking into sub-agents (v0.107.0): Threads can now be forked into independent sub-agents, allowing a conversation to spawn parallel work streams that execute autonomously. This extends the existing fork model — instead of just branching the conversation, the forked thread becomes a sub-agent with its own execution context.62 As of v0.117.0, sub-agents use path-based addresses (e.g., /root/agent_a) with structured inter-agent messaging, making multi-agent coordination more explicit and debuggable.75

Encrypted inter-agent messages (v0.138.0+): Multi-agent v2 now encrypts the task text a parent agent sends when it spawns or messages a sub-agent. The message parameters of spawn_agent, send_message, and followup_task are marked encrypted: the Responses API encrypts the payload when the parent model emits the tool call, the locally running Codex carries only ciphertext (InterAgentCommunication.encrypted_content, with empty plaintext content), and the API decrypts it server-side when handing it to the receiving model.108 Three practical consequences:

  • Your local session logs no longer contain delegation plaintext. You can see that a parent spawned a sub-agent and what came back, but not the exact instruction it sent. If you audit or debug multi-agent runs from session history, that record is gone; the open regression issue tracking this has no linked fix as of mid-July 2026.109 Extension lifecycle events (subagent start/stop, tool execution, turn metadata — v0.133.0+) and app-server observability are the remaining hooks for reconstructing what happened.98
  • Custom-provider models can break. A model endpoint that is not configured for encrypted tool use rejects the encrypted spawn_agent schema with a 400 ("declares encrypted parameters but is not configured for encrypted tool use"). If multi-agent delegation fails with that error on a custom provider, that is the encryption change, not your config.109
  • Codex-generated notifications stay readable. Child-completion notifications are produced by Codex itself, so they remain plaintext and now render as typed agent_message items rather than serialized JSON envelopes.108

OpenAI has not published the threat model behind the change; the PR describes the ciphertext flow without stating what it protects against.

Multi-agent v2 stabilized (v0.145.0, opt-in): The multi-agent v2 experience that debuted in v0.137.0 and gained encrypted delegation in v0.138.0 is now stabilized as an opt-in feature. v0.145.0 adds configurable sub-agent models, per-sub-agent reasoning levels, configurable concurrency, restored multi-agent roles, and improved agent navigation. If you held off on v2 during its v0.137/v0.138 shakeout, this is the release where the configuration surface settles — sub-agent model and reasoning choices now live in config rather than being fixed by the runtime.112

Thread Listing

View and manage active sessions:

/status                            # Current session info and token usage
/ps                                # Show background terminals in session

In the desktop app, threads are visible in the sidebar with full history and diff previews.

Session Lifecycle

Action CLI Desktop App
Start new codex or /new New Thread button
Resume codex resume or /resume Click thread in sidebar
Fork /fork Right-click thread → Fork
End /quit or Ctrl+C Close thread tab
Delete Remove from ~/.codex/sessions/ Right-click → Delete

Sessions sync between CLI and desktop app — start in one, continue in the other.


Non-Interactive Mode (codex exec)

codex exec runs Codex non-interactively for scripting, CI/CD, and automation.15

Basic Usage

codex exec "summarize the repository structure"
codex exec --sandbox workspace-write -c approval_policy=on-request "fix the CI failure"   # exec has no -a flag; set the policy via -c or config
codex exec --json "triage open bugs" -o result.txt

By default, codex exec writes progress/events to stderr and the final agent message to stdout. The design makes it composable with standard Unix pipelines.

Session Archiving (v0.136.0)

Sessions can be archived to keep the resume/fork list focused without deleting history. Archive from the TUI with /archive, or from the shell:168

codex archive <session-id>     # archive a session
codex unarchive <session-id>   # restore it

An archived session is protected from resume or fork operations until you unarchive it — a guardrail against accidentally continuing a session you meant to retire. Same release: codex app-server --stdio launches the app-server in stdio mode for editor/host integrations, and /diff is now blocked from executing repository-provided Git helpers (a command-safety fix). On Windows, an alpha provisioning path adds codex sandbox setup --elevated for administrators.168

JSON Lines Output

With --json, stdout becomes a JSONL event stream:

codex exec --json "fix the tests" | jq

Event types: thread.started, turn.started/completed/failed, item.started/completed, error

{"type":"thread.started","thread_id":"019c5c94-..."}
{"type":"turn.started"}
{"type":"item.started","item":{"id":"item_1","type":"command_execution","status":"in_progress"}}
{"type":"item.completed","item":{"id":"item_3","type":"agent_message","text":"..."}}
{"type":"turn.completed","usage":{"input_tokens":24763,"cached_input_tokens":24448,"output_tokens":122}}

Structured Output

Enforce response shape with JSON Schema:

codex exec "Extract project metadata" \
  --output-schema ./schema.json \
  -o ./project-metadata.json

-o / --output-last-message writes the final message to a file.

Session Resume and Review

codex exec resume --last "continue where you left off"
codex exec resume <SESSION_ID> "fix the remaining issues"
codex exec review --base main           # Code review against a branch

Key Flags

Flag Description
--sandbox workspace-write -c approval_policy=on-request Workspace-scoped automation with approval for boundary crossings (codex exec has no --ask-for-approval flag; set the policy with -c)123126
--thread-source <SOURCE> Classify newly created or forked threads: user (default), subagent, memory_consolidation, or a feature name; global across codex exec subcommands, ignored when resuming; threadSource in the TypeScript SDK (v0.149.1)126
--json JSONL event stream to stdout
-o, --output-last-message <file> Save final message to file
--output-schema <file> Validate response against JSON Schema
--ephemeral Don’t persist session files
-C, --cd <dir> Set working directory
--add-dir <dir> Extra writable directories
--skip-git-repo-check Allow running outside git repos
--dangerously-bypass-approvals-and-sandbox No sandbox, no approvals (CI only)

CI Authentication

codex exec supports CODEX_API_KEY for non-interactive authentication in automation environments.

codex exec startup banner (v0.130.0). The codex exec startup banner no longer prints the legacy “research preview” wording. If your CI scrapes startup output, the banner text is now slimmer; structured --json events are unchanged.91

codex remote-control (v0.130.0+)

codex remote-control is a top-level command that starts a headless app-server intended to be driven by another process — IDE extensions, custom orchestrators, or remote control planes. It replaces the multi-flag codex app-server invocation many integrators were stitching together by hand and gives third-party tooling a single, stable entrypoint into the same app-server runtime that ships under the desktop and IDE surfaces.91 v0.133.0 improves the command’s runtime shape: it can run like a foreground command, wait for readiness, report machine status, and still expose explicit daemon-style start / stop commands for long-lived controller setups.98 v0.143.0 adds codex remote-control pair, which generates a manual pairing code from a running daemon so a controller can connect without the automatic discovery handshake — useful when the controlling process is on a different host or network segment than the daemon.106

# Start a headless, remotely controllable app-server
codex remote-control

# Generate a manual pairing code for an out-of-band controller (v0.143.0+)
codex remote-control pair

# Same lifecycle as a TUI session: thread store, hooks, plugins, MCP, sandbox
# all initialize from your normal config.toml.

Pair codex remote-control with the app-server pagination APIs below when you are building UIs that need to enumerate large thread histories without hydrating every turn into memory at once.

App-Server Thread Pagination (v0.130.0+)

App-server clients can now page large threads through three distinct turn item views:91

View Use Case
Unloaded Listing-only — thread structure without turn payload (cheapest)
Summary Compact per-turn metadata — useful for sidebars and resume pickers
Full Complete turn payload, including tool calls and outputs

Pair pagination with the ThreadStore interface introduced in v0.121.0 to walk long-running threads efficiently, especially in remote-control deployments where the orchestrator may be on a different machine than the rollout files.82 v0.143.0 widens what a controller can inspect: app-server clients can now enumerate available environments, list a thread’s descendant threads, and fork history through a specific turn — the primitives a UI needs to branch a run from an earlier point without replaying it forward.106 v0.151.0 promotes the paginated thread history APIs out of experimental and defaults durable threads with supporting stores to paginated history when thread/start omits historyMode (ephemeral threads and unsupporting stores stay legacy); full-history hydration is deprecated for paginated threads (#40676).135

Live App-Server Config Refresh (v0.130.0+)

Live app-server threads now pick up config.toml changes without requiring a restart — edit the config, save, and the running thread reflects the new values on its next turn. This is the bug-fix counterpart to codex remote-control: a long-running headless server can be reconfigured in place rather than torn down.91

Live turn-scoped settings (v0.151.0): a running turn’s settings can now change mid-flight. The experimental turn/settings/update app-server method updates model, effort, summary, and serviceTier for subsequent steps of a specific live turn without changing future turns, reporting whether the update was applied, rejected, or lost its target; managed constraints are revalidated and the turn’s admitted approval and Guardian safety properties are preserved before an updated settings snapshot is published. turn/start also accepts serviceTierForTurn, letting one new turn override the service tier without touching the thread’s saved tier (“default” means standard speed; omitted or null inherits the thread tier).135

Encrypted Remote Executors (v0.141.0)

As of v0.141.0 (stable, June 18, 2026), remote executors connect over authenticated, end-to-end encrypted Noise-relay channels — the control plane and the executor no longer have to trust the relay sitting between them, which matters whenever your orchestrator drives an app-server across a network boundary. The same release made cross-platform remote execution preserve the executor’s native working directory and shell, so a controller on one OS driving an executor on another no longer has paths or shell semantics rewritten underneath it. TLS also now accepts P-521 certificate signatures for enterprise-proxy compatibility.103


Codex Cloud & Background Tasks [EXPERIMENTAL]

GitLab support (beta, August 19, 2026): Codex cloud now connects GitLab projects on all ChatGPT plans — link a project, create environments, start tasks from issues and merge requests, and request reviews; Self-Managed GitLab needs 19.0+.119

Status: Codex Cloud is an experimental feature. Interfaces, pricing, and availability may change. OpenAI manages the cloud environments, and you do not control the infrastructure.

Codex Cloud runs tasks asynchronously in OpenAI-managed environments.4 As of CLI v0.150.0, tasks are also addressable from a terminal conversation: reference other Codex tasks with @ mentions, and ask agents to read, create, or message tasks.132 See also GitHub Action & CI/CD for integrating Codex into your CI pipeline.

Cloud task credentials hardened (v0.152.0): cloud task requests can carry saved ChatGPT credentials, so their destination is now constrained before authentication is even loaded – CODEX_CLOUD_TASKS_BASE_URL is validated against trusted ChatGPT HTTPS origins on port 443 (URLs containing user information, queries, or fragments are rejected), and redirects are disabled for the cloud task backend and environment-discovery clients so credentials are never forwarded to a redirect destination.138

How It Works

  1. Submit a task (via chatgpt.com/codex, Slack integration, or CLI)
  2. Codex clones your repo into an isolated cloud sandbox
  3. The agent works independently: reads code, runs tests, makes changes
  4. When done, Codex creates a PR or provides a diff for review
  5. Apply results locally with codex apply <TASK_ID>

Internet Access in Cloud

Agent internet is off by default and configured per environment:

  • Off: No agent internet access (default)
  • On: Optional domain allowlist + HTTP method restrictions
Allowed domains: pypi.org, npmjs.com, github.com
Allowed methods: GET, HEAD, OPTIONS

Setup scripts can still use internet to install dependencies, even when agent internet is off.

Slack Integration

Mention @Codex in a Slack channel or thread to start a cloud task.

Prerequisites: 1. Eligible ChatGPT plan (Plus, Pro, Business, Enterprise, or Edu) 2. Connected GitHub account 3. At least one configured cloud environment 4. Slack app installed for your workspace

Codex replies with a task link and posts results when complete.

Cloud CLI

codex cloud exec --env <ENV_ID> "Fix failing tests"  # Start a cloud task
codex cloud status <TASK_ID>                          # Check task progress
codex cloud diff <TASK_ID>                            # View task diff
codex cloud list                                      # List recent tasks
codex cloud list --json                               # JSON output
codex cloud apply <TASK_ID>                           # Apply from cloud subcommand
codex apply <TASK_ID>                                 # Apply diff (top-level shortcut)

The Codex Desktop App

The Codex desktop app (macOS and Windows) provides a graphical interface optimized for multi-project management.16 The Windows version launched on March 4, 2026 with native PowerShell support and native Windows sandbox.66

Installation

codex app                      # Auto-downloads and installs on first run

Or download directly: Codex.dmg (macOS) | Available in the Microsoft Store (Windows)

Key Features

Feature Description
Parallel threads Run multiple tasks across projects simultaneously
Thread modes Start threads in Local, Worktree, or Cloud mode
Built-in Git tools Review diffs, add comments, stage/revert chunks, commit/push, create PRs
Integrated terminal Per-thread terminal (Cmd+J)
Voice dictation Prompt by voice (Ctrl+M)
Automations Schedule recurring tasks
Notifications Completion/approval notifications when app is backgrounded
Prevent sleep Optional setting to keep machine awake while tasks run
Skills + MCP Shared configuration across app, CLI, and IDE extension
MCP shortcuts Quick-access MCP tool shortcuts in the composer (App v26.226)63
Review @mentions @mention collaborators in code review comments (App v26.226)63
Custom themes Color controls and font selection in Settings (App v26.312)72
App-server TUI Enabled by default (v0.117.0+): ! shell commands, filesystem watch, remote WebSocket with bearer auth, prompt history recall across sessions75
Appshots macOS appshots attach the frontmost app window to a thread, including a screenshot and available text, and can be added with the Appshots hotkey.99
In-app browser comments The in-app browser can preview local/public pages and accept element or area comments for precise rendered-page feedback.99
Computer Use + locked use Computer Use lets Codex operate allowed Mac apps for scoped GUI tasks; locked use is opt-in and limited to trusted active Computer Use turns after the Mac locks.99

Appshots, Browser Comments, and Computer Use

The May 21 app updates make the desktop app a stronger context surface rather than just a thread manager. Use Appshots when Codex needs the state of another Mac app before it can act: Codex captures the frontmost window, available visible/off-screen text exposed by the app, and stores the attachment locally in the session history.99

For web and frontend work, use the in-app browser first when the page is unauthenticated: it gives Codex and you a shared rendered preview, supports browser-use actions such as clicking, screenshots, asset downloads, and read-only inspection JavaScript, and lets you mark page regions with comments that Codex can address in the next turn.99 For signed-in sites, keep using the browser extension (Chrome, Edge, Brave, Opera, or Vivaldi; Opera has no side chat). Site tools (WebMCP, August 25, 2026): in the desktop app’s built-in browser, ChatGPT Work and Codex can use tools provided by a website to work with the page; use GPT-5.6 Sol or GPT-5.6 Terra on the latest desktop app, because site tools are not available with GPT-5.6 Luna or in Enterprise or Edu workspaces.127

Use Computer Use only when a structured integration or browser preview cannot verify the task. It can inspect and operate allowed Mac apps, but it inherits Codex approvals and sandbox rules for file edits and shell commands, and locked use stays narrow: Codex can temporarily access allowed apps during active trusted Computer Use turns after the Mac locks, with relocking safeguards and local-input detection.99

Thread Modes

Each thread runs in one of three modes, selected when you create it:

Mode Isolation File Access Best For
Local None — works directly in your project directory Full read/write Quick tasks, exploration, non-destructive work
Worktree Git worktree — isolated branch copy of your repo Isolated copy Feature development, risky refactors, parallel experiments
Cloud Remote server — runs on OpenAI infrastructure No local access Long-running tasks, CI-like workflows, async delegation

Worktree isolation mechanics:

When you start a Worktree thread, the desktop app: 1. Creates a new git worktree (git worktree add) in a temporary directory 2. Checks out a fresh branch from your current HEAD 3. Runs the agent inside the worktree — all file changes are isolated 4. Presents a diff review when done — you choose which changes to merge back

This means multiple Worktree threads can run simultaneously on the same repo without conflicts. Each gets its own branch and working directory.

Worktree settings and thread ownership (v0.151.0): managed worktree behavior is resolved from the existing [desktop] configuration by a dedicated settings parser – the worktree root defaults to $CODEX_HOME/worktrees, automatic cleanup defaults to enabled, and 15 worktrees are retained, with configured roots, cleanup flags, and retention counts validated before use. Each managed linked worktree can also carry a versioned codex-thread.json ownership record in its Git metadata binding it to a thread: writes are atomic and no-clobber (repeat bindings are idempotent, conflicting owners rejected), and primary, nested, and unmanaged checkouts are rejected before ownership metadata is touched.135

Managed worktrees reach the CLI in v0.154.0 (experimental): --worktree at launch or /worktree in the TUI creates an isolated checkout for a new or forked session, codex exec supports managed worktrees for automation, and TUI session commands plus a worktree browser let you list, browse, and resume worktree sessions (#42196, #42366, #42652, #43069, #43120, #43286). v0.155.0 adds the management adjacents while worktrees stay non-default: the agents overview can hide, archive, and delete worktree sessions, ownership details are surfaced, and deleting a clean managed worktree asks for confirmation (#43942, #44424, #44433). The default-on flip (#44870) merged September 11 but was NOT in stable 0.155.0, ancestry-checked against the rust-v0.155.0 tag.152156

Managed worktrees become the default in v0.156.0: #44870 promotes worktrees to a stable feature, enables it by default, and removes it from /experimental. Shipping alongside it: worktree sessions can attach to an existing local daemon instead of starting their own (#46498), and worktree sessions can be created directly from the agents overview (#45276), which also gains status filter tabs (#46839). If you have scripts or configs written on the assumption that worktrees are off unless requested, 0.156.0 is the release that changes their behavior. To opt out: set worktrees = false under [features] in config.toml (per run: --disable worktrees). Older local daemons: if worktree creation or /cd is blocked with “The local Codex service cannot check background terminals,” run codex app-server daemon update and restart Codex.169171

Worktree tools for the model (v0.162.0): in a trusted local project with the feature on, the model itself can create and list managed worktrees through new tools (#50148), and the new-conversation and fork prompts explain the worktree choices (#50416).187

Automations

Automations run locally in the app, so the app must be running and the project available on disk:

  • In Git repos, automations use dedicated background worktrees (isolated from your working directory)
  • In non-Git projects, runs execute directly in the project directory
  • Automations use your default sandbox settings

Setting up an automation: 1. Open a project in the desktop app 2. Click the Automations tab in the sidebar 3. Define a trigger (schedule, webhook, or manual) 4. Write the prompt and select execution mode (local or worktree) 5. Set the reasoning level for the automation run (App v26.312)72 6. Automations run on schedule and queue results for review

Example use cases:

  • Issue triage: Automatically categorize and prioritize new issues
  • CI monitoring: Watch build failures and suggest fixes
  • Alert response: React to monitoring alerts with diagnostic analysis
  • Dependency updates: Check for and apply security patches

Results appear in a review queue for human approval.

Windows Support

The Codex Desktop App launched on Windows on March 4, 2026 (App v26.304) with native PowerShell support, native Windows sandbox, and full feature parity including skills, automations, and worktrees without requiring WSL.66


GitHub Action & CI/CD

The official GitHub Action integrates Codex into your CI/CD pipeline.18

Basic Usage

# .github/workflows/codex.yml
name: Codex
on:
  pull_request:
    types: [opened]

jobs:
  codex:
    runs-on: ubuntu-latest
    outputs:
      final_message: ${{ steps.run_codex.outputs.final-message }}
    steps:
      - uses: actions/checkout@v5
      - name: Run Codex
        id: run_codex
        uses: openai/codex-action@v1
        with:
          openai-api-key: ${{ secrets.OPENAI_API_KEY }}
          prompt-file: .github/codex/prompts/review.md
          sandbox: workspace-write
          safety-strategy: drop-sudo

Configuration Options

Input Purpose
openai-api-key API key for proxy/auth setup
responses-api-endpoint Override endpoint (e.g. Azure Responses URL)
prompt / prompt-file Task instructions (one required)
working-directory Directory passed to codex exec --cd
sandbox workspace-write / read-only / danger-full-access
codex-args Extra CLI flags (JSON array or shell string)
output-schema / output-schema-file Structured output schema for --output-schema
model / effort Agent configuration
output-file Save final message to disk
codex-version Pin CLI version
codex-home Custom Codex home directory
allow-users / allow-bots Trigger allowlist controls
safety-strategy / codex-user Privilege-reduction behavior and user selection

Output: final-message, the final Codex response text for downstream steps/jobs.

Safety Strategies

Strategy Description
drop-sudo (default) Linux/macOS; removes sudo capability after action step
unprivileged-user Run Codex as a pre-created low-privilege user
read-only Read-only sandbox (runner/user privilege risk still applies)
unsafe No privilege reduction; required on Windows runners

Access Controls

with:
  allow-users: "admin,maintainer"     # Limit who can trigger
  allow-bots: false                   # Block bot-triggered runs

Default: Only collaborators with write access can trigger Codex workflows.


Codex SDK

The TypeScript SDK embeds Codex’s agent capabilities into custom applications.19

Installation

npm install @openai/codex-sdk

Basic Usage

import { Codex } from "@openai/codex-sdk";

const codex = new Codex();
const thread = codex.startThread();

// Multi-turn conversation
const turn1 = await thread.run("Diagnose CI failures and propose a fix");
console.log(turn1.finalResponse);

const turn2 = await thread.run("Implement the fix and add tests");
console.log(turn2.items);

// Resume a previous session
const resumed = codex.resumeThread("<thread-id>");
await resumed.run("Continue from previous work");

Advanced SDK Features

  • runStreamed(...): Async event stream for intermediate updates
  • Python SDK auth (v0.132.0+): API-key login, ChatGPT browser/device-code flows, account inspection, and logout are first-class SDK paths.97
  • Text-only turn convenience (v0.132.0+): Python turn APIs accept plain strings and return richer TurnResult metadata with collected items, timing, and usage.97
  • outputSchema: Enforce JSON-shaped final output
  • Multimodal input: Pass text + local images ({ type: "local_image", path: "..." })
  • Image workflows (v0.117.0): view_image returns URLs, generated images are reopenable, and image history survives session resume75
  • Multi-environment view_image (v0.130.0): For sessions that span multiple environments (introduced in v0.124.0 with per-turn environment + working-directory selection, refined in v0.125.0 with sticky environments), view_image now resolves file paths through the selected environment rather than the orchestrator’s local filesystem. An image attached from a remote environment is fetched relative to that environment’s working directory, not the host running the SDK.91

Thread and Client Configuration

// Custom working directory, skip git check
const thread = codex.startThread({
  workingDirectory: "/path/to/project",
  skipGitRepoCheck: true,
});

// Custom environment and config overrides
const codex = new Codex({
  env: { CODEX_API_KEY: process.env.MY_KEY },
  config: { model: "gpt-5.5" },
});

Sessions persist under ~/.codex/sessions.

Runtime: Node.js 18+.


Performance Optimization

Context Management

Context windows vary by model. The current GPT-5.6 family (Sol, Terra, Luna) runs a 272K window; GPT-5.5, the previous-generation flagship, offers 400K in Codex (1M in the API); GPT-5.4 / GPT-5.4-mini (retiring from Codex August 31, 2026) offer 1M / 400K; the legacy GPT-5.3-Codex family ran 272K input + 128K output (400K total budget). All of them fill faster than you’d expect — manage proactively:

  1. Use /compact regularly: Summarizes conversation history to free tokens
  2. Provide local docs: High-quality AGENTS.md and local documentation reduce exploration overhead (which consumes context)
  3. Use @ to attach specific files: Reference files directly instead of asking Codex to find them
  4. Keep prompts focused: Scoped prompts with exact files consume less context than open-ended exploration

Experimental context management (v0.153.0, disabled by default): features.context_management.experimental_mode activates a coordinated context stack – token-budget context, history notes, and a new_context tool – for eligible ChatGPT Plus, Pro, and Pro Lite sessions using the Codex backend. API-key sessions, custom providers, non-Codex endpoints, and temporary structured threads are excluded, and the flag is explicitly under development: treat it as a preview of where context handling is heading, not something to build workflows on.140 v0.154.0 adds a capability gate: eligibility is resolved against the active model’s capabilities at session startup (#43147) – the same surface the Codex models docs tie to Astra by name for Plus and Pro sign-in (see the cross-context note under Which Model Should I Choose?).146152 As of v0.157.0 no model in the bundled catalog is marked as supporting it (#47397), so with that catalog the setting has no effect.174 GPT-6.1 Sol, added in v0.159.1, is not marked either, and the config reference now describes the key as “not currently available.”178

Token Efficiency

Technique Impact
Set model_reasoning_summary = "none" Reduces output tokens ~20%
Use model_verbosity = "low" Shorter explanations, more action
Use lighter tiers (gpt-5.6-luna) for simple tasks Significantly cheaper per message
Split complex tasks into focused sessions Better per-session token efficiency
Use profiles to switch settings by task Avoid paying for high reasoning on routine work

Speed Optimization

  1. gpt-5.3-codex-spark: Lower-latency variant for interactive pairing
  2. --profile fast: Pre-configured gpt-5.6-luna with low reasoning
  3. Parallel tool execution: Codex runs independent reads/checks concurrently, so structure prompts to enable this
  4. Outcome-driven loops: Ask for “implement, test, fix, stop when green” instead of step-by-step instructions

How Do I Debug Issues?

Common Problems and Solutions

Problem Cause Solution
“Re-connecting” loop Multiple Codex instances Kill all processes, wait 60s, restart single instance
401 auth errors Stale credentials codex logout && codex login (clears whichever store cli_auth_credentials_store selects)
Startup fails on 0.162.0 with a feature-settings mismatch while a background server runs The CLI compared the running server’s feature settings with its own defaults Upgrade to 0.162.1, where the check covers only explicit command-line feature overrides; or launch with --no-daemon
Network blocked in sandbox Default behavior -c 'sandbox_workspace_write.network_access=true'
WSL2 disconnections WSL state corruption wsl --shutdown in PowerShell, wait 1 min, restart
Patch failures Line ending mismatches Normalize to LF, provide exact file text
Context compacting fails Too much context Reduce reasoning effort, split into smaller tasks
Model changes unexpectedly Config.toml override Run /debug-config to inspect config layers and requirement sources
Plan mode allows mutations Known bug Issue #11115
Forgetting AGENTS.md instructions Context limits Keep instructions concise; use skill files for detailed procedures
Stalling in Read Only mode Known issue Discussion #7380

Error Messages Reference

Error Message Meaning Fix
Error: EACCES permission denied Sandbox blocked a file operation Check sandbox mode; use workspace-write if Codex needs to edit files
Error: rate limit exceeded API rate limit hit Wait and retry; reduce model_reasoning_effort or switch to a lighter model
Error: context length exceeded Conversation exceeded 272K input tokens Use /compact to summarize, or start a new session with /new
Error: MCP server failed to start MCP server process crashed or timed out Check codex mcp get <name> for config; increase startup_timeout_sec
Error: authentication required No valid API key or session Run codex login or set CODEX_API_KEY
Error: sandbox execution failed Command failed inside sandbox Check command syntax; verify required tools are available in the sandbox environment
WARN: skill not found Referenced skill doesn’t exist at expected path Check /skills list; verify skill folder location
Error: wire format mismatch Wrong wire_api setting for provider Use wire_api = "responses" for OpenAI endpoints (see Custom Model Providers)

What Does codex doctor Do?

codex doctor is the single command to run before filing a bug or debugging a broken install. It captures the local runtime, configuration, auth, terminal, network, and state in one report, and the project’s own issue template asks you to paste its output.163

codex doctor                           # Full human-readable report (the default)
codex doctor --summary                 # Compact view
codex doctor --json                    # Redacted structured JSON, for bug reports
codex doctor --all                     # Expand truncated lists
codex doctor --no-color                # Strip ANSI color

The report is organized into stable sections, so you can skim to the one you need:163

Section What it reports
Notes Anomalies promoted to the top: available updates, oversized rollout directories, optional MCP problems, mixed auth signals
Environment Runtime provenance, install consistency, search-tool readiness, terminal/multiplexer metadata, database health
Configuration config.toml load status, auth details, MCP server config, sandbox policy, feature flags
Updates Whether update configuration is locally consistent
Connectivity Network environment, WebSocket diagnostics, provider-aware endpoint reachability
Background Server App-server daemon status

Each check carries a status marker – ✓ ok, ✗ fail, ⚠ warn, ○ idle – with a summary line. --json keys every check by a stable identifier, which makes it usable in CI or a support script rather than only by eye.163

The command has grown across releases: it landed in v0.131.0, gained environment, Git, terminal, app-server, and thread-inventory reporting in v0.135.0, and added editor and pager details (with sensitive values redacted in JSON) in v0.139.0.96192165

Use it first, not last. Most “Codex is broken” reports resolve to something doctor already names: a stale auth mode, a config.toml that failed to parse, or a second install shadowing the one on your PATH.

Diagnostic Tools

codex doctor                           # Full local diagnostic (start here)
codex --version                        # Check CLI version
codex login status                     # Verify authentication
codex mcp list                         # Check MCP server status
codex debug app-server --help          # Debug app server issues

In-session TUI diagnostics:

/status                                # Token/session overview
/debug-config                          # Show config layers and requirement sources
/compact                               # Summarize history to reclaim context

Note: codex --verbose is not a valid top-level flag. Use the debug subcommands and TUI diagnostics above.

Clean Reinstall

npm uninstall -g @openai/codex && npm install -g @openai/codex@latest

Preserves ~/.codex/ (auth, config, sessions). For pinning to an exact version, downgrading after a bad release, or a full state wipe, see Update, Downgrade, or Uninstall.

Debug Mode

codex debug app-server send-message-v2  # Test app-server client

Reporting Issues

/feedback                              # Send logs to Codex maintainers (in TUI)

Or file issues at github.com/openai/codex/issues.1


Codex Security [PREVIEW]

Codex Security entered research preview on March 6, 2026, bringing context-aware application security review into the Codex stack.77 Available to ChatGPT Pro, Enterprise, Business, and Edu customers via Codex web.

How it works: Codex Security analyzes repositories to build a project-specific threat model, identifies vulnerabilities classified by real-world impact, and pressure-tests findings in a sandboxed environment to validate them. The agent surfaces higher-confidence findings with fixes, reducing noise from insignificant bugs.

Performance: During research preview, Codex Security scanned 1.2 million commits and identified 10,561 high-severity vulnerabilities. Precision improved over time — cutting noise by 84%, reducing over-reported severity by 90%+, and halving false positive rates. The system has found real vulnerabilities in OpenSSH, GnuTLS, and Chromium, with 14 CVEs assigned.77

Note: Codex Security is separate from the CLI’s built-in sandbox security model. The sandbox protects your machine from Codex; Codex Security protects your codebase from vulnerabilities.


Enterprise Deployment

Admin Controls (requirements.toml)

Administrators enforce enterprise policy via requirements.toml, an admin-enforced configuration file that constrains security-sensitive settings users cannot override:21

v0.146.0 adds enterprise-plan recognition and administrator controls over in-app updates.114 On a managed fleet this is the difference between developers self-updating the CLI whenever they notice a new release and the admin deciding when a version rolls out. The release notes announce the control without publishing its requirements.toml key — treat the exact setting name as unverified until OpenAI documents it.

# /etc/codex/requirements.toml

# Restrict which approval policies users can select
allowed_approval_policies = ["on-request", "never"]   # `untrusted` retired in v0.149.0

# Limit available sandbox modes
allowed_sandbox_modes = ["read-only", "workspace-write"]

# Control web search capabilities
allowed_web_search_modes = ["cached"]

# Allowlist MCP servers by identity (both name and identity must match)
[mcp_servers.approved-server]
identity = { command = "npx approved-mcp-server" }

# Admin-enforced command restrictions
[[rules.prefix_rules]]
pattern = [{ token = "rm" }, { any_of = ["-rf", "-fr"] }]
decision = "forbidden"
justification = "Recursive force-delete is prohibited by IT policy"

[[rules.prefix_rules]]
pattern = [{ token = "sudo" }]
decision = "prompt"
justification = "Elevated commands require explicit approval"

Unlike user-level config.toml which sets preferences, requirements.toml is a hard constraint layer that restricts what values users can select, and users cannot override it. Admin requirements rules can only prompt or forbid (never silently allow).

macOS MDM Configuration

Distribute via MDM using the com.openai.codex preference domain.21 Codex honors standard macOS MDM payloads (Jamf Pro, Fleet, Kandji, etc.). Encode TOML as base64 without line wrapping:

Key Purpose
config_toml_base64 Base64-encoded managed defaults (starting values users can change)
requirements_toml_base64 Base64-encoded admin-enforced requirements (users cannot override)

Precedence (highest to lowest):

  1. macOS managed preferences (MDM)
  2. Cloud-fetched requirements (ChatGPT Business / Enterprise)
  3. /etc/codex/requirements.toml (local filesystem)

Cloud requirements only fill unset requirement fields, so higher-precedence managed layers always win. Cloud requirements are best-effort; if the fetch fails or times out, Codex continues without the cloud layer.

OpenTelemetry Integration

Codex supports OpenTelemetry trace-context propagation from standard OTel environment variables through to OpenAI API calls. Set the standard environment variables before launching Codex:

# Point Codex at your OTel collector
export OTEL_EXPORTER_OTLP_ENDPOINT="https://otel-collector.internal:4318"
export OTEL_SERVICE_NAME="codex-cli"
export OTEL_RESOURCE_ATTRIBUTES="team=platform,env=production"

# Launch Codex — trace context propagates to all OpenAI API calls
codex
  • Standard OTEL_* environment variables are respected (endpoint, service name, resource attributes)
  • Trace context propagates through Codex to API calls, enabling end-to-end observability
  • Use resource attributes to tag traces by team, environment, or project
  • Keep privacy requirements in mind when enabling prompt/tool logging — traces may contain code snippets
  • Configurable OpenTelemetry trace metadata (v0.130.0+). Beyond the standard OTEL_RESOURCE_ATTRIBUTES envelope, the codex-otel crate now exposes configurable trace metadata so administrators can tag traces with organization-specific dimensions (cost-center, project ID, ticket reference) without rebuilding OTEL_RESOURCE_ATTRIBUTES from scratch on every invocation. Pair this with the richer review/feedback analytics shipped in the same release for unified debugging and triage across CLI, app-server, and remote-control sessions.91

Enterprise Access

  • ChatGPT Business / Enterprise / Edu: Org-admin controlled access, with cloud-fetched requirements applied automatically. Supports SSO via SAML/OIDC through your identity provider (Okta, Entra ID, etc.)
  • API: Standard API auth, billing, and org/project controls. OpenAI publishes SOC 2 Type II and SOC 3 reports; HIPAA BAA available for Enterprise tier
  • Codex SDK: Embed in internal tools and workflows
  • Policy enforcement at scale: Use MDM-distributed requirements_toml_base64 or filesystem-level /etc/codex/requirements.toml

Data handling and compliance:

  • API inputs/outputs are not used for training under OpenAI’s Business/Enterprise/API terms
  • For data residency, OpenAI API traffic routes through US-based infrastructure by default; for EU data residency requirements, consult OpenAI’s Enterprise sales team
  • Session transcripts are stored locally; only API calls leave the machine
  • ChatGPT Enterprise supports compliance frameworks including SOC 2, GDPR, and CCPA

Rollout Strategy

Recommended phased rollout for organizations:

  1. Pilot (Week 1-2): Deploy to 3-5 senior engineers with requirements.toml enforcing the read-only sandbox with on-request approvals and cached web search. Collect feedback on AGENTS.md patterns and MCP server needs.
  2. Team expansion (Week 3-4): Roll out to full team. Distribute team-standard config.toml via MDM or repo. Enable workspace-write sandbox for trusted repositories.
  3. CI integration (Week 5-6): Add codex-action to CI/CD pipelines for automated PR review and test generation. Use --ephemeral to keep costs predictable.
  4. Org-wide (Month 2+): Deploy via MDM with requirements.toml enforcing approved MCP servers, sandbox policies, and model allowlists.

Audit Patterns

Track Codex usage and enforce compliance:

  • OpenTelemetry traces: Monitor API call volume, token usage, and latency per team
  • Session persistence: Audit ~/.codex/sessions/ for compliance review (disable with --ephemeral in sensitive contexts)
  • MCP identity enforcement: requirements.toml logs blocked server attempts — review for unauthorized tool usage
  • Git audit trail: All Codex file changes go through standard git — review via branch history and PR diffs

Best Practices & Anti-Patterns

Prompting Patterns

  1. Constraint-driven prompts: Lead with boundaries. “Do NOT change the API contracts. Only refactor internal implementation.”
  2. Structured reproduction steps: Numbered steps produce better bug fixes than vague descriptions
  3. Verification requests: End with “Run lint + the smallest relevant test suite. Report commands and results.”
  4. File references: Use @filename to attach specific files to context
  5. Outcome-driven loops: “Implement, run tests, fix failures, stop only when all tests pass.” Codex iterates until done

Testing Philosophy

The community converges on test-driven AI collaboration:22

  • Define tests upfront as completion signals
  • Let Codex iterate until tests pass (red → green → refactor)
  • Adopt Tiger Style programming patterns
  • Provide exact file text when requesting patches. Codex uses strict matching, not fuzzy AST-based patching

Context Management Best Practices

  • Provide high-quality local documentation rather than relying on web search
  • Maintain structured markdown with tables of contents and progress files (“progressive disclosure”)
  • Normalize line endings (LF vs CRLF) across tracked files to prevent patch failures
  • Keep AGENTS.md concise, since long instructions get pushed out of context

Git Workflow

  • Always create a new branch before running Codex on unfamiliar repos
  • Use patch-based workflows (git diff / git apply) rather than direct edits
  • Review Codex suggestions like code review PRs
  • Use /diff to verify changes before committing

Community Skills and Prompts

The feiskyer/codex-settings repository provides community-maintained configurations:23

Reusable prompts (in ~/.codex/prompts/):

  • deep-reflector: Extract learnings from development sessions
  • github-issue-fixer [issue-number]: Systematic bug analysis and PR creation
  • github-pr-reviewer [pr-number]: Code review workflows
  • ui-engineer [requirements]: Production-grade frontend development

Community skills:

  • claude-skill: Handoff tasks to Claude Code with permission modes
  • autonomous-skill: Multi-session task automation with progress tracking
  • deep-research: Parallel sub-task orchestration
  • kiro-skill: Requirements → design → tasks → execution pipeline

Anti-Patterns

Common mistakes that waste tokens, produce poor results, or create frustrating workflows.

Cost Anti-Patterns

Anti-Pattern Why It Fails Fix
Using xhigh reasoning for everything 3-5x token cost with diminishing returns on simple tasks Use medium by default; reserve xhigh for multi-file architecture decisions
Never using /compact Context fills to 272K, responses degrade Compact after every major milestone or when /status shows >60% usage
Running flagship model in CI Expensive for routine checks Create a ci profile with gpt-5.6-luna and low reasoning

Context Anti-Patterns

Anti-Pattern Why It Fails Fix
Open-ended “explore everything” prompts Codex reads dozens of files, burning context on irrelevant code Scope with specific files: “Review src/auth/login.py and tests/test_auth.py“
No AGENTS.md in the project Codex wastes turns discovering project structure Add a 20-line AGENTS.md with key paths, conventions, and test commands
Attaching entire directories Floods context with irrelevant files Use @filename to attach only the files Codex needs

Workflow Anti-Patterns

Anti-Pattern Why It Fails Fix
Working on main directly No safety net; risky edits are hard to revert Always create a feature branch before starting Codex
Skipping /diff before committing Codex may have made unintended changes Review /diff after every task, before any commit
Ignoring test output Codex iterates past failures if you don’t flag them Use “run tests and stop only when all pass” in your prompt
Never forking conversations One wrong turn pollutes the entire context /fork before risky explorations; discard bad branches

Prompt Anti-Patterns

Anti-Pattern Why It Fails Fix
“Fix the bug” (no context) Codex guesses which bug, reads everything “Fix the TypeError in src/api/handler.py:42 — user.name is None when unauthenticated”
Multi-task prompts in one message Codex conflates tasks, misses some One task per message; use steer mode (Tab) to queue follow-ups
Repeating context every message Wastes tokens on duplicate information Use /m_update for persistent facts; reference earlier context

Workflow Recipes

End-to-end patterns for common development scenarios.

Recipe 1: New Project Setup

mkdir my-app && cd my-app && git init
codex
> Create a FastAPI project with: main.py, requirements.txt, Dockerfile,
  basic health endpoint, and a README. Use async throughout.
> /init

Review the generated AGENTS.md, edit to match your conventions, then:

> Run the health endpoint test and confirm it passes

Recipe 2: Daily Development Flow

cd ~/project && git checkout -b feature/user-auth
codex
> @src/models/user.py @src/api/auth.py
  Add password reset functionality. Requirements:
  1. POST /api/auth/reset-request (email → sends token)
  2. POST /api/auth/reset-confirm (token + new password)
  3. Tests for both endpoints
  Run tests when done.

Review with /diff, then commit.

Recipe 3: Complex Refactor with Plan Mode

codex
> /plan Migrate the database layer from raw SQL to SQLAlchemy ORM.
  Constraints: don't change any API contracts, keep all existing tests passing.

Review the plan. Approve or steer:

[Tab] Also add a migration script using Alembic

After Codex executes, verify:

> Run the full test suite and report results
> /diff

Recipe 4: PR Review with codex exec

codex exec --model gpt-6-luna \
  "Review the changes in this branch against main. \
   Flag security issues, missed edge cases, and style violations. \
   Format as a markdown checklist." \
  -o review.md

Recipe 5: Debugging with Cloud Tasks [EXPERIMENTAL]

codex cloud exec --env my-env "Diagnose why the /api/orders endpoint returns 500 \
  for orders with > 100 line items. Check the serializer, database query, \
  and pagination logic. Propose a fix with tests."

Check progress later:

codex cloud status <TASK_ID>
codex cloud diff <TASK_ID>

Apply the fix locally when done:

codex apply <TASK_ID>

Migration Guide

From Claude Code

Claude Code Concept Codex Equivalent
CLAUDE.md AGENTS.md (open standard)
.claude/settings.json .codex/config.toml (TOML format)
--print flag codex exec subcommand
--dangerously-skip-permissions --dangerously-bypass-approvals-and-sandbox
Hooks (12+ events) Hooks (twelve events since v0.150.0: PreToolUse, PermissionRequest, PostToolUse, PreCompact, PostCompact, SessionStart, SessionEnd, UserPromptSubmit, SubagentStart, SubagentStop, Stop, Interrupt; eleven at v0.149.1, before Interrupt; same names, hooks.json or inline TOML)124132
Subagents (Task tool) Sub-agents (internal, max 6; no user-facing Task tool equivalent)
/compact /compact (identical)
/cost /status (shows token usage)
Model: Opus/Sonnet/Haiku Model: gpt-6.1-sol / gpt-6-astra / gpt-6-luna (current GPT-6 generation; GPT-6.1 Sol is the bundled CLI default since v0.159.1), with gpt-6-sol and gpt-5.6 Sol/Terra/Luna still available and gpt-5.5 retiring from Codex on October 14, 2026
claude --resume codex resume
Permission rules Sandbox modes + approval policies
MCP config in settings.json MCP config in config.toml

Key differences to understand:

  • Sandbox is OS-level: Codex uses Seatbelt/Landlock, not containers. Restrictions operate at the kernel level, below the application layer.
  • Hooks share Claude Code’s event names: Codex registers twelve hook events since v0.150.0 (eleven at v0.149.1, before Interrupt was added) – PreToolUse, PermissionRequest, PostToolUse, PreCompact, PostCompact, SessionStart, SessionEnd, UserPromptSubmit, SubagentStart, SubagentStop, Stop, Interrupt – configured in hooks.json or inline [[hooks.<Event>]] tables, so most Claude Code hook configs port by moving the JSON and trusting it. Differences: every non-managed hook must be reviewed and trusted through /hooks before it runs, prompt and agent handlers are parsed but skipped, and Claude Code events outside these twelve (for example Notification) have no counterpart; cover those with AGENTS.md instructions or skills.124
  • Sub-agents v2 (v0.117.0): Sub-agents now use path-based addresses (e.g., /root/agent_a) with structured inter-agent messaging and agent listing.75 This extends the existing machinery (max 6 concurrent, reduced from 12 in v0.91.0). Multi-agent roles remain customizable via config (v0.104.0+).47 v0.105.0 added spawn_agents_on_csv for fanout across rows with progress tracking and ETA.61 Codex still lacks Claude Code’s explicit Task tool UX for user-directed delegation — use cloud tasks or SDK orchestration for delegation patterns.
  • AGENTS.md is cross-tool: Your AGENTS.md works in Cursor, Copilot, Amp, Jules, Gemini CLI, and 60,000+ open source projects. CLAUDE.md is Claude-only.
  • Profiles replace manual switching: Instead of changing flags per-run, define profiles in config.toml.

From GitHub Copilot

Copilot Concept Codex Equivalent
Copilot CLI (agentic terminal) Interactive CLI or desktop app
Specialized agents (Explore, Plan) Skills + plan mode + steer mode
copilot-instructions.md / AGENTS.md AGENTS.md (same standard)
MCP support MCP support (STDIO + HTTP)
ACP (Agent Client Protocol) App-server protocol for rich-client integration; hooks (PreToolUse, PostToolUse, Stop, and eight more) for lifecycle automation124125
Copilot SDK Codex SDK (TypeScript)
Coding agent workflows Codex agent with sandbox/approval controls + cloud tasks

What you gain:

  • OS-level sandboxing (Seatbelt/Landlock — kernel-enforced vs container-based)
  • Cloud task delegation with codex apply
  • Config profiles for workflow switching
  • Desktop app with worktree isolation

From Cursor

Cursor Concept Codex Equivalent
Project rules (.cursor/rules) / AGENTS.md AGENTS.md + profiles/config
Agent chat/composer workflows Interactive CLI or desktop app
@ file references @ file references (identical)
Apply/edit + review Built-in patching and diff review

Quick Reference Card

╔═══════════════════════════════════════════════════════════════╗
║                    CODEX CLI QUICK REFERENCE                  ║
╠═══════════════════════════════════════════════════════════════╣
║                                                               ║
║  LAUNCH                                                       ║
║  codex                      Interactive TUI                   ║
║  codex "prompt"             TUI with initial prompt           ║
║  codex exec "prompt"        Non-interactive mode              ║
║  codex app                  Desktop app                       ║
║  codex resume               Resume previous session           ║
║  codex fork                 Fork a session                    ║
║                                                               ║
║  FLAGS                                                        ║
║  -m, --model <model>        Select model                      ║
║  -p, --profile <name>       Load config profile               ║
║  -s, --sandbox <mode>       Sandbox mode                      ║
║  -C, --cd <dir>             Working directory                 ║
║  -i, --image <file>         Attach image(s)                   ║
║  -c, --config <key=value>   Override config                   ║
║  --ask-for-approval <p>     Approval policy                   ║
║  --oss                      Use local models (Ollama)         ║
║  --search                   Enable live web search            ║
║                                                               ║
║  SLASH COMMANDS (in TUI)                                      ║
║  /compact      Free tokens   /diff        Git diff            ║
║  /review       Code review   /plan        Plan mode           ║
║  /model        Switch model  /status      Session info        ║
║  /fork         Fork thread   /goal        Persisted goal      ║
║  /worktree     Isolated worktree checkout (default: 0.156.0)  ║
║  /voice        Live voice convo (default: 0.156.0, F8)        ║
║  /tui          Fullscreen/scrollback (default: 0.157.0)       ║
║  /daemon       Background server (--no-daemon to skip)        ║
║  /vim          Vim: R /? u^R /hooks       Browse/toggle hooks ║
║  /recap        Summarize now (auto recap: tui.auto_recap)     ║
║  /init         AGENTS.md scaffold                             ║
║  /mcp          MCP tools     /skills      Invoke skills       ║
║  /ps           Background    /personality Style               ║
║  /permissions  Approval mode /statusline  Footer config       ║
║  /fast         Fast mode (default on: GPT-6 Sol, Luna)        ║
║  /copy         Copy picker: response/code/quote               ║
║  /clear        Clear screen  /theme       Syntax highlighting ║
║                                                               ║
║  TUI SHORTCUTS                                                ║
║  @              Fuzzy file search                             ║
║  !command       Run shell command                             ║
║  Ctrl+G         External editor                               ║
║  Ctrl+L         Clear screen                                  ║
║  Enter          Inject instructions (while running)           ║
║  Esc Esc        Edit previous messages                        ║
║                                                               ║
║  EXEC MODE (CI/CD)                                            ║
║  codex exec --sandbox workspace-write "task" Sandboxed auto   ║
║  codex exec --json -o out.txt "task"    JSON + file output    ║
║  codex exec --output-schema s.json      Structured output     ║
║  codex exec resume --last "continue"    Resume session        ║
║                                                               ║
║  MCP MANAGEMENT [EXPERIMENTAL]                                ║
║  codex mcp add <name> -- <cmd>    Add STDIO server            ║
║  codex mcp add <name> --url <u>   Add HTTP server             ║
║  codex mcp list                    List servers               ║
║  codex mcp login <name>           OAuth flow                  ║
║  codex mcp remove <name>          Delete server               ║
║  codex mcp-server                 REMOVED 0.154.0; app-server ║
║                                                               ║
║  PLUGINS                                                      ║
║  codex plugin marketplace add <src>     Add marketplace       ║
║  codex plugin marketplace upgrade       Upgrade marketplaces  ║
║  codex plugin list                      List incl. remote     ║
║                                                               ║
║  CLOUD [EXPERIMENTAL]                                         ║
║  codex cloud exec --env <ID> Start cloud task                 ║
║  codex cloud status <ID>     Check task progress              ║
║  codex cloud diff <ID>       View task diff                   ║
║  codex cloud list            List tasks                       ║
║  codex apply <TASK_ID>       Apply cloud diff locally         ║
║                                                               ║
║  CONFIG FILES                                                 ║
║  ~/.codex/config.toml        User config                      ║
║  .codex/config.toml          Project config                   ║
║  ~/.codex/AGENTS.md          Global instructions              ║
║  AGENTS.md                   Project instructions             ║
║  requirements.toml           Enterprise policy constraints    ║
║                                                               ║
║  SANDBOX MODES                                                ║
║  read-only          Read files only, no mutations             ║
║  workspace-write    Writes: workspace + /tmp; reads: broad    ║
║  danger-full-access Full machine access                       ║
║                                                               ║
║  APPROVAL POLICIES                                            ║
║  on-request    Prompt for boundary violations                 ║
║  never         No prompts                                     ║
║                                                               ║
║  MODELS (Sep 2026)                                            ║
║  gpt-6.1-sol           Complex coding; bundled default        ║
║  gpt-6-astra           Hardest end-to-end work                ║
║  gpt-6-luna            Focused, high-volume tasks             ║
║  gpt-6-sol             Previous-generation Sol                ║
║  gpt-5.6-sol/-terra/-luna  Older; available in rollout        ║
║  gpt-5.5               Leaves Codex Oct 14, 2026              ║
║                                                               ║
╚═══════════════════════════════════════════════════════════════╝

Changelog

Date Version What Changed Source
2026-10-14 Guide v2.82: alpha-channel correction, no stable release (npm latest stays 0.162.1). alpha is 0.163.0-alpha.11 (October 14, 03:27 UTC on GitHub); alpha.10 (October 13, 19:04 UTC) had already shipped when v2.81 named alpha.9 as current. The current-state box and the stability note now say so. 191
2026-10-13 Guide v2.81: alpha-channel note only, no stable release (npm latest stays 0.162.1). alpha moved from 0.163.0-alpha.5 to alpha.9 on October 13 (alpha.8 at 13:14 UTC and alpha.9 at 15:47 UTC on GitHub); the current-state box and the stability note say so. 190
2026-10-11 Guide v2.80: Codex 0.161.0 (October 7), 0.162.0 (October 8), and 0.162.1 (October 9). One default flips: instant_interrupt is on since 0.162.0 (instant_interrupt = false turns it off); API-key model discovery is on since 0.161.0. 0.161.0 adds /mcp login <name>, voice device selection, the opt-in Daybreak flag (cli_daybreak, /daybreak, codex exec --cyber-access-program), and Bedrock multi-agent V2; its GPT-6.1 Sol note repeats the 0.159.1 catalog, byte-identical at the tag. 0.162.0 adds worktree tools for the model, Command Center pinning (p), transcript copying with Ctrl+Insert, tui.mouse_scroll_speed, provider capabilities, and the ultrafast_mode gate, and removes apply_patch_preserve_line_endings. 0.162.1 fixes a TUI crash and the background-server feature-mismatch startup failure. Current-state box, description, version examples, config reference, slash table, worktree and provider sections, troubleshooting, and stability note follow; alpha is 0.163.0-alpha.5. 186 187 188 189
2026-10-06 Guide v2.79: Codex 0.159.3 (September 30), 0.160.0 (October 1), and 0.160.1 (October 5). None changes a default: the bundled catalog is identical to 0.159.1, and GPT-6.1 Sol stays the default. 0.159.3 adds optional account-security reminders. 0.160.0 adds two opt-in Guardian flags, history retrieval (guardian_conversation_history_tools with two auto_review keys) and handoff-aware root context; projectless sessions; command center paging; X11 middle-click paste; explicit provider catalogs as authoritative; and Windows sandbox fixes. 0.160.1 fixes remote Windows MCP startup. The current-state box, TL;DR, description, version examples, config reference, Guardian and provider sections, troubleshooting row, and stability note follow; alpha is 0.162.0-alpha.16, and the 0.161 line has no stable. 182 183 184 185
2026-09-30 Guide v2.78: Codex 0.159.2 (September 29), a Windows patch that stops console windows flashing when Codex launches background processes and sandboxed commands; it changes no defaults, config keys, or models. The current-state box, TL;DR, description, and version examples now point at 0.159.2, and a 0.159.2 subsection opens the version list. The stability note adds 0.160.0-alpha.6.1, a Windows backport to alpha.6 that leaves the 0.160 line without a stable, and moves alpha to 0.161.0-alpha.4. Defaults, GPT-6.1 Sol as the bundled and Bedrock default, Fast-tier defaults, pricing, context management, and the GPT-5.5 date rechecked; unchanged. 180 181
2026-09-29 Guide v2.77: Codex 0.158.0 (September 28), 0.159.0, and 0.159.1 (September 29). 0.159.1 makes GPT-6.1 Sol the bundled and Amazon Bedrock default model; the current-state box, TL;DR, model table and notes, flowchart, plan, credit, and API tables, profiles, reasoning table, reference card, and Claude Code row now follow it, and GPT-6-Astra is no longer described as the default. 0.158.0 turns on terminal input approval, copy-on-select, and right-click paste, each listed with its off-switch, and removes the Guardian thread_context opt-out; the approval, Guardian, and /tui sections now say so. The stability note records that the 0.158 line shipped stable from 0.158.0-alpha.15.4, that the 0.160 line stopped at alpha.6, and that alpha is 0.161.0-alpha.2. Experimental context management is marked unavailable, per the config reference. 176 177 178 179
2026-09-26 Guide v2.76: Codex 0.157.0 stable (September 25) and 0.157.1 (September 26). 0.157.0 turns on three defaults: the fullscreen transcript, automatic background-server startup, and Guardian thread context; the current-state box, /tui and /daemon rows, reference card, stability note, and Guardian section now say how to turn each off. Amazon Bedrock gains GPT-6 Sol and Luna with GPT-6 Sol as its default; the model table and Astra note follow. The bundled catalog no longer marks Astra as supporting experimental context management, noted in both context sections. 0.157.1 is four Windows fixes its release notes do not list. Alpha moves to 0.159.0-alpha.4, with no stable from the 0.158 line. GPT-6 model guidance, Fast-tier defaults, pricing, and the GPT-5.5 retirement date rechecked against the docs and code and unchanged. 174 175
2026-09-23 Guide v2.75: Codex 0.156.1 stable (September 23) adds GPT-6 Sol and GPT-6 Luna to the model picker. Model table, credit and plan tables, API rates, flowchart, profiles, reference card, and the Claude Code comparison row now follow the shipped catalog and the models docs: GPT-6 Sol for everyday and complex coding, GPT-6-Astra for the hardest work (still the bundled default), GPT-6 Luna for high-volume tasks, GPT-5.5 leaving Codex October 14. Release Highlights restructured: a current-state summary, one subsection per version, newest first, and a short stability note; evidence moved to footnotes. Voice text corrected to default-on everywhere; opt-out keys added for voice, worktrees, Guardian compaction reuse, and the fullscreen TUI; /theme rows reconciled; docs-lag key names and the worktrees-docs claim corrected. Currency to 0.156.1; alpha to 0.158.0-alpha.2 and a fourth out-of-band cut. 171 172 173
2026-09-22 Guide v2.74: Codex 0.156.0 STABLE SHIPPED (Sep 22, 19:51 UTC; npm latest = 0.156.0 at 19:55 UTC) – THREE DEFAULTS FLIP, and the morning’s skipped-stable read is REFUTED as a LATE CUT. Headline, ancestry-checked per item against the rust-v0.156.0 tag: voice is ON BY DEFAULT (#44921, merge 3f59eb9), managed worktrees are enabled by default (#44870, merge 68bc536), and Guardian parent-compaction reuse is on by default (#46522, merge 3fd9e7e) – so the opt-in-experimental voice framing standing since v2.71 INVERTS on every surface: TL;DR, /voice row, /experimental row, /worktree row, /usage row, CLI-vs-desktop voice cell, Thread Modes worktree note, Guardian section, and the reference-card box. THE CUT IS THE LESSON: compare-verified, stable 0.156.0 carries exactly the rust-v0.156.0-alpha.16 content (one commit each way, each side’s own bump), and alpha.16 published Sep 21 16:51 UTC, 77 minutes BEFORE rust-v0.157.0-alpha.1 opened at 18:08 UTC – the branch was cut from a base the alpha train had already passed, tagged Sep 22 18:39 UTC, published 19:51 UTC after NINE 0.157.0-alpha cuts. A branch cut sits on the late cut: alpha.17 (21 commits) and alpha.18 (65 commits) missed stable entirely. The v2.73 skipped-stable row is preserved unedited as history; the DOCTRINE evolves – a missing tag is evidence about the moment of access only, and a number is safely called skipped only once a HIGHER number ships stable. WATCH LIST: 15 of 15 shipped, zero reversals – themes #46504, display names #46503, worktree+daemon #46498, reasoning-summary default #46533, doctor path diagnostics #46543, voice maturation #46835/#46880, /usage dashboard (#45763/#45764/#45765/#45766/#45768/#45769/#45770/#45772, and #45767 and #45771 are not PRs at all, so the range is eight, not ten) + maturation #46863/#46864/#46866, F8 #46071, voice analytics #46058, Mermaid #46054/#45817, TeX-as-Unicode #45501/#45612/#46266, /daemon #45854 + --no-daemon #46088 + auto-start #46117, personality flag retired #45809, daybreakEnabled #45513 (still zero docs surface), Astra starfield #46096. BIGGEST SURFACE WAS UNWATCHED: an optional fullscreen TUI via /tui (#46883) with transcript search and detail controls (#46734), mouse selection and copying (#46732/#46858), right-click copy (#46895), link clicks (#46884), warnings viewer (#46751); fullscreen transcript stays off by default (#46849). Other new: local agent message board as working infra (#46966/#46978/#46979/#46985/#46959/#46994), subagent MCP elicitation (#46877), ToolPolicy (#46999), command-center filter tabs (#46839), terminal probe timeout 100ms -> 250ms (#46855); security #44639/#45984/#46500/#46962. New /tui and /daemon slash rows added. DOCS CAUGHT UP SAME DAY (a first in this tracking window): the changelog carries a dated Codex CLI 0.156.0 entry (2026-09-22) stating “Voice conversations are enabled by default” and “worktree support is now enabled by default” – first-party corroboration of both flips – while the reference pages LAG: /experimental is listed but no longer names voice, /usage is listed, and /voice, /tui, /daemon, --no-daemon are all still absent, with no features.voice/features.worktrees/features.tui config keys and no default-on language on the Git worktrees page. NEW WATCH LINE 0.157.0-alpha.10 (Sep 22, 22:21 UTC; 101 commits over 0.156.0), led by a model signal corroborated in docs the same day: GPT-6 Sol and Luna enter the catalog (#47332) and Bedrock (#47347) with docs entry “GPT-6 Sol and Luna in Codex and ChatGPT Work” naming gpt-6-sol/gpt-6-luna – NOT in any shipped stable, so the model table is untouched; plus three more queued default flips (fullscreen transcript #47178, auto daemon startup #47179, Guardian thread context #47275) and the ultrafast tier removed from gpt-5.6-sol (#47130). Also recorded: rust-v0.156.1 exists as a TAG ONLY (created Sep 23, 00:45 UTC; one content commit, #47332, plus its bump) with no GitHub release and no npm publish – in flight, not released. Currency: frontmatter, TL;DR, and codex --version samples to 0.156.0; the 0.155.1 block loses its npm-latest phrasing; alpha-caution current-state to alpha.10 vs latest 0.156.0. 169 170
2026-09-22 Guide v2.73: The 0.156.0 STABLE CUT NEVER HAPPENED – the version line was SKIPPED (watch-line update; no stable release; npm latest stays 0.155.1). The v2.72 release-crunch signal resolved as a skipped stable, not a cut, verified at source September 22: no non-prerelease GitHub release since rust-v0.155.1 (September 18, 20:03 UTC), no rust-v0.156.0 tag in the namespace (only alpha tags, alpha.1 through alpha.18; alpha.15 and alpha.18 are tags without releases), and no 0.156.0 on npm (latest = 0.155.1 with every per-platform tag matching). The 0.156.0-alpha line published its last cuts September 21 – alpha.16 (16:51 UTC) and alpha.17 (21:40 UTC) – and rust-v0.157.0-alpha.1 opened BETWEEN them (18:08 UTC); the new line reached 0.157.0-alpha.8 by September 22 (12:34 UTC), eight cuts in 18h26m, so the crunch cadence continues on the new number, and npm alpha plus every per-platform alpha-* tag reads 0.157.0-alpha.8, semver-ahead of latest again. THE TRAIN ROLLED FORWARD, compare-verified: rust-v0.156.0-alpha.14 and rust-v0.156.0-alpha.17 each differ from the rust-v0.157.0-alpha.8 history by exactly ONE commit, their own release-bump commit, so every content commit on the abandoned line is contained in the new head (which carries 94 further commits, unscanned at item level). Per-item spot-checks: #44921 (voice default-on), #44870 (worktrees default-on), and #46522 (Guardian parent-compaction default) are each ancestors of rust-v0.157.0-alpha.8 and still NOT ancestors of stable rust-v0.155.1, so shipped-stable behavior claims stand unchanged. NEW PATTERN DATA POINT for this repo: a version line can be abandoned mid-crunch, so the watch doctrine’s promotion re-verification now begins by confirming WHICH version number the stable lands as. Also recorded: a THIRD out-of-band cut, rust-v0.155.0-alpha.16.1 (September 22, 00:20 UTC; exactly two commits over alpha.16 – cherry-picked #46562 plus the bump), on GitHub and npm without holding the dist-tag at this access. Watch paragraph rewritten to the 0.157.0-alpha.8 state; alpha-channel caution current-state updated; body currency stays 0.155.1 – no stable release, no currency changes. 159 160
2026-09-21 Guide v2.72: Codex 0.155.1 stable hotfix (Sep 18, 20:03 UTC; npm latest = 0.155.1) – the TUI reasoning-summary default restored to none – plus the dist-tag anomaly RESOLVED, a release-crunch 0.156.0-alpha.14 watch line, and the docs changelog finally caught up. The hotfix, stated precisely: the rust-v0.155.0…rust-v0.155.1 compare is exactly two commits (the fix plus the release-prep commit), and the fix is one line in new_thread_reasoning_overrides – the fallback used when model_reasoning_summary is unset moved from Detailed to None. So on 0.155.0 a new local TUI thread with no explicit setting sent detailed on the wire and providers that do not support reasoning summaries rejected the request outright; 0.155.1 sends nothing unless you ask for it, and explicit auto/concise/detailed were honored throughout. The identical change landed independently on main as #46533, so stable and the 0.156 line now agree. DIST-TAG ANOMALY RESOLVED: npm alpha now reads 0.156.0-alpha.14 with every per-platform alpha-* tag matching, semver-AHEAD of latest (0.155.1) again – the anomaly passage is rewritten from an active incident into a recurring publishing pattern that has now occurred twice and resolved twice, both times in the hours around a stable cut, with the pin-explicit-versions advice retained and a npm view @openai/codex dist-tags pre-check added. NEW WATCH LINE 0.156.0-alpha.14 (rust-v0.156.0-alpha.2…rust-v0.156.0-alpha.14, 147 commits; bodies still empty stubs): the cadence is the lead signal – five alpha cuts in under seven hours, alpha.10 (Sep 20, 21:18 UTC) through alpha.14 (Sep 21, 04:09 UTC), with alpha.9 only the previous morning, which is what a release crunch looks like on this repo. New in the window: six bundled TUI themes with theme-aware accents (#46504), catalog model display names throughout the TUI (#46503), Guardian parent-compaction reuse enabled by default (#46522, a default flip to watch on its own), worktree sessions able to use an existing local daemon (#46498), reasoning summaries disabled by default for new TUI threads (#46533), bounded filesystem path diagnostics in codex doctor (#46543), voice maturation (reduced motion #46835, playback across pauses and packet bursts #46880), and /usage dashboard maturation (navigation + keyboard help #46863, mouse navigation #46866, report layouts preserving reading positions #46864). The default-on flips #44921 (voice) and #44870 (worktrees) were RE-ANCESTRY-CHECKED against stable rust-v0.155.1 and are still NOT ancestors of it, so the body’s opt-in-experimental voice and non-default worktrees claims stand unchanged. DOCS MOVED, superseding the v2.71 note: the docs changelog now carries dated entries for Codex CLI 0.155.0 (2026-09-17) and 0.155.1 (2026-09-18), so “0.155.0 absent, docs unchanged since Sep 14” no longer holds; the 0.155.0 entry describes voice as “enabled through /experimental”, first-party corroboration of this guide’s opt-in framing. Still docs-absent and stated as such: the CLI /voice command itself (the slash-command reference lists /worktree but neither /voice nor /experimental), while the docs “Voice” feature page covers desktop-app ChatGPT Voice, a separate surface. SCANNER CORRECTION applied: the scan described the alpha.10-to-alpha.14 burst as “~30 hours”, but the timestamps it supplied are 6h50m apart – the ~28h figure fits alpha.9 through alpha.14 (six cuts), not alpha.10 through alpha.14 (five); the guide uses the verified under-seven-hours figure. Currency: frontmatter, TL;DR, and codex --version samples to 0.155.1; the 0.155.0 blocks lose their npm-latest phrasing. 158 159
2026-09-17 Guide v2.71: Codex 0.155.0 stable (Sep 17, 23:14 UTC; npm latest = 0.155.0) – VOICE SHIPS, EXPERIMENTAL AND NOT DEFAULT-ON – plus the dist-tag anomaly RECURRING and the new 0.156.0-alpha.2 watch line. Headline, stated precisely: /voice conversations with live transcripts and mic controls land in stable, enabled through /experimental, supported builds only (#43581/#43651/#44331), signed macOS voice resources (#43983), configurable mute shortcut (#43690) – while the default-on flips (#44921 voice, #44870 worktrees) merged Sep 11 but are NOT ancestors of rust-v0.155.0 (ancestry-checked per item); both ride the 0.156.0 line, so the body says opt-in experimental, never “on by default” (new /voice slash row, /experimental row, voice-section update, CLI-vs-desktop voice cell). Also stable: MCP user verification SHIPS – Touch ID / Secure Enclave verification of MCP requests in local TUI sessions on supported Macs (#43624/#43712/#43715), workspace-scoped identity (#43524), native verification in MCP continuations (#44346) – resolving the v2.68 promotion-checklist watch (new MCP-section note); Windows /sandbox-add-read-dir REMOVED (#44259, standing watch closed); worktree management adjacents (#43942/#44424/#44433) with worktrees still non-default (/worktree row + Thread Modes note); live reasoning summaries in the status row + completion timestamps (#43558/#43921); daemon update schedules + codex app-server daemon update + thread recovery after restarts (#43542/#43562/#44314); Bedrock AWS credential commands (#44028); Python SDK publishing aligned with stable releases (#44067); security – WSL interop escapes (#44286), shell-snapshot credential exposure (#43909/#44040), Guardian action-review limit 200,000 bytes on its home line (#44060); Memory v2 GROUNDWORK ONLY (#43797-#43827). DIST-TAG ANOMALY RECURRED, sharper: alpha moved off alpha.2.5 onto ANOTHER out-of-band cut, 0.155.0-alpha.9.2 (published Sep 18, 03:09 UTC – AFTER stable; exactly two cherry-picks, #46237/#46333 Windows sandbox fixes), so npm i @openai/codex@alpha now installs a build semver-OLDER than latest (0.155.0-alpha.9.2 < 0.155.0); the anomaly passage is rewritten as a recurring pattern and the pin-explicit-versions advice stands stronger. New watch line 0.156.0-alpha.2 (rust-v0.155.0…rust-v0.156.0-alpha.2, 351 commits): Daybreak’s first concrete code surface – daybreakEnabled on thread start (#45513, still zero public docs) – plus the confirmed default-on flips (#44921/#44870), configurable F8 voice shortcut (#46071), voice-session analytics (#46058), the /usage account analytics dashboard (#45763-#45772), TUI Mermaid rendering (#46054/#45817), TeX math as Unicode (#45501/#45612/#46266), /daemon menu (#45854) + –no-daemon (#46088) + opt-in auto background server startup (#46117), personality flag retired (#45809), Astra composer starfield (#46096), heavy Windows sandbox provisioning. DOCS: NO MOVEMENT – models page + changelog unchanged since Sep 14, the 0.155.0 release absent from the docs changelog, no voice announcement anywhere: the launch is CLI-only and experimental, and the guide says so. Currency: frontmatter, TL;DR, and codex –version samples to 0.155.0. 156 157
2026-09-16 Guide v2.70: 0.155.0-alpha watch delta alpha.6 -> alpha.10 + the ALPHA DIST-TAG ANOMALY (watch-note update; no stable release; npm latest stays 0.154.0). Lead item, operator-facing: npm’s alpha dist-tag now points at 0.155.0-alpha.2.5 (published September 16, 13:17 UTC), an out-of-band cut from the OLD alpha.2 base, semver-LOWER than the alpha.6-alpha.10 line – npm i @openai/codex@alpha today installs a build MISSING all alpha.3+ feature content; alpha-channel users should pin explicit versions until the tag moves. Its six-commit compare over alpha.2 is a voice release packaging rehearsal (three staging commits incl. a public Cygwin source fetch and a Linux-only stage, opt-in provisioned macOS packages with Rust releases #45345, a Windows sandbox refresh fix after elevated provisioning, and the version bump) – whether deliberate staging or a mistag, it is the current npm state, and strong corroboration that voice default-on (#44921, already the line’s headline risk) is close to shipping. The watch window itself: four alphas, September 15 (21:09 UTC) through September 16 (04:20 UTC), 65 commits in rust-v0.155.0-alpha.6…rust-v0.155.0-alpha.10 (full line compare from 0.154.0: 448). New in the window: account analytics dashboard in /usage (stacked charts, Summary tab, Top chats incl. consumer, gated plan usage history, token/credit formatting, account-bound auth; #45739/#45742/#45763-#45772) – the biggest new user-visible surface; Guardian reviewer hardening (~12 commits: lifecycle/config/approval routing consolidated into the reviewer extension, requests routed through /responses with identifying headers #45736, authorization evidence preserved across checkpoint migration #45782/#45789, unused prototype API retired #45679); Windows sandbox rework (implementations split from legacy setup modes #45737, executor sandbox selection separated from sandbox levels #45730, managed-proxy routing #45757, app-server as TUI state source #45821/#45830, uninstall cleanup #45799); daemon maturity (work continues after managed restarts #45820, interrupted turns in recovery snapshots #45807, native PID identities #45779, pinned packages restorable to latest stable #45780); documented-behavior candidates (personality feature flag RETIRED with settings deprecated #45809, session-only model/reasoning selection #45831, startup tool allowlists for threads #45711, plugin installs root-thread-only #45806, editing an earlier prompt reverts the thread #45845); rendering (standalone display math #45612, bounded Mermaid text renderer #45817; V8 array-sort optimization paths disabled #45760, pairing with the rusty-v8 v152.2.0 artifact release). The three standing headline risks (voice #44921, worktrees #44870, MCP user verification + Secure Enclave) and the #44259 removal: NO new commits, status unchanged, voice urgency RAISED by the rehearsal. Also added: GPT-5.5 retires from Codex with ChatGPT sign-in on October 14, 2026 (models docs verified live September 16; replace gpt-5.5 with gpt-5.6-sol; the OpenAI API is unaffected) – one line beside the GPT-5.4 retirement note. Body otherwise untouched (pre-release). 155
2026-09-15 Guide v2.69: Codex 0.154.0 stable (Sep 9; npm latest) – THE BRANCH CUT – plus the new 0.155.0-alpha.6 watch line and a docs availability-matrix flip (this update also delivers the deferred v2.68 public sync). 0.154.0 was cut at roughly the alpha.6 boundary: all 58 alpha.7 commits are absent from the 249-commit rust-v0.153.4…rust-v0.154.0 compare (verified hash by hash; zero overlap). Promotion checklist resolved 2-of-3: codex mcp-server REMOVED (#42993; the standalone codex-mcp-server binary too; MCP section rewritten, QRC updated, the September 5 docs-changelog removal entry quoted) and legacy Guardian approval paths removed (#43462, with #43458 centralized context/checkpoint policy, #43442 stale-approval rejection, and #44060 raising the action-review limit to 200,000 bytes, a cherry-pick); MCP user verification (#43712/#43715) and Secure Enclave signing (#43624) NOT SHIPPED – all three on the alpha.7 exclusion list, riding the 0.155 line, stated explicitly so no reader treats user verification as 0.154 behavior. Also cut: the voice TUI graduation (#43581), Memory v2, daemon auto-update config, reasoning-effort pinning. SHIPPED in stable and now in the body: managed worktrees, experimental (#42196/#42366/#42652/#43069/#43120/#43286; new /worktree slash row + Thread Modes note), free-form async user messages + TUI (#42354/#42891/#42894/#42897), Windows sandbox provisioning (~15 commits incl. the native MXC adapter #42841) + the Windows app-server daemon (#42405) + managed daemon updates (#42392), remote permission profiles (#42453/#43340), model-capability context gating (#43147; Context Management updated), voice runtime/host infrastructure ONLY (#42676/#43097/#43248; the live TUI feature is alpha-only, said precisely), first stable Daybreak code references (#42667/#42854; still zero public docs), and the v2.68 “no movement” trio ALL SHIPPED, correcting that status: Vim R replace mode (#42194/#42584; /vim row + QRC), live compaction status (#42319), and the PATH-helpers-before-trust security fix (#42324, with #42590 macOS terminal-input-injection hardening). DOCS DELTAS (learn.chatgpt.com, all re-verified 2026-09-15): the models availability matrix now marks Astra AVAILABLE for Codex cloud – flipping the guide’s standing “Sol stays” cloud claims in the models table, the Astra note, and 146; the reasoning ladder re-confirmed (Low, Medium default, High, Extra high, Max, Ultra) with per-level picker descriptions and SDK corroboration – Python SDK 0.154.0 (Sep 10) adds the max and ultra effort values (#39662); the six-option Power-preset mapping and the cross-context notes re-verified unchanged verbatim. New 0.155.0-alpha.6 watch line (opened Sep 10; twelve alpha publishes in six days; stub bodies; 384-commit compare): voice and worktrees ENABLED BY DEFAULT on the line (#44921/#44870), user verification expanding (#44613/#44346/#44877), daemon threads persisted across restarts (#44283/#44299/#44314), daybreakEnabled on thread start (#45513), enterprise MCP (#44832/#45459/#44318), Windows /sandbox-add-read-dir removed (#44259). Currency: TL;DR, frontmatter, and codex –version samples moved to 0.154.0. 152 153 154
2026-09-08 Guide v2.68: 0.154.0-alpha.7 watch-note refresh (note-only update; no CLI release; public sync deferred). The 0.154.0-alpha line advanced alpha.6 -> alpha.7 (published September 8, 17:44 UTC; npm alpha dist-tag moved in lockstep; no stable release past 0.153.4; release bodies remain empty stubs, the compare is the only source; 58 commits in the alpha.6…alpha.7 compare). Stability-note watch list rewritten to the alpha.7 state. GRADUATED from plumbing to enabled features on the alpha line: live WebRTC voice conversations in the TUI (#43581 + a nine-commit polish wave: mute shortcut and indicators #43651, configurable mute #43690, split-flap transcript animation #43656/#43699, spoken-prompt styling + workspace-file links #43676, composer voice strip #43683, meter stabilization #43695, clock-sync disable #43704, regression coverage #43645) – a shipping TUI feature now, not a runtime skeleton; MCP user verification ENABLED on supported devices (#43712 TUI, #43715 bundled TUI; backed by macOS Secure Enclave signing #43624, workspace-scoped identity #43524, provider abstractions #43547, app-server wiring #43568, TUI prompt #43702, bookkeeping #43708) – a documented-behavior change if it reaches stable, added to the promotion checklist beside #42993 (mcp-server removal) and #43462 (legacy Guardian paths removed); zero alpha.7 commits reverse either of those. NEW WATCHED: Memory v2 (configurable memory versions with isolated storage #43797, dual writing + readiness reporting #43827, human-evidence prioritization #43799, summary-only extraction #43800, writer-side chunking #43808, consolidation/read prompts #43813); managed app-server daemon auto-updates (pins preserved #43521, updater on managed starts #43529, configurable #43542, explicit update command #43562, PID identity #43552, shutdown grace #43572, version comparison + older-service warning #43619/#43622, configurable notices #43698). CONTINUING: Guardian v2 context-registry refactor (12 commits incl. score-lag discount #43527, synchronous reviewers #43570); reasoning effort pinned under config overrides #43795 and preserved through compaction #43796; fork version preservation #43540/#43545; model catalog base-instructions exclusion #43604. NO MOVEMENT: Windows sandbox provisioning, the async-message TUI cluster (generic polish only), remote permission profiles, Daybreak (zero mentions), Vim replace (#42194), live compaction status (#42319), PATH-helpers trust (#42324). Watch bookkeeping while a translation run holds the public copy – the public sync is deferred to the next shipped update. 150 151
2026-09-07 Guide v2.67: 0.154.0-alpha.6 watch-note rewrite + docs-published Power-preset mapping (note-only update; no CLI release). The 0.154.0-alpha line advanced alpha.3 -> alpha.6 (published September 7, 18:03 UTC; alpha.4/alpha.5 tags exist unpublished; npm alpha dist-tag = 0.154.0-alpha.6; 147 commits in the alpha.3…alpha.6 compare; release bodies are empty stubs, the compare is the only source). Stability-note watch list rewritten to the alpha.6 state. MOVED: managed worktrees (#42196) expanded into a full surface (#42652, #43069, #43120, #43279, #43286, #43298); free-form async messages (#42354) now a six-PR TUI cluster; heavy native-voice-runtime movement (GStreamer, WebRTC, opt-in local audio, RTP, realtime session API, playback, Bazel toolchain); Windows sandbox provisioning continued (incl. native MXC adapter #42841); durable-reasoning and TUI-preferences adjacent work. NO MOVEMENT: Vim replace (#42194), live compaction status (#42319), PATH-helpers trust (#42324). NEW WATCHED: deprecated codex mcp-server command REMOVED on the alpha line (#42993) – becomes a documented removal if it reaches stable 0.154.0, re-verify at promotion; Guardian v2 overhaul (~25 commits; legacy approval review paths removed #43462, stale approvals rejected #43442); Astra TUI polish; experimental MCP user-verification (#43265/#43289/#43352); remote permission profiles (#43330/#43340); experimental context gated by model capability at session startup (#43147); the docs-absent “Daybreak” eligibility concept (#42667, #42854); smaller: /copy extended (#43055), jemalloc musl (#42850), read-only view on active-writer resume (#43253). DOCS: the models page (on or before September 6; absent at 146’s September 5 re-access; re-confirmed September 7) maps the Power presets onto Astra tiers, verbatim: “For eligible Pro, Business ($100), and Enterprise accounts, the Astra rollout updates the Power options to Terra Light, Sol Light, Sol Medium, Astra Light, Astra Medium, and Astra Extra High. Options can differ by plan and rollout stage.” – added to the Astra record in Which Model Should I Choose?; 146 extended with the dated re-access. Scanner-confirmed unchanged, no edits: Astra still unavailable for Codex cloud, dual reasoning defaults still unreconciled, cross-context eligibility still Plus/Pro, plan-eligibility line unchanged, docs changelog quiet since September 4. 146 150
2026-09-05 Guide v2.66: Astra rollout status superseded + experimental cross-context notes (note-only update; no CLI release). OpenAI announced on X (September 4) that GPT-6 Astra “is now available to all Pro, Enterprise, and Business Premium users in ChatGPT Work and Codex” and “live in the API,” with Plus and Business days behind; the Codex lead Tibo Sottiaux followed up the same evening: “Astra is now rolled out to all Plus and Business users too.” Entitlement stays uneven in practice (September 5 community reports: Plus accounts seeing only GPT-5.6 models in Codex) and the models docs availability line is unchanged, so the Sol-pin fallback advice stands. TL;DR, Mental Model, Release Highlights lead, and the Models-section Astra note updated; launch-day phasing statements retained as attributed records. NEW: Models-section paragraph on the docs-published experimental cross-context notes – “Astra keeps notes across context windows and can search earlier messages and tool results from the same task” (Plus/Pro opt-in via features.context_management.experimental_mode = true; off by default; not available with Business, Enterprise, or API-key sign-in at launch) – the same v0.153.0 config surface, now tied to Astra by the docs. 146 149
2026-09-04 Guide v2.65: GPT-6-Astra LAUNCH + Codex 0.153.3 + 0.153.4 (Sep 4 same-day patches; npm latest = 0.153.4). OpenAI announced GPT-6-Astra September 3, 2026 – phased rollout starting with a limited set of organizations (cybersecurity-program partners first), then ChatGPT Plus/Pro/Business/Enterprise “over the coming days,” plus the OpenAI API and AWS (announcement facts press-reported: CNBC, Axios, Forbes, Al Jazeera, 9to5Mac; openai.com 403’d to the fetcher). First-party docs live and cited: API models page – gpt-6-astra flagship, “Our most capable model, built for the hardest end-to-end work,” $10/$50 per MTok standard short-context ($20/$75 documented above 272K input, applied to the full request), 1.05M context window = 922K max input + 128K max output, cutoff Apr 30, 2026, above GPT-5.6 Terra (balanced) + Luna (budget); Codex docs – Astra the recommended Codex model, availability “depends on the rollout, your sign-in method, and your client,” eligible Pro/Business ($100)/Enterprise named, marked unavailable for Codex cloud (Sol stays available there), reasoning ladder Low-Ultra with Medium the docs-page default and low the 0.153.4 bundled-catalog default_reasoning_level. Fast-mode BILLING is documented (2.5x Standard credits per the speed docs, 2x Standard API rates per the pricing page); only the “2x speed” claim stays catalog display text. 0.153.3 (19:01 UTC): Astra added to Amazon Bedrock catalogs (#42805, Mantle + Runtime global/US routes; Sol remains Bedrock default – cherry-pick of watched #42619); Astra async-clarification guidance corrected (#42809, text-only). 0.153.4 (23:25 UTC, npm latest): bundled catalog visibility flipped hide -> list, Astra’s existing priority makes it the BUNDLED DEFAULT when no model is explicitly configured (#42874 – the user-visible promotion of watched #42607’s staging); async-question guidance qualified by tool availability (#42878). The rust-v0.153.2…rust-v0.153.4 compare is exactly these four PRs + a version bump. Watch-list resolution: #42607 + #42619 PROMOTED via 0.153 hotfix backports (not the 0.154 train); all other alpha.1/alpha.3 watched items remain unpromoted; alpha line unchanged at 0.154.0-alpha.3, no new alpha delta. Body: Models table gains the gpt-6-astra row; the Astra note flips from “catalog staging only” to launched (API numbers + Codex reasoning ladder + rollout/entitlement caveat + pin guidance model = "gpt-5.6-sol" or -m); TL;DR, Mental Model, Release Highlights, flowchart, and QRC reframe Astra as the recommended/bundled default WITH the rollout caveat and Sol as the stable fallback. DOCS HOST MOVE flagged for future scans: developers.openai.com/codex/* 308-redirects to learn.chatgpt.com/docs/*. Operator verification: codex exec -m gpt-6-astra returned the expected probe reply on 0.153.3 (rollout-entitled account). Currency: frontmatter/TL;DR/version samples to 0.153.4; the 0.153.1/0.153.2 block loses npm-latest phrasing. Review pass (same day, Codex cross-review, applied pre-publish): input/total context split (922K in, 1.05M window), long-context pricing tier, dual reasoning defaults (docs Medium vs bundled-catalog low), Fast-mode billing docs-confirmed, Astra-default claims scoped to the bundled CLI catalog with the cloud-unavailability note, explicit staging-to-launch dates, and the Forbes “false start” recharacterized in 145 (announcement-page availability, not the catalog staging). 145 146 147 148
2026-09-03 Guide v2.64: Codex 0.153.1 + 0.153.2 (Sep 3 afternoon patches; npm latest = 0.153.2). The 0.153.1 headline is UNLISTED in its release body, found via the rust-v0.153.0…rust-v0.153.1 compare: Guardian computer-use scoring honors model requirements (#42422, cherry-pick of 38ba8cdc) – computer-use-only scoring and fast approval decisions gated on the active model setting node_repl_auto_review_required, prior/in-flight scores invalidated on a model switch that skips scoring so a stale approval decision cannot revive (Guardian section + Release Highlights). Listed 0.153.1: GPT-6-Astra model catalog entry backported (#42605; API-configurable only, default model + picker unchanged – catalog staging, NOT a launch; note in Models). 0.153.2: one cosmetic fix – GPT-6-Astra Fast tier description text “1.5x” corrected to “2x speed, increased usage” (#42632; display text only, changelog-row-only). Watch-list check: NONE of the 0.154.0-alpha.1 watched items promote in the rust-v0.153.0…rust-v0.153.2 compare; the stable delta beyond 0.153.0 is exactly #42422 + #42605 + #42632. Watch note advanced to 0.154.0-alpha.3 (103 commits ahead of 0.153.0; 19 commits alpha.1…alpha.3; release bodies on this line are empty stubs, the compare is the only source). Added watched items: GPT-6-Astra bundled model catalog (#42607) + Amazon Bedrock catalogs (#42619) (model-launch staging); security/hardening cluster – macOS sandbox hardened against terminal input injection (#42590), Guardian review required for incompatible compaction checkpoints (#42588), trusted headers for remote exec WebSockets (#42606), Noise handshakes bounded by exec-server init timeout (#42623); Guardian thread context flag (#42529) + verified user answers persisted (#42579). Alpha.1 watched items retained; per-item re-verification against the stable compare stays mandatory at promotion. Currency: frontmatter/TL;DR/version samples to 0.153.2; the v0.153.0 highlights block loses its npm-latest phrasing. 142 143 144
2026-09-03 Guide v2.63: Codex 0.152.0 + 0.152.1 (Sep 1) + 0.153.0 (Sep 3, npm latest). The 0.152-alpha watch list went thirteen-for-thirteen with one reversal: update_plan shipped OPT-IN, not default-enabled – #41744 “Make the update_plan tool opt-in” is the final state (tools.update_plan.enabled defaults to false; bundled guidance stripped from model/collaboration-mode/multi-agent/compaction/prewarm/goal-continuation prompts while disabled) – documented as a plan-mode-vs-tool distinction in Plan Mode & Collaboration + the config reference. Other 0.152.0 promotions to body: Vim search motions / ? n N plus Insert-mode fresh drafts (/vim row + QRC), MCP openai/elicitation form requests, per-tool MCP output_token_limit (additive to global tool_output_token_limit), package-style MCP server names (: @ / .; all three in the MCP section), actionable rate-limit banners (cost section), credential-refresh progress incl. Bedrock reauthentication (Authentication), cloud task credentials restricted to trusted origins + redirects disabled (Codex Cloud, security). Changelog-row-only 0.152.0: sleep-tool gating (#41243) + clock tools as built-in control tools (#41331), subagents on root service tier (#41308), context baselines across nested forks (#41424), project/list recency sort (#41223), thread/shellCommand timeouts over one hour (#41384), TUI model picker refresh (#41467), delegation guidance from the model catalog (#41457/#41380/#41570), Guardian compaction-preservation cluster + async stack budget (#41660/#41846/#41852/#41857/#41858/#41861/#41931, #41840), token budgeting by default via model metadata (#41803), plugin recommendations preloaded at startup (#41375), Windows Store PowerShell sandbox fix (#41227), subprocess terminal-query hang fix (#41436), JediTerm cursor fix (#41673), resumed threads restore saved cwd (#41567). 0.152.1: Guardian approval review sources Node REPL policy from model metadata (#41919 cherry-pick; release body itself says its highlights could not be verified). 0.153.0 promotions to body: Vim undo u / redo Ctrl+R preserving pastes + attachments (#41941/#42140; /vim row + QRC), plugin CLI list/install/remove on remote marketplaces (#42150, Plugins), tui.auto_recap = false (#42101; /recap row + Session Management), early rate-limit warnings for Plus/Team under half of a ~5h window (#42142), Guardian scope by approval mode – Full Access skips confirmation-only reviews, User approval skips background scoring/prewarming, sensitive-action checks retained (#42147/#42256, Guardian section), features.context_management.experimental_mode (#42385; first context_management coverage, Performance Optimization). Changelog-row-only 0.153.0: tui.disable_paste_burst replaces the top-level key with fallback (#41976), TUI reconnect preserving drafts/transcripts (#41911/#41916/#41918), TUI history patches + background-terminal input (#41893/#42107), Guardian history across compaction/restarts/forks (#41879/#42065), MCP approvals scoped to the app account link (#42133), relative MCP spawning on macOS (#42117), rollout compression (#42039/#42135), app-server thread metadata + request_user_input_async (#42151/#42178). New watch list = 0.154.0-alpha.1 (84 commits ahead): Vim replace mode, managed worktree creation, TUI preferences split from server config, native voice runtime cluster, live compaction status, thread unload delay, PATH helpers gated on workspace trust (security), Windows sandbox provisioning services, durable reasoning config updates, free-form async user messages – none body-documented until stable; alpha compares overlap stable cherry-picks (#42256 in both), so per-item verification stays mandatory at promotion. 138 139 140 141
2026-08-30 Guide v2.62: Codex 0.151.0 (Aug 29) – all ten watch-list items shipped. The release body is NOT the release: it covers only post-branch-cut PRs #41183-#41209, while the rust-v0.150.1…rust-v0.151.0 compare carries 164 commits, zero reverts (stable one commit behind alpha.6 – the alpha’s own version-bump commit). Promotions to body, provable only via the compare: /recap (slash table + Session Management; automatic recaps for eligible idle, unfocused conversations), code-mode WebSocket removal (#40692; Code Mode contradiction fixed – hosts take stdio, stdio://, or grpc://IP:PORT, WebSocket survives only as an optional OTLP trace stream), paginated thread history promoted out of experimental and defaulted ONLY for durable threads with supporting stores when historyMode is omitted (#40673/#40677; protocol enum default still Legacy at protocol.rs:755-758; both history sections rewritten), persistent reasoning effort (table row + clock tools #40942 + persistent_instructions #41050), Guardian v2 defaults FLIPPED (#40846: review_scope.computer_use_only and transcript.include_images now default true; Guardian section, Release Highlights, superseded note on 132), Vim find/till + buffer jumps (/vim row + QRC), live turn-scoped settings (turn/settings/update, serviceTierForTurn; #40653/#40656/#40616), worktree settings parser + thread ownership metadata (#40624/#40716, Thread Modes), Bedrock TUI onboarding (#40679, Authentication), escalated-terminal input approvals (write_stdin_approval default-off + 8,000-byte cap; #40978/#41159, Approval System). 0.151.0’s own items: MCP optional-server startup grace (mcp_optional_startup_grace_ms, #41199) and extensions inspecting/replacing MCP tool results (#41202) in the MCP section; per-repo plugin catalogs + marketplaceLoadErrors (#41208) in Plugin Discovery; /cd no longer weakens sandbox restrictions (#41192, /cd row + Permission Profiles). Changelog-row-only fixes: tool availability and reasoning effort kept correct across model switches and fallbacks (#41195/#41206), remote sandbox enforcement using the executor’s real home directory, OS, and path conventions (#41196/#41204/#41207/#41209), structured MCP tool and resource errors preserved in app-server responses (#41196), nested subagent token usage counted toward root goal budgets (#41183), stale Guardian classifications no longer authorize actions after permission changes (#41196). New watch list = 0.152.0-alpha.4 (74 commits ahead): Vim search motions, update_plan default-enabled, MCP elicitation forms, per-tool MCP output limits, sleep-tool gating + clock tools as control tools, subagents on root service tier, context baselines across nested forks, project/list recency sort, thread shell-command timeouts, TUI model picker refresh, cloud task credentials to trusted origins, proactive delegation guidance, Guardian v2 iteration – none body-documented until stable. Lesson: verify a release against its compare, not its body. 134 135 136
2026-08-27 Guide v2.61: Codex 0.150.0 (Aug 26) + 0.150.1 (Aug 27, npm latest). The 0.150-alpha watch list split: five of nine shipped in stable 0.150.0 – Interrupt hook (twelfth event, 1s default timeout/3s cap, never for subagents; hooks table, engine intro, and both migration surfaces updated), /copy picker (full response, individual code blocks, blockquotes; replaced the stale “copy the last response” line in the TUI table and QRC), AGENTS.md skipped in untrusted projects (Discovery Hierarchy), features.network_proxy.credential_broker, and Guardian v2 review_scope.computer_use_only (both config surfaces, default-off) – and five rolled to the 0.151.0-alpha line: /recap, code-mode WebSocket removal, paginated-history default, persistent effort, Guardian v2 computer-use-with-images defaults. Also in 0.150.0: task @ mentions plus agent read/create/message task tools (Session Management, Cloud), automatic task titles and /rename suggestions, clickable Markdown link labels, permission-mode-cycling keybindings and Vim . repeat (Layer 2, /keymap, /vim); fixes for app-server credential redaction, remote MCP bearer-token/startup, elevated Windows sandbox under Unicode paths, Unix shutdown hangs, and Bedrock compaction/multi-agent compatibility. 0.150.1: remote compaction counts retained images toward its token budget by default (alpha #40994’s default reached stable via backport #41003). New watch list = 0.151.0-alpha.6: recaps, WebSocket removal, paginated default, persistent effort, Guardian v2 defaults, Vim find/till and buffer-jump motions, live turn-scoped settings, worktree settings, Bedrock TUI onboarding, approval for input to escalated terminals – none body-documented until stable. Changelog-row-only: ChatGPT iOS 1.2026.230 (Aug 26: task search across titles and conversation content, compact reasoning-effort gauge, full-screen editor, configurable Home Screen shortcuts). 132 133 137
2026-08-26 Guide v2.60: CORRECTION – stable-line errors found by the loop-28 scan, no new stable release. (E) Hooks section rebuilt against the source: the event table listed AfterAgent/AfterToolUse and described Stop as the session end; rust-v0.149.1’s HOOK_EVENT_NAMES has eleven events (PreToolUse, PermissionRequest, PostToolUse, PreCompact, PostCompact, SessionStart, SessionEnd, UserPromptSubmit, SubagentStart, SubagentStop, Stop), AfterToolUse has zero hits in the tree, and AfterAgent survives only as the legacy notify payload. Config example rewritten to the documented hooks.json / [[hooks.<Event>]] + [[hooks.<Event>.hooks]] type = "command" shape with the mandatory review-and-trust flow (/hooks, --dangerously-bypass-hook-trust); migration table now maps to the native events (including async via async = true, which the table said was unsupported); both migration tables and the migration bullet that still counted five events corrected. (B) codex mcp-server deprecated (changelog Aug 24; PR #39657 warning shipped in 0.149.0): deprecation callout pointing at the app-server protocol and the Codex plugin for Claude Code; example kept as deprecated-but-working; Quick Reference line added. (A) codex exec --thread-source <SOURCE> (PR #40161, cherry-picked into 0.149.1 as 2b66d2ed; user, subagent, memory_consolidation, or a feature name) added to Key Flags; Release Highlights, the v2.57 row, and 120 no longer call 0.149.1 a backport-only patch. Also fixed in the same table: the first row invoked --ask-for-approval on codex exec, which has no such flag (v2.59 fixed the CI recipe but missed this row); now -c approval_policy=on-request. (C) Browser extension is five browsers (changelog Aug 25: Chrome, Edge, Brave, Opera, Vivaldi; Opera lacks side chat; setup in Settings > Computer Use); surface-5 heading, intro, Key Takeaways, mental-model diagram, config comment, and the in-app browser paragraph updated, plus the Site tools (WebMCP) note (Sol/Terra only; not Luna, Enterprise, or Edu). (D) Shared read-only thread snapshots (changelog Aug 20; secret-pattern redaction; revoke under Shared links) added to the Desktop App section. (F) Slash-command drift: /config is not a variant in slash_command.rs; replaced with /debug-config in the table, troubleshooting, and diagnostics; eleven missing variants added (/keymap, /rename, /approve, /memories, /agents+/subagents, /side+/btw, /raw, /ide, /stop+/clean, /experimental, /app); codex agents gets a body paragraph in Session Management. (G) features.network_proxy accepts a boolean or a table: config comment fixed and the table form documented with all eleven sub-keys and defaults. (H) Stability note refreshed to 0.150.0-alpha.13 (Aug 26) as a watch list only: /recap, Interrupt hook, code-mode WebSocket removal, paginated history default, /copy picker, persistent effort, AGENTS.md skipped in untrusted projects, credential_broker, Guardian v2 defaults. v0.149.1 remains the latest stable release at the time of this row. 124 125 126 127 128 129 130 131
2026-08-25 Guide v2.59: CORRECTION — three reader-harm defects, all reproduced on Codex 0.149.1 by the companion post’s evaluator. (1) The CI recipe ran codex exec --sandbox workspace-write --ask-for-approval on-request — codex exec has no -a/--ask-for-approval flag and fails with error: unexpected argument '--ask-for-approval' found; the recipe now sets the policy with -c approval_policy=on-request. (2) danger-full-access + on-request was described (decision table and Sandbox section) as “approval required for every command” — approvals fire on leaving the sandbox or using the network, and full access removes both boundaries, so that pairing rarely prompts; both surfaces rewritten. (3) The guide page’s FAQ JSON-LD still told readers to “Use ‘untrusted’ for unfamiliar repositories” — replaced with read-only + on-request. 123
2026-08-25 Guide v2.58: CORRECTION — profiles are per-file since 0.134.0, and two more untrusted residues removed. Both profile examples (Configuration Deep Dive; Team Strategies config setup) taught the legacy [profiles.<name>] tables inside config.toml plus a top-level profile = "default" selector — the official advanced-config page states “In Codex 0.134.0 and later, --profile no longer reads [profiles.profile-name] from config.toml, and the top-level profile = "profile-name" selector is no longer supported,” and a leftover table makes --profile refuse to start (reproduced on 0.149.1 by the companion post’s evaluator). Rewritten as ~/.codex/<name>.config.toml files with top-level keys. Also removed: the untrusted row from the Quick Reference Card’s approval-policy box and the enterprise pilot line’s “enforcing untrusted sandbox mode” (never a sandbox mode; now read-only + on-request). Guide now contains no untrusted policy references outside history. Caught by the evaluator of the Aug 25 companion post on the policy retirement. 122
2026-08-24 Guide v2.57: Codex v0.149.0 stable (Aug 20) + v0.149.1 (Aug 24, npm latest). The alpha watch list shipped: untrusted approval policy retired (seven body surfaces migrated to on-request: mental-model diagram, config reference, both profile examples, decision framework, approval-mode table, and the requirements.toml allowlist — the last two caught by the companion post’s writer on Aug 25; note OpenAI’s own approvals doc still showed untrusted in its combinations table and config example as of Aug 24, lagging the release); codex agents dashboard; codex doctor expansion (endpoint protection, network/proxy, desktop app, update connectivity); SDK max/ultra efforts + exact CLI config overrides. New: /cd//pwd//cwd (slash table), codex queue (Session Management), expanded Vim change motions, permission-profile restore on resume/fork. v0.149.1 = five-commit stable patch (remote-session image compaction/memory backports; the codex exec --thread-source flag it also carries was missed here and added in v2.60). Pricing: GPT-5.6 Sol cut >20% for three months from Aug 21 (through at least Nov 21, 2026) — Credit Costs table updated to the published 100/10/500 rate card (was 125/12.5/750). Changelog-only: 0.150.0-alpha watch flags (Bedrock multi-agent, permission-mode cycling keybindings, /copy target picker, agents session config); devcontainer DNS-exfiltration documentation; shared read-only Codex thread snapshots from the desktop app (Aug 20 changelog entry). v0.149.1 is the latest stable release at the time of this row. 120 121
2026-08-20 Guide v2.56: Codex v0.148.0 stable (Aug 18). /export — export the complete TUI conversation to Markdown, to the clipboard or a new file (see Session Management, slash-command table). codex exec fork — fork sessions from the command line; the TUI resume picker gains archive and restore. Thread credits/cost visibility — /status, status lines, and terminal titles show estimated credits or cost for eligible workspaces (see What Does Codex Cost?). Amazon Bedrock Runtime as a built-in provider — AWS profile and region support with GPT-5.6 routing, completing the arc from v0.145’s experimental login. Hooks: async + MCP — hooks can run commands asynchronously and invoke MCP tools (see Hooks). Sandbox fails closed — denied or unreadable paths are treated as blocked rather than silently allowed, on Linux and Windows (see Sandbox). Also: prompt drafting during TUI startup, unified exec default-on for Windows, storage diagnostics in codex doctor, session ID exposed to shell commands. Changelog-only: model-switch/session-resume/MCP-OAuth-recovery fixes, CRLF paste and long-URL rendering, skill-creator validation rejecting TODO placeholders. Codex cloud: GitLab support in beta (Aug 19) on all ChatGPT plans — environments, tasks from issues/MRs, reviews; GitLab 19.0+ Self-Managed (see Codex Cloud). Watch items from the 0.149.0 alpha line (pre-release): untrusted approval-policy retirement, codex agents dashboard, codex doctor diagnostics expansion, Max/Ultra reasoning efforts in the SDKs. 118 119
2026-08-12 Guide v2.55: CORRECTION — Agent Plugins sourcing re-anchored to the normative spec. The v2.54 pass cited agentplugins.codes as “the spec” — it is an unaffiliated third-party field guide (its own footer: “An independent developer field guide. Not affiliated with the Agent Plugins project or its maintainers”), and two quoted lines presented as the spec’s self-description were the guide’s editorial prose. All quotes now come from agent-plugins.org and the normative spec/1.0.0.md: official one-line summary, the ten permitted manifest fields + unknown-field MUST sentence, skills-discovery sentence, MCP transport requirements, namespace-ignore MUST sentence, and the excluded component types (commands, hooks, agents, rules, LSP servers). Governance corrected to primary sources: Vercel initiated (per its announcement), MAINTAINERS.md roster = Amazon/Cursor/Microsoft/OpenAI/Vercel, Google’s joining anchored to its own Developers Blog post. Anthropic-authorship claims now cite Anthropic’s Agent Skills and MCP announcements directly. Caught by the pre-ship gate on the companion blog post; same-day fix. 161
2026-08-11 Guide v2.54: Agent Plugins is a cross-vendor open standard — context added. Agent Plugins 1.0.0 shipped August 6, 2026 (agentplugins.codes, “the portable package format for AI agents”): required plugin.json manifest, optional skills/ (one Agent Skill per SKILL.md subdirectory), optional mcp.json (stdio / Streamable HTTP / legacy HTTP+SSE), optional reverse-domain client namespaces; explicitly a packaging layer around Agent Skills and MCP, not a replacement. Spec shaped by Amazon, Anysphere (Cursor), GitHub, Microsoft, OpenAI, and Vercel — Google joined the core maintainers on launch day; launch clients: VS Code, Cursor, GitHub Copilot, ChatGPT & Codex, Kiro. Anthropic (author of the Agent Skills spec) is not in the coalition. The guide’s existing v0.146.0/v0.147.0 plugin coverage now carries this context: the Plugins section’s v0.146.0 subsection is retitled and expanded, and the features-table row notes portability across clients, not just machines. No new CLI release. 161
2026-08-10 Guide v2.53: First holistic gate audit — full 3,300-line read against a weighted rubric; R1 scored 7.85 with 1 CRITICAL and 6 MAJOR findings, all repaired in this row. The CRITICAL: gpt-5.1-codex-mini, recorded as shut down July 23 in this guide’s own model table, was still the active recommendation across twelve surfaces (flowchart, fast/ci profiles ×4, reasoning table, cost strategies ×3, team strategies, anti-patterns, Recipe 4); every actionable recommendation now uses the GPT-5.6 family. Model authority re-verified against the live models page (developers.openai.com/codex/models, 308→learn.chatgpt.com/docs/models): GPT-5.6 Sol is the current recommended default — the “Power” setting, medium reasoning, on every surface, so the guide’s Bedrock-only framing was stale — and GPT-5.4 / GPT-5.4-mini retire from Codex on August 31, 2026; gpt-5.3-codex is deprecated for ChatGPT sign-in. Currency: TL;DR, frontmatter description, and Release Highlights were frozen at v0.145.0 while the changelog already knew v0.147.0; the stability note still said --full-auto “remains deprecated” after the body documented its v0.147.0 removal; both codex --version sample outputs disagreed with each other (0.146.0 vs 0.133.0, both → 0.147.0). Pricing re-verified against the live pricing page: Go $8/mo (was $5 here), Pro from $100/mo (5x) or $200/mo (20x), five-hour limits published per model; the May 2026 promo past-tensed, the “2x remain active” claim replaced. Also fixed: “four surfaces” in the Mental Model (five — Chrome added to the diagram), the phantom pre-Rust suggest mode in Quick Start, duplicate ToC numbering (two 13s, two 15s), the “2,500+ line” self-description, conversation-sections body coverage in Session Management, and the QRC model block (April → Aug 2026). R2 verification confirmed all repairs and added two more: the Credit Costs table rebuilt on the published GPT-5.6 credit rates (Sol 125 / Terra 50 / Luna 5 per 1M input tokens), and two nonexistent npm packages in Notable MCP Servers replaced with the real Playwright server (@playwright/mcp, verified on npm) and GitHub’s hosted MCP endpoint — plus an eleven-point minor sweep (four→five interfaces, stale 400K context override, April-2026 context-management lead, migration-table model row, Chrome launch date in the diagram, inner-box alignment, stranded plugin bullet, residual mini/5.4 wording). 117 162
2026-08-07 Guide v2.52: Codex v0.147.0 stable (Aug 7) — the release this guide held out while it was alpha-only. BREAKING: codex exec --full-auto is removed — scripts still passing it now error; replace with --sandbox workspace-write plus an approval flag or profile (see Legacy --full-auto Guidance). --approve-for-me — automatically reviewed approvals: a review pass adjudicates each approval request on your behalf, inheriting the v0.146.1 safer defaults for cyber-capable models (see Approval System). Portable Agent Plugins — installable plugin packages, with plugin search spanning local, personal, workspace, and remote catalogs in one query (see Plugins). MCP 2026-07-28 protocol opt-in — paginated discovery, multi-round requests, non-blocking server startup with cached tools exposed before startup completes (see MCP). Conversation sections — organize conversations into persistent, manually ordered sections and browse long transcripts incrementally. Bedrock gains cached web search and remote conversation compaction. Security fixes: secrets and complete bearer tokens redacted from displayed commands and replayed history; unfamiliar local projects require explicit trust; managed authentication restrictions enforced before credentials are used; plugin isolation hardened with network denied when policy updates fail. Also: Cursor-managed skill import with duplicate-free conversation sync; Japanese/emoji/hyperlink rendering fixes; Windows background-process interrupt fixes; MCP SDK 3.0.0. v0.147.0 is the latest stable release. 116
2026-08-05 Guide v2.51: Codex v0.146.1 (Aug 5). Single-change patch release, changelog-only: safer automatic-review defaults for cyber-capable models, with the permission changes explained in the terminal interface when they apply (upstream PR #37057, backported to the 0.146 line). No command surface, config key, or pricing changed; no body sections required updates. v0.147.0 remains alpha-only (rust-v0.147.0-alpha.*) and stays out of this guide until it ships stable. v0.146.1 was the latest stable release at the time of this row. 115
2026-07-29 Guide v2.50: Codex v0.146.0 promoted to stable. The previous pass recorded v0.146.0 as alpha-only; it shipped stable on July 29 after fourteen alpha builds. Body updates: the Plugins section gains Agent Plugins manifests, workspace plugin publishing, and the Amazon Bedrock and Claude Code marketplaces; Code Mode gains remote hosts reachable from app-server over WebSocket; the proxy section’s claim to cover “all transport layers” is corrected — that only became true in v0.146.0, which fixed seven paths (authentication, plugin downloads, MCP authorization, remote execution, WebSockets, redirects, LM Studio) that had ignored the configured proxy. Also covered: session naming through /new and /clear, thread pinning and side conversations, thread forking with paginated history and temporary forks, standalone web search for compatible custom providers, executor-provided skill discovery, skill-catalog truncation warnings under tight context, enterprise-plan recognition with administrator controls for in-app updates, and release artifacts moving to OpenAI-hosted infrastructure with GitHub fallback. Changelog-only (no body change): terminal rendering and responsiveness work, Windows navigation keys, sandboxed process-tree termination, app-server serialization overhead, macOS helper notarization, and the HTTP-client and PathUri documentation notes. 114
2026-07-28 Guide v2.49: Coverage-gate repair — two long-standing changelog-only surfaces promoted into the body. No new release; this pass fixes documentation debt found by auditing which sections readers actually reach from search. codex doctor had been mentioned only in changelog rows and footnotes since v0.131.0 and was missing from the guide’s own Diagnostic Tools list, despite being the command the project’s issue template asks you to run. It now has a full section: the flag set (--summary, --json, --all, --no-color), all six stable report sections (Notes, Environment, Configuration, Updates, Connectivity, Background Server), per-check status markers, and the version history of what each release added. Update / downgrade / uninstall was covered only as a one-line “Clean Reinstall” in the debug section; the install section now documents codex update, version pinning for rollback after a bad release, uninstall across npm/Homebrew/winget, and the fact that ~/.codex/ state survives package removal. Both were cases of the release-triage coverage gate failing: the item entered the changelog and never reached a body section a reader could find. 163 86 96 192 165
2026-07-25 Guide v2.48: ChatGPT Desktop 26.715 (July 23, Codex-tagged) — multi-folder projects change discovery, and Voice arrives on the desktop surface. Multi-folder local projects: a local project can now span several related folders with one designated primary folder; new chats, Git operations, and automatic discovery of AGENTS.md, skills, and config.toml all use the primary folder, while secondary folders stay available only for file search, reading, and editing — documented in Discovery Hierarchy and Config File Locations, with the CLI’s own directory walk explicitly unchanged. ChatGPT Voice, powered by GPT-Live: coordinates tasks across Chat, Work, and Codex from the desktop app, with macOS Screen context sharing an appshot of the frontmost window; Plus/Pro/Business/Edu/Enterprise, desktop plus Remote on iOS (see Codex Desktop App). Changelog-only: ChatGPT for iOS 1.2026.195 (July 20, Codex-tagged, a gap the v2.45–v2.47 scans missed) added interactive forms in Codex tasks, inline Mermaid in task transcripts, unsent-prompt recovery across tasks/hosts/workspaces, goals that resume blocked or usage-limited runs, and iPad navigation — recorded but not promoted to a sixth surface. No new stable CLI release: v0.146.0 remains alpha-only (alphas .7–.10 landed July 24–25 with empty release bodies), so v0.145.0 is still the tracked stable. Carried unresolved: the July 24 teased announcement produced no artifact on any primary surface (learn.chatgpt.com changelog, openai.com news RSS, and product release-notes RSS were all silent July 24–25); watches continue. 113 164
2026-07-24 Guide v2.47: July 23 legacy-model shutdown executed; substitutes corrected to GPT-5.6. The gpt-5.2-codex and gpt-5.1-codex-mini snapshots (with gpt-5.1-codex/-max) shut down July 23, 2026 as scheduled; OpenAI’s deprecation table now lists gpt-5.6-sol (codex/codex-max) and gpt-5.6-terra (codex-mini) as the recommended substitutes, replacing the original gpt-5.4/gpt-5.4-mini guidance — Available Models rows and 88 updated, frontmatter description bumped to v0.145.0. No new stable CLI release (v0.146.0 remains alpha-only, alphas .1–.6 July 22–24); watches continue on the v0.146.0 stable promotion. 88
2026-07-22 Guide v2.46: opening restructured for new readers (data-led: the page’s scroll-75 rate was 14 vs 30-46 sitewide). The TL;DR is now short and task-oriented with jump links to Install/Quick Start; the version-by-version narrative and stability note moved intact to a new Release Highlights: What Changed Recently section before the Mental Model. No content removed; title/H1/description unchanged (title lock). –
2026-07-21 Guide v2.45: CLI v0.144.6 (July 18) + v0.145.0 (stable, July 21, promoted from the alpha line). /import: now migrates Cursor as well as Claude Code — settings, MCP servers, plugins, sessions, commands, project-scoped memories (see slash-command table). Sessions: experimental paginated thread history — efficient resume, search, persisted names, sub-agent support, memories (see Session Management). Multi-agent: v2 stabilized as opt-in with configurable sub-agent models, reasoning levels, concurrency, restored roles, improved agent navigation (see Multi-Agent). Voice: audio inputs and tool outputs (common local formats) + streaming realtime V3 conversations — realtime returns after its v0.140.0 removal (see TUI Enhancements). Bedrock: experimental login with custom endpoint + authentication support; GPT-5.6 Sol is the default Bedrock model (see Authentication, Available Models). Models: bundled GPT-5.4 selections migrate to GPT-5.6 Terra/Luna; v0.144.6 corrected Sol/Terra/Luna context windows to 272,000 tokens and refreshed bundled instructions (see Available Models). Changelog-only: contextual conversation branching when editing an earlier prompt or retrying a safety-buffered turn; MCP reliability (startup timeouts, non-blocking OAuth discovery, serialized token refreshes, tool-catalog reuse); Windows native exec-server sandboxing, network-proxy enforcement, hidden helper consoles, quoted hook commands; approval refinements (better forced-rm detection, consistent full-access confirmation, rejection reasons preserved); TUI secure clickable inline visualization links, incremental Markdown rendering, ripgrep 15.2.0. Note: developers.openai.com/codex/changelog now 308-redirects to learn.chatgpt.com/docs/changelog — older citations resolve through the redirect. Source: openai/codex releases. 111 112
2026-07-16 Guide v2.44: CLI v0.144.5 (July 16, stable patch line; v0.145.0 remains alpha — not tracked). Sandbox/approvals: dangerous-command detection recognizes more forced rm forms and returns clearer rejection reasons (see Approval Policy). Multi-agent (retroactive documentation, shipped v0.138.0): parent-to-sub-agent task text in multi-agent v2 is encrypted end-to-end through the Responses API — spawn_agent/send_message/followup_task payloads no longer appear in plaintext in local session logs; custom-provider models not configured for encrypted tool use fail with a 400; Codex-generated completion notifications remain plaintext as typed agent_message items; the audit-trail regression issue remains open (see Multi-Agent). v0.144.4 had no user-facing changes. Source: openai/codex releases, PR #26210. 108 109 110
2026-07-09 Guide v2.43: CLI v0.144.0 (July 9, promoted from the alpha line). Approvals: new writes app-approval mode — declared read-only app actions run free, writes prompt (see App Approval Mode). MCP: tools request authentication interactively without an experimental opt-in (see MCP section). /usage: reset credits show type + expiration with a redemption picker (see slash-command table). Changelog-only: selecting Ultra reasoning warns when high multi-agent concurrency could spike usage; app-server hosts can provide auth at runtime and redirect logins to a hosted page; device-code login warnings explain phishing recognition; Bedrock model names clearly identify GPT-5.6 family/variant; resumed ChatGPT threads recover when compaction references a retired model; Windows sandbox write/delete fixes; /review branch picker faster in large repos. Source: openai/codex releases. 107
2026-07-08 Guide v2.42: CLI v0.143.0 (July 8, promoted from the v0.143.0-alpha line, superseding the v0.142.x patch line). Plugins: remote plugins are now enabled by default with npm marketplace sources and visible remote/local versions (see Plugins). Config/proxy: system-proxy auth now extends to Windows and to Responses API traffic, with PAC/WPAD autoconfiguration (see Proxy Support). Remote control: new codex remote-control pair generates a manual pairing code for out-of-band controllers (see codex remote-control). Models: Amazon Bedrock adds GPT-5.6 Sol/Terra/Luna with max reasoning effort (see Available Models). App-server: clients can inspect environments, list descendant threads, and fork history through a turn (see App-Server Thread Pagination). Changelog-only: Windows ConPTY input fixes, exec-server offline recovery, installer rate-limit resilience, security dependency bumps (OpenSSL/Hono/fast-uri/quick-xml/crossbeam-epoch). (MCP tool-search-by-default was already documented from the alpha line.) Source: openai/codex releases. 106
2026-07-01 Guide v2.41: CLI v0.142.2–v0.142.5 (stable patch line; v0.143.0 remains alpha — not tracked). MCP: tools now use tool search by default when supported — on-demand discovery instead of upfront loading, compatible with older models/providers; remote stdio MCP servers accept absolute working directories in the remote platform’s path format (see MCP section). Security: PowerShell commands containing executable AST regions the safety classifier cannot inspect now require approval (see Approval Policy); v0.142.5 stops full Responses WebSocket request payloads from being written to trace logs. Config: respect_system_proxy lets macOS auth clients honor system proxy/PAC/WPAD settings (see Proxy Support). Changelog-only: plugins support dark-mode logos in manifests and catalogs; remote catalogs return curated featured rankings; expired Amazon Bedrock credentials produce actionable recovery guidance; remote HTTP(S) image inputs return clear model-visible validation errors; Code Mode warns when the selected model lacks required metadata; bundled OpenSSL/esbuild updated. v0.142.3/v0.142.4 were maintenance-only. Also this update: title/description rescued to the evergreen CTR-audit form (title lock). Source: openai/codex releases. 105
2026-06-23 Guide v2.40: CLI v0.142.0 stable (June 22, promoted from the v0.142.0-alpha line). /usage credits: /usage now shows and redeems earned usage-limit reset credits, with confirmation, retry, and refreshed availability states. /plugins reorganized: remote plugins group into OpenAI Curated, Workspace, and Shared with me sections, and eligible turns can recommend and install relevant plugins. Rollout token budgets: configurable token budgets track usage across agent threads, surface remaining-budget reminders, and abort turns when exhausted. Multi-agent delegation modes: app-server clients can configure delegation as disabled, explicit-request-only, or proactive at the thread and turn level. Indexed web search: a new indexed web-search mode permits live searches while restricting direct page access to server-approved URLs. Time: Codex can receive scheduled UTC time reminders and query the current time directly, including via client-provided app-server clocks. Fixes: Linux TUI rendering after Ctrl+Z suspend/fg resume; exec-server process and stdio MCP session reconnection resilience; remote-environment path preservation across operating systems; plugin loading, installation, and manifest handling; parent-agent visibility into subagent errors; goal-first thread persistence in thread/list and thread/search. (Latest pre-release is v0.143.0-alpha.x as of June 23, still alpha — not tracked.) Source: openai/codex releases and Codex Changelog. 104
2026-06-18 Guide v2.39: CLI v0.141.0 stable (June 18, promoted from the v0.141.0-alpha line). Encrypted remote executors: remote executors now use authenticated, end-to-end encrypted Noise-relay channels, and TLS accepts P-521 certificate signatures for enterprise-proxy compatibility. Cross-platform remote execution preserves the executor’s native working directory and shell. Windows sandbox: execution improvements including automatic credential recovery. Performance: large tool-heavy sessions cache tool search to cut latency and memory, and prompt-image caching is bounded to 64 MiB. TUI: input prompts can auto-resolve after inactivity with a countdown timer; realtime clients gain speech-append control. (Latest pre-release is v0.142.0-alpha.x as of June 19, still alpha — not tracked.) Source: openai/codex releases and Codex Changelog. 103
2026-06-16 Guide v2.38: CLI v0.140.0 stable (June 15, promoted from the v0.140.0-alpha line). /usage: new views for daily, weekly, and cumulative account token activity. Session deletion: codex delete, /delete, and app-server thread/delete permanently remove a session with confirmation safeguards. /import: selectively import setup, project configuration, and recent chats from Claude Code. Unified mentions: typing @ opens one menu for files, plugins, and skills by default. Amazon Bedrock: managed API-key authentication, plus encrypted local storage for CLI and MCP OAuth credentials. /goal now preserves oversized text, large pasted blocks, and image attachments in remote app-server sessions. Removed: experimental /realtime voice controls and audio dependencies dropped from the TUI. Fixes: corrupted SQLite state databases auto-backup and rebuild from rollout data; /review no longer crashes when Esc is pressed with queued guidance; MCP reliability via transient-startup retries and disabled-server preservation; remote plugin uninstall + surfacing apps needing auth; persisted “Don’t remind me” update dismissals; non-TTY background commands interruptible with Ctrl-C while preserving output. Maintenance: Git filesystem-monitor preservation and archive-lookup acceleration for large repos. (Latest pre-release is v0.141.0-alpha.x as of June 16, still alpha — not tracked.) Source: openai/codex releases and Codex Changelog. 102
2026-06-09 Guide v2.37: CLI v0.139.0 stable (June 9, promoted from the v0.139.0-alpha line). Code-mode web search: code mode can call standalone web search directly (including from nested JavaScript tool calls) and receive plaintext results. MCP schemas: tool/connector input schemas now preserve oneOf/allOf constructs for better large-schema structure preservation and MCP compatibility. codex doctor: adds editor and pager environment details, redacting sensitive values in JSON output. Plugins: codex plugin marketplace list --json exposes plugin sources, plus faster cached-catalog plugin listing. Fixes: codex resume --last / codex fork --last treat trailing args as prompts (not session IDs); subagent MCP startup warnings no longer surface in the wrong thread context; image edits reference exact file paths; tilde URLs linkify fully in the TUI; thread resets (/new, /clear, /fork) preserve cloud-managed requirements/feature flags; sandbox execution consistently preserves approval decisions and enforces proxy-only networking. Maintenance: separate symbol archives with line tables; rusty_v8 bumped to 149.2.0. (Latest pre-release is v0.140.0-alpha.x as of June 9, still alpha — not tracked.) Source: openai/codex releases and Codex Changelog. 165
2026-06-08 Guide v2.36: CLI v0.138.0 stable (June 8, promoted from the v0.138.0-alpha line). /app desktop handoff — /app hands a running CLI session off to the desktop app on macOS and Windows. Local image paths exposed to models — the model can reference local image file paths directly. More flexible reasoning-effort selection. Plugins: enhanced automation with structured JSON output. Source: openai/codex releases and Codex Changelog. 166
2026-06-04 Guide v2.35: CLI v0.137.0 stable (June 4, promoted from the alpha line first seen June 3). TUI: controls support F13–F24 keybindings; searchable menus accept paste; a compact reasoning-only status/title item. Enterprise/admin: flows surface monthly credit limits and cloud-managed config bundles. Remote control: clients can initiate pairing and manage controller grants. Plugins: workflows gain machine-readable JSON output and cached remote catalog suggestions. Tools: hosted web and image tools available in more code-mode flows; standalone web searches can run in parallel. Multi-agent: v2 runtime improvements with cleaner follow-up handling and metadata defaults. Fixes: prompt cancellation restores draft, attachments, and collaboration mode; macOS app launch and Windows SQLite startup reliability; plugin manifest ordering and deduplication; permission requests honor environment identity. Source: openai/codex releases and Codex Changelog. 167
2026-06-02 Guide v2.34: CLI v0.136.0 stable (June 1). Session archiving: /archive in the TUI plus codex archive / codex unarchive CLI commands; an archived session is protected from resume or fork until restored. TUI markdown: web links stay clickable via OSC 8 metadata, and cramped tables fall back to readable key/value records without losing link targets. App-server: codex app-server --stdio launches in stdio mode for editor/host integrations; resumes threads with initial-turns pages; shows richer MCP server status. Remote/security: remote execution setup accepts CODEX_API_KEY for approved OpenAI hosts; remote-control websockets use short-lived server tokens instead of ChatGPT access tokens; /diff is blocked from executing repository-provided Git helpers (command-safety fix); ChatGPT auth refreshes near-expiry tokens and prompts relogin on reused refresh tokens; Bedrock auth falls back to AWS_REGION/AWS_DEFAULT_REGION. Windows (alpha): codex sandbox setup --elevated provisioning path for administrators. Image generation: feature-gated standalone image-generation extension via the native image-artifact completion pipeline. Note: yesterday’s pass held this at “v0.136.0 alpha only”; it was promoted to stable June 1. Source: openai/codex releases and Codex Changelog. 168
2026-05-28 Guide v2.33: CLI v0.134.0 stable + v0.135.0 release. v0.134.0 (May 26): added search across local conversation history with case-insensitive content matches and result previews; made --profile the primary profile selector across CLI, TUI permissions, and sandbox flows with legacy profile configs rejected through migration guidance; improved MCP setup with per-server environment targeting and OAuth options for streamable HTTP servers; made connector tool schemas more reliable by preserving local $ref/$defs and compacting oversized schemas; let read-only MCP tools run concurrently when they advertise readOnlyHint; added richer extension/hook context including conversation history for extension tools. Bug fixes: remote reliability (stale exec-server websocket reconnect, remote retry); Windows TUI rendering corruption restored via virtual terminal mode; workspace-specific usage-limit messages for credit and spend-cap failures; shared plugin-level icon assets for skills; active permission profile metadata preserved when syncing auto-review runtime settings; Node-based tools honor Codex’s managed network proxy env. v0.135.0 (May 28): codex doctor reports richer environment, Git, terminal, app-server, and thread inventory; /status shows remote connection details and server version when the TUI is connected over a remote; vim mode gains text-object editing, improved word/line-end behavior, and configurable interrupt-turn; /permissions understands named permission profiles and displays custom ones; packaged Codex builds discover and use the bundled patched zsh helper across supported macOS and Linux; Python SDK exposes friendly Sandbox presets for thread and turn APIs. Bug fixes: TUI markdown tables and multiline lists render more readably with better column sizing and app-mention handling; TUI output stability on macOS and Zellij (no more stderr/composer corruption or raw-output bleed); slash-command completion preserves draft text for commands with inline arguments; older tmux/iTerm control-mode sessions retain normal Ctrl-C handling; @ app mentions exclude inaccessible/disabled apps instead of offering unusable $ suggestions; resume flows include non-interactive exec sessions when requested and honor cwd overrides. Source: Codex Changelog and openai/codex releases. 192
2026-05-26 Guide v2.31: latest-line recheck. GitHub releases still show 0.134.0-alpha.1 through 0.134.0-alpha.3 as prereleases, while 0.133.0 remains the latest stable CLI; npm latest still reports 0.133.0 with time.modified 2026-05-23T01:26:52.705Z, and local codex --version returned codex-cli 0.133.0. No feature guidance changed from the May 25 pass. 101
2026-05-25 Guide v2.30: latest-line and app-context pass. GitHub releases show 0.134.0-alpha.1 through 0.134.0-alpha.3 as prereleases, while 0.133.0 remains the latest stable CLI; npm latest also reports 0.133.0 with time.modified 2026-05-23T01:26:52.705Z, and local codex --version returned codex-cli 0.133.0. Added the May 21 Codex app updates: Appshots for frontmost Mac windows, Goal mode GA across app/IDE/CLI, in-app browser annotations/browser-use improvements, locked Computer Use, and Enterprise/Edu notes for analytics and plugin-sharing status. Corrected the “four surfaces” drift to five surfaces and refreshed the sample feature flags against the current codex features list shape. 99 100 101
2026-05-21 Guide v2.29: CLI v0.133.0 stable. npm package metadata lists @openai/codex latest as 0.133.0; local codex --version remains codex-cli 0.131.0. Added v0.132.0 and v0.133.0 deltas: goals enabled by default with dedicated storage and progress tracking, foreground-ready codex remote-control, permission-profile list APIs/inheritance/managed requirements.toml/runtime refresh/Windows sandbox integration, marketplace-aware plugin discovery with installed versions and remote collections, extension lifecycle events for subagents/tools/turn metadata/async approvals, Python SDK first-class auth, richer Python TurnResult, codex exec resume --output-schema, faster TUI startup, auth-backed remote executor registration, and app-server image-fidelity preservation. 97 98
2026-05-18 Guide v2.28: CLI v0.131.0 stable. OpenAI’s Codex changelog and npm package metadata now list @openai/codex latest as 0.131.0. Added codex doctor, unified @ mention search, marketplace CLI commands, version-aware plugin sharing, default-enabled plugin hooks, daemon-managed remote-control/runtime enable-disable, registry-backed remote environments, richer TUI session/status controls, responsive Markdown tables, openai-codex Python SDK updates, safer local-state startup, Windows sandbox hardening, and state/Git/auth reliability fixes. Local verification this pass: codex --version returned codex-cli 0.131.0; npm view @openai/codex version dist-tags.latest time.modified --json returned latest 0.131.0 with time.modified 2026-05-18T22:00:51.726Z. 96
2026-05-15 Guide v2.27: security-hygiene and latest-line maintenance pass. Local codex --version returned codex-cli 0.130.0; codex features list showed hooks and plugins stable/enabled while remote_control remains under development. Stable guide guidance remains pinned to CLI v0.130.0. Added public-safe guidance that treats command output, session transcripts, shell snapshots, logs, helper scripts, and intentional secret stores as separate audit surfaces. 91 95
2026-05-13 Guide v2.26: latest-line maintenance check. Local codex --version returned codex-cli 0.130.0; stable guide guidance remains pinned to CLI v0.130.0. The v0.131.0 train has reached alpha.9, but it remains prerelease and was not promoted to the guide title or TL;DR.94 91 94
2026-05-09 Guide v2.25: CLI v0.130.0 stable (May 8, 2026, 23:09 UTC). Added codex remote-control top-level command for headless app-server control (#21424); plugin details show bundled hooks, plugin sharing exposes link metadata, discoverability controls, and updated share settings (#21447, #21495, #21637); app-server thread pagination with unloaded / summary / full turn views (#21566); Bedrock auth via AWS aws login console-login credentials (#21623); view_image resolves through the selected environment for multi-environment sessions (#21143); live app-server config refresh on running threads (#21187); removed “research preview” wording from the codex exec startup banner (#21683); configurable OpenTelemetry trace metadata + richer review/feedback analytics (#21556, #18747, #21434, #21498); Linux sandbox startup hardening, Windows sandbox grant for desktop runtime binary cache (#21564). v0.131.0 alpha line is in progress (alpha.1, alpha.2, alpha.4 on May 9, later alpha.9 on May 12). Footnote-only: GPT-5.5 Instant rolled out to free tier on May 5, 2026.92 91
2026-05-08 Guide v2.24: Codex for Chrome (May 7, 2026). Added the Chrome extension as the fifth Codex surface alongside CLI, desktop app, IDE extension, and cloud. The extension works in parallel across tabs in the background without taking over the browser, with per-site allow-listing for control. Updated Key Takeaways and Core Interaction Surfaces to reflect five surfaces instead of four. 90
2026-05-07 Guide v2.23: CLI v0.129.0 stable (May 7, 2026, 17:02 UTC). Added modal Vim editing in composer (/vim + configurable default-mode), redesigned TUI workflow picker (easier resume/fork, raw scrollback mode), in-TUI /hooks browser, theme-aware status line with optional PR + branch-change summaries, plugin management upgrade (workspace sharing, share access controls, source filtering, marketplace operations), /goal lifecycle change (experimental goals stay paused across resume unless opted back in), Linux sandbox startup hardening, Windows sandbox reliability improvements, and Bubblewrap bump to 0.11.2 with upstream security patches. Also documented the May 2026 usage limit boost (Codex Plus 25× 5-hour limit + $100/month tier doubled, both through May 31, 2026). 89
2026-05-05 Guide v2.22: Synced current guidance to CLI v0.128.0. Added persisted /goal workflows, codex update, configurable TUI keymaps, explicit permission-profile guidance, and current codex plugin marketplace command syntax. Corrected stale guidance by marking js_repl removed, replacing --full-auto examples with explicit sandbox/approval flags or permissions profiles, and flagging legacy GPT-5.2/5.1 Codex models against OpenAI’s July 23, 2026 deprecation table. 86 87 88
2026-04-24 Guide v2.21: GPT-5.5 launch (April 23–24, 2026) + CLI v0.122.0–v0.125.0. GPT-5.5 is OpenAI’s new flagship — 400K context window in Codex (1M in the API), $5/$30 per MTok input/output (2× the GPT-5.4 rate, but ~20% effective increase after token-efficiency gains). Benchmarks: 82.7% Terminal-Bench 2.0 (SOTA), 84.9% GDPval, 78.7% OSWorld-Verified, 98.0% Tau2-bench Telecom. Available in Codex CLI/web/desktop and the API; recommended default for most Codex tasks. ChatGPT Plus/Pro/Business/Enterprise/Edu/Go rollout April 23; API April 24. 90+ new plugin partners including Atlassian Rovo, CircleCI, CodeRabbit, GitLab Issues, Microsoft Suite, Neon by Databricks, Remotion, Render, and Superpowers. CLI v0.122.0: filesystem deny-read glob policies + managed deny-read requirements + platform sandbox enforcement + isolated codex exec runs that ignore user config/rules; tool discovery and image generation enabled by default; higher-detail image handling with original-detail metadata for MCP and js_repl; app-server stale-prompt resolution across clients; resumed/forked threads replay token usage immediately; remote-control startup tolerates missing ChatGPT auth; MCP startup cancellation works again through app-server sessions; internal split into codex-core-plugins. CLI v0.123.0: built-in amazon-bedrock model provider with AWS profile support; /mcp verbose for full MCP diagnostics, resources, and resource templates (plain /mcp stays fast); plugin MCP loading accepts both mcpServers and top-level server maps in .mcp.json; realtime handoffs deliver transcript deltas to background agents (with explicit silent-stay option); host-specific remote_sandbox_config for remote environments; refreshed bundled model metadata (gpt-5.4 default at the time). Fixes: /copy after rollback, queued text while shell command running, VS Code WSL Unicode/dead-key input, stale proxy env restore, codex exec inheriting root-level shared flags, leaked review prompts in TUI. CLI v0.124.0: TUI quick reasoning controls (Alt+, lower / Alt+. raise); accepted model upgrades reset reasoning to new model’s default; app-server sessions manage multiple environments with per-turn environment + working-directory selection; first-class Amazon Bedrock support for OpenAI-compatible providers (AWS SigV4 signing, credential auth); remote plugin marketplaces with reliable detail lookups and larger result pages; hooks are now stable — configurable inline in config.toml and requirements.toml, observe MCP tools + apply_patch + long-running Bash sessions; eligible ChatGPT plans default to Fast service tier unless explicitly opted out. Fixes: Cloudflare cookies preserved across approved ChatGPT hosts, websocket reliability under load, permission-mode drift across side conversations, wait_agent mailbox-queue timing, local stdio MCP relative-command path resolution, startup managed-config edge cases. CLI v0.125.0 (April 24): app-server Unix socket transport, pagination-friendly resume/fork, sticky environments, remote thread config/store plumbing; app-server plugin management installs remote plugins and upgrades configured marketplaces; permission profiles round-trip across TUI sessions, user turns, MCP sandbox state, shell escalation, and app-server APIs; model providers own model discovery with AWS/Bedrock account state exposed to app clients; codex exec --json reports reasoning-token usage; rollout tracing records tool/code-mode/session/multi-agent relationships with a debug reducer command. Fixes: /review interrupt no longer wedges TUI, exec-server output/stream-closure handling, app-server respects explicitly untrusted project config, websocket disconnection during notification bursts, Windows sandbox startup and background process handling, config-schema validation for thread limits and agent paths. 83 84 85
2026-04-16 Guide v2.20: CLI v0.121.0 (2026-04-15). Plugin Marketplace (codex marketplace add <source>) with GitHub, git URL, local-dir, and marketplace.json source types. TUI reverse history search (Ctrl+R) and slash-command recall. Memories menu in TUI with reset/deletion; memory reset now preserves past rollouts. Phase-2 memory consolidation model upgraded to GPT-5.4. Secure devcontainer profile with Bubblewrap sandboxing (WSL2 only; WSL1 rejected). macOS sandbox: Unix socket allowlists and private DNS unblocked. danger-full-access denylist-only mode removed — full-access is now binary. MCP tools registered with namespaces; supports_parallel_tool_calls flag plumbed through; sandbox-state metadata flows through MCP tool metadata. Guardian review sessions disable hooks. Context-percent indicator in status line; CLI update announcement surfaces new versions. Windows resume --last fixed for verbatim paths. codex-thread-store interface for local thread lookups. 82
2026-04-13 Guide v2.19: CLI v0.119.0–v0.120.0. Realtime voice sessions (V2 WebRTC with configurable transport). MCP Apps with resource reads, elicitations, file uploads. codex exec-server experimental. /resume by ID or name. Ctrl+O copy latest response. Hook activity improvements in TUI. SessionStart hooks distinguish /clear. 80 81
2026-04-04 Guide v2.18: Updated Business pricing ($25/mo → $20 annual). Added Codex-only pay-as-you-go seats for Business/Enterprise. 79
2026-04-01 Guide v2.17 Updated to CLI v0.118.0: Windows proxy-only sandbox networking (OS-level egress), ChatGPT device-code auth flow, codex exec prompt-plus-stdin, dynamic bearer token refresh for custom providers. .codex file protection on first creation. Linux bwrap PATH discovery fix. TUI app-server regressions fixed (hook replay, /copy, /resume <name>, /agent, skills picker scrolling). MCP startup robustness (longer startup window, warning display). Windows apply_patch ACL fix. Added GPT-5.4 mini to model table (400K context, 30% GPT-5.4 quota, 2x faster). Added Codex Security section (research preview, context-aware vulnerability detection). 78 76 77
2026-03-31 CLI 0.118.0 Windows proxy-only sandbox networking via OS-level egress rules, ChatGPT device-code auth flow for app-server clients, codex exec prompt-plus-stdin workflow (piped input + separate prompt), dynamic bearer token fetch/refresh for custom model providers. Fixes: .codex file protection on first creation, Linux bwrap PATH discovery, TUI app-server regressions (hook notification replay, /copy, /resume <name>, /agent threads, skills picker scrolling), MCP startup robustness (longer startup window, failure warnings), Windows apply_patch redundant writable-root ACL churn. 78
2026-03-17 – GPT-5.4 mini launch: 400K context, $0.75/$4.50 per MTok, 30% of GPT-5.4 quota, 2x faster. Available in Codex app, CLI, IDE extension, and web. Ideal for subagent/parallel subtask delegation. 76
2026-03-06 – Codex Security research preview: context-aware application security review for Pro/Enterprise/Business/Edu via Codex web. Scanned 1.2M commits, 10,561 high-severity findings, 14 CVEs assigned in OpenSSH/GnuTLS/Chromium. 77
2026-03-30 Guide v2.16 Updated to CLI v0.117.0: first-class plugins (product-scoped sync at startup, /plugins browser, install/remove), sub-agents v2 (path-based addresses, structured inter-agent messaging, agent listing), /title terminal-title picker, app-server TUI enabled by default (! shell commands, filesystem watch, remote WebSocket with bearer auth, prompt history recall across sessions), image workflow improvements (view_image returns URLs, generated images reopenable, history survives resume), legacy artifact tool removed (read_file and grep_files retired), Linux sandbox improvements for older distros, Windows restricted-token sandbox improvements. 75
2026-03-28 CLI 0.117.0 First-class plugins with product-scoped sync at startup and /plugins TUI browser. Sub-agents v2: path-based addresses (/root/agent_a), structured inter-agent messaging, agent listing. /title terminal-title picker in TUI and app-server TUI. App-server clients: ! shell commands, filesystem watch, remote WebSocket with bearer auth. Image workflows: view_image returns URLs, generated images reopenable, history survives resume. Prompt history recall in app-server TUI across sessions. App-server TUI enabled by default. Legacy artifact tool removed; old read_file and grep_files retired. Linux sandbox improvements for older distros. Windows restricted-token sandbox improvements. 75
2026-03-21 Guide v2.15 Updated to CLI v0.116.0: UserPromptSubmit hook event (5 total), ChatGPT device-code auth in app-server TUI, smoother plugin installation with suggestion allowlist and remote sync, realtime sessions start with recent thread context, reduced audio self-interruptions. Fixes: WebSocket first-turn delays, conversation history for remote resume/fork, Linux sandbox on symlinked checkouts/AppArmor, agent job finalization race condition. 74
2026-03-19 CLI 0.116.0 UserPromptSubmit hook (block/augment prompts before execution), ChatGPT device-code auth in TUI, smoother plugin setup with allowlist/remote sync, realtime sessions with recent thread context, reduced audio self-interruptions. Fixes: WebSocket prewarm first-turn hangs, conversation history for remote resume/fork, Linux sandbox startup on symlinked checkouts/AppArmor, agent job finalization race. 77 PRs merged. 74
2026-03-18 Guide v2.14 Updated to CLI v0.115.0: full-resolution image inspection via view_image and codex.emitImage, js_repl exposes codex.cwd/codex.homeDir, realtime WebSocket transcription mode, app-server v2 filesystem RPCs, Smart Approvals with guardian subagent (approvals_reviewer = "guardian_subagent"), Responses API tool-search. Bug fixes: subagent sandbox inheritance, js_repl U+2028/U+2029 hang, TUI exit stalls, profile settings preservation with codex exec --profile, MCP/elicitation improvements, HTTP/1 CONNECT proxy. 73
2026-03-16 CLI 0.115.0 Full-resolution image inspection via view_image and codex.emitImage(..., detail: "original"), js_repl exposes codex.cwd and codex.homeDir with persistent tool references, realtime WebSocket sessions with transcription mode and v2 handoff, app-server v2 filesystem RPCs (reads/writes/copies/directory ops/path watching), Smart Approvals route through guardian subagent, app integrations use Responses API tool-search with fallback. Fixes: spawned subagents inherit sandbox/network rules more reliably, js_repl no longer hangs on U+2028/U+2029, TUI exit stalls resolved, profile settings preserved with codex exec --profile, MCP/elicitation flows improved, local network proxy serves CONNECT as HTTP/1. 73
2026-03-13 Guide v2.13 App v26.312: customizable themes (color + font), revamped Automations with local/worktree execution and per-run reasoning levels. Added winget installation method. Added GPT-5.1 deprecation note (March 11 — removed from ChatGPT, auto-migrated to GPT-5.3/5.4). 71 72
2026-03-12 App v26.312 Customizable themes with color controls and font selection in Settings, revamped Automations interface with local or worktree execution mode and custom reasoning levels, performance improvements. 72
2026-03-11 Guide v2.12 Updated to CLI v0.114.0: experimental hooks engine (SessionStart, Stop events), experimental code mode, health check endpoints, disable system skills config, handoff transcript context, enhanced $ mention picker. Updated Hooks section with 4 events. Fixed Windows Desktop App section (now launched). Updated Quick Reference Card models to March 2026. 70
2026-03-11 CLI 0.114.0 Experimental code mode for isolated coding workflows, experimental hooks engine with SessionStart and Stop events, WebSocket app-server health check endpoints (/readyz, /healthz), config switch to disable bundled system skills, handoffs carry realtime transcript context, enhanced $ mention picker with skill/app/plugin labels. Bug fixes: Linux tmux crash, reopened threads stuck mid-run, legacy permission handling, approval flow persistence. 70
2026-03-10 Guide v2.11 Updated to CLI v0.113.0: @plugin mentions (v0.112.0), request_permissions tool, permission-profile config language, plugin marketplace expansion (v0.113.0). Added @plugin Mentions, Plugin Marketplace, Runtime Permission Requests, and Permission-Profile Config Language sections. 68 69
2026-03-10 CLI 0.113.0 Built-in request_permissions tool for runtime permission requests, plugin marketplace discovery with richer metadata/install-time auth checks/uninstall endpoint, app-server streaming stdin/stdout/stderr with TTY/PTY support, permission-profile config language with split filesystem/network sandbox policies, image generation saves to CWD, web search settings with full tool config, hardened network proxy policy rejecting global wildcard domains 69
2026-03-08 CLI 0.112.0 @plugin mentions to reference plugins in chat with auto-included context, new model-selection surface for TUI picker, executable permission profiles merged into per-turn sandbox policy for zsh-fork skill execution, JS REPL state handling fix (bindings persist after failed cells), SIGTERM treated like Ctrl-C for app-server websocket shutdown, Linux bubblewrap always unshares user namespace, macOS sandbox network/unix-socket handling improvements 68
2026-03-06 Guide v2.10 Updated to CLI v0.111.0: GPT-5.4 as recommended model (1M context), fast mode default, plugin system (v0.110.0), js_repl dynamic imports, persistent /fast toggle, Windows installer. Codex App for Windows (v26.304). GPT-5.3-Codex-Spark via Cerebras partnership. Updated model table, flowchart, profiles. Added Plugins section. 64 65 66 67
2026-03-05 CLI 0.111.0 Fast mode default, js_repl dynamic imports for local files, plugin discovery at session start, image workflow support, thread resumption preserves git context 65
2026-03-05 – GPT-5.4 launch: flagship frontier model, 1M context, native computer use, available across all Codex surfaces 64
2026-03-05 CLI 0.110.0 Plugin system for skills/MCP/app connectors, multi-agent approval prompts, persistent /fast toggle, workspace-scoped memory writes, Windows installer script 65
2026-03-04 App v26.304 Codex App for Windows: native PowerShell support, native sandbox, skills/automations/worktrees without WSL 66
2026-03-03 App v26.303 Worktree auto-cleanup toggle, Local-to-Worktree handoff support, explicit English language option 66
2026-03-02 Guide v2.9 Updated to CLI v0.107.0: thread forking into sub-agents, realtime voice device selection, configurable memories with codex debug clear-memories, multimodal custom tool output. Added App v26.226: MCP shortcuts in composer, @mentions in review comments. 62 63
2026-03-02 CLI 0.107.0 Thread forking into sub-agents, realtime voice sessions with microphone/speaker device selection, custom tools multimodal output, configurable memories + codex debug clear-memories, bug fixes 62
2026-02-28 Guide v2.8 Updated to CLI v0.106.0: added direct install script, zsh-fork sandbox bypass fix, ~1M char input cap, Linux /dev filesystem, flexible approval controls, JS REPL promoted to /experimental (Node 22.22.0+), diff-based memory forgetting, TUI syntax highlighting + /theme, /copy, /clear, Ctrl-L, voice transcription, spawn_agents_on_csv, request_user_input in Default mode. Added v0.105.0 and v0.106.0 changelog entries. 60 61
2026-02-26 CLI 0.106.0 Direct install script, js_repl promoted to /experimental with Node 22.22.0 min, request_user_input in Default mode, 5.3-codex visible in CLI model list for API users, diff-based memory forgetting with usage-aware selection, zsh-fork sandbox bypass fix, ~1M char input cap, improved TUI file-link rendering, Ctrl-C handling fix for sub-agents 60
2026-02-25 CLI 0.105.0 TUI syntax-highlights fenced code blocks and diffs with /theme picker, voice transcription (spacebar dictation, experimental), spawn_agents_on_csv for multi-agent fanout with progress/ETA, /copy /clear Ctrl-L commands, flexible approval controls (extra sandbox permissions, granular rejection), clickable wrapped links, Linux /dev filesystem for sandboxed commands, js_repl error reporting improvements 61
2026-02-24 Guide v2.7 Expanded Access/Pricing section: added Free/Go promotional tier, 2x rate limits for paid plans, per-plan usage limits (5-hour window), credit costs table. Added allow_login_shell config key. 51
2026-02-22 Guide v2.6 Added missing config keys: features.multi_agent, features.apply_patch_freeform, features.search_tool, agents.* (multi-agent roles), model_context_window, model_auto_compact_token_limit, mcp_oauth_callback_port, mcp_oauth_credentials_store, notify. Added App v26.217 changelog entry. 50
2026-02-19 Guide v2.5 Updated version references to CLI 0.104.0, added v0.103.0 and v0.104.0 changelog entries, added WS_PROXY/WSS_PROXY proxy support, distinct approval IDs, commit co-author attribution, replaced removed remote_models feature flag with command_attribution. —
2026-02-18 CLI 0.104.0 WS_PROXY/WSS_PROXY WebSocket proxy support, distinct approval IDs for multi-step commands, thread archive/unarchive notifications 49
2026-02-17 App v26.217 Drag-and-drop to reorder queued messages, model downgrade warning, improved fuzzy file search with attachment recovery after restart 50
2026-02-17 CLI 0.103.0 Commit co-author attribution via prepare-commit-msg hook (configurable via command_attribution), richer app listing metadata/branding, removed remote_models feature flag 48
2026-02-17 Guide v2.4 Updated all version references for CLI 0.102.0, added v0.102.0 changelog entry and footnote, updated sub-agents note with configurable multi-agent roles. —
2026-02-17 CLI 0.102.0 Unified permissions flow, structured network approvals, customizable multi-agent roles, model reroute notifications, js_repl stability fixes 47
2026-02-16 Guide v2.3 Fixed migration table: hooks now exist (v0.99.0+), subagents acknowledged (max 6), model list complete. Added dedicated Hooks section (AfterAgent, AfterToolUse, migration patterns). Fixed Recipe 5 phantom commands (cloud start→cloud exec, cloud pull→apply). Fixed codex auth→codex login. Windows sandbox promoted from Experimental. Linux Bubblewrap now vendored/built-in. Added minimal reasoning effort level. Expanded memory section (v0.101.0 refinements, memory vs AGENTS.md). Updated AGENTS.md adopter list (60,000+ projects, Linux Foundation governance). Updated Copilot migration table. Fixed [EXPERIMENTAL] case consistency. Added ReadOnlyAccess policy documentation, JS REPL Runtime section, production Deploy skill example, expanded cost section (hidden token overhead, team cost management). Tagged 20 untagged code blocks. Verified all 30 ToC anchors. Post-evaluation fixes: /permissions terminology corrected (approval mode→approval policy), duplicate “Project Trust” header renamed, chat/completions deprecation language hedged, OpenTelemetry section expanded with config example, migration “harder to escape” language made precise. Deliberation audit
2026-02-16 Guide v2.2 Added 19 historical CLI milestone releases (v0.2.0–v0.91.0) to changelog. Replaced bulk 24 citation with 20 individual release footnotes (35–59). Added 59 Apache 2.0 license citation. Added 5 citation to codex-linux-sandbox reference. Added 21 citation to MDM preference domain. Updated 6 Seatbelt note re: bot-blocking. Added note on unverifiable OpenAI blog URLs. Total footnotes: 56 (was 36). Deliberation audit
2026-02-15 Guide v2.1 Enterprise section corrected (managed-admin-config.toml → requirements.toml with verified TOML keys), 272K context qualified as input window with citation, 6 Seatbelt citation URL added, Key Takeaways block added, style violations fixed, meta description trimmed, AGENTS.md adopter list expanded. Blog evaluator audit
2026-02-14 Guide v2 Major revision: Codex-verified corrections to models (272K context), config keys, feature flags, pricing, enterprise config, CI/CD action, SDK API, MCP options, codex exec flags, desktop app features, migration comparisons. Removed unverifiable claims. Self-review
2026-02-12 CLI 0.101.0 Model resolution improvements, memory refinements, stability 35
2026-02-12 CLI 0.100.0 Experimental JS REPL, multiple rate limits, WebSocket transport, memory commands, enhanced sandbox 36
2026-02-12 App v260212 Conversation forking, floating pop-out window, Windows alpha 17
2026-02-12 – GPT-5.3-Codex-Spark launch (lower-latency interactive variant) 25
2026-02-11 CLI 0.99.0 Concurrent shell commands, /statusline, sortable resume picker, GIF/WebP support, shell snapshotting 37
2026-02-06 CLI 0.98.0 GPT-5.3-Codex support, steer mode stable and default, model switching fixes 38
2026-02-06 CLI 0.97.0 “Allow and remember” MCP approvals, live skill detection, /config diagnostics, memory plumbing 39
2026-02-06 CLI 0.96.0 Async thread/compact v2, WebSocket rate limits, unified_exec non-Windows, config provenance 40
2026-02-06 CLI 0.95.0 codex app command, personal skills, parallel shell tools, git hardening 41
2026-02-05 – GPT-5.3-Codex launch — unified model, 25% faster, end-to-end computer operation 26
2026-02-02 – Codex Desktop App launch (macOS) — multi-tasking, worktrees, automations 16
2026-01-30 CLI 0.94.0 Plan mode default, personality stable, skills from .agents/skills, runtime metrics 42
2026-01-29 CLI 0.93.0 SOCKS5 proxy, plan mode streaming, /apps, smart approvals default, SQLite logs 43
2026-01-29 CLI 0.92.0 API v2 threads, thread filtering, MCP OAuth scopes, multi-agent collaboration 44
2026-01-25 CLI 0.91.0 Reduced max sub-agents from 12 to 6 for tighter resource guardrails 45
2026-01-21 CLI 0.88.0 Device-code auth fallback, collaboration modes, /fork, remote models, model_personality config 46
2026-01-06 CLI 0.78.0 Ctrl+G external editor, project-aware config layering, macOS MDM config, TUI2 transcript nav, .dmg installers 52
2025-12-18 – GPT-5.2-Codex launch — context compaction, refactors/migrations, cybersecurity 27
2025-12-09 CLI 0.66.0 Exec policy system (TUI whitelisting, sandbox denial amendments), CRLF preservation, Linux Sigstore signing 53
2025-11-19 – GPT-5.1-Codex-Max — multi-window compaction, Windows training, 30% fewer thinking tokens 28
2025-11-19 CLI 0.59.0 Native compaction, tool output limit raised to 10K tokens, Windows Agent mode sandbox, credits in /status 54
2025-10-25 CLI 0.50.0 /feedback diagnostics, sandbox violation risk assessment, MCP startup improvements, env var redaction 55
2025-10-06 – Codex GA at DevDay — Slack integration, SDK, admin tools 29
2025-10-06 CLI 0.45.0 Breaking: codex login --api-key → --with-api-key (stdin). OAuth MCP auth, parallel tool calls, pulsing dot UI 56
2025-09-23 – GPT-5-Codex + IDE extension + CLI revamp — images, web search, code review 30
2025-09-23 CLI 0.40.0 Default model → gpt-5-codex, auto-compaction at 220K tokens, /review commands, git undo, Windows binary support 57
2025-06-30 CLI 0.2.0 First Rust binary release — pre-built binaries for macOS (aarch64/x86_64) and Linux (gnu/musl), codex-exec and codex-linux-sandbox tools 58
2025-06 – Rust rewrite announced (“Codex CLI is Going Native”) 31
2025-06-03 – Plus user expansion, internet access for cloud, PR updates, voice dictation 32
2025-05-16 – Codex Cloud launch — cloud agent with codex-1 model, GitHub PR creation 33
2025-04-16 – Codex CLI open-source launch (Apache 2.0, TypeScript, codex-mini-latest)59 1

References

Note on OpenAI blog URLs: References 16, 25–30, 33, 64, 66, 67, 76, and 77 link to openai.com/index/ blog posts which return HTTP 403 to automated access due to Cloudflare bot protection. These URLs are valid when accessed via a standard web browser.


  1. GitHub — openai/codex — Open-source repository, releases, and discussions. ↩↩↩

  2. Codex CLI Windows Support — Windows installation and WSL guidance. ↩

  3. Codex IDE Extension — VS Code, Cursor, and Windsurf integration. ↩

  4. Codex Cloud — Cloud task documentation and internet access controls. ↩↩

  5. Codex Security — Sandbox architecture and security model. ↩↩↩

  6. macOS Seatbelt Sandbox — Community documentation for Apple’s sandbox-exec framework (no official Apple developer docs published). Note: this wiki may block automated access (HTTP 403); see also man sandbox-exec on macOS. ↩↩↩

  7. Linux Landlock LSM — Kernel filesystem access control. ↩

  8. Breaking Out of the Sandbox — Community sandbox configuration patterns. ↩

  9. AGENTS.md Open Standard — Cross-tool instruction standard under the Linux Foundation. ↩

  10. Custom Instructions with AGENTS.md — Official guide. ↩

  11. Codex MCP Integration — MCP server configuration and management. ↩

  12. Building Workflows with Agents SDK — Codex as MCP server for multi-agent orchestration. ↩

  13. Agent Skills — Skills system documentation. ↩

  14. Codex CLI Features — Plan mode, steer mode, and collaboration features. ↩↩

  15. Non-Interactive Mode — codex exec documentation. ↩

  16. Introducing the Codex App — Desktop app launch announcement. ↩↩↩↩

  17. Codex App Documentation — Desktop app features and troubleshooting. ↩

  18. Codex GitHub Action — CI/CD integration. ↩

  19. Codex SDK — TypeScript SDK documentation. ↩

  20. Codex Pricing — Subscription and API pricing. ↩

  21. Codex Configuration Reference — Enterprise requirements.toml schema and MDM distribution. ↩↩↩

  22. Best Practices for Using Codex — Community forum thread. ↩

  23. feiskyer/codex-settings — Community-maintained configurations, skills, and prompts. ↩

  24. Codex CLI Releases — GitHub release notes. ↩↩

  25. Introducing GPT-5.3-Codex-Spark — Cerebras partnership, 1000+ tok/s. ↩↩

  26. Introducing GPT-5.3-Codex — Unified model launch. ↩

  27. Introducing GPT-5.2-Codex — Context compaction and large-scale changes. ↩

  28. Building More with GPT-5.1-Codex-Max — Multi-window compaction. ↩

  29. Codex is Now Generally Available — DevDay 2025 announcement. ↩

  30. Introducing Upgrades to Codex — GPT-5-Codex + IDE extension. ↩↩

  31. Codex CLI is Going Native — Rust rewrite discussion. ↩

  32. Codex Updates: Internet Access and Plus Rollout — June 2025 expansion. ↩

  33. Introducing Codex — Cloud agent launch. ↩↩

  34. Deprecating chat/completions support in Codex — OpenAI announced chat/completions API removal for Codex, completed February 2026. ↩

  35. Codex CLI v0.101.0 — Model resolution improvements, memory refinements, stability. February 12, 2026. ↩↩

  36. Codex CLI v0.100.0 — Experimental JS REPL, multiple rate limits, WebSocket transport, memory commands, enhanced sandbox. February 12, 2026. ↩

  37. Codex CLI v0.99.0 — Concurrent shell commands, /statusline, sortable resume picker, GIF/WebP support, shell snapshotting. February 11, 2026. ↩↩

  38. Codex CLI v0.98.0 — GPT-5.3-Codex support, steer mode stable and default, model switching fixes. February 6, 2026. ↩

  39. Codex CLI v0.97.0 — “Allow and remember” MCP approvals, live skill detection, /config diagnostics, memory plumbing. February 6, 2026. ↩↩

  40. Codex CLI v0.96.0 — Async thread/compact v2, WebSocket rate limits, unified_exec non-Windows, config provenance. February 6, 2026. ↩

  41. Codex CLI v0.95.0 — codex app command, personal skills, parallel shell tools, git hardening. February 6, 2026. ↩

  42. Codex CLI v0.94.0 — Plan mode default, personality stable, skills from .agents/skills, runtime metrics. January 30, 2026. ↩

  43. Codex CLI v0.93.0 — SOCKS5 proxy, plan mode streaming, /apps, smart approvals default, SQLite logs. January 29, 2026. ↩

  44. Codex CLI v0.92.0 — API v2 threads, thread filtering, MCP OAuth scopes, multi-agent collaboration. January 29, 2026. ↩

  45. Codex CLI v0.91.0 — Reduced max sub-agents from 12 to 6 for tighter resource guardrails. January 25, 2026. ↩

  46. Codex CLI v0.88.0 — Device-code auth fallback, collaboration modes, /fork, remote models, model_personality config. January 21, 2026. ↩

  47. Codex CLI v0.102.0 — Unified permissions flow, structured network approvals, customizable multi-agent roles, model reroute notifications. February 17, 2026. ↩↩

  48. Codex CLI v0.103.0 — Commit co-author attribution via prepare-commit-msg hook, richer app listing metadata/branding, removed remote_models feature flag. February 17, 2026. ↩

  49. Codex CLI v0.104.0 — WS_PROXY/WSS_PROXY WebSocket proxy support, distinct approval IDs for commands, thread archive/unarchive notifications. February 18, 2026. ↩↩↩

  50. Codex Changelog — Codex App v26.217: drag-and-drop reorder, model downgrade warning, fuzzy file search improvements. Codex Config Reference — Complete configuration key reference. February 2026. ↩↩

  51. Codex Pricing — Plan tiers, usage limits per 5-hour window, credit costs, and Free/Go promotional access. February 2026. ↩↩

  52. Codex CLI v0.78.0 — Ctrl+G external editor, project-aware config layering, macOS MDM config, TUI2 transcript nav, .dmg installers. January 6, 2026. ↩

  53. Codex CLI v0.66.0 — Exec policy system, CRLF preservation on Windows, cloud exec --branch, Linux Sigstore signing. December 9, 2025. ↩

  54. Codex CLI v0.59.0 — Native compaction, tool output limit raised to 10K tokens, Windows Agent mode sandbox, credits in /status. November 19, 2025. ↩

  55. Codex CLI v0.50.0 — /feedback diagnostics, sandbox violation risk assessment, MCP startup improvements, env var redaction. October 25, 2025. ↩↩

  56. Codex CLI v0.45.0 — Breaking: codex login --api-key → --with-api-key (stdin). OAuth MCP auth, parallel tool calls. October 6, 2025. ↩

  57. Codex CLI v0.40.0 — Default model → gpt-5-codex, auto-compaction at 220K tokens, /review commands, git undo, Windows binary. September 23, 2025. ↩

  58. Codex CLI v0.2.0 — First Rust binary release. Pre-built binaries for macOS (aarch64/x86_64) and Linux (gnu/musl), codex-exec and codex-linux-sandbox tools. June 30, 2025. ↩

  59. GitHub — openai/codex LICENSE — Apache License 2.0. Original open-source launch April 2025. ↩↩↩

  60. Codex CLI v0.106.0 — Direct install script, js_repl promoted to /experimental (Node 22.22.0+), request_user_input in Default mode, diff-based memory forgetting, zsh-fork sandbox bypass fix, ~1M char input cap, Ctrl-C sub-agent fix. February 26, 2026. ↩↩↩↩↩↩↩↩↩↩

  61. Codex CLI v0.105.0 — TUI syntax highlighting with /theme, voice transcription, spawn_agents_on_csv, /copy /clear Ctrl-L, flexible approval controls, Linux /dev filesystem, js_repl error recovery. February 25, 2026. ↩↩↩↩↩↩↩↩↩↩

  62. Codex CLI v0.107.0 — Thread forking into sub-agents, realtime voice device selection, custom tools multimodal output, configurable memories with codex debug clear-memories. March 2, 2026. ↩↩↩↩↩↩

  63. Codex Changelog — App v26.226 — MCP shortcuts in composer, @mentions in review comments, Mermaid diagram error handling. February 26, 2026. ↩↩↩

  64. Introducing GPT-5.4 — Flagship frontier model combining GPT-5.3-Codex coding with stronger reasoning, native computer use, and 1M context windows. March 5, 2026. ↩↩↩↩

  65. Codex CLI v0.110.0–v0.111.0 — Plugin system for skills/MCP/app connectors (v0.110.0), fast mode default, js_repl dynamic imports, plugin discovery at session start (v0.111.0). March 5, 2026. ↩↩↩↩↩

  66. Codex App for Windows — Native Windows app with PowerShell support, native sandbox, skills/automations/worktrees. App v26.304 (March 4, 2026), v26.303 (March 3, 2026). ↩↩↩↩↩↩

  67. Introducing GPT-5.2-Codex — GPT-5.3-Codex-Spark: text-only research preview model optimized for near-instant coding iteration. Available for ChatGPT Pro users via Cerebras partnership. 128K context. ↩↩↩

  68. Codex CLI v0.112.0 — @plugin mentions with auto-included context, TUI model-selection surface, executable permission profiles in per-turn sandbox policy, JS REPL state fix, SIGTERM handling, Linux bubblewrap user namespace, macOS sandbox improvements. March 8, 2026. ↩↩↩

  69. Codex CLI v0.113.0 — Built-in request_permissions tool, plugin marketplace expansion (metadata, auth checks, uninstall), app-server streaming with TTY/PTY, permission-profile config language, image generation saves to CWD, web search tool settings, hardened network proxy policy. March 10, 2026. ↩↩↩↩

  70. Codex CLI v0.114.0 — Experimental code mode, experimental hooks engine (SessionStart, Stop events), WebSocket health check endpoints, disable system skills config, handoff transcript context, enhanced $ mention picker. March 11, 2026. ↩↩↩↩

  71. OpenAI Developer Changelog — March 11, 2026 — GPT-5.1 models removed from ChatGPT; existing conversations auto-continue on GPT-5.3 Instant, GPT-5.4 Thinking, or GPT-5.4 Pro. ↩↩

  72. Codex Changelog — App v26.312 — Customizable themes with color controls and font selection, revamped Automations interface with local/worktree execution and custom reasoning levels, performance improvements. March 12, 2026. ↩↩↩↩

  73. Codex CLI v0.115.0 — Full-resolution image inspection via view_image and codex.emitImage, js_repl exposes codex.cwd/codex.homeDir, realtime WebSocket transcription mode, app-server v2 filesystem RPCs, Smart Approvals with guardian subagent, Responses API tool-search. Fixes: subagent sandbox inheritance, js_repl U+2028/U+2029 hang, TUI exit stalls, profile settings preservation, MCP/elicitation improvements. March 16, 2026. ↩↩↩

  74. Codex CLI v0.116.0 — UserPromptSubmit hook event, ChatGPT device-code auth in app-server TUI, smoother plugin installation with suggestion allowlist and remote sync, realtime sessions with recent thread context, reduced audio self-interruptions. Fixes: WebSocket prewarm first-turn hangs, conversation history for remote resume/fork, Linux sandbox on symlinked checkouts/AppArmor, agent job finalization race. 77 PRs merged. March 19, 2026. ↩↩

  75. Codex CLI v0.117.0 — First-class plugins (product-scoped sync, /plugins browser, install/remove), sub-agents v2 (path-based addresses, structured messaging, agent listing), /title terminal-title picker, app-server TUI enabled by default with ! shell commands/filesystem watch/remote WebSocket bearer auth/prompt history recall, image workflows (view_image URLs, reopenable generated images, resume-surviving history), legacy artifact/read_file/grep_files tools removed, Linux sandbox improvements for older distros, Windows restricted-token sandbox improvements. March 28, 2026. ↩↩↩↩↩↩↩↩↩↩↩↩↩

  76. Introducing GPT-5.4 mini and nano — GPT-5.4 mini: 400K context, $0.75/$4.50 per MTok, 30% of GPT-5.4 quota, 2x faster. Available in Codex app, CLI, IDE extension, and web. March 17, 2026. ↩↩↩↩↩

  77. Codex Security: now in research preview — Context-aware application security review. Pro/Enterprise/Business/Edu via Codex web. Scanned 1.2M commits, 10,561 high-severity findings, 14 CVEs assigned. March 6, 2026. ↩↩↩↩↩

  78. Codex CLI v0.118.0 — Windows proxy-only sandbox networking, ChatGPT device-code auth, codex exec prompt-plus-stdin, dynamic bearer tokens, .codex file protection, Linux bwrap fix, TUI app-server regressions, MCP startup robustness, Windows apply_patch fix. March 31, 2026. ↩↩

  79. Codex now offers pay-as-you-go pricing for teams. OpenAI, April 2, 2026. Business annual pricing reduced to $20/seat/mo. Codex-only seats available for Business and Enterprise with token-based billing, no fixed seat fee, no rate limits. ↩↩

  80. Codex CLI v0.119.0. “v0.119.0: Realtime voice V2 (WebRTC, configurable transport, voice selection, native TUI media), MCP Apps (resource reads, tool-call metadata, elicitations, file uploads), remote workflows (egress websocket, --cd forwarding, codex exec-server), Ctrl+O copy response, /resume by ID/name, Warp OSC 9 notifications.” April 10, 2026. ↩

  81. Codex CLI v0.120.0. “v0.120.0: Realtime V2 streams background agent progress, hook activity UI improvements, SessionStart hooks distinguish /clear, MCP outputSchema in code mode, Windows sandbox symlink handling, tool search ordering fix.” April 11, 2026. ↩

  82. Codex CLI v0.121.0. April 15, 2026. Plugin Marketplace (codex marketplace add for GitHub, git URL, local dir, marketplace.json URL) + app-server counterpart (#17087, #17717, #17756). TUI reverse history search Ctrl+R with slash-command recall (#17550, #17336). TUI memories menu with reset button and per-memory deletion (#17632, #17626, #17913, #17937, #17844). Phase-2 memory consolidation model upgraded to GPT-5.4 (#17384). Memory reset preserves past rollouts (#17919). Secure devcontainer profile using Bubblewrap (WSL2 only; WSL1 rejected) (#10431, #17547, #17559). macOS sandbox: Unix socket allowlists (#17654), private DNS unblocked (#17370). danger-full-access denylist-only mode removed (#17732). MCP Apps tool-call support (#17364), MCP tool namespaces (#17404), supports_parallel_tool_calls flag plumbing (#17667), sandbox-state metadata via MCP tool metadata (#17763, #17957), flattened deferred tool calls (#17556). Guardian review disables hooks (#17872). Context-percent indicator in status line (#17637, #17420). CLI update announcement (#17942). codex-thread-store interface (#17659, #17824). Windows resume --last verbatim-path fix (#17414). 180+ commits total. See also rust-v0.120.0...rust-v0.121.0 compare URL for full PR list. ↩↩↩↩↩↩↩↩↩↩↩↩

  83. Introducing GPT-5.5. OpenAI announcement, April 23, 2026. Context window: 400K in Codex, 1M in the API (per OpenAI’s GPT-5.5-in-Codex availability page and the GPT-5.5 API model docs respectively). Pricing (API): $5 input / $30 output per MTok (2× the GPT-5.4 rate; OpenAI states ~20% effective increase after token-efficiency improvements). Benchmarks: 82.7% Terminal-Bench 2.0 (current SOTA across publicly available models), 84.9% GDPval (44 occupations), 78.7% OSWorld-Verified (real-computer operation), 98.0% Tau2-bench Telecom (no prompt tuning). Available in Codex CLI/web/desktop on April 23 for ChatGPT Plus/Pro/Business/Enterprise/Edu/Go; available in the OpenAI API on April 24. OpenAI’s stated guidance: “GPT-5.5 is now available in Codex as OpenAI’s newest frontier model for complex coding, computer use, knowledge work, and research workflows, and is the recommended choice for most Codex tasks.” See also: Introducing upgrades to Codex (April 17, 2026 — background computer use, 90+ new plugin partners including Atlassian Rovo, CircleCI, CodeRabbit, GitLab Issues, Microsoft Suite, Neon by Databricks, Remotion, Render, and Superpowers); NVIDIA blog: GPT-5.5 Powers Codex on NVIDIA Infrastructure; TechCrunch: OpenAI releases GPT-5.5. ↩↩↩↩↩↩

  84. Codex CLI v0.122.0 and v0.123.0. v0.122.0: filesystem deny-read glob policies + managed deny-read requirements + platform sandbox enforcement + isolated codex exec runs that ignore user config or rules; tool discovery and image generation enabled by default; higher-detail image handling and original-detail metadata for MCP and js_repl; app-server stale-prompt resolution across clients; resumed/forked threads replay token usage immediately; remote-control startup tolerates missing ChatGPT auth; MCP startup cancellation works again through app-server sessions; internal split into codex-core-plugins and connector reorg. v0.123.0 (April 23, 2026): built-in amazon-bedrock model provider with configurable AWS profile support; /mcp verbose for full MCP server diagnostics, resources, and resource templates while keeping plain /mcp fast; plugin MCP loading accepts both mcpServers and top-level server maps in .mcp.json; realtime handoffs deliver transcript deltas to background agents and allow explicit silent-stay; host-specific remote_sandbox_config requirements for remote environments; refreshed bundled model metadata. Fixes: /copy after rollback copies latest visible assistant response (not pre-rollback), follow-up text submitted while a manual shell command runs is queued (no more stuck Working states), Unicode/dead-key input in VS Code WSL terminals (enhanced keyboard mode disabled there), stale proxy env vars not restored from shell snapshots, codex exec inherits root-level shared flags such as sandbox and model options, leaked review prompts removed from TUI transcripts. ↩↩↩

  85. Codex CLI v0.124.0 and v0.125.0. v0.124.0 (April 23, 2026): TUI quick reasoning controls (Alt+, lower, Alt+. raise) with model-upgrade reasoning resets to new model’s defaults; app-server sessions manage multiple environments with per-turn environment + working-directory selection for remote setups; first-class Amazon Bedrock support for OpenAI-compatible providers (AWS SigV4 signing, AWS credential auth); remote plugin marketplaces with reliable detail lookups and larger result pages; hooks now stable — configurable inline in config.toml and requirements.toml, observe MCP tools plus apply_patch and long-running Bash sessions; eligible ChatGPT plans default to the Fast service tier unless explicitly opted out. Fixes: Cloudflare cookies preserved across approved ChatGPT hosts (auth-failure reduction), websocket event draining under load + cleaner shutdown, permission-mode drift survives side conversations, wait_agent returns promptly when mailbox work is queued, local stdio MCP launches for relative commands without explicit cwd use correct path resolution, startup managed-config edge cases (unknown feature requirements warn instead of abort, cloud-requirement errors are clearer). v0.125.0 (April 24, 2026): app-server integrations support Unix socket transport, pagination-friendly resume/fork, sticky environments, remote thread config/store plumbing; app-server plugin management installs remote plugins and upgrades configured marketplaces; permission profiles round-trip across TUI sessions, user turns, MCP sandbox state, shell escalation, and app-server APIs; model providers own model discovery with AWS/Bedrock account state exposed to app clients; codex exec --json reports reasoning-token usage for programmatic consumers; rollout tracing records tool, code-mode, session, and multi-agent relationships, with a debug reducer command. Fixes: /review interrupt no longer wedges the TUI, exec-server output handling and stream closure improved, app-server respects explicitly untrusted project config, websocket client disconnection issues during notification bursts, Windows sandbox startup and background process handling, config-schema validation strengthened for thread limits, agent paths, and MIME types. ↩↩↩

  86. Codex CLI v0.128.0. Released April 30, 2026. Adds persisted /goal workflows, codex update, configurable TUI keymaps, expanded permission profiles, plugin marketplace improvements, external agent session import, and MultiAgentV2 configuration updates; fixes resume/interruption, TUI, network, Windows sandbox, Bedrock, MCP, and plugin edge cases; deprecates --full-auto; removes js_repl. ↩↩↩↩↩↩↩

  87. OpenAI Codex configuration reference and Codex sandbox configure defaults. Accessed May 11, 2026. Documents approval_policy, sandbox_mode, default_permissions, [permissions.<name>.filesystem], [permissions.<name>.network], built-in permission profiles, and on-failure deprecation. ↩↩↩↩↩

  88. OpenAI API deprecations: 2026-04-22 legacy GPT model snapshots. Accessed May 5, 2026; re-verified July 24, 2026 after the shutdown date passed. Lists July 23, 2026 shutdowns for legacy Codex-related model snapshots including gpt-5.2-codex, gpt-5.1-codex, gpt-5.1-codex-max, and gpt-5.1-codex-mini. The recommended substitutes were updated from the original gpt-5.4/gpt-5.4-mini to gpt-5.6-sol (for the codex/codex-max snapshots) and gpt-5.6-terra (for codex-mini), matching the v0.145.0 bundled-model migration. ↩↩↩↩↩↩

  89. Codex CLI v0.129.0. Released May 7, 2026, 17:02 UTC. Adds modal Vim editing in the composer (/vim command, configurable default-mode), redesigned TUI workflow picker (easier resume/fork, raw scrollback mode), in-TUI /hooks browser for discovery and toggle of lifecycle hooks, theme-aware status line with optional PR + branch-change summaries, plugin management upgrade (workspace sharing, share access controls, source filtering, marketplace operations from /plugins), /goal lifecycle change (experimental goals stay paused across resume unless opted back in — changes prior v0.128.0 default behavior), Linux sandbox startup hardening, Windows sandbox reliability improvements, and a vendored Bubblewrap bump to 0.11.2 with upstream security patches. See also: Codex Changelog and Codex CLI page — the latter documents the May 2026 usage limit boost (Codex Plus 25× 5-hour limit and $100/month tier doubled, both through May 31, 2026). ↩↩↩↩↩↩↩↩↩↩↩↩

  90. Codex for Chrome and the May 7, 2026 entry on the Codex Changelog. Per the announcement: “With the new extension for Chrome, Codex is even better at working with apps and websites in your browser. It works in parallel across tabs in the background without taking over your browser, and you stay in control of which websites Codex can use.” The linked page was retitled “Browser extension” when Edge, Brave, Opera, and Vivaldi were added on August 25, 2026; see 127. ↩↩↩↩

  91. Codex CLI v0.130.0. Released May 8, 2026, 23:09 UTC. New features: codex remote-control top-level command for headless app-server entrypoint (#21424); plugin details show bundled hooks, plugin sharing exposes link metadata + discoverability controls + share settings updates (#21447, #21495, #21637); app-server thread pagination with unloaded / summary / full turn item views (#21566); Bedrock auth via AWS aws login console-login credentials (#21623); view_image resolves through the selected environment for multi-environment sessions (#21143). Bug fixes: live app-server threads pick up config changes without restart (#21187); turn diffs stay accurate across apply_patch operations including partial failures (#21180, #21518); thread summaries / renames / resume / fork via ThreadStore, including pathless threads (#21264, #21265, #21266); remote compaction emits response.processed for v2 streams + omits service_tier on API-key compact requests (#21642, #21676); Windows sandbox setup grants sandbox users access to the desktop runtime binary cache (#21564); codex exec startup banner no longer prints “research preview” wording (#21683). Chores: configurable OpenTelemetry trace metadata + richer review/feedback analytics (#21556, #18747, #21434, #21498); Cargo profiling build profile, Dependabot cooldown, cargo-shear upgrade, fully qualified GitHub Action pins (#21436, #21547, #21574, #21584, #21599); removed unused device-key APIs / extra skills roots / remote thread-store impl / string-keyed MCP tool maps (#21487, #21485, #21596, #21454). Compare URL: rust-v0.129.0...rust-v0.130.0. See also: Codex Changelog. ↩↩↩↩↩↩↩↩↩↩↩↩↩

  92. Codex Changelog. Historical May 5-9, 2026 context: GPT-5.5 Instant rolled out to the free tier, and the v0.131.0 alpha line began before the later May 18 stable v0.131.0 release documented in 96. ↩↩

  93. Build plugins — Add a marketplace from the CLI. Accessed May 11, 2026. Documents codex plugin marketplace add, accepted marketplace source types, --ref, --sparse, and marketplace upgrade/remove commands. ↩

  94. Codex CLI v0.131.0-alpha.9. Released May 12, 2026. Historical prerelease alpha line; superseded for the current guide target by the May 18 stable v0.131.0 release in 96. ↩↩

  95. Author’s sanitized local Codex-harness hygiene audit on May 15, 2026. The pass separated executable source, public/private docs, generated caches, session records, shell snapshots, logs, and intentional secret stores; converted helper credentials to environment-required configuration where appropriate; redacted model-visible history for high-confidence secret shapes; and recorded remaining prevention-hook and forensic-history gaps. Exact paths, token values, detector patterns, and private workflow internals are intentionally omitted. ↩↩↩

  96. Codex Changelog. May 18, 2026 entry for Codex CLI 0.131.0. New features include richer TUI session controls and status display, unified @ mention search across files/directories/plugins/skills, marketplace CLI commands, version-aware plugin sharing, default-enabled plugin hooks, daemon-managed codex remote-control, registry-backed remote environments, openai-codex Python SDK updates, and codex doctor diagnostics. Bug fixes cover TUI rendering/interaction, Windows sandbox behavior, managed read restrictions, app-server/local-state startup safety, Git/auth reliability, and remote cleanup. Current-session verification on May 19, 2026: codex --version returned codex-cli 0.131.0 and npm view @openai/codex version dist-tags.latest time.modified --json returned latest 0.131.0 with time.modified 2026-05-18T22:00:51.726Z. ↩↩↩↩↩↩

  97. Codex CLI v0.132.0. Released May 20, 2026. Adds first-class Python SDK authentication (API key, ChatGPT browser/device-code flows, account inspection, logout), simpler text-only turn APIs with richer TurnResult, codex exec resume --output-schema, faster TUI startup through batched terminal probes, standard-Codex-auth remote executor registration, and app-server image-fidelity preservation. Fixes include goal continuation stop conditions for usage limits and repeated blockers, resume picker trust/paste behavior, MCP replay/elicitation routing, remote websocket keepalive, repo-relative diff paths, Windows doctor npm detection, and static MSVC runtime linking. ↩↩↩↩

  98. Codex CLI v0.133.0. Released May 21, 2026. Goals are enabled by default with dedicated storage and active-turn progress tracking; codex remote-control gains foreground readiness/status plus daemon-style start / stop; permission profiles add list APIs, inheritance, managed requirements.toml support, runtime refresh, and stronger Windows sandbox integration; plugin discovery gains marketplace-aware list output, installed versions, marketplace roots, and remote collection support; extensions can observe subagent start/stop, tool execution, turn metadata, and async approval/turn processing. Current-session verification on May 21, 2026: codex --version returned codex-cli 0.131.0 while npm view @openai/codex version dist-tags.latest time.modified --json returned latest 0.133.0 with time.modified 2026-05-21T17:13:06.823Z. ↩↩↩↩↩↩↩

  99. OpenAI ChatGPT release notes and ChatGPT Enterprise & Edu release notes. May 21, 2026 Codex entries: Appshots, Goal mode GA, in-app browser annotations, locked Computer Use, browser-use improvements, Enterprise/Edu analytics, and plugin-sharing availability notes. See also Appshots, In-app browser, and Computer Use docs, accessed May 25, 2026. ↩↩↩↩↩↩↩↩

  100. OpenAI Codex prompting docs — Goal mode. Accessed May 25, 2026. Documents Goal mode as a persistent objective with /goal entry points in the Codex app, IDE extension, and CLI, plus features.goals / codex features enable goals fallback guidance if the slash command does not appear. ↩↩↩

  101. OpenAI Codex GitHub releases. Accessed May 26, 2026. The releases page lists 0.134.0-alpha.1, 0.134.0-alpha.2, and 0.134.0-alpha.3 as prereleases and marks 0.133.0 as latest stable. Current-session verification on May 26, 2026: local codex --version returned codex-cli 0.133.0; npm view @openai/codex version dist-tags.latest time.modified --json returned version 0.133.0, dist-tags.latest 0.133.0, and time.modified 2026-05-23T01:26:52.705Z. ↩↩↩

  102. Codex CLI v0.140.0 release notes and Codex Changelog (OpenAI Developers). Promoted to stable June 15, 2026 (from the v0.140.0-alpha line). New features: /usage views for daily, weekly, and cumulative account token activity; /goal preserves oversized text, large pasted blocks, and image attachments in remote app-server sessions; session deletion via codex delete, /delete, and app-server thread/delete with confirmation safeguards; /import for selectively importing setup, project configuration, and recent chats from Claude Code; typing @ opens a unified mentions menu for files, plugins, and skills by default; managed Amazon Bedrock API-key authentication and encrypted local storage for CLI and MCP OAuth credentials. Bug fixes: corrupted SQLite state databases auto-backup and rebuild from rollout data; /review no longer crashes when Esc is pressed with queued guidance; MCP reliability via transient startup-failure retries and disabled-server preservation; fixed remote plugin uninstall requests and surfaced apps requiring authentication; persisted “Don’t remind me” update dismissals and cleared stale running-hook indicators; non-TTY background commands interruptible with Ctrl-C while preserving output. Performance/maintenance: Git filesystem-monitor preservation and archive-lookup acceleration for large repos; removed experimental /realtime voice controls and audio dependencies from the TUI. The latest pre-release as of June 16, 2026 is the rust-v0.141.0-alpha line (prerelease) — 0.141.0 is still alpha and is not tracked by this guide, which follows stable. Current-session verification June 16, 2026: GitHub releases and the OpenAI Codex changelog confirm rust-v0.140.0 as the latest stable. ↩↩↩↩↩↩↩

  103. Codex CLI v0.141.0 release notes and Codex Changelog (OpenAI Developers). Promoted to stable June 18, 2026 (from the v0.141.0-alpha line). Security/infrastructure: remote executors use authenticated, end-to-end encrypted Noise-relay channels; TLS supports P-521 certificate signatures for enterprise proxy compatibility. Cross-platform: remote execution preserves executor-native working directories and shells; Windows sandbox execution improvements including automatic credential recovery. Performance: reduced latency and memory in large, tool-heavy sessions by caching tool search; bounded prompt-image caching to 64 MiB. UI: TUI input prompts can auto-resolve after inactivity with a countdown timer; realtime clients gain speech-append control. The latest pre-release as of June 19, 2026 is the rust-v0.142.0-alpha line (prerelease) — 0.142.0 is still alpha and not tracked by this guide, which follows stable. Current-session verification June 18, 2026: GitHub releases and the OpenAI Codex changelog confirm rust-v0.141.0 as the latest stable. ↩↩

  104. Codex CLI v0.142.0 release notes and Codex Changelog (OpenAI Developers). Promoted to stable June 22, 2026 (from the v0.142.0-alpha line). New features: /usage can show and redeem earned usage-limit reset credits, with confirmation, retry, and refreshed availability states; /plugins organizes remote plugins into OpenAI Curated, Workspace, and Shared with me sections, while eligible turns can recommend and install relevant plugins; configurable rollout token budgets track usage across agent threads, provide remaining-budget reminders, and abort turns when exhausted; app-server clients can configure multi-agent delegation as disabled, explicit-request-only, or proactive at the thread and turn level; an indexed web-search mode permits live searches while restricting direct page access to server-approved URLs; Codex can receive scheduled UTC time reminders and query the current time directly, including through client-provided app-server clocks. Bug fixes: Linux TUI rendering after Ctrl+Z suspend/fg resume; exec-server process and stdio MCP session reconnection resilience; remote-environment path preservation across operating systems; plugin loading, installation, and manifest handling improvements; parent-agent visibility into subagent errors; goal-first thread persistence in thread/list and thread/search. The latest pre-release as of June 23, 2026 is the rust-v0.143.0-alpha line (prerelease) — 0.143.0 is still alpha and not tracked by this guide, which follows stable. Current-session verification June 23, 2026: GitHub releases and the OpenAI Codex changelog confirm rust-v0.142.0 as the latest stable. ↩↩↩

  105. Codex CLI v0.142.2 release notes and v0.142.5 release notes. v0.142.2 (June 25, 2026): MCP tools use tool search by default when supported, improving tool discovery while preserving compatibility with older models and providers; macOS authentication clients honor system proxy, PAC, and WPAD settings when respect_system_proxy is enabled; plugins provide dedicated dark-mode logos through local manifests and remote catalogs; apps can display richer safety-buffering UI using server-provided visibility and faster-model metadata. Fixes: remote plugin catalogs return curated featured-plugin rankings; expired Amazon Bedrock credentials produce actionable recovery guidance; remote stdio MCP servers accept absolute working directories in the remote platform’s path format; remote HTTP(S) image inputs return clear model-visible validation errors (inline data URLs and local images still supported); PowerShell commands containing executable AST regions the safety classifier cannot inspect now require approval; Code Mode warns when the selected model lacks required metadata; bundled OpenSSL and esbuild updated to patched releases. v0.142.3 (June 26) and v0.142.4 (June 29): maintenance-only, no user-facing changes. v0.142.5 (July 1, 2026): prevented full Responses WebSocket request payloads from being written to trace logs. Current-session verification July 1, 2026 (PST): GitHub releases confirm rust-v0.142.5 as the latest stable; the v0.143.0-alpha line remains prerelease and is not tracked by this guide. ↩↩↩↩

  106. Codex CLI v0.143.0 release notes, July 8, 2026 (promoted to stable from the v0.143.0-alpha line). New features: remote plugins are enabled by default, with richer catalog rows, npm marketplace sources, and visible remote/local versions; authentication and Responses API traffic can route through macOS and Windows system proxies, including PAC and WPAD configurations; codex remote-control pair generates a manual pairing code from a running daemon; Amazon Bedrock adds GPT-5.6 Sol, Terra, and Luna models with first-class max reasoning-effort support; MCP tools use tool search by default and ChatGPT-hosted MCP servers can explicitly use session authentication; app-server clients can inspect environments, list descendant threads, and fork history through a specific turn. Fixes/chores: Windows ConPTY input handling and sandbox credential retry edge cases; recovery when exec servers are temporarily offline; reduced installer failures from GitHub API rate limits; security dependency bumps (OpenSSL, Hono, fast-uri, quick-xml, crossbeam-epoch). Current-session verification July 8, 2026 (PST): GitHub releases confirm rust-v0.143.0 as the latest stable release, superseding the v0.142.x patch line. ↩↩↩↩↩↩↩

  107. Codex CLI v0.144.0 release notes, July 9, 2026 (promoted to stable from the v0.144.0-alpha line). New features: usage-limit reset credits show their type and expiration with a redemption picker; a writes app-approval mode allows declared read-only app actions while prompting for writes; MCP tools request authentication interactively without an experimental opt-in; app-server hosts can provide Codex authentication at runtime and redirect successful logins to a hosted page; selecting Ultra reasoning warns when high multi-agent concurrency could increase usage quickly; global pnpm installs are detected so diagnostics and updates use the correct package manager. Fixes: resumed ChatGPT threads recover when compaction references a retired model by retrying on the currently selected model; Code Mode crashes on Intel macOS release binaries; Windows sandbox sessions can delete files in writable roots; pasted terminal control sequences no longer corrupt TUI rendering; long-running app sessions refresh expired codex_apps auth; Responses WebSockets keep the low-latency transport while respecting system proxies and custom CAs. Docs: device-code login warnings explain how to recognize and stop phishing attempts. Chores: faster plugin skill-loading on remote executors; faster /review branch picker in large repos; Bedrock model names clearly identify their GPT-5.6 family and variant. Current-session verification July 9, 2026 (PST): GitHub releases confirm rust-v0.144.0 as the latest stable release. ↩↩↩↩

  108. openai/codex PR #26210: Encrypt multi-agent v2 message payloads, merged June 5, 2026, shipped in CLI v0.138.0 (June 8). Marks the v2 message parameter as encrypted for spawn_agent, send_message, and followup_task; stores inter-agent task text in InterAgentCommunication.encrypted_content with empty plaintext content. The Responses API encrypts on the parent model’s tool call and decrypts server-side for the receiving model. Companion: PR #27830: Support plaintext agent messages, merged June 12, 2026 — adds plaintext input_text support to agent_message for Codex-generated child-completion notifications only (delegation instructions remain encrypted); PR #28368 renders typed envelopes for multi-agent v2 messages in the TUI. ↩↩↩↩

  109. openai/codex issue #28058: Regression: encrypted MultiAgentV2 messages remove readable task audit trail — OPEN as of July 16, 2026 (verified via gh issue view this session), no linked fix. Custom-provider failure mode: issue #27548 (“Function ‘functions.spawn_agent’ declares encrypted parameters but is not configured for encrypted tool use”) and issue #26753 (encrypted spawn_agent schema returns 400 on models not configured for encrypted tool use). ↩↩↩

  110. Codex CLI v0.144.5 release notes, July 16, 2026: “Improved dangerous-command detection, including more forced rm forms, and provides clearer rejection reasons when commands are denied.” v0.144.4 (July 14) noted “no user-facing changes.” Current-session verification July 16, 2026 (PST): GitHub releases confirm rust-v0.144.5 as the latest stable; the v0.145.0 line remains alpha. ↩↩

  111. Codex CLI v0.144.6 release notes, July 18, 2026 (stable patch): “Refreshed bundled instructions for GPT-5.6 Sol, Terra, and Luna, and corrected their context windows to 272,000 tokens.” ↩↩↩↩

  112. Codex CLI v0.145.0 release notes, July 21, 2026 (promoted to stable from the v0.145.0-alpha line). New features: experimental paginated thread history with efficient resume, search, persisted names, sub-agent support, and memories; /import expanded to migrate Cursor and Claude Code settings, MCP servers, plugins, sessions, commands, and project-scoped memories; experimental Amazon Bedrock login with custom endpoint and authentication support, and GPT-5.6 Sol as the default Bedrock model; audio inputs and tool outputs including common local audio formats, plus streaming realtime V3 conversations; the opt-in multi-agent v2 experience stabilized with configurable sub-agent models, reasoning levels, concurrency, restored roles, and improved agent navigation; secure, clickable inline visualization links in the terminal UI. Fixes: editing an earlier prompt or retrying a safety-buffered turn creates a contextual branch preserving the original conversation, attachments, and mention bindings; incremental Markdown rendering with fewer redraws, caching, and bounded command output for long conversations; MCP startup timeouts, non-blocking OAuth discovery, serialized token refreshes, and safe tool-catalog reuse; Windows native exec-server sandboxing, network-proxy enforcement, hidden helper consoles, and correctly quoted hook commands; better forced-rm detection, consistent full-access confirmation, and preserved rejection reasons across tools. Docs/chores: bundled OpenAI Docs skill updated with current GPT-5.6 model resolution, prompting, and migration guidance; bundled GPT-5.4 selections and internal uses migrated to the corresponding GPT-5.6 Terra and Luna variants; concurrent skill/plugin discovery and more efficient remote compaction; packaged ripgrep updated to 15.2.0. Current-session verification July 21, 2026 (PST): GitHub releases confirm rust-v0.145.0 as the latest stable release. ↩↩↩↩↩↩↩↩↩↩↩↩

  113. ChatGPT Desktop 26.715 release notes, July 23, 2026 (Codex-tagged entry in the official ChatGPT changelog). Multi-folder local projects: “Local projects in the ChatGPT desktop app can now include multiple related folders. From a project’s menu, select Edit project to add folders and choose the primary folder.” Discovery semantics, verbatim: “New chats, Git operations, and automatic discovery of AGENTS.md, skills, and config.toml use the primary folder. Secondary folders remain available for file search, reading, and editing.” ChatGPT Voice: “Powered by GPT-Live, ChatGPT Voice lets you talk through work and coordinate tasks in Chat, Work, and Codex in the ChatGPT desktop app.” Availability is Plus, Pro, Business, Edu, and Enterprise, on desktop and through Remote on iOS; on macOS you can “turn on Screen context to share an appshot of your frontmost window.” Both are desktop-app changes; neither alters CLI behavior. ↩↩↩↩

  114. Codex CLI v0.146.0 release notes. Promoted to stable 2026-07-29 (01:42 UTC) after fourteen alpha builds; the prior guide entry recorded v0.146.0 as alpha-only. New features: session naming via /new and /clear, thread pinning, and side conversations that stay open (#34605, #34840, #35011); Agent Plugins manifests, workspace plugin publishing, and Amazon Bedrock and Claude Code marketplaces (#35105, #35254, #34931, #34979); thread forking with paginated history, including temporary forks absent from thread listings (#35220, #35251); app-server connections to remote Code Mode hosts over WebSocket (#35078, #35098); standalone web search for compatible custom model providers (#34846); executor-provided skill discovery and resource reads (#35184, #35198). Fixes: configured proxies honored across authentication, plugin downloads, MCP authorization, remote execution, WebSockets, redirects, and LM Studio (#34479, #34509, #34655, #34678, #35023, #35056, #35239); more skills retained under tight context budgets with a warning when catalogs must be truncated (#34732, #34738, #34997). Chores include enterprise-plan recognition with administrator controls for in-app updates (#35238, #35537) and release artifacts served from OpenAI-hosted infrastructure with GitHub fallback (#34505, #34508, #34729, #34910). Verified against the GitHub release feed 2026-07-29. ↩↩↩↩↩↩↩↩↩↩↩↩

  115. openai/codex release rust-v0.146.1, August 5, 2026. “Apply safer automatic-review defaults for cyber-capable models and explain permission changes in the terminal interface. (#37057)” Current-session verification August 5, 2026 (PST): GitHub releases list rust-v0.146.1 (published 2026-08-05T15:55:06Z) as the newest non-prerelease tag; newer 0.147.0 tags are alphas. ↩↩

  116. openai/codex release rust-v0.147.0, August 7, 2026. New features: portable Agent Plugins with search across local, personal, workspace, and remote catalogs; persistent manually ordered conversation sections with incremental transcript browsing; --approve-for-me automatically reviewed approvals; Cursor-managed skill import and duplicate-free synchronization of imported Claude and Cursor conversations; opt-in MCP 2026-07-28 protocol (paginated discovery, multi-round requests, non-blocking server startup); cached web search and remote conversation compaction on Amazon Bedrock. Chores: “Remove the deprecated codex exec --full-auto flag; use --sandbox workspace-write instead.” Current-session verification August 7, 2026 (PST): GitHub releases list rust-v0.147.0 (published 2026-08-07T01:41:49Z) as the newest non-prerelease tag. ↩↩↩↩↩↩↩↩↩↩

  117. Codex models documentation — the developers.openai.com URL 308-redirects to learn.chatgpt.com/docs/models. Accessed August 10, 2026. States: “Start with the default Power setting, which uses gpt-5.6-sol with medium reasoning,” adjustable toward Smarter (deeper reasoning) or Faster (lower cost); lists GPT-5.6 Sol (flagship), Terra (everyday), and Luna (fast/affordable) as available across CLI, web, IDE, cloud, and API; GPT-5.5 as previous generation; “GPT-5.4 and GPT-5.4 mini retire from Codex on August 31, 2026”; and GPT-5.3 Codex as already deprecated in Codex when signed in with ChatGPT (still API-available). ↩↩↩↩↩↩↩↩

  118. Codex CLI v0.148.0 release notes (rust-v0.148.0, published August 18, 2026; verified via the GitHub API — prerelease: false). New features verbatim: “Export complete TUI conversations to Markdown with /export, either to the clipboard or a new file”; “Fork sessions with codex exec fork, and archive or restore sessions from the TUI resume picker”; “View estimated thread credits or cost in /status, status lines, and terminal titles for eligible workspaces”; “Use Amazon Bedrock Runtime as a built-in provider with AWS profile, region, and GPT-5.6 routing support”; “Hooks can now run commands asynchronously and invoke MCP tools”; “Sandbox restrictions now fail closed for denied or unreadable paths across Linux and Windows.” 0.149.0-alpha items derived from the rust-v0.148.0…rust-v0.149.0-alpha.7 compare (commit titles; npm dist-tag alpha = 0.149.0-alpha.7 on August 20, 2026) — pre-release, subject to change. ↩↩↩↩↩↩↩↩

  119. Codex changelog (developers.openai.com/codex/changelog 308-redirects here), entry dated August 19, 2026: “GitLab support is available in beta on all ChatGPT plans” — connect GitLab projects, create environments, start tasks from issues/MRs, request reviews; GitLab 19.0 or later for Self-Managed. Accessed August 20, 2026. ↩↩

  120. Codex CLI v0.149.0 release notes (rust-v0.149.0, published August 20, 2026; verified via the GitHub API — prerelease: false) and v0.149.1 (August 24, 2026; npm latest = 0.149.1, body is a bare compare link; its five commits are 2b66d2ed “Allow exec callers to classify new threads (#40161)”, which adds codex exec --thread-source, plus remote-session image-compaction and memory-consolidation backports; see 126). v0.149.0 new features verbatim: “Added an interactive codex agents dashboard for searching, starting, opening, renaming, and stopping tasks, with configurable shortcuts”; “Added /cd, /pwd, and /cwd commands for managing the working directory in TUI sessions”; “Added codex queue for sending messages to existing local or remote sessions”; “Expanded Vim editing with character replacement and more change motions such as cw, c$, and cc”; “codex doctor now diagnoses endpoint protection, network/proxy failures, desktop app state, and update connectivity”; “SDK users can now pass exact CLI config overrides and select max or ultra reasoning effort.” The untrusted retirement is PR #39630 (“Retire the untrusted approval policy”) in the release’s full changelog. 0.150.0-alpha themes from the rust-v0.149.0…rust-v0.150.0-alpha.7 compare — pre-release, subject to change. ↩↩↩↩↩↩↩↩↩

  121. GPT-5.6 Sol promotional pricing, August 21, 2026. OpenAI Developers on X, verbatim: “we’re reducing API prices by over 20% for the next 3 months as we make it more efficient to run, while the credits you buy will go further in Codex on token-based plans and the usage included in your subscription stays the same.” The community announcement adds: “Sol’s promotional pricing is available at least through November 21, 2026.” Credit-rate effect verified on the published rate card August 24, 2026: Sol 100 credits per 1M input tokens (10 cached, 500 output), previously 125 (12.5 cached, 750 output). ↩↩↩↩

  122. Codex advanced configuration — Profiles (learn.chatgpt.com/docs/config-file/config-advanced.md), accessed August 25, 2026. Verbatim: “When you pass --profile profile-name, Codex loads ~/.codex/config.toml, then overlays ~/.codex/profile-name.config.toml”; “Use top-level config keys in the profile file; don’t nest them under [profiles.profile-name]”; “In Codex 0.134.0 and later, --profile no longer reads [profiles.profile-name] from config.toml, and the top-level profile = \"profile-name\" selector is no longer supported. Move legacy profile settings into ~/.codex/profile-name.config.toml, then remove the matching [profiles.profile-name] table and profile = \"profile-name\" selector from config.toml.” A profile file “only needs the values that differ from your base config.” ↩↩↩↩

  123. Agent approvals & security, accessed August 25, 2026. Defines the two layers — the sandbox constrains what a command can touch; the approval policy decides when Codex asks before a command leaves the sandbox or uses the network — and lists the combination presets. The document does not describe danger-full-access + on-request as prompting per command; the per-command reading was this guide’s own inference, corrected in v2.59. The codex exec flag surface (-s/--sandbox, -p/--profile, --approve-for-me, --dangerously-bypass-approvals-and-sandbox, -c) per codex exec --help on 0.149.1. ↩↩↩↩

  124. Hooks (learn.chatgpt.com/docs/hooks.md), accessed August 26, 2026, and codex-rs/hooks/src/lib.rs at tag rust-v0.149.1. Source verbatim: pub const HOOK_EVENT_NAMES: [&str; 11] = ["PreToolUse", "PermissionRequest", "PostToolUse", "PreCompact", "PostCompact", "SessionStart", "SessionEnd", "UserPromptSubmit", "SubagentStart", "SubagentStop", "Stop"]. A grep of the rust-v0.149.1 tarball finds zero occurrences of AfterToolUse; AfterAgent appears only as HookEvent::AfterAgent / HookEventAfterAgent in codex-rs/hooks/src/types.rs, registry.rs, legacy_notify.rs, and codex-rs/core/src/hook_runtime.rs (the legacy notify payload). Doc verbatim: “Hooks run at different points in a conversation” – “During a turn: PreToolUse, PermissionRequest, PostToolUse, PreCompact, PostCompact, UserPromptSubmit, SubagentStop, Stop”; “When a session or subagent starts: SessionStart, SubagentStart”; “When the main thread ends: SessionEnd (doesn’t run for subagents)”. “Matching hooks from multiple files all run.” “Multiple matching command hooks for the same event are launched concurrently, so one hook can’t prevent another matching hook from starting.” “Non-managed hooks must be reviewed and trusted before they run.” “Codex records trust against the hook’s current hash, so new or changed hooks are marked for review and skipped until trusted.” “Use /hooks in the CLI to inspect hook sources, review new or changed hooks, trust hooks, or disable individual non-managed hooks.” “Managed hooks from system, MDM, cloud, or requirements.toml sources are marked as managed, trusted by policy, and can’t be disabled from the user hook browser.” “pass --dangerously-bypass-hook-trust to run enabled hooks without requiring persisted hook trust for that invocation.” “Project-local hooks load only when the project .codex/ layer is trusted.” Config shape: “Hooks are organized in three levels” (event, matcher group, handlers) in hooks.json (~/.codex/hooks.json, <repo>/.codex/hooks.json, plugin hooks/hooks.json) or as “Equivalent inline TOML in config.toml” using [[hooks.PreToolUse]] and [[hooks.PreToolUse.hooks]] with type = "command". “command and mcp_tool handlers are supported. prompt and agent handlers are parsed but skipped.” “If timeout is omitted, Codex uses 600 seconds for most hooks.” “SessionEnd uses 1 second by default and supports up to 3 seconds.” “Set async to true to run a command hook in the background”; “SessionEnd hooks always run synchronously.” Per-event: SessionEnd “runs for the main thread when you archive or delete a conversation that’s still open, when Codex closes normally, or after a conversation has been idle and isn’t open in any connected client for 30 minutes. It won’t run for subagents.” PreToolUse “can intercept Bash, file edits performed through apply_patch, MCP tool calls, and other local function tools”; for apply_patch, “matcher values can use apply_patch, Edit, or Write”. PermissionRequest “runs when Codex is about to ask for approval, such as a shell escalation or managed-network approval. It can allow the request, deny the request, or decline to decide and let the normal approval prompt continue. It doesn’t run for commands that don’t need approval.” PostToolUse “runs after supported tools produce output, including Bash, apply_patch, MCP tool calls, and other local function tools. For Bash, it also runs after commands that exit with a non-zero status. It can’t undo side effects from a tool that already ran”; “PostToolUse supports systemMessage, continue: false, and stopReason.” PreCompact / PostCompact “matcher is applied to trigger, whose values are manual and auto.” SubagentStart / SubagentStop “matcher is applied to agent_type”. Stop fields include stop_hook_active (“Whether this turn was already continued by Stop”) and “Stop expects JSON on stdout when it exits 0.” Tool coverage: “Hosted tools, such as WebSearch” – “These don’t use the local function-tool hook path”; “Treat tool hooks as a useful guardrail, not a complete enforcement boundary.” ↩↩↩↩↩↩↩↩↩↩↩

  125. ChatGPT & Codex changelog, entry dated August 24, 2026, “Codex MCP server command deprecated”, verbatim: “The codex mcp-server command is now deprecated. Use the Codex app server instead. To use Codex from Claude Code, use the Codex plugin for Claude Code.” (links to learn.chatgpt.com/docs/app-server and github.com/openai/codex-plugin-cc). PR #39657 “Warn when launching the deprecated MCP server”, merged August 20, 2026 and contained in rust-v0.149.0 (its merge commit compares as behind the tag via the GitHub API): “Print a warning to standard error when codex mcp-server is invoked, noting that the command is deprecated and will be removed in a future release. The server continues to launch after the warning.” The string in codex-rs/cli/src/main.rs at rust-v0.149.1: warning: `codex mcp-server` is deprecated and will be removed in a future release. The openai/codex-plugin-cc repository description via the GitHub API: “Use Codex from Claude Code to review code or delegate tasks.” Codex App Server (learn.chatgpt.com/docs/app-server.md), accessed August 26, 2026: “Codex app-server is the interface Codex uses to power rich clients (for example, the Codex VS Code extension). Use it when you want a deep integration inside your own product: authentication, conversation history, approvals, and streamed agent events.” ↩↩↩↩

  126. PR #40161 “Allow exec callers to classify new threads”, merged August 23, 2026, verbatim: “Add a global codex exec --thread-source <SOURCE> option and propagate it to newly created and forked threads.” “Default the source to user when the option is omitted.” “Expose the classification as threadSource in the TypeScript SDK. It applies when a thread is first created and does not override the source when resuming an existing thread.” Carried into v0.149.1 as commit 2b66d2ed, one of the five commits in the rust-v0.149.0…rust-v0.149.1 compare (the others: “Budget retained images during remote compaction (#40280)”, “Identify detached memory requests as memory consolidation (#40186)”, “Adapt image compaction backport for pre-annotation releases”, and an untitled release commit). Source at rust-v0.149.1: codex-rs/exec/src/cli.rs declares #[arg(long = "thread-source", value_name = "SOURCE", global = true)] pub thread_source: Option<ThreadSource> with the doc comment “Source classification for newly created or forked threads.”; codex-rs/protocol/src/protocol.rs defines ThreadSource { User, Subagent, Feature(String), MemoryConsolidation } serialized as user, subagent, the feature name, and memory_consolidation; sdk/typescript/src/exec.ts forwards threadSource as --thread-source only when no threadId is set. The exec crate at the same tag has no ask_for_approval field, and codex exec --help on the locally installed 0.147.0 lists -s/--sandbox, -p/--profile, --approve-for-me, --dangerously-bypass-approvals-and-sandbox, --dangerously-bypass-hook-trust, and -c but no --ask-for-approval. ↩↩↩↩↩

  127. ChatGPT & Codex changelog, entry dated August 25, 2026, “Browser extensions, site tools, and cloud sign-in”, verbatim: “More browsers: Use the ChatGPT browser extension in Microsoft Edge, Brave, Opera, and Vivaldi, as well as Chrome. Set up your browser in Settings > Computer Use in the ChatGPT desktop app. All five support tab mentions and browser control; Opera doesn’t support side chat.” “Site tools (WebMCP): In the desktop app’s built-in browser, ChatGPT Work and Codex can use tools provided by a website to work with the page. Use GPT-5.6 Sol or GPT-5.6 Terra and update to the latest desktop app. Site tools aren’t available with GPT-5.6 Luna or in Enterprise or Edu workspaces.” The extension page (learn.chatgpt.com/docs/chrome-extension, accessed August 26, 2026) is now titled “Browser extension”: “Use the ChatGPT browser extension to work in Google Chrome, Microsoft Edge, Brave, Opera, or Vivaldi from the ChatGPT desktop app.” “All five browsers support tab mentions and browser control from the desktop app. Chrome, Edge, Brave, and Vivaldi also support side chat. Opera doesn’t support side chat; start its tasks in the desktop app instead.” ↩↩↩↩↩↩

  128. ChatGPT & Codex changelog, entry dated August 20, 2026, “Codex and ChatGPT updates”, verbatim: “Shared thread snapshots: On all Codex plans, share a read-only snapshot of a local Codex thread from the ChatGPT desktop app for macOS. The snapshot doesn’t update when the original thread changes. Personal-account links can be opened by anyone with the link; workspace-account links are limited to members of the originating workspace. Codex redacts known secret patterns, but review the shared content because sensitive content may remain. View or revoke links in ChatGPT data controls, under Shared links.” Accessed August 26, 2026. ↩↩

  129. codex-rs/tui/src/slash_command.rs at tag rust-v0.149.1. The SlashCommand enum has no Config variant; DebugConfig serializes as /debug-config with the description “show config layers and requirement sources for debugging” (the guide’s /config entry dated from the v0.97.0 era, 39). Descriptions verbatim: Keymap “remap TUI shortcuts”; Rename “rename the current thread”; AutoReview (/approve) “approve one retry of a recent auto-review denial”; Memories “configure memory use and generation”; Agents “view and switch between all active agent sessions”; MultiAgents (/subagents) “switch between this session’s subagents”; Side / Btw “start a side conversation in an ephemeral fork”; Raw “toggle raw scrollback mode for copy-friendly terminal selection”; Ide “include current selection, open files, and other context from your IDE”; Stop (alias clean) “stop all background terminals”; Experimental “toggle experimental features”; Theme “choose a syntax highlighting theme”; App “continue this session in the Desktop app”, visible only where cfg!(any(target_os = "macos", target_os = "windows")); Clear “clear the terminal and start a new chat”; Pets “choose or hide the terminal pet”. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  130. Configuration Reference (learn.chatgpt.com/docs/config-file/config-reference.md), accessed August 26, 2026. features.network_proxy is typed boolean | table: “Start the network proxy for sandboxed commands (experimental; off by default). Required to enforce permission-profile domain rules unless enabled administrator-managed experimental_network requirements start the proxy. Use a table when setting feature-level policy options such as domains. Does not filter web search, apps, MCP, or other hosted tools.” Sub-keys verbatim: enabled (boolean) “Defaults to false; permission-profile domain rules are not enforced while the proxy is off.”; domains (map<string, allow | deny>) “Unset by default, which means no external destinations are allowed until you add allow rules. Supports exact hosts, *.example.com for subdomains only, **.example.com for apex plus subdomains, and global * allow rules; prefer scoped rules because * broadly opens public outbound access. Add deny rules for blocked destinations; deny wins on conflicts.”; unix_sockets (map<string, allow | deny>) “Unset by default; add allow entries for permitted sockets.”; allow_local_binding “Defaults to false; exact local IP literal or localhost allow rules can still permit specific local targets.”; enable_socks5 “Defaults to true.”; enable_socks5_udp “Defaults to true.”; allow_upstream_proxy “Defaults to true.”; dangerously_allow_non_loopback_proxy “Defaults to false; enabling it can expose proxy listeners beyond localhost.”; dangerously_allow_all_unix_sockets “Defaults to false; use only in tightly controlled environments.”; proxy_url “Defaults to \"http://127.0.0.1:3128\".”; socks_url “Defaults to \"http://127.0.0.1:8081\".” Permission profiles: network domains are “Enforced only when features.network_proxy or enabled administrator-managed networking requirements activate the proxy.” ↩↩↩

  131. 0.150.0 alpha watch list, pre-release and subject to change. npm dist-tag alpha = 0.150.0-alpha.13 on August 26, 2026; GitHub release rust-v0.150.0-alpha.13 published 2026-08-26T11:18Z with prerelease: true; the rust-v0.149.1…rust-v0.150.0-alpha.13 compare lists 289 commits. Evidence per item: /recap – codex-rs/tui/src/slash_command.rs at the alpha tag adds Recap (“summarize the current conversation now”), from “Generate automatic and manual conversation recaps (#40705)”; Interrupt – HOOK_EVENT_NAMES: [&str; 12] at the alpha tag ends with "Interrupt" (“Add hooks for interrupted turns (#40511)”); WebSocket removal – PR #40692 “Accept only http:// and https:// gRPC endpoints for app server --code-mode-host connections”; paginated history – “Promote paginated thread history APIs (#40673)” and PR #40677 “When thread/start omits historyMode, select paginated for durable threads whose store supports thread/turns/list and thread/items/list”; /copy picker – PR #39997 “Open a picker for /copy with the whole response plus each fenced code block and blockquote from the latest response”; persistent effort – PR #40799 “Add persistent to the reasoning-effort protocol and TypeScript SDK types”; untrusted projects – PR #39837 “Skip project-scoped AGENTS.md discovery when the active project is untrusted, while preserving user-level instructions”; credential broker – PR #40466 “Add features.network_proxy.credential_broker”; Guardian v2 – PR #40846 “Default Guardian v2’s review scope to computer-use tools” and “Include images in Guardian transcripts by default”. None of this is stable; it is not documented in the body. (Superseded 2026-08-27: five of these nine items shipped in stable 0.150.0, four rolled to the 0.151.0-alpha line, and the Guardian v2 defaults flip rolled with them – see 132 and 137. Kept as the version-pinned record of the pre-release watch list.) ↩

  132. Codex CLI v0.150.0 release notes and the ChatGPT & Codex changelog, entry dated 2026-08-26; install npm install -g @openai/codex@0.150.0. New Features verbatim: “Reference other Codex tasks with @ mentions, and ask agents to read, create, or message tasks from the terminal. (#40308, #40315)”; “/copy now offers a picker for full responses, individual code blocks, and blockquotes. (#39997)”; “Unnamed terminal tasks receive descriptive titles automatically, and /rename suggests an editable title based on the conversation. (#40492, #40495)”; “Markdown links appear as clickable labels in supported terminals, with visible URLs retained elsewhere. (#40471)”; “Bind shortcuts to cycle permission modes, and use . in Vim mode to repeat your last edit. (#39873, #40521)”; “New Interrupt hooks can run commands or MCP handlers when an active top-level turn is interrupted. (#40511)”. Bug Fixes verbatim: “Untrusted projects no longer supply project-level AGENTS.md instructions, and managed deny-read rules remain enforced after permission changes. (#39837, #40004)” (PR #39837: “Skip project-scoped AGENTS.md discovery when the active project is untrusted, while preserving user-level instructions”); “Improved credential redaction in app-server diagnostics, including provider, authentication refresh, and attestation fields. (#39993)”; “Fixed remote MCP bearer-token lookup and required-server startup while preserving compatibility with older executors. (#39926, #39952, #39979)”; “Fixed elevated Windows sandbox setup and launch aliases under Unicode user paths. (#39971, #40570)”; “Prevented Unix shutdown hangs caused by detached processes retaining a terminal or full terminal output buffers. (#40460)”; “Fixed conversation compaction and multi-agent compatibility for Amazon Bedrock models. (#39804, #39825)”. Source verification at tag rust-v0.150.0: HOOK_EVENT_NAMES: [&str; 12] in codex-rs/hooks/src/lib.rs ends with "Interrupt"; Interrupt is absent from HOOK_EVENT_NAMES_WITH_MATCHERS (no matcher), run_turn_interrupt_hooks in codex-rs/core/src/hook_runtime.rs returns early for subagent sessions, and the test interrupt_normalizes_timeout_and_supports_async_execution covers async handlers; codex-rs/hooks/src/engine/discovery.rs comment verbatim: “Normalizes hook timeouts. SessionEnd and Interrupt default to one second and are capped at three seconds; all other hooks keep the standard ten-minute default.”; slash_command.rs describes /copy as “copy the last response, code block, or quote” and the enum still has no Config or Recap variant; features.network_proxy.credential_broker is wired in codex-rs/network-proxy/src/runtime.rs; config.schema.json defines GuardianV2ReviewScopeConfigToml.computer_use_only (“Restrict asynchronous classification and fast approvals to browser and computer-use tools.”) with the resolved default remaining the standard scope, and transcript.include_images defaults to false; ThreadHistoryMode still defaults to Legacy; --code-mode-host still accepts ws:///wss://; codex mcp-server remains present and prints “warning: codex mcp-server is deprecated and will be removed in a future release.” Verified 2026-08-27. (Update 2026-08-30: v0.151.0 flipped both Guardian v2 defaults on – review_scope.computer_use_only and transcript.include_images now resolve to true (#40846) – removed the ws:///wss:// code-mode transport (#40692), and defaulted durable threads with supporting stores to paginated history (#40677) while the protocol enum default stays Legacy. See 134 and 135.) ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  133. Codex CLI v0.150.1 release notes and the ChatGPT & Codex changelog, entry dated 2026-08-27; install npm install -g @openai/codex@0.150.1. Single bug fix, verbatim: “Remote compaction now counts retained images toward its token budget by default, trimming older images as needed. (#41003)” – #41003 “Backport retained-image compaction budgeting to 0.150” carries the 0.151-alpha line’s PR #40994 “Enable retained-image budgeting by default” back to stable. npm dist-tag latest = 0.150.1, verified 2026-08-27. ↩↩↩

  134. Codex CLI v0.151.0 release notes (published 2026-08-29T09:55Z) and the ChatGPT & Codex changelog, entry dated 2026-08-29; npm latest = 0.151.0; install npm install -g @openai/codex@0.151.0. The release body is NOT the release: it lists only the post-branch-cut PRs #41183-#41209, while the rust-v0.150.1…rust-v0.151.0 compare lists 164 commits (see 135). New Features verbatim: “Added a configurable grace period for discovering tools from optional MCP servers. (#41199)” (PR #41199: “Add mcp_optional_startup_grace_ms with a default of 1,000 ms to control how long tool catalog capture waits for optional MCP servers”; “Treat a value of 0 as disabling the shared grace, so optional servers use their configured startup_timeout_sec instead”); “Extensions can now inspect or replace MCP tool results before they reach the model. (#41202)” (PR #41202 adds ToolLifecycleContributor::on_mcp_tool_result, run “before publishing MCP completion and before preparing the result for the model”); “Plugin catalogs now combine per-repository configuration and report invalid project marketplaces without hiding valid plugins. (#41208)” (PR #41208: “Report invalid project configurations through marketplaceLoadErrors without dropping valid local catalogs or globally enabled remote catalogs”). Bug Fixes verbatim: “Preserved restored permission profiles across TUI turns and prevented /cd from weakening sandbox restrictions. (#41192)” (PR #41192: “Reject /cd when a restored profile cannot be represented safely by a legacy sandbox mode”); “Kept tool availability and reasoning effort correct when switching models or falling back to another model. (#41195, #41206)”; “Improved remote sandbox enforcement using the executor’s actual home directory, operating system, and path conventions. (#41196, #41204, #41207, #41209)”; “Preserved structured MCP tool and resource errors in app-server responses. (#41196)”; “Counted nested subagent token usage toward root goal budgets. (#41183)”; “Prevented stale Guardian classifications from authorizing actions after permission state changes. (#41196)”. Verified 2026-08-30. ↩↩↩↩↩↩↩↩↩

  135. Proof of the ten 0.150-alpha-cycle watch-list promotions in stable 0.151.0. The release body covers only #41183-#41209, so these are provable ONLY via the rust-v0.150.1…rust-v0.151.0 compare (164 commits, zero reverts; stable is one commit behind rust-v0.151.0-alpha.6, and that commit is alpha.6’s own “Release 0.151.0-alpha.6” version bump). Commit titles verbatim: “Generate automatic and manual conversation recaps (#40705)” (PR: “Add /recap to request the same summary on demand”; automatic recaps are generated “for eligible idle, unfocused conversations”); “Remove WebSocket transport from code-mode hosts (#40692)” (PR: “Accept only http:// and https:// gRPC endpoints for app server --code-mode-host connections”; “Limit the standalone code-mode host to stdio and gRPC listeners”); “Promote paginated thread history APIs (#40673)” (PR: “Make thread/turns/list, thread/items/list, and thread/revert available without the experimental API capability”), “Default durable threads to paginated history (#40677)” (PR: “When thread/start omits historyMode, select paginated for durable threads whose store supports thread/turns/list and thread/items/list. Continue to default ephemeral threads and threads backed by stores without those APIs to legacy.”), and “Deprecate full-history hydration for paginated threads (#40676)”; “Support persistent reasoning effort (#40799)” with “Enable clock tools for persistent reasoning turns (#40942)” and “Add developer instructions for persistent mode (#41050)” (PR #41050: “Allow model metadata to override or disable the guidance with persistent_instructions”); “Default Guardian v2 to computer-use reviews with images (#40846)” (PR: “Set features.guardianv2.review_scope.computer_use_only = false to retain the broader tool review scope” and “Set features.guardianv2.transcript.include_images = false to disable them”); “Add Vim character find and till motions (#40785)” and “Add Vim buffer jump motions (#40958)”; “Add live turn settings updates (#40653)”, “Add turn-scoped settings updates to the app server (#40656)” (PR: “Add the experimental turn/settings/update method”), and “Add a turn-scoped service tier override (#40616)”; “Add worktree settings parser (#40624)” and “Add thread ownership metadata for managed worktrees (#40716)”; “Add Amazon Bedrock setup to TUI onboarding (#40679)” (PR: “Add a feature-gated Amazon Bedrock option to eligible TUI sign-in flows”); “Require approval for input to escalated terminals (#40978)” (PR: “Add the write_stdin_approval feature flag, disabled by default”) and “Reject oversized reviewed terminal input (#41159)” (PR: “Require the fully formatted action and approval reason to fit within 8,000 bytes”). Source verification at tag rust-v0.151.0: codex-rs/tui/src/slash_command.rs has Recap (“summarize the current conversation now”) and still no Config variant; codex-rs/code-mode-host/src/main.rs documents its listener verbatim as “Transport endpoint: stdio, stdio://, or grpc://IP:PORT.” with an “Optional WebSocket endpoint that streams only raw OTLP trace batches.”; codex-rs/protocol/src/protocol.rs:755-758 still declares ThreadHistoryMode with #[default] Legacy; codex-rs/protocol/src/openai_models.rs adds ReasoningEffort::Persistent (wire value “persistent”); codex-rs/ext/guardian-v2/src/async_scorer/config.rs resolves review_scope.computer_use_only and transcript.include_images with .unwrap_or(true). Verified 2026-08-30. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  136. 0.152.0-alpha watch list, pre-release and subject to change. npm dist-tag alpha = 0.152.0-alpha.4 on August 30, 2026; GitHub release rust-v0.152.0-alpha.4 published 2026-08-30T13:56Z with prerelease: true; the rust-v0.151.0…rust-v0.152.0-alpha.4 compare is 74 commits ahead. Evidence per item, commit titles verbatim: “Add Vim search motions to the composer (#41586)”; “Update tests for default-enabled update_plan (#41630)”; “Support openai/elicitation form requests (#41447)”; “Support per-tool MCP output limits (#41421)”; “Add configurable gating for the sleep tool (#41243)” and “Classify clock tools as built-in control tools (#41331)”; “Make subagents follow the root service tier (#41308)”; “Preserve context baselines across nested agent forks (#41424)”; “Add recency sorting to project/list (#41223)”; “Support configurable timeouts for thread shell commands (#41384)”; “Refresh the TUI model picker from the app server (#41467)”; “Restrict cloud task credentials to trusted origins (#41403)”; “Source proactive multi-agent instructions from the model catalog (#41457)” (“Clarify proactive multi-agent delegation guidance (#41380)” itself already reached stable as a 0.151.0 back-branch pick); continued Guardian v2 iteration (“Roll over Guardian context before follow-up reviews (#41215)”, “Preserve Guardian authorization across history compaction (#41660)”). None of this is stable; none of it is documented in the body. ↩↩↩

  137. 0.151.0-alpha watch list, pre-release and subject to change. npm dist-tag alpha = 0.151.0-alpha.6 on August 27, 2026; GitHub release rust-v0.151.0-alpha.6 published 2026-08-27T12:31Z with prerelease: true; the rust-v0.150.0…rust-v0.151.0-alpha.6 compare lists 136 commits. Evidence per item, commit titles verbatim: “Generate automatic and manual conversation recaps (#40705)” (with “Prepare the TUI for conversation recaps (#40696)” and “Prepare automatic TUI recap generation (#40697)”); “Remove WebSocket transport from code-mode hosts (#40692)”; “Default durable threads to paginated history (#40677)” and “Promote paginated thread history APIs (#40673)”; “Support persistent reasoning effort (#40799)”; “Default Guardian v2 to computer-use reviews with images (#40846)”; “Add Vim character find and till motions (#40785)” and “Add Vim buffer jump motions (#40958)”; “Add turn-scoped settings updates to the app server (#40656)” and “Add a turn-scoped service tier override (#40616)”; “Add worktree settings parser (#40624)”; “Add Amazon Bedrock setup to TUI onboarding (#40679)”; “Require approval for input to escalated terminals (#40978)”. None of this is stable; none of it is documented in the body. (Superseded 2026-08-30: all ten items shipped in stable 0.151.0 – see 134 and 135. Kept as the version-pinned record of the pre-release watch list.) ↩↩↩

  138. Codex CLI v0.152.0 release notes, September 1, 2026; install npm install -g @openai/codex@0.152.0. Stable-branch compare: rust-v0.151.0…rust-v0.152.1. New Features verbatim: “Vim mode supports / and ? searches within drafts, highlighted matches, and repeat navigation with n and N. (#41586)”; “Rate-limit banners offer actions for checking usage, managing credits, resetting limits, and managing plans. (#41742)”; “The terminal UI and codex exec show credential-refresh progress, including Amazon Bedrock reauthentication. (#41239)”; “MCP server names can contain :, @, /, and ., supporting package-style names throughout CLI commands and authentication. (#41700)”; “Individual MCP tools support an output_token_limit setting, with consistent truncation across session resumes. (#41421)”; “App-server clients can configure thread/shellCommand timeouts, including deadlines longer than one hour. (#41384)”. Chores verbatim: “The planning tool is disabled by default; enable it with tools.update_plan.enabled = true. (#41744)” (PR #41744: “Default tools.update_plan.enabled to false; users can explicitly enable it to expose update_plan”; “Remove bundled update_plan guidance from model, collaboration-mode, multi-agent, compaction, prewarm, and goal-continuation prompts when the tool is disabled”; “Preserve custom base instructions, model catalog instructions, collaboration policies, and user goal text even when they mention planning or update_plan” – this supersedes the watched #41630 default-enabled state, see 136); “Plugin recommendations begin loading during startup, reducing delays before the first turn. (#41375)”. Bug Fixes verbatim: “Automatic approval reviews preserve user instructions, answers, and valid authorizations across history compaction. (#41660, #41846, #41852)”; “Resumed threads restore their saved working directory when none is supplied, and client metadata updates preserve filesystem permissions. (#41567, #41464)”; “MCP tools remain available through cache refreshes and remote plugin changes; authentication retries use refreshed helper-provided headers. (#41336, #41344, #41396, #41400)”; “Opening the model picker refreshes available models without losing the highlighted choice. (#41467)”; “Fixed Windows sandbox execution with Microsoft Store PowerShell, subprocess hangs on terminal queries, and cursor-related display corruption in older JediTerm terminals. (#41227, #41436, #41673)”; “Cloud task requests reject untrusted backend URLs and disable redirects to protect saved credentials. (#41403)” (PR #41403: “Validate CODEX_CLOUD_TASKS_BASE_URL against trusted ChatGPT HTTPS origins on port 443 and reject URLs containing user information, queries, or fragments”; “Disable redirects for cloud task backend and environment-discovery clients so credentials are never forwarded to a redirect destination”). Watch-list promotions carried in the compare, commit titles verbatim: “Support openai/elicitation form requests (#41447)” (PR: advertise form support “when the client declares an object-valued form capability”, forward metadata and opaque schema “through app-server as openaiForm, preserving x-openai-* annotations”, TUI declines form requests it cannot render); “Support per-tool MCP output limits (#41421)” (PR: “Add a positive output_token_limit setting to each entry under an MCP server’s tools configuration”; “Apply the most restrictive limit when plugin and user policies overlap”; “Carry the effective MCP output budget in conversation history so tool output, post-tool hook responses, and resumed sessions use the same truncation limit”); “Support package-style MCP server names (#41700)” (PR: “enabling names such as npm:@modelcontextprotocol/server-sequential.thinking”, preserved “across mcp add, get, list, and remove, runtime tool namespaces, and OAuth credential lookup”); “Show actionable rate-limit banners in the TUI (#41742)” (PR: banners filtered to “the authenticated account and user”, actions “for usage, credits, resets, owner notifications, and plan management”, and “When instructed by the banner, switch to the first available fallback model without changing unrelated thread settings”); “Surface model provider authentication recovery progress (#41239)” (PR: “Add stable modelProvider/authRecoveryStarted and modelProvider/authRecoveryCompleted app-server notifications with the thread, turn, provider, and user-facing message”); “Start fresh Vim drafts in Insert mode (#41921)”; “Add configurable gating for the sleep tool (#41243)” and “Classify clock tools as built-in control tools (#41331)”; “Make subagents follow the root service tier (#41308)”; “Preserve context baselines across nested agent forks (#41424)”; “Add recency sorting to project/list (#41223)”; “Support configurable timeouts for thread shell commands (#41384)”; “Refresh the TUI model picker from the app server (#41467)”; “Restrict cloud task credentials to trusted origins (#41403)”; “Source proactive multi-agent instructions from the model catalog (#41457)” with “Fix proactive multi-agent instruction grammar (#41570)”; the Guardian compaction-preservation cluster (“Preserve Guardian authorization across history compaction (#41660)”, “Preserve Guardian review evidence across compaction (#41846)”, “Preserve Guardian user answers across compaction (#41852)”, “Preserve Guardian user answers from current history (#41857)”, “Preserve user text when Guardian history drops oversized images (#41858)”, “Keep history extension tools out of Guardian reviews (#41861)”, “Increase Guardian message transcript limits (#41931)”) and “Use the async stack budget for approval reviews (#41840)”; “Allow models to enable token budgeting by default (#41803)”. Verified 2026-09-03. ↩↩↩↩↩↩↩↩↩

  139. Codex CLI v0.152.1 release notes, September 1, 2026; install npm install -g @openai/codex@0.152.1. The release body carries no verified highlights of its own (verbatim: “Release highlights could not be verified: the supplied PR index is empty, and GitHub returned 404 for the rust-v0.152.0...rust-v0.152.1 comparison.”), so the patch content is provable via the rust-v0.151.0…rust-v0.152.1 compare: one functional cherry-pick, “Source Guardian REPL policy from model metadata (#41919)” (cherry-picked from commit 865bbf9a; PR: “Add auto_review.node_repl_policy to model messages for node_repl and cua_repl reviews”; “Use the reviewer model’s configured policy, falling back to the bundled policy when the field is absent and skipping injection when it is explicitly empty”; “Include the effective policy in Guardian session reuse checks and reject unsafe parent-model fallback transitions that would change it”), plus the branch’s own version-stamping commits. Verified 2026-09-03. ↩↩↩

  140. Codex CLI v0.153.0 release notes, September 3, 2026; npm latest until 0.153.2 the same day; install npm install -g @openai/codex@0.153.0; compare rust-v0.152.1…rust-v0.153.0. New Features verbatim: “Vim mode now supports undo with u and redo with Ctrl+R, preserving complete drafts including pasted content and attachments. (#41941, #42140)” (PR #41941: “Add bounded, draft-level Vim undo history, with u as the configurable default binding in normal mode”; PR #42140: “Add a bounded redo stack for complete composer drafts, including paste payloads and image attachments. Ctrl+R now reapplies the last undone edit in Vim normal mode, while new edits clear stale redo history”, with the configurable vim_normal.redo keymap action); “The plugin CLI can list, install, and remove plugins from remote marketplaces. (#42150)” (PR: “Include remote catalog entries in codex plugin list, including their source, version, install policy, and authentication policy in JSON output”; “Cache remote catalogs by scope and collection”; “Preserve the local curated catalog when an unfiltered remote listing fails, while surfacing errors for explicitly selected remote marketplaces”); “Set tui.auto_recap = false to disable automatic recaps while keeping manual /recap available. (#42101)” (PR: “Add the tui.auto_recap configuration option, enabled by default”; when disabled, “cancel scheduled automatic recap checks, reject automatic requests, and discard pending automatic results without retrying”); “TUI history shows complete patches, input sent to background terminals, and individual completed commands. (#41893, #42107)”; “Plus and Team users receive an earlier warning when less than half of their allowance remains in an approximately five-hour usage window. (#42142)” (PR: “Warn Plus and Team users when they have less than 50% of an approximately five-hour usage window remaining”; “Preserve the existing 75%, 90%, and 95% usage thresholds for other plans and window lengths”). Bug Fixes verbatim: “TUI sessions reconnect after an external app-server connection drops, preserving drafts and transcripts while keeping uncertain or queued submissions paused for review. (#41911, #41916, #41918)”; “Full Access skips Guardian reviews for confirmation-only actions. User approval mode skips background Guardian scoring and prewarming, while sensitive-action checks and requests for user input retain their existing handling. (#42147, #42256)” (PR #42147: “Full Access already combines approvalPolicy: "never" with unrestricted permissions, so confirmation-only actions do not require a model review”; “Pending, failed, or restricted environments are not treated as Full Access”; “Re-evaluate the active permission state on each turn so an existing thread can enter or leave Full Access safely”; PR #42256: “Skip Guardian prewarming and asynchronous scoring when approvalsReviewer is "user"”; “Automatically accept ordinary node_repl.js execution confirmations in this mode”); “Guardian review history survives compaction, restarts, and user-created forks while respecting rollback boundaries and isolating subagent history. (#41879, #42065)”; “Remembered MCP tool approvals are scoped to the selected app account, and relative MCP executable paths start more reliably on macOS. (#42133, #42117)”; “Rollout compression includes shared histories, codex exec resume handles compressed rollouts when selecting by working directory, and thread forks work with symlinked session roots. (#42039, #42135)”. Configuration and API Updates verbatim: “App-server thread metadata includes nullable model and reasoningEffort fields. Structured asynchronous questions are supported through request_user_input_async when enabled by the model catalog. (#42151, #42178)”; “tui.disable_paste_burst replaces the top-level setting, which remains supported as a fallback. (#41976)”; “Adds the disabled-by-default features.context_management.experimental_mode configuration. When enabled for eligible ChatGPT Plus, Pro, or Pro Lite sessions using the Codex backend, it activates token-budget context, history notes, and the new_context tool. API-key sessions, custom providers, and temporary structured threads remain excluded. (#42385)” (PR: “Add the under-development features.context_management.experimental_mode configuration and schema”; “Keep the feature disabled for custom providers, provider credentials, non-Codex endpoints, and temporary structured threads”). Verified 2026-09-03. ↩↩↩↩↩↩↩↩↩↩↩

  141. 0.154.0-alpha watch list, pre-release and subject to change. The rust-v0.153.0…rust-v0.154.0-alpha.1 compare is 84 commits ahead of 0.153.0 as of September 3, 2026. Items from the compare: Vim replace mode (#42194), managed worktree creation (#42196), TUI preferences separated from server configuration (#42202), a native voice runtime cluster for macOS, Linux, and Windows (#42204, #42208, #42209, #42332), live context-compaction status in the TUI (#42319), a configurable app-server thread unload delay (#42320), PATH helpers no longer executed before workspace trust (#42324, security), a Windows sandbox provisioning-service cluster (#42309-#42353), durable reasoning configuration updates (#42328), and free-form async user messages (#42354). Method note: alpha compares overlap stable cherry-picks – “Skip Guardian scoring in User approval mode (#42256)” appears in both the rust-v0.152.1…rust-v0.153.0 stable compare and the alpha line – so each item must be re-verified against the stable compare at promotion. None of this is stable; none of it is documented in the body. ↩↩↩↩↩↩↩

  142. Codex CLI v0.153.1 release notes, September 3, 2026 (published 14:02 PT); install npm install -g @openai/codex@0.153.1; compare rust-v0.153.0…rust-v0.153.1. The patch’s headline change is not listed in the release body and is provable only via the compare: “Honor model requirements in Guardian computer-use scoring (#42422)” (cherry-picked from 38ba8cdc) – computer-use-only Guardian scoring and fast approval decisions run only when the active model sets node_repl_auto_review_required, and prior or in-flight scores are invalidated on a model switch that skips scoring, so switching back to a reviewed model cannot revive a stale approval decision. The listed change: #42605 backports a GPT-6-Astra model catalog entry to stable, configurable through the API only; the default model and the model picker are unchanged. Verified 2026-09-03. ↩↩↩↩↩

  143. Codex CLI v0.153.2 release notes, September 3, 2026 (published 16:53 PT); npm latest until 0.153.4 the next day; install npm install -g @openai/codex@0.153.2; compare rust-v0.153.0…rust-v0.153.2. One cosmetic fix: #42632 corrects the GPT-6-Astra Fast tier description text from “1.5x” to “2x speed, increased usage”; display text only. Watch-list check against the compare: none of the 0.154.0-alpha.1 watched items (141) promote in 0.153.1 or 0.153.2 – the stable delta beyond 0.153.0 is exactly three changes: #42422 and #42605 (0.153.1) and #42632 (0.153.2). Verified 2026-09-03. ↩↩↩↩

  144. 0.154.0-alpha watch list advance: the line moved from 0.154.0-alpha.1 to 0.154.0-alpha.3, pre-release and subject to change, 103 commits ahead of 0.153.0 as of September 3, 2026. Release bodies for this alpha line are empty stubs, so the compare is the only source: rust-v0.154.0-alpha.1…rust-v0.154.0-alpha.3 carries the 19 commits new since alpha.1. New watched items from that compare: a GPT-6-Astra bundled model catalog (#42607) and Amazon Bedrock catalogs (#42619), staging for a model launch; a security and hardening cluster – the macOS sandbox hardened against terminal input injection (#42590), Guardian review required for incompatible compaction checkpoints (#42588), trusted headers for remote exec WebSockets (#42606), and Noise handshakes bounded by the exec-server init timeout (#42623); and Guardian context work – a thread context flag (#42529) and verified user answers persisted (#42579). The alpha.1 watched items (141) remain watched. None of this is stable; none of it is documented in the body. Verified 2026-09-03. Resolution note (September 4, 2026): #42607 and #42619 promoted to stable via 0.153-line hotfix backports – #42874 in v0.153.4 and #42805 in v0.153.3 respectively – not via the 0.154 train (147148); every other watched item here and in 141 remains unpromoted, and the alpha line is unchanged at 0.154.0-alpha.3. ↩↩↩↩↩↩↩

  145. Press coverage of the GPT-6-Astra announcement, September 3-4, 2026 – the claims in this guide that rest on press rather than first-party docs are the announcement date and the rollout order and timing: CNBC (September 3: phased rollout starting with a limited set of organizations, cybersecurity-program partners first, then ChatGPT Plus, Pro, Business, and Enterprise “over the coming days,” plus the OpenAI API and AWS), Axios (September 3: Brockman calls it a “generational leap”), Forbes (September 3, headlined “OpenAI Launches GPT-6 Astra After A Curious False Start” – the false start it describes is the announcement page’s availability, not this guide’s catalog-staging record in 142 and 144: CNBC, Reuters, The Verge, and VentureBeat “published stories citing OpenAI launch material before the company’s main Astra page was publicly accessible,” and “an official OpenAI blog post was up before it was temporarily removed,” going live for good around 3:31 p.m. ET; this footnote first misattributed the phrase to the catalog staging – corrected on review), Al Jazeera (September 4), and 9to5Mac (September 4). openai.com itself returned 403 to this guide’s fetcher, so no first-party announcement page is cited; model capability, pricing, and Codex-integration claims rest on the first-party docs in 146. Verified 2026-09-04. ↩↩↩↩↩↩

  146. First-party model documentation, accessed September 4, 2026. OpenAI API models page: gpt-6-astra is the flagship, “Our most capable model, built for the hardest end-to-end work” – $10/MTok input, $50/MTok output, 1.05M context window, 128K max output, knowledge cutoff April 30, 2026 – listed above GPT-5.6 Terra (balanced) and GPT-5.6 Luna (budget). The gpt-6-astra model page splits the window: “Maximum input tokens: 922,000” against the 1,050,000-token window and 128,000 max output, with prompts of more than 272K input tokens “priced at 2x input and cache rates and 1.5x output for the full request”; the API pricing page lists the resulting long-context rates, $20 input / $75 output per 1M tokens, plus Fast-mode rates of $20/$100 short-context and $40/$150 long-context – 2x the applicable Standard rates – and notes Fast mode is unavailable for Astra with EU data residency. Codex speed docs, verbatim: “Fast mode consumes credits at 2.5x the Standard rate where available” for GPT-6 Astra with ChatGPT sign-in; the page states no speed multiplier for Astra. Codex models docs: GPT-6-Astra is the recommended Codex model; availability “depends on the rollout, your sign-in method, and your client”; “eligible Pro, Business ($100), and Enterprise accounts” are named; reasoning levels Low, Medium (default), High, Extra High, Max, Ultra – the docs-page default; the bundled CLI catalog disagrees, see 148. The page’s availability matrix marks Astra unavailable for Codex cloud while GPT-5.6 Sol remains available there, and it notes “Currently, you can’t change the default model for Codex cloud chats.” The staged “Fast tier: 2x speed, increased usage” string (143) still does not appear on the docs models page, but its billing half is now docs-confirmed at the speed and pricing pages above; only the “2x speed” half remains catalog display text. Docs host note: developers.openai.com/codex/* now 308-redirects to learn.chatgpt.com/docs/*. Server-side acceptance verified on this operator’s rollout-entitled account: codex exec -m gpt-6-astra returned the expected probe reply on CLI 0.153.3. The rollout is phased and entitlement varies by account. Verified 2026-09-04. Re-accessed 2026-09-05: the availability line (“depends on the rollout, your sign-in method, and your client”) is unchanged and remains the operative first-party availability statement, and the Codex models docs carry a section headed “Experimental context management,” verbatim: “On supported Codex clients, users signed in with ChatGPT Plus or Pro can opt in to experimental context management. Astra keeps notes across context windows and can search earlier messages and tool results from the same task. This experiment is off by default and isn’t available with Business, Enterprise, or API-key sign-in at launch.” The opt-in line, verbatim: “To opt in, set features.context_management.experimental_mode = true in your config.toml, then start a new task.” Re-accessed 2026-09-07: the model-picker passage now carries a Power-preset mapping absent at the September 5 re-access, verbatim: “For eligible Pro, Business ($100), and Enterprise accounts, the Astra rollout updates the Power options to Terra Light, Sol Light, Sol Medium, Astra Light, Astra Medium, and Astra Extra High. Options can differ by plan and rollout stage.” (the preceding sentence: “The picker illustrations show GPT-5.6 controls.”); the availability line and the Experimental context management section are unchanged. Re-accessed 2026-09-15: the availability matrix has flipped for Codex cloud – GPT-6-Astra is now marked available on Codex cloud alongside GPT-5.6 Sol (Astra shows available across the ChatGPT desktop app, ChatGPT web, Codex CLI, Codex IDE extension, Codex cloud, ChatGPT Credits, and API access), no page text marks Astra unavailable anywhere, and “Currently, you can’t change the default model for Codex cloud chats.” still stands; the reasoning ladder is unchanged (Low, Medium default, High, Extra high, Max, Ultra), now listed with per-level picker descriptions (Ultra, verbatim: “Maximum reasoning with automatic task delegation”); the Power-preset mapping paragraph and the Experimental context management section are unchanged verbatim. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  147. Codex CLI v0.153.3 release notes, September 4, 2026 (published 19:01 UTC); install npm install -g @openai/codex@0.153.3; compare rust-v0.153.2…rust-v0.153.4 (the two-patch delta is exactly four PRs plus a version bump). Two changes: #42805 adds GPT-6-Astra to the Amazon Bedrock catalogs (the Mantle and Runtime global and US routes; GPT-5.6 Sol remains the Bedrock default) – a cherry-pick of watched item #42619 (144); #42809 corrects Astra’s async-clarification guidance (text only). Verified 2026-09-04. ↩↩↩↩↩

  148. Codex CLI v0.153.4 release notes, September 4, 2026 (published 23:25 UTC); npm latest = 0.153.4; install npm install -g @openai/codex@0.153.4; compare rust-v0.153.2…rust-v0.153.4. Two changes: #42874 flips the bundled model catalog’s visibility from hide to list, and GPT-6-Astra’s existing catalog priority makes it the bundled default when no model is explicitly configured – the user-visible promotion of watched item #42607’s staging (144); #42878 qualifies async-question guidance by tool availability. Operational caveat: on CLI 0.153.4 and later, an account not yet in the GPT-6-Astra rollout carries a bundled default it never chose (what actually serves is entitlement-dependent); pin model = "gpt-5.6-sol" in config.toml or pass -m explicitly for deterministic selection. Bundled-catalog facts from the versioned models.json at rust-v0.153.4: the gpt-6-astra entry ships visibility “list”, priority 1, and default_reasoning_level “low” – a lower default than the Medium the docs models page marks (146). Verified 2026-09-04. ↩↩↩↩↩↩↩↩↩↩↩

  149. Rollout-completion announcements, September 4, 2026. OpenAI on X (September 4): “GPT-6 Astra is now available to all Pro, Enterprise, and Business Premium users in ChatGPT Work and Codex. It’s also live in the API. It might take a few days to roll out to our Plus and Business users.” The Codex lead Tibo Sottiaux, the same evening, as quoted in the OpenAI community thread: “Astra is now rolled out to all Plus and Business users too.” Attribution note: the X-post wording was confirmed through two independent secondary renderings of the posts (the community thread above among them), not a direct fetch of x.com. Counterweight: September 5 posts in the same community thread report Plus accounts still seeing only GPT-5.6 models in Codex, and the models docs availability line (146) is unchanged – treat the docs line as the operative availability statement and keep the Sol pin (see Which Model Should I Choose?) until Astra answers on your own account. Verified 2026-09-05. ↩↩↩

  150. 0.154.0-alpha watch list advance: the line moved from 0.154.0-alpha.3 to 0.154.0-alpha.6, pre-release and subject to change, published September 7, 2026 (18:03 UTC). The intermediate rust-v0.154.0-alpha.4 and rust-v0.154.0-alpha.5 tags exist with no published releases, and npm’s alpha dist-tag points at 0.154.0-alpha.6 (npm latest remains 0.153.4). Release bodies on this line are empty stubs, so the compare is the only source: rust-v0.154.0-alpha.3…rust-v0.154.0-alpha.6 carries the 147 commits new since alpha.3. Movement on watched items and the new watched items are enumerated in the Stability note; the headline risks are the removal of the deprecated codex mcp-server command (#42993, commit title “Remove the deprecated codex mcp-server command”) and the Guardian v2 overhaul’s removal of the legacy approval review paths (#43462, “Remove legacy Guardian approval review paths”). The “Daybreak” eligibility concept (#42667 “Tailor TUI cyber refusal notices to Daybreak eligibility”, #42854 “Persist Daybreak preferences in thread metadata”) appears in no OpenAI docs page as of this access. The alpha.1 and alpha.3 watch records remain 141 and 144. None of this is stable; none of it is documented in the body; per-item re-verification against the stable compare stays mandatory at promotion. Verified 2026-09-07. ↩↩↩↩

  151. 0.154.0-alpha watch list advance: the line moved from 0.154.0-alpha.6 to 0.154.0-alpha.7, pre-release and subject to change, published September 8, 2026 (17:44 UTC); npm’s alpha dist-tag moved to 0.154.0-alpha.7 in lockstep (npm latest remains 0.153.4, and no stable release exists past 0.153.4). Release bodies on this line are empty stubs, so the compare is the only source: rust-v0.154.0-alpha.6…rust-v0.154.0-alpha.7 carries the 58 commits new since alpha.6. The delta’s headlines are two graduations from plumbing to enabled features, commit titles verbatim: “Add live WebRTC voice conversations to the TUI (#43581)” (with the nine-commit polish wave enumerated in the Stability note), and “Enable MCP user verification in the TUI (#43712)” plus “Enable user verification for the bundled TUI on supported devices (#43715)”, backed by “Add macOS user verification with Secure Enclave signing (#43624)” – the latter cluster a documented-behavior change if it reaches stable, joining the codex mcp-server removal (#42993) and the legacy Guardian approval review path removal (#43462) on the promotion checklist; zero alpha.7 commits reverse either of those removals. New watched clusters: Memory v2 (#43797, #43799, #43800, #43808, #43813, #43827) and managed app-server daemon auto-updates (#43521, #43529, #43542, #43552, #43562, #43572, #43619, #43622, #43698). Docs surfaces are unchanged and “Daybreak” remains absent from all OpenAI docs at this access. The alpha.1, alpha.3, and alpha.6 watch records remain 141, 144, and 150. None of this is stable; none of it is documented in the body; per-item re-verification against the stable compare stays mandatory at promotion. Verified 2026-09-08. ↩↩↩

  152. Codex CLI v0.154.0 release notes, stable, published September 9, 2026 (22:35 UTC); npm latest moved 0.153.4 -> 0.154.0 (22:40 UTC); install npm install -g @openai/codex@0.154.0; compare rust-v0.153.4…rust-v0.154.0, 249 commits. Branch-cut evidence: the release was cut at roughly the alpha.6 boundary, and NONE of the 58 commits in the rust-v0.154.0-alpha.6…rust-v0.154.0-alpha.7 compare (151) appears in the stable compare – the two commit lists share zero entries, checked hash by hash. In stable, commit titles verbatim: “Remove the deprecated codex mcp-server command (#42993)”, “Remove legacy Guardian approval review paths (#43462)”, “Centralize Guardian context mode and checkpoint policy (#43458)”, “Keep Guardian review evidence consistent and reject stale approvals (#43442)”, “Raise Guardian’s action review limit to 200,000 bytes (#44060)” (a cherry-pick of an item otherwise on the 0.155 line), the managed-worktree cluster (#42196, #42366, #42652, #43069, #43120, #43286), the async-message cluster (#42354, #42891, #42894, #42897), the Windows sandbox-provisioning and daemon cluster (#42309 through #42841, including “Add a native Windows MXC sandbox adapter (#42841)”, plus #42405 and #42392), remote permission profiles (#42453, #43340), “Gate experimental context by model capability at session startup (#43147)”, voice runtime and host infrastructure only (#42676, #43097, #43248 among others; the live TUI feature #43581 is absent), the Daybreak code references (#42667, #42854), “Add Vim replace mode to the TUI composer (#42194)” with “Recover Vim escape input in legacy terminals (#42584)”, “Show live context compaction status in the TUI (#42319)”, and “Avoid executing PATH helpers before workspace trust (#42324)” beside “the macOS sandbox blocks terminal input injection” (#42590). NOT in stable, all on the alpha.7 exclusion list: “Enable MCP user verification in the TUI (#43712)”, “Enable user verification for the bundled TUI on supported devices (#43715)”, “Add macOS user verification with Secure Enclave signing (#43624)”, “Add live WebRTC voice conversations to the TUI (#43581)”, the Memory v2 cluster (#43797-#43827), daemon auto-update configuration (#43542, #43562), and reasoning-effort pinning (#43795, #43796). Unlike this train’s alpha stubs, the 0.154.0 release body is populated and curated (six New Features, six Bug Fixes, one Documentation entry, and the mcp-server removal under Chores) and matches the compare. Verified 2026-09-15. ↩↩↩↩↩↩↩↩↩↩

  153. ChatGPT & Codex changelog, accessed September 15, 2026 – three entries. (1) “Codex CLI 0.154.0” (September 9): the curated feature list maps to the verified commits – GPT-6-Astra in the model picker and Amazon Bedrock catalogs (#42879, #42619), experimental worktree support via --worktree or /worktree (#42652, #43069, #43120, #43286), inline question answering while Codex continues working (#42891, #42894, #42897), Windows background-server sharing with daemon lifecycle and managed updates (#42405, #42392), Vim R replace mode with undo and dot-repeat (#42194, #42584), and formatting-preserving copy (#42847, #43055) – and is SILENT on voice, memory, and user verification as features: those words appear only in the entry’s exhaustive commit list as infrastructure items, and “Secure Enclave” appears zero times, consistent with the branch cut. (2) “Codex MCP server removed” (September 5), verbatim: “The codex mcp-server command and standalone codex-mcp-server binary have been removed after their deprecation on August 24, 2026. Update integrations that launch either command before upgrading Codex.” The entry points integrations at the Codex app server, notes the app-server command “is experimental and isn’t supported for production workloads,” and confirms connecting to external MCP servers through codex mcp is unaffected. (3) “Codex CLI Python SDK 0.154.0” (September 10), verbatim: “Add max and ultra reasoning-effort values. (#39662)” – the SDK-side confirmation of the Max and Ultra rungs the models docs list for Astra. Verified 2026-09-15. ↩↩↩↩↩↩

  154. 0.155.0-alpha watch list, pre-release and subject to change. The line opened September 10, 2026 (0.155.0-alpha.1) and reached 0.155.0-alpha.6 on September 15 (02:00 UTC; npm’s alpha dist-tag moved in lockstep) – twelve alpha publishes in six days counting the out-of-sequence hotfix tags (alpha.2.3, alpha.2.4, alpha.3.7 through alpha.3.10). Release bodies on this line are empty stubs, so the compare is the only source: rust-v0.154.0…rust-v0.155.0-alpha.6 carries 384 commits, the 58-commit alpha.7 exclusion set among them. Watched items are enumerated in the Stability note; the headline risks are the alpha-line default flips, commit titles verbatim: “Enable TUI voice conversations by default (#44921)” and “Enable worktrees by default and clarify local daemon errors (#44870)”, plus the removal “Remove the Windows /sandbox-add-read-dir slash command (#44259)”. None of this is stable; none of it is documented in the body; per-item re-verification against the stable compare stays mandatory at promotion. Verified 2026-09-15. ↩↩

  155. 0.155.0-alpha watch delta, alpha.6 -> alpha.10, plus the September 16 npm dist-tag state; pre-release and subject to change. Four alphas published September 15-16, 2026, all with empty stub release bodies: rust-v0.155.0-alpha.7 (September 15, 21:09 UTC), rust-v0.155.0-alpha.8 (22:26 UTC), rust-v0.155.0-alpha.9 (September 16, 01:34 UTC), and rust-v0.155.0-alpha.10 (04:20 UTC) – so the compares are the only source: rust-v0.155.0-alpha.6…rust-v0.155.0-alpha.10 carries 65 commits, and the full line compare rust-v0.154.0…rust-v0.155.0-alpha.10 carries 448. Separately, rust-v0.155.0-alpha.2.5 published September 16, 2026 (13:17 UTC) as an out-of-band cut from the alpha.2 base: rust-v0.155.0-alpha.2…rust-v0.155.0-alpha.2.5 is exactly six commits, titles verbatim: “Stage voice release packaging for alpha rehearsal”, “[voice] fetch public Cygwin source in alpha rehearsal”, “Stage Linux-only voice alpha rehearsal”, “Publish opt-in provisioned macOS packages with Rust releases (#45345)”, “Fix Windows sandbox refresh after elevated provisioning”, and “Release 0.155.0-alpha.2.5”. npm dist-tag state re-checked September 16, 2026 against the registry: latest = 0.154.0 and alpha = 0.155.0-alpha.2.5 (npm publish 13:26 UTC; the per-platform alpha tags moved in lockstep), so @alpha resolves below the alpha.10 head and installs a build missing all alpha.3+ content until the tag moves again. GPT-5.5 retirement: the Codex models documentation, accessed September 16, 2026, states verbatim “GPT-5.5 retires from Codex with ChatGPT sign-in on October 14, 2026. Replace gpt-5.5 with gpt-5.6-sol”, and its dedicated GPT-5.5 retirement section: “On October 14, 2026, GPT-5.5 will retire from ChatGPT, ChatGPT Work, and Codex on all plans, including consumer, Business, Enterprise, and Edu plans. This retirement does not apply to the OpenAI API.” Verified 2026-09-16. ↩↩↩↩↩

  156. Codex CLI v0.155.0 release notes, stable, published September 17, 2026 (23:14:43 UTC); npm latest moved 0.154.0 -> 0.155.0; install npm install -g @openai/codex@0.155.0; compare rust-v0.154.0…rust-v0.155.0. Ancestry-check method for the default-on flips: “Enable TUI voice conversations by default (#44921)” and “Enable worktrees by default and clarify local daemon errors (#44870)” merged September 11, 2026 and ride the 0.155.0-alpha line compares, but NEITHER is an ancestor of the rust-v0.155.0 tag – each checked individually against the stable compare – so both belong to the 0.156.0 line and 0.155.0 ships voice as opt-in experimental (enabled through /experimental, supported builds only) with managed worktrees non-default. In stable: live voice conversations (#43581) exposed as an experimental feature (#44331) with mute controls (#43651, #43690) and signed macOS voice resources (#43983); MCP user verification – Touch ID / Secure Enclave verification of MCP requests in local TUI sessions on supported Macs (#43624, #43712, #43715), workspace-scoped identity restriction (#43524), native verification in MCP tool continuations (#44346); the Windows /sandbox-add-read-dir slash-command removal (#44259); worktree management adjacents (#43942, #44424, #44433); live reasoning summaries in the TUI status row with completion timestamps (#43558, #43921); daemon update schedules, the codex app-server daemon update command, and thread recovery after daemon restarts (#43542, #43562, #44314); Amazon Bedrock AWS credential commands (#44028); Python SDK publishing aligned with stable CLI releases (#44067); security fixes for WSL interop escapes (#44286) and shell-snapshot credential exposure (#43909, #44040) plus the Guardian action-review limit at 200,000 bytes (#44060, previously cherry-picked into 0.154.0); Memory v2 groundwork (#43797-#43827). npm dist-tag state at this access: latest = 0.155.0, and alpha moved off 0.155.0-alpha.2.5 onto rust-v0.155.0-alpha.9.2, published September 18, 2026 (03:09 UTC) – AFTER stable – an out-of-band cut carrying exactly two cherry-picked Windows sandbox fixes (#46237, #46333), so @alpha resolves semver-BELOW latest (0.155.0-alpha.9.2 < 0.155.0), the second out-of-band dist-tag state in three days. Docs: the models page and the docs changelog are unchanged since September 14, 2026; the 0.155.0 release is not in the docs changelog, and no voice announcement exists on any docs surface at this access – the launch is CLI-only and experimental. Verified 2026-09-17. ↩↩↩↩↩↩↩↩↩↩↩↩↩

  157. 0.156.0-alpha watch list, pre-release and subject to change. The line stands at 0.156.0-alpha.2 as of September 17, 2026; release bodies on the line are empty stubs, so the compare is the only source: rust-v0.155.0…rust-v0.156.0-alpha.2 carries 351 commits. The lead is Daybreak’s first concrete code surface: daybreakEnabled can be set when starting a thread (#45513) – the concept still appears in zero public docs. The default-on flips “Enable TUI voice conversations by default (#44921)” and “Enable worktrees by default and clarify local daemon errors (#44870)” are confirmed on this line (ancestry-checked; not in stable 0.155.0). Also on the line: a configurable F8 voice shortcut (#46071) and voice-session analytics (#46058), the /usage account analytics dashboard (#45763-#45772), TUI Mermaid rendering (#46054, #45817) and TeX math rendered as Unicode (#45501, #45612, #46266), a /daemon menu (#45854) with a --no-daemon flag (#46088) and opt-in automatic background server startup (#46117), the personality feature flag retired (#45809), an Astra composer starfield (#46096), and heavy Windows sandbox provisioning work. None of this is stable; none of it is documented in the body; per-item re-verification against the stable compare stays mandatory at promotion. Verified 2026-09-17. ↩↩↩↩

  158. Codex CLI v0.155.1 release notes, stable, published September 18, 2026 (20:03:04 UTC); npm latest moved 0.155.0 -> 0.155.1 (npm publish time 20:09:23 UTC), and every per-platform tag (darwin-arm64, darwin-x64, linux-arm64, linux-x64, win32-arm64, win32-x64) reads 0.155.1; install npm install -g @openai/codex@0.155.1. The release is a single-fix hotfix, and the compare is the authority, not the body: rust-v0.155.0…rust-v0.155.1 carries exactly two commits – 5e0d1ef8 “[0.155 hotfix] Restore none as the TUI reasoning summary default (#46467)” (merged 2026-09-18T19:02:36Z, a focused backport onto release/0.155) and be2951ea, the release-prep commit whose message is the release body. The change is one line in new_thread_reasoning_overrides (codex-rs/tui/src/app_server_session.rs), plus regression coverage in reasoning_defaults_tests.rs: the fallback applied when config.model_reasoning_summary is unset moved from ReasoningSummary::Detailed to ReasoningSummary::None. Per the PR description, new local TUI sessions in 0.155 therefore “request detailed reasoning summaries by default, which causes request rejection on providers that do not support reasoning summaries”; the fix restores none “while honoring explicit auto, concise, and detailed settings and concurrent delivery when summaries are explicitly enabled.” The release body states the same: “New local TUI sessions now leave reasoning summaries disabled by default, fixing request rejection by providers that do not support them. Explicit reasoning-summary settings remain respected. (#46467)”. The identical one-line change landed independently on main as #46533 (merged 2026-09-19T00:30:19Z), verified by diffing both patches. Ancestry re-check at this tag: the default-on flips #44921 (voice) and #44870 (worktrees) are still NOT ancestors of rust-v0.155.1 (each compared individually; status diverged), so 0.155.1 keeps voice opt-in experimental and managed worktrees non-default. Docs movement since the 156 access: the ChatGPT & Codex changelog (serving from learn.chatgpt.com) now carries dated entries for Codex CLI 0.155.0 (2026-09-17) and Codex CLI 0.155.1 (2026-09-18), superseding v2.71’s “0.155.0 absent from the docs changelog, unchanged since September 14” note; the newest entry on the page at this access is 2026-09-18. The docs 0.155.0 entry describes voice as “Added experimental /voice conversations with live transcripts and microphone controls on supported builds, enabled through /experimental. (#43581, #43651, #44331)” – first-party corroboration of the opt-in experimental framing. Still docs-absent: the slash-command reference lists /worktree but neither /voice nor /experimental, and the docs Voice feature page documents ChatGPT Voice in the ChatGPT desktop app (“Powered by GPT-Live”), a separate surface from the CLI command. Verified 2026-09-21. ↩↩

  159. 0.156.0-alpha watch list, pre-release and subject to change; supersedes 157’s alpha.2 snapshot. The line stands at 0.156.0-alpha.14 as of September 21, 2026, and npm’s alpha dist-tag plus every per-platform alpha-* tag match it, which resolves the two-cut dist-tag anomaly recorded in 155 and 156: @alpha is semver-ahead of latest (0.155.1) again. Release cadence, from the releases API: alpha.9 2026-09-20T00:17:45Z, alpha.10 2026-09-20T21:18:52Z, alpha.11 2026-09-20T22:49:40Z, alpha.12 2026-09-21T00:06:46Z, alpha.13 2026-09-21T02:15:06Z, alpha.14 2026-09-21T04:09:08Z – five cuts inside 6h50m, six inside 27h51m. Release bodies on the line remain empty stubs, so the compare is the only source: rust-v0.156.0-alpha.2…rust-v0.156.0-alpha.14 carries 147 commits. Verified subjects new in this window, each confirmed against the PR and ancestry-checked as an ancestor of rust-v0.156.0-alpha.14 and NOT of stable rust-v0.155.1: “Add six bundled TUI themes and theme-aware accents” (#46504), “Use catalog model display names throughout the TUI” (#46503), “Enable Guardian parent-compaction reuse by default” (#46522), “Allow worktree sessions to use an existing local daemon” (#46498), “Disable reasoning summaries by default for new TUI threads” (#46533, the main-line twin of the 0.155.1 hotfix), “Add bounded filesystem path diagnostics to codex doctor” (#46543), “Respect reduced motion in the voice UI” (#46835), “Preserve voice playback across pauses and packet bursts” (#46880), “Stabilize usage dashboard navigation and add keyboard help” (#46863), “Enable mouse navigation in the TUI usage view” (#46866), and “Improve usage report layouts and preserve reading positions” (#46864). Carried forward from 157 and unchanged in status: daybreakEnabled on thread start (#45513, still zero public docs for the concept) and the default-on flips #44921 and #44870. None of this is stable; none of it is documented in the body; per-item re-verification against the stable compare stays mandatory at promotion. Verified 2026-09-21. ↩↩↩↩

  160. The 0.156.0 skipped-stable record plus the 0.157.0-alpha watch line, pre-release and subject to change; supersedes 159’s alpha.14 snapshot. Verified 2026-09-22 against the npm registry and the GitHub API: npm latest = 0.155.1 with every per-platform tag matching, and no 0.156.0 (nor any non-alpha 0.156.x) version exists on npm; the releases API shows no non-prerelease release since rust-v0.155.1 (September 18, 2026, 20:03 UTC); the tag namespace rust-v0.156.0* contains only alpha tags, alpha.1 through alpha.18 (alpha.15 and alpha.18 are tags without releases). Last published 0.156.0-line cuts: rust-v0.156.0-alpha.16 (September 21, 16:51 UTC) and rust-v0.156.0-alpha.17 (21:40 UTC). The new line: rust-v0.157.0-alpha.1 published September 21, 18:08 UTC (npm publish 18:23 UTC), reaching rust-v0.157.0-alpha.8 on September 22, 12:34 UTC (npm 12:47 UTC) – eight cuts in 18h26m; npm’s alpha dist-tag and every per-platform alpha-* tag read 0.157.0-alpha.8 at this access, semver-ahead of latest; release bodies on the line are stubs containing only the version string, so the compare is the only source. Roll-forward, compare-verified: rust-v0.156.0-alpha.14…rust-v0.157.0-alpha.8 reports status diverged, ahead_by 94, behind_by exactly 1, and the single missing commit is f276f1d “Release 0.156.0-alpha.14”; the compare against rust-v0.156.0-alpha.17 has the same shape (exactly one commit unique to alpha.17, its “Release 0.156.0-alpha.17” bump), so every content commit on the 0.156.0-alpha line is contained in the 0.157.0-alpha.8 history and the head carries 94 commits beyond the alpha.14 content, unscanned at item level in this update. Per-item ancestry spot-checks, each compared individually: the merge commits of “Enable TUI voice conversations by default (#44921)” (3f59eb9), “Enable worktrees by default and clarify local daemon errors (#44870)” (68bc536), and “Enable Guardian parent-compaction reuse by default (#46522)” (3fd9e7e) are ancestors of rust-v0.157.0-alpha.8 (compare status ahead, behind_by 0) and NOT ancestors of stable rust-v0.155.1 (status diverged). Out-of-band cut, third of its kind after 155’s alpha.2.5 and 156’s alpha.9.2: rust-v0.155.0-alpha.16.1 published September 22, 00:20 UTC (npm 00:28 UTC), exactly two commits over rust-v0.155.0-alpha.16 – “Add system proxy fallback for login and startup requests (#46562)” and the version bump; the alpha dist-tag does not point at it at this access, and whether it held the tag between accesses is not verifiable from the registry. None of the 0.157.0-alpha line is stable; none of it is documented in the body; per-item re-verification against the stable compare stays mandatory at promotion, and the promotion check now begins by confirming which version number the stable lands as. Verified 2026-09-22. ↩↩↩↩

  161. Agent Plugins official site (“A portable package format for reusable components that extend AI agents”) and the normative specification v1.0.0, released August 6, 2026; accessed August 12, 2026. Package structure per the normative spec: required plugin.json (closed schema, ten permitted top-level fields, “Clients MUST report and ignore each unknown field”); optional skills/ (“Each immediate child directory containing a path named exactly SKILL.md that resolves to a regular file is treated as one skill”); optional mcp.json (client MUST support at least one of stdio/streamable-http, sse optional); reverse-domain client namespaces (“A client MUST ignore manifest entries for namespaces it does not implement”). Commands, hooks, agents, rules, and LSP servers are outside the v1 portable format. Development: Vercel’s announcement (initiated the proposal; developed with Amazon, Anysphere, GitHub, Microsoft, OpenAI); the repo’s MAINTAINERS.md lists Amazon, Cursor, Microsoft, OpenAI, Vercel; Google announced it is joining the core maintainers on launch day. Launch clients: VS Code, Cursor, GitHub Copilot, ChatGPT & Codex, Kiro. Anthropic — creator of Agent Skills and MCP — is not among the maintainers. Codex-side support: manifests and workspace publishing in v0.146.0, portable install/search in v0.147.0. (Correction Aug 12: this footnote initially cited agentplugins.codes, an unaffiliated field guide, as the spec — quotes re-anchored to the official site and normative spec.) ↩↩↩↩↩↩↩

  162. ChatGPT pricing. Accessed August 10, 2026. Plan prices: Free $0, Go $8/mo, Plus $20/mo, Pro from $100/mo (5x tier) or $200/mo (20x tier), Business $20/user/mo billed annually ($25 monthly), Enterprise/Edu custom. Five-hour usage limits are published per model and plan tier (e.g. Plus: GPT-5.6 Sol 10–100 messages, Luna 250–2,000; Pro 20x: Sol 200–2,000, Luna 5,000–40,000). Credit rate card: GPT-5.6 Sol 125 credits per 1M input tokens (12.5 cached, 750 output), Terra 50 (5 cached, 300 output), Luna 5 (0.5 cached, 30 output); “GPT-5.6 usage averages 5-40 credits per message”; fast mode consumes credits at a higher rate on supported models. Re-checked August 24, 2026: the rate card now lists GPT-5.6 Sol at 100 credits per 1M input (10 cached, 500 output) — the August 21 promotional reduction (121); Terra and Luna unchanged. ↩↩↩↩↩↩↩↩

  163. feat(cli): add codex doctor diagnostics, openai/codex PR #22336. Primary source for the codex doctor surface as shipped: the flag set (--summary compact output, --json redacted structured output, --all to expand truncated lists, --no-color), the stable report sections (Notes, Environment, Configuration, Updates, Connectivity, Background Server), the per-check status markers (✓ ok, ✗ fail, ⚠ warn, ○ idle), and the design intent that detailed human output is the default because the command is normally run when the user already needs context. The JSON variant keys checks by stable identifier for automated processing. The repository’s CLI issue template asks reporters to paste codex doctor --json output. Verified 2026-07-28. ↩↩↩↩

  164. ChatGPT for iOS 1.2026.195 release notes, July 20, 2026 (Codex-tagged entry in the official ChatGPT changelog): “Added support for interactive forms in Codex tasks”; “Added support for rendering Mermaid diagrams inline in task transcripts”; recovery of unsent prompts across tasks, hosts, and workspaces; goals that resume blocked or usage-limited runs; task lists sorted by recent activity with unavailable hosts surfaced at creation time; and improved Remote onboarding, composer guidance, and iPad navigation. Recorded for completeness — this guide documents Codex’s five surfaces (CLI, desktop, IDE, cloud, Chrome) and does not cover the iOS app. ↩

  165. Codex CLI v0.139.0 release notes and Codex Changelog (OpenAI Developers). Promoted to stable June 9, 2026 (20:13 UTC); marked Latest on GitHub; install npm install -g @openai/codex@0.139.0. New features: code mode can call standalone web search directly (including from nested JavaScript tool calls) and receive plaintext results; tool/connector input schemas preserve oneOf/allOf constructs for better large-schema structure preservation and MCP compatibility; codex doctor adds editor and pager environment details, redacting sensitive values in JSON; plugin marketplace automation exposes sources in codex plugin marketplace list --json plus faster cached-catalog plugin listing. Bug fixes: codex resume --last / codex fork --last treat trailing args as prompts rather than session IDs; subagent MCP startup warnings no longer surface in the wrong thread context; image edits reference exact file paths; tilde URLs linkify fully in the TUI; thread resets (/new, /clear, /fork) preserve cloud-managed requirements/feature flags; sandbox execution consistently preserves approval decisions and enforces proxy-only networking. Maintenance: separate symbol archives with line tables; rusty_v8 bumped to 149.2.0. The latest pre-release as of June 9, 2026 is the rust-v0.140.0-alpha line (prerelease) — 0.140.0 is still in alpha and is not tracked by this guide, which follows stable. Current-session verification June 9, 2026: GitHub releases and the OpenAI Codex changelog confirm rust-v0.139.0 as the latest stable. ↩↩↩↩↩

  166. Codex CLI v0.138.0 release notes and Codex Changelog (OpenAI Developers). Promoted to stable June 8, 2026 (23:00 UTC); prerelease: false, marked Latest on GitHub; install npm install -g @openai/codex@0.138.0. Adds /app desktop handoff on macOS and Windows, local image paths exposed to models, more flexible reasoning-effort selection, and structured JSON output for plugin automation. Superseded as latest stable by rust-v0.139.0 on June 9, 2026. ↩↩

  167. Codex CLI v0.137.0 release notes and Codex Changelog (OpenAI Developers). Promoted to stable June 4, 2026 (01:17 UTC) from the v0.137.0-alpha line. TUI: F13–F24 keybindings, paste in searchable menus, compact reasoning-only status/title item. Enterprise: monthly credit limits in admin flows and cloud-managed config bundles. Remote control: client-initiated pairing and controller-grant management. Plugins: machine-readable JSON output for plugin workflows and cached remote catalog suggestions. Hosted web/image tools in more code-mode flows with standalone web searches running in parallel; multi-agent v2 runtime improvements (cleaner follow-up, metadata defaults). Fixes: prompt cancellation restoring draft/attachments/collaboration mode, macOS app launch and Windows SQLite startup reliability, plugin manifest ordering/dedup, permission requests honoring environment identity. Current-session verification June 4, 2026 (PST): GitHub releases shows rust-v0.137.0 as latest stable. ↩↩

  168. Codex CLI v0.136.0 release notes and Codex Changelog (OpenAI Developers). Promoted to stable June 1, 2026 (17:49 UTC), following v0.136.0-alpha.2 (May 31). Adds session archiving (/archive in the TUI; codex archive / codex unarchive CLI commands; archived sessions protected from resume/fork until restored); OSC 8 metadata keeping TUI markdown web links clickable with key/value fallback for cramped tables; codex app-server --stdio stdio-mode launch plus initial-turns-page thread resume and richer MCP server status; CODEX_API_KEY for remote execution on approved OpenAI hosts; short-lived server tokens for remote-control websockets; codex sandbox setup --elevated Windows admin provisioning (alpha); and a feature-gated standalone image-generation extension via the native image-artifact completion pipeline. Bug fixes: ChatGPT auth near-expiry token refresh with relogin on reused refresh tokens, /diff blocked from executing repository-provided Git helpers, sandboxed-command cleanup after interruption with deny-read rules enforced, resumed-TUI prompt-history seeding from transcripts, vim normal-mode editing, and Bedrock auth falling back to AWS_REGION/AWS_DEFAULT_REGION. Current-session verification on June 2, 2026 (PST): GitHub releases page shows rust-v0.136.0 as the latest stable (non-prerelease) tag. ↩↩↩↩↩

  169. Codex CLI v0.156.0 release notes, stable, published September 22, 2026 (19:51:01 UTC; tag object created 18:39:31 UTC); npm latest moved 0.155.1 -> 0.156.0 at 19:55:37 UTC, with every per-platform tag published 19:55-20:03 UTC (linux-x64 19:55:15, linux-arm64 19:56:39, darwin-x64 19:57:08, win32-arm64 19:58:33, win32-x64 19:59:23, darwin-arm64 20:02:36); install npm install -g @openai/codex@0.156.0. Compare: rust-v0.155.1…rust-v0.156.0, total_commits 526, ahead_by 526, behind_by 8, status diverged (the behind_by is the 0.155.1 hotfix branch). The release body is atypically large for this repo at 43,807 bytes, with curated New Features, Bug Fixes, Documentation, and Chores sections over a full PR enumeration; it was used as a discovery index only, and every claim here was checked against the compare. Default-on flips, each ancestry-checked individually against the tag and each found present in the compare: 3f59eb9 “Enable TUI voice conversations by default (#44921)”, 68bc536 “Enable worktrees by default and clarify local daemon errors (#44870)”, 3fd9e7e “Enable Guardian parent-compaction reuse by default (#46522)”. Cut-point proof (late cut, not a skip): rust-v0.156.0-alpha.16…rust-v0.156.0 reports ahead_by 1 and behind_by 1, each unique commit being that side’s own release bump, so the stable content equals the alpha.16 content; by contrast alpha.17 is behind_by 21 and alpha.18 behind_by 65 (cumulative: alpha.18’s 65 include alpha.17’s 21), and rust-v0.157.0-alpha.1…rust-v0.156.0 is ahead_by 1 / behind_by 5, placing the cut base five commits before the successor line opened (alpha.16 published September 21, 16:51 UTC; rust-v0.157.0-alpha.1 published September 21, 18:08 UTC). Nine 0.157.0-alpha releases (alpha.1 through alpha.9, the last at 18:00:16 UTC September 22) preceded the stable publish. Watch-list verdicts, all fifteen SHIPPED, verified by locating each PR number in the 526-commit compare: #46504 themes (907b751e), #46503 catalog display names (547c9a1a), #46498 worktree on existing daemon (e4973935), #46533 reasoning summaries off by default (61b08f10), #46543 doctor path diagnostics (b33199b1), #46835 and #46880 voice maturation, #46071 F8 shortcut (ce03f22a), #46058 voice-session analytics, #46054 and #45817 Mermaid, #45501 / #45612 / #46266 TeX-as-Unicode, #45854 /daemon + #46088 --no-daemon + #46117 auto background server startup, #45809 personality flag retired, #45513 daybreakEnabled, #46096 Astra starfield, and the /usage dashboard as #45763, #45764, #45765, #45766, #45768, #45769, #45770, #45772 with maturation #46863 / #46864 / #46866. Correction to the watch-line shorthand: the “#45763-#45772” range this guide carried is eight PRs, not ten; #45767 and #45771 return HTTP 404 from the pulls API and are not pull requests in this repository. New in stable and never on the watch list: the optional fullscreen TUI (#46883 /tui, #46732, #46733, #46734, #46739, #46749, #46858, #46884, #46895, with #46849 keeping fullscreen transcript off by default and #46751 adding the warnings viewer); the local agent message board (#46959, #46966, #46978, #46979, #46985, #46989, #46994); subagent MCP elicitation (#46877); ToolPolicy (#46999); agent command center work (#46837, #46838, #46839, #46840, #46882); terminal probe timeout 100 ms -> 250 ms (#46855); sandbox and diagnostics hardening (#44639, #45984, #46500, #46962). Docs, verified independently of the release at this access (ChatGPT & Codex changelog, HTTP 200): a dated entry headed “Codex CLI Release: 0.156.0” appears under 2026-09-22 carrying npm install -g @openai/codex@0.156.0, and its New Features list states “Voice conversations are enabled by default, with an F8 toggle, a /voice settings picker, and bundled audio runtimes for Linux and Windows. (#44921, #46071, #44622, #44714, #44922)” and “Filter tasks by status and create worktree sessions from the agent command center; worktree support is now enabled by default. (#46839, #45276, #44870)” – so the docs changelog is current with stable the same day, superseding the 0.155.0 entry’s “enabled through /experimental” wording. Reference-page lag at the same access: the CLI developer-commands reference lists /experimental (no longer naming voice among its examples) and /usage, but not /voice, /tui, or /daemon, and --no-daemon is absent from its flags table; the config reference lists none of the keys behind these defaults, which are, per the code: [features] realtime_conversation (#44921), [features] worktrees (#44870), [features] guardian_reuse_parent_compaction (#46522), and, for the fullscreen TUI, [tui] fullscreen_transcript (#46849) (corrected September 23 from key names that do not exist in the code); the Git worktrees page says “By default, chats use a Codex-managed worktree” in the desktop-app context but does not address the CLI default, so the changelog line is the only first-party statement of the CLI default; and the Voice feature page still covers ChatGPT Voice in the desktop app, a separate surface. Verified 2026-09-22. Additional 0.156.0 detail, relocated from the body September 23: bug fixes listed in the release – streamed answers and plans preserved across failed, interrupted, and subagent-completed turns (#45549, #46867); clipboard forwarding in tmux and SSH (#45457) and tab indentation in keystroke-style pastes (#45454); Plan mode restored on resume (#45519) and thread identity and settings kept when editing an earlier prompt (#45845); login recovery through system proxies (#46562) and MCP credential refresh when OAuth discovery returns 503 (#44636). Also shipped: catalog model display names across the TUI (#46503); bounded filesystem path diagnostics in codex doctor (#46543); the personality feature flag retired, with friendly and pragmatic documented as no longer selecting a style (#45809); daybreakEnabled on thread start (#45513, no public docs); the Astra composer starfield (#46096); independent rendering toggles for tables, Mermaid, and math (#46938) and Mermaid stadium nodes (#46856); /status identifying local background servers (#46905); and opt-in automatic background-server startup (#46117). The fullscreen-TUI and voice PR lists appear in the /tui and /voice rows. Six bundled themes: ada, babbage, curie, cushman, dali, davinci (#46504). ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  170. The 0.157.0-alpha watch line plus the in-flight 0.156.1 tag, pre-release and subject to change; supersedes 160’s alpha.8 snapshot. Verified 2026-09-22 against the GitHub API and the npm registry. npm dist-tags at this access: latest = 0.156.0, alpha = 0.157.0-alpha.10 (npm publish 22:21:59 UTC, September 22) with every per-platform alpha-* tag matching, so @alpha sits semver-ahead of latest. Compare: rust-v0.156.0…rust-v0.157.0-alpha.10, ahead_by 101, behind_by 1 (the stable’s own release bump). Release bodies on the line are stubs carrying only the version string, so the compare is the only source. Items named in the body text: 49e95cc7 “Add GPT-6 Sol and Luna to the model catalog (#47332)” and “Add GPT-6 Sol and Luna to Amazon Bedrock catalogs (#47347)”; “Remove the ultrafast service tier from gpt-5.6-sol (#47130)”; “Update model catalog descriptions and GPT-5.6-Sol priority (#47085)”; the queued default flips “Enable the fullscreen transcript by default (#47178)”, “Enable automatic daemon startup by default (#47179)”, and “Enable Guardian thread context by default (#47275)”; “Add explicit gateway login control and authentication status (#47170)” with “Add explicit gateway OAuth sign-in to app-server (#47207)”; “Enable /import in remote and local daemon sessions (#47317)”; “Add extra policy configuration for Guardian reviews (#47125)”; “Support caller-provided MITM CAs in the network proxy (#47132)”; “Add conditional turn interruption that preserves pending input (#47340)”; “Show the voice toggle in the TUI shortcut overlay (#47082)”; “Honor configured proxies for realtime WebSocket connections (#47101)”. The GPT-6 Sol and Luna catalog work is corroborated first-party by a docs changelog entry headed “GPT-6 Sol and Luna in Codex and ChatGPT Work” dated 2026-09-22, which names the model IDs gpt-6-sol and gpt-6-luna; because the CLI catalog commits are not in any shipped stable, this guide’s model table, pricing rows, and recommendation are deliberately left unchanged pending an item-level read of the models documentation and a stable release carrying the catalog entries. In-flight 0.156.1: the tag rust-v0.156.1 exists (tip commit b412ff32, committed September 23, 2026 00:45:44 UTC) and rust-v0.156.0…rust-v0.156.1 is ahead_by 2 / behind_by 1, the two commits being f1b21bb2 “Add GPT-6 Sol and Luna to the 0.156 model catalog (#47332)” and the release-prep commit; however the releases API returns HTTP 404 for rust-v0.156.1 and npm view @openai/codex@0.156.1 returns E404, so no release and no published package exist at this access. It is in flight, not released, and no body claim in this guide depends on it; this repository routinely produces tags without releases (0.156.0-alpha.15 and alpha.18 were the same). None of the 0.157.0-alpha line is stable; none of it is documented in the body until it ships; per-item re-verification against the stable compare stays mandatory at promotion. Verified 2026-09-22. Resolved September 23, 2026: the tag became a published release (GitHub release rust-v0.156.1 at 02:41:36 UTC, npm latest = 0.156.1 at 02:45:25 UTC), and the model table, pricing rows, and recommendation were updated from the shipped catalog and the models docs; see 171. ↩↩↩

  171. Codex CLI v0.156.1 release notes, stable, published September 23, 2026 (02:41:36 UTC; tag created 00:45:45 UTC); npm latest moved 0.156.0 -> 0.156.1 at 02:45:25 UTC, with every per-platform tag (linux-x64, linux-arm64, win32-x64, win32-arm64, darwin-arm64, darwin-x64) reading 0.156.1 by 02:50:44 UTC; install npm install -g @openai/codex@0.156.1. Release body, verbatim: “Choose GPT-6 Sol or GPT-6 Luna from the model picker. The rate-limit switch prompt now recommends GPT-6 Luna. (#47405)”. rust-v0.156.0…rust-v0.156.1 is two commits: f1b21bb2 “Add GPT-6 Sol and Luna to the 0.156 model catalog (#47332)” and the release-prep commit. PR #47405, “[hotfix 0.156.0] Add GPT-6 Sol and Luna to the model catalog (#47332),” targeted release/0.156 and was closed without a GitHub merge (the commit landed directly, carrying #47332’s number); #47332 is the main-line PR, merged September 22, 2026 (18:17:56 UTC). What the shipped catalog defines (codex-rs/models-manager/models.json at the tag): gpt-6-sol (“GPT-6-Sol”, “Workhorse model for coding and everyday work,” priority 2, default_reasoning_level medium, efforts low through ultra, minimal_client_version 0.155.0, default_service_tier priority with one tier, Fast “1.5x speed”) and gpt-6-luna (“GPT-6-Luna,” “Fast and affordable model for easier tasks,” priority 3, default medium, efforts low through max with no ultra, same client floor and Fast default). Both set context_window 272,000 (max_context_window 872,000), supported_in_api true, and visibility list. gpt-6-astra keeps priority 1 (the bundled default), default_reasoning_level low, no default service tier, and the new description “Frontier intelligence for the most demanding work.” The GPT-5.6 entries are relabeled (“Older coding model for complex work,” “Older balanced model for straightforward work,” “Older fast and efficient model”), GPT-5.5 becomes “Legacy coding model,” and upgrade targets are set: gpt-5.6-sol, gpt-5.6-terra, gpt-5.5, and gpt-5.4 to gpt-6-sol; gpt-5.6-luna to gpt-6-luna; the retired gpt-5.4-mini migration target moves from gpt-5.6-luna to gpt-6-luna. Upgrade copy, verbatim: “Our latest Sol is more intelligent and more efficient so your usage limits go further. This model is a great daily driver for complex tasks, especially coding.” and “Our latest Luna is significantly more efficient, so your usage limits go even further. Reach for it for any job that doesn’t require frontier intelligence.” The TUI’s LUNA_MODEL constant, used by the rate-limit switch prompt, changes to gpt-6-luna. The Bedrock Mantle and Runtime picker snapshots in the same commit list no GPT-6 Sol or Luna (the Bedrock catalog entries are #47347 on the 0.157 alpha line). Fast default: codex-rs/tui/src/service_tier_resolution.rs applies a model’s default_service_tier when no service_tier is configured, the fast_mode feature is enabled (it is stable and on by default), and the user has not opted out of Codex-managed Fast defaults. Default-off keys, verified in code at the tag (codex-rs/features/src/lib.rs, codex-rs/config/src/types.rs): realtime_conversation, worktrees, and guardian_reuse_parent_compaction are each Stage::Stable with default_enabled: true; transcript_v2 is Stage::Deprecated and ignored; tui.fullscreen_transcript defaults to false. codex features disable <key> writes the setting to config.toml, and the global --disable <key> flag is “Equivalent to -c features.<name>=false.” #44870’s daemon message, verbatim: “The local Codex service cannot check background terminals. Run codex app-server daemon update, then restart Codex.” #46522’s description: reuse applies “when restarting review sessions.” #46883: /tui “saves tui.fullscreen_transcript to the selected user config file” and keeps the running renderer unchanged. Docs, accessed September 23, 2026: the ChatGPT & Codex changelog carries a 2026-09-23 “Codex CLI 0.156.1” entry with the same text as the release body, and a 2026-09-22 entry “GPT-6 Sol and Luna in Codex and ChatGPT Work”: “rolling out to Codex and ChatGPT Work at lower token prices than their GPT-5.6 predecessors. Use Sol for complex coding and agentic workflows, and Luna for focused, high-volume tasks. Both models are rolling out to Plus, Pro, Business, Enterprise, and Edu users. Free and Go users can access Luna in the desktop app. Availability depends on rollout and workspace settings; Enterprise administrators must enable the new models.” The models page “Recommended models” section leads with Sol and Luna; its model cards describe Astra as “Our most capable model for complex work across code, apps, and research,” Sol as “Built for complex coding and agentic workflows, with stronger factual reliability and clearer communication than GPT-5.6 Sol,” and Luna as “Our most efficient model for focused, high-volume tasks”; Astra and Luna are marked unavailable for Codex cloud and Sol’s card has no cloud row; “GPT-5.6 Sol, GPT-5.6 Terra, and GPT-5.6 Luna remain available during the rollout”; suggested starting efforts are Medium for Sol, High for Luna, and Light (low) for Astra; “GPT-6 Luna supports reasoning efforts up to Max, but not Ultra”; the default-model example is model = "gpt-6-sol"; GPT-5.5 retires from ChatGPT, ChatGPT Work, and Codex on October 14, 2026 (API unaffected), with GPT-6 Sol named for Plus, Pro, Business, Enterprise, and Edu and GPT-6 Luna for Free and Go; GPT-5.4 and GPT-5.4 mini, retired August 31, now map to gpt-6-sol and gpt-6-luna. The pricing page lists Standard-speed credits per 1M input / cached / output tokens of GPT-6 Astra 250 / 25 / 1,250, GPT-6 Sol 50 / 5 / 250, GPT-6 Luna 2.5 / 0.25 / 12.5, with GPT-5.6 rates “unchanged”; “Fast mode uses 2.5x the Standard credit rate for GPT-6 Astra, Sol, and Luna where available”; “GPT-5.6 usage averages 5-30 credits per message”; five-hour local-message estimates for Plus of GPT-6 Astra 5-45, Sol 15-150, Luna 350-3,000 (Pro 5x: 25-225, 70-700, 1,750-14,000; Pro 20x: 100-900, 300-3,000, 7,000-56,000); cloud chats on ChatGPT plans use GPT-5.6 Sol; Free and Go get “GPT-6 Luna at Standard speed in the desktop app, subject to rollout.” API model pages (gpt-6-sol, gpt-6-luna): 1,050,000 context window, 922,000 max input, 128,000 max output; Sol $2 input / $0.20 cached / $10 output per 1M tokens, knowledge cutoff April 20, 2026; Luna $0.10 / $0.01 / $0.50, cutoff May 18, 2026; both “Prompts with more than 272K input tokens are priced at 2x input and cache rates and 1.5x output for the full request,” and “Fast mode is priced at 2x the applicable rates.” The speed page does not mention a Fast default for any model. Not verified: no first-party benchmark numbers for GPT-6 Sol or Luna were read; the practical meaning of the catalog’s max_context_window value is not documented; entitlement for any given account depends on rollout. Verified 2026-09-23. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  172. Alpha-channel state, verified 2026-09-23 against the GitHub API and the npm registry. npm dist-tags: latest = 0.156.1 and alpha = 0.158.0-alpha.2 (npm 13:24:05 UTC; GitHub release rust-v0.158.0-alpha.2 13:07:10 UTC), with every per-platform alpha-* tag matching. rust-v0.158.0-alpha.1 exists as a tag only (tag object dated 10:48:51 UTC; no GitHub release, not on npm). The 0.157 line reached rust-v0.157.0-alpha.11 (GitHub 04:50:17 UTC; npm 05:01:29 UTC); rust-v0.157.0-alpha.10 was published on GitHub September 22 at 22:07:05 UTC and on npm at 22:21:59 UTC (the v2.74 body gave the npm time as the publish time). No rust-v0.157.0 tag or release and no 0.157.0 npm version exist, so the 0.157 line has not produced a stable; it is not described as skipped, because no higher version has shipped stable. rust-v0.157.0-alpha.11…rust-v0.158.0-alpha.1 is ahead_by 7, behind_by 1. The fourth out-of-band cut: rust-v0.155.0-alpha.16.3 (tag 02:50:51 UTC, GitHub release 03:41:37 UTC, npm 03:47:24 UTC), three commits over rust-v0.155.0-alpha.16: “Add system proxy fallback for login and startup requests (#46562)”, “Backport GPT-6 Sol and Luna to 0.155 alpha (#47332)”, and the release bump; no 0.155.0-alpha.16.2 exists as a tag or npm version. The alpha tag did not point at alpha.16.3 at this access, and whether it did between accesses is not recoverable from the registry. Content of the 0.157 alpha line through alpha.10 is itemized in 170; rust-v0.156.0…rust-v0.157.0-alpha.11 is 127 commits ahead. ↩↩↩

  173. Dated history of recent alpha lines and how each resolved into stable, relocated from the v2.74 stability note on September 23, 2026. 0.149.0 (August 20): the alpha watch list shipped in full.120 0.150.0 (August 26): the list split; five items shipped (the Interrupt hook, the /copy picker, AGENTS.md skipped in untrusted projects, features.network_proxy.credential_broker, and Guardian v2’s review_scope.computer_use_only as a configurable surface) and five rolled to 0.151 (/recap, code-mode WebSocket removal, paginated history as the durable-thread default, the persistent effort, and Guardian v2 image reviews); retained-image compaction budgeting (#40994) reached stable through 0.150.1’s backport (#41003).132133 0.151.0 (August 29): all ten items shipped with zero reverts; the release body lists only #41183-#41209, and the full set is the 164-commit rust-v0.150.1…rust-v0.151.0 compare.137134135 0.152.0 (September 1): all thirteen items shipped, but update_plan landed opt-in because #41744 reversed #41630’s default-on state before the branch cut.136138 0.153.0-0.153.2 (September 3): no watched alpha items promoted.140142143 0.153.3-0.153.4 (September 4): four PRs plus a bump; the bundled Astra catalog (#42607) promoted as #42874 and the Bedrock catalogs (#42619) as #42805.147148 Around this time developers.openai.com/codex/* began redirecting (HTTP 308) to learn.chatgpt.com/docs/*, the canonical docs host since.146 0.154.0 (September 9): a branch cut at about alpha.6; none of alpha.7’s 58 commits is in the 249-commit rust-v0.153.4…rust-v0.154.0 compare; pre-release records 141, 144, 150, 151.152 0.155.0 (September 17): another branch cut; the voice and worktree default flips (#44921, #44870, merged September 11) were not ancestors of the tag and rode to 0.156; pre-release records 154, 155.156 0.156.0 (September 22): a full promotion of fifteen items with no reversals. It was a late cut: the stable content equals rust-v0.156.0-alpha.16 (published September 21, 16:51 UTC, 77 minutes before rust-v0.157.0-alpha.1), the tag was created September 22 at 18:39 UTC, and nine 0.157.0-alpha releases preceded the 19:51 UTC publish; alpha.17 carried 21 commits not in stable and alpha.18 65, cumulatively (alpha.18’s 65 include alpha.17’s 21). An access on the morning of September 22 found no rust-v0.156.0 tag, and v2.73 of this guide recorded the line as skipped; the stable arrived that evening. The rule that came out of it: a missing tag describes only the moment it was checked, so first confirm which version number a stable lands as, and call a number skipped only after a higher number has shipped stable. Pre-release records 157, 159, 160.169 0.156.1 (September 23): recorded as a tag before its release existed (170); published hours later.171 Dist-tag anomalies: alpha pointed at the out-of-band 0.155.0-alpha.2.5 (September 16) and then 0.155.0-alpha.9.2 (September 18, 03:09 UTC, after stable; two cherry-picked Windows sandbox fixes, #46237 and #46333), each time resolving @alpha to a build older than latest; both resolved on their own within days. Further out-of-band cuts without a captured tag: 0.155.0-alpha.16.1 (September 22, 00:20 UTC; #46562 plus the bump)160 and 0.155.0-alpha.16.3 (September 23).172 ↩↩

  174. Codex CLI v0.157.0 release notes, stable (prerelease false), published September 25, 2026 (02:31:06 UTC; npm 02:35:19 UTC), and v0.157.1, stable, published September 26, 2026 (01:02:31 UTC; npm 01:06:57 UTC); npm latest and every per-platform tag read 0.157.1 on September 26. Install npm install -g @openai/codex@0.157.1. 0.157.0: rust-v0.156.0…rust-v0.157.0 is 128 commits (behind_by 1). The stable was cut from the 0.157 alpha line, not skipped: rust-v0.157.0-alpha.11.1…rust-v0.157.0 is one commit, the release-notes commit 00c972ed, and alpha.11.1 is alpha.11 plus 0d7f10b8 “Add diagnostic reasons to MCP attribution errors (#47899).” Each claim was checked in the compare and in code at the tag: 5106a523 “Enable the fullscreen transcript by default (#47178)” (codex-rs/config/src/types.rs: fullscreen_transcript uses default_true, “alternate-screen restrictions take precedence”; the PR: “tui.fullscreen_transcript=false restores terminal scrollback”); 75ec81c8 “Enable automatic daemon startup by default (#47179)” (codex-rs/features/src/lib.rs: daemon_auto_start is Stage::Stable, default_enabled: true, where 0.156.1 had it Stage::Experimental; the PR removes it from /experimental); launch exclusions in codex-rs/tui/src/daemon_startup.rs include --no-daemon, --oss, --profile, workload identity, CODEX_EXEC_SERVER_URL, and most -c/--enable/--disable overrides; d6093d32 (#47318) adds the run-without, restart, or cancel choices, “Default to cancel”; 279ba894 “Enable Guardian thread context by default (#47275)” (guardianv2.thread_context Stage::Stable, default_enabled: true, was UnderDevelopment/false at 0.156.1; the schema: “Use thread-owned context for sync and async Guardian. Defaults to true. Independent of the Guardian v2 enabled toggle”); df309410 “Add GPT-6 Sol and Luna to Amazon Bedrock catalogs (#47347)” (“Make GPT-6 Sol the default and provider fallback model”; codex-rs/model-provider/src/provider.rs asserts the Bedrock default is openai.gpt-6-sol); cf6754e6 (#47130) removes ultrafast from gpt-5.6-sol; 24462234 “Refresh bundled model metadata and instructions (#47397)” sets supports_experimental_context to false for gpt-6-astra (true at 0.156.1) and false or absent for every other bundled model, and codex-rs/core/src/session/token_budget.rs returns early when !starting_model.supports_experimental_context; plus #47185, #47317, #47191, #47322, #47381, #47422, #47423, #47399, #47417, #47101, #47142, #47204, #47122, #47393, #47389, #47407, #47414, and c6ad6f33 (#47361, Windows default DACL limited to the runner’s logon SID). The bundled gpt-6-sol, gpt-6-luna, and gpt-6-astra entries are unchanged from 0.156.1 apart from Astra’s flags and plan list (Astra priority 1, no default service tier; Sol and Luna default_service_tier priority), and codex-rs/tui/src/service_tier_resolution.rs is byte-identical to 0.156.1, so the Fast-default behavior in 171 still holds; gpt-5.6-sol priority moves 6 -> 4 (#47085). 0.157.1: rust-v0.157.0…rust-v0.157.1 is five commits: 54abc9d3 (#48138, CREATE_NO_WINDOW for the code-mode host), 036fe4db (#48157, “Remove the job-membership checks from the launch preflight and the spawned daemon”), dd18e81f (#48238, CREATE_NO_WINDOW for local stdio MCP servers), 51db6761 (#48272, “Detached Windows daemons can inherit the launcher’s output pipes, leaving callers waiting for EOF”), and the release commit; each PR merged to main September 25 and was cherry-picked. The release body, verbatim: “Release highlights could not be determined: the supplied PR index is empty, and the GitHub tag comparison returned 404.” Docs, accessed September 26, 2026: the changelog carries 2026-09-25 “Codex CLI 0.157.0” and 2026-09-26 “Codex CLI 0.157.1” entries matching the release bodies, and no model or pricing entry after September 23; the models page still recommends Sol for “everyday work and complex coding,” Luna for “focused, high-volume tasks,” and Astra for “the hardest end-to-end work,” still says GPT-5.5 retires from ChatGPT, ChatGPT Work, and Codex on October 14, 2026, and still carries the “Experimental context management” opt-in; the pricing and speed pages keep the rates and the 2.5x Fast multiplier in 171, and the speed page still names no Fast default. The config reference documents neither tui.fullscreen_transcript nor daemon_auto_start. Verified 2026-09-26. ↩↩↩↩↩↩↩↩↩↩↩

  175. Alpha-channel state, verified September 26, 2026 against the npm registry and the GitHub releases API. npm dist-tags: latest = 0.157.1, alpha = 0.159.0-alpha.4 (npm 06:33:57 UTC; GitHub rust-v0.159.0-alpha.4 06:21:38 UTC), every per-platform alpha-* tag matching. The 0.158 line: rust-v0.158.0-alpha.1 is a tag only; alpha.2 (September 23, 13:07 UTC) through alpha.15 (September 25, 17:33 UTC) were published; no rust-v0.158.0 tag and no 0.158.0 npm version exist. rust-v0.159.0-alpha.1 was published September 25 at 18:48 UTC (npm 19:02 UTC); rust-v0.158.0-alpha.15…rust-v0.159.0-alpha.1 is ahead_by 5, behind_by 1. Out-of-band cuts since 172: 0.155.0-alpha.16.4 (GitHub September 23, 19:55 UTC; three changes over alpha.16 plus the release commit: “Add system proxy fallback for login and startup requests (#46562)”, “Backport GPT-6 Sol and Luna to 0.155 alpha (#47332)”, and “Allow unrelated namespace mounts in Linux sandbox socket checks (#46535)”), 0.157.0-alpha.11.1 (September 24, 21:50 UTC; #47899 over alpha.11, and the base of stable 0.157.0), and 0.158.0-alpha.15.1 (September 26, 02:58 UTC) and 0.158.0-alpha.2.1 (04:51 UTC), each carrying the same four Windows fixes as 0.157.1 over its base. 0.158.0-alpha.2.1 reached npm at 05:04:15 UTC, after 0.159.0-alpha.3; whether the alpha tag pointed at it before 0.159.0-alpha.4 is not recoverable from the registry. 0.158 is not described as skipped, because no higher version has shipped stable. ↩↩

  176. Codex CLI v0.158.0 release notes, stable (prerelease false), published September 28, 2026 (05:07:23 UTC; tag created 04:07:03 UTC; npm 05:12:20 UTC). rust-v0.157.1…rust-v0.158.0 is ahead_by 207, behind_by 6 (the five 0.157.1 commits and 0.157.0’s release commit); rust-v0.157.0…rust-v0.158.0 is 207 ahead, 2 behind. The cut: rust-v0.158.0-alpha.15.4…rust-v0.158.0 is one commit, the release-notes commit 064c6b8c; rust-v0.158.0-alpha.15…rust-v0.158.0 is 17 ahead: the release commit plus sixteen cherry-picks, namely the four 0.157.1 Windows fixes (#48138, #48157, #48238, #48272) and #48469, #48483, #48491, #48502, #48513, #48544, #48548, #48549, #48352, #48621, #48686, and #48824. npm latest: the release workflow at the tag (.github/workflows/rust-release.yml) publishes a plain x.y.z version without --tag, and its comment says “The root wrapper advances @openai/codex@latest as soon as it publishes”; the registry keeps no dist-tag history, so 0.158.0’s time as latest (September 28, 05:12 UTC, until 0.159.0 at September 29, 08:10:59 UTC) is inferred from that workflow and the publish times. Defaults, checked in code at the tag and unchanged at rust-v0.159.1: c098f97e “Enable terminal input approval by default (#47799)” (codex-rs/features/src/lib.rs: write_stdin_approval is Stage::Stable, default_enabled: true, where 0.157.1 had Stage::UnderDevelopment, false; codex-rs/core/src/unified_exec/stdin_approval.rs skips review when the feature is disabled, and its header reads “Runtime-internal grants alone do not require review; agent grants and policy drift do”); 60713126 “Avoid stdin approval for runtime-only permission grants (#48073)”; #47639 “Add tui.copy_on_select with auto (default), always, and never modes” (codex-rs/config/src/types.rs: “Defaults to auto: enabled except in direct terminals known to forward their native copy shortcut (Ghostty 1.2+, Kitty on macOS, Windows Terminal, and VS Code on Windows)”; #48469 is the cherry-picked terminal-default change); #48118, right_click_paste with Auto as the default (“Enable on Windows/WSL/Linux”), On, and Off; a6df7385 “Make thread-owned Guardian context always enabled (#47686)” (“Deprecate and ignore features.guardianv2.thread_context, including profile overrides, with a migration notice. Ignore managed requirements for the removed flag with a warning”) and 920e1a34 (#47689). At the tag guardianv2.thread_context is Stage::Removed, the notice reads “[features.guardianv2].thread_context is deprecated and ignored” with “Remove thread_context from [features.guardianv2] in config.toml, including profile overrides,” and the schema says “Deprecated and ignored; thread-owned Guardian context is always enabled.” Also: 694d8d45 (#47932: GPT-5.4 removed from the bundled and Bedrock catalogs; codex-rs/tui/src/app/startup_prompts.rs still maps saved gpt-5.4 to gpt-6-sol); b725da3b (#47971: “Display prolite as ‘Pro’, pro as ‘Pro (More)’, and promax as ‘Pro (Max)’”); #48116, #47891, #47601, #47648, #47484, #47956, #48101, #47672, #47695, #47919, #47623, #47974, #47879, #47819, and #47896. daemon_auto_start, worktrees, realtime_conversation, and guardian_reuse_parent_compaction stay Stage::Stable with default_enabled: true, and fullscreen_transcript keeps default_true, at rust-v0.159.1. The docs changelog carries a 2026-09-28 “Codex CLI 0.158.0” entry matching the release body; the config reference documents none of write_stdin_approval, copy_on_select, right_click_paste, fullscreen_transcript, or daemon_auto_start. Verified 2026-09-29. ↩↩↩↩↩↩↩↩↩

  177. Codex CLI v0.159.0 release notes, stable, published September 29, 2026 (08:05:42 UTC; tag created 06:52:06 UTC; npm 08:10:59 UTC). rust-v0.158.0…rust-v0.159.0 is ahead_by 89, behind_by 17 (0.158.0’s sixteen cherry-picks and its release commit, which reach main as different commits). The cut: rust-v0.159.0-alpha.13…rust-v0.159.0 is one commit, the release-notes commit 687a119f; alpha.13 was published September 28 at 15:20:06 UTC. Already in 0.158.0: #48138, #48157, #48238, #48272, #48352, #48469, #48483, #48491, #48502, #48513, #48544, #48548, #48549, #48621, #48686, and #48824 appear in both compares. tui.prompt_suggestions exists at rust-v0.158.0-alpha.15 (codex-rs/config/src/types.rs: “Suggest a next message after successful turns. Defaults to false.”) and at none of rust-v0.156.1, rust-v0.157.1, rust-v0.158.0, or rust-v0.159.0. New: #48135 and #48141, instant_interrupt (codex-rs/features/src/lib.rs: Stage::UnderDevelopment, default_enabled: false, “Preempt responses and yield foreground code-mode observations on new user input”); #48205, #48206, #48805, #48814, #48895, #48628, #48828, #48199, #48754, #48151, #48155; #48176 (“Add .aws to the protected metadata paths alongside .git, .agents, and .codex … Preserve explicit user rules that override the default protection”); #48565 (“Allow macOS TLS trust evaluation in network-enabled Seatbelt profiles”); #48198 (“Honor execution environment proxy requirements”); #48604 (the plugin-creator skill deleted). The docs changelog carries a 2026-09-29 “Codex CLI 0.159.0” entry matching the release body. Verified 2026-09-29. ↩↩↩

  178. Codex CLI v0.159.1 release notes, stable, published September 29, 2026 (20:32:34 UTC; tag created 19:24:44 UTC; npm 20:36:58 UTC); npm latest and every per-platform tag read 0.159.1 at the September 29 access. Install npm install -g @openai/codex@0.159.1. rust-v0.159.0…rust-v0.159.1 is three commits (behind_by 1): 9fb2f5f4 “[0.159] Prepare 0.159.1 release backports (#49323),” which carries #49318 (“add GPT-6.1 Sol as the default bundled model and update the older Sol descriptions and model-picker snapshots”); 3b765518 “[0.159] Backport GPT-6.1 Sol Bedrock catalogs (#49342),” which carries #49339 (“adds GPT-6.1 Sol to the Bedrock Mantle and Runtime catalogs and makes it the default”); and the release commit. The release body is a real summary, verbatim: “Added GPT-6.1 Sol as the default model in the bundled catalog and Amazon Bedrock Mantle and Runtime catalogs. (#49323, #49342)”. Code at the tag: codex-rs/models-manager/models.json gives gpt-6.1-sol priority 1 (Astra 2, GPT-6 Sol 3, Luna 4), “Latest workhorse model for coding and everyday work.”, default_reasoning_level low, levels low through ultra, context_window 272000, default_service_tier null with a Fast (priority) tier, supports_experimental_context false, and upgrade null; gpt-6-sol becomes “Previous generation workhorse model.” and keeps default_service_tier priority; the upgrade targets of gpt-5.6-sol, gpt-5.6-terra, and gpt-5.5 stay gpt-6-sol, and of gpt-5.6-luna, gpt-6-luna. The picker snapshot (codex_tui__chatwidget__tests__model_selection_popup.snap) begins “1. GPT-6.1-Sol (default)”, then GPT-6-Astra, GPT-6-Sol, GPT-6-Luna. codex-rs/model-provider/src/provider.rs asserts the Bedrock default is openai.gpt-6.1-sol. codex-rs/tui/src/service_tier_resolution.rs is unchanged from 0.157.1. No bundled model sets supports_experimental_context, and codex-rs/core/src/session/token_budget.rs still skips the experiment for such a model (0.158.0 adds Pro Max to the eligible plans, #47971). Docs, accessed September 29, 2026: the changelog entry “GPT-6.1 Sol in Codex and ChatGPT Work” (2026-09-29): “GPT-6.1 Sol offers near-Astra performance for complex work at a lower cost than Astra.” The models page: “For complex coding and agentic workflows, use GPT-6.1 Sol when available to your account and client”; “The GPT-6.1 Sol launch rollout includes Plus, Pro, Business, Enterprise, and Edu”; “For Enterprise and Edu, the plan keeps GPT-6.1 Sol off by default until an administrator enables it. Free and Go are not included at launch”; “Ultrafast support for GPT-6.1 Sol is coming later”; Astra “for the hardest end-to-end work”; GPT-5.5 still retires October 14, 2026, with GPT-6 Sol and GPT-6 Luna named as replacements; no “Experimental context management” section. The pricing page: GPT-6.1 Sol at 50 / 2.5 / 250 credits per 1M tokens and a Plus and Standard Business band of 15-160; Fast at 2.5x included usage and 2x purchased credits. The speed page: “GPT-6.1 Sol supports Standard and Fast where available.” The config reference uses gpt-6.1-sol as its example and describes features.context_management.experimental_mode as “Experimental context-management setting. The feature is not currently available.” The API model page: $2.00 input, $0.10 cached input, $10.00 output per 1M tokens; a 1,050,000-token context window; 128,000 max output; April 30, 2026 knowledge cutoff; above 272K input tokens, 2x input and 1.5x output for the full request; Fast at 2x. The Amazon Bedrock page does not yet list GPT-6.1 Sol. Verified 2026-09-29. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  179. Alpha-channel state, verified September 29, 2026 against the npm registry and the GitHub releases API. npm dist-tags: latest = 0.159.1, alpha = 0.161.0-alpha.2 (npm 18:45:02 UTC; GitHub rust-v0.161.0-alpha.2 18:32:11 UTC), every per-platform alpha-* tag matching. The 0.159 line ran from alpha.1 (GitHub September 25, 18:48 UTC) to alpha.13 (September 28, 15:20 UTC), the base of 0.159.0 (177). The 0.160 line: tags rust-v0.160.0-alpha.1 through alpha.6 exist; GitHub prereleases and npm versions exist for alpha.2 (September 28, 19:51 UTC), alpha.3 (September 29, 01:32 UTC), and alpha.6 (06:27 UTC), while alpha.1, alpha.4, and alpha.5 are tags only. No rust-v0.160.0 tag and no 0.160.0 npm version exist. rust-v0.160.0-alpha.6…rust-v0.161.0-alpha.1 is ahead_by 1, behind_by 1: 8c0a03fe “Release 0.161.0-alpha.1,” which changes only the version in codex-rs/Cargo.toml; 0.161.0-alpha.1 was published at 16:22:41 UTC (npm 16:37:40 UTC). rust-v0.159.0…rust-v0.160.0-alpha.6 is 54 ahead, 1 behind. 0.160 is not described as skipped, because no higher version has shipped stable. Out-of-band cuts since 175: 0.158.0-alpha.15.2 (September 27, 00:02 UTC), 0.158.0-alpha.15.3 (19:18 UTC), and 0.158.0-alpha.15.4 (September 28, 01:46 UTC), the release-branch builds that led to 0.158.0 (176); whether the alpha tag pointed at any of them is not recoverable from the registry. ↩↩↩

  180. Codex CLI v0.159.2 release notes, stable (prerelease false), published September 29, 2026 (23:57:16 UTC; release commit 22:57:04 UTC; npm September 30, 00:03:49 UTC); npm latest and every per-platform tag read 0.159.2 at the September 30 access. Install npm install -g @openai/codex@0.159.2. rust-v0.159.1…rust-v0.159.2 is ahead_by 2, behind_by 1 (0.159.1’s release commit 8e68a98e; merge base 3b765518): 2851358e “[0.159] Backport Windows console suppression for 0.159.2 (#49385),” merged to release/0.159 at 22:49 UTC, and the release commit ff6aec96, which sets codex-rs/Cargo.toml to 0.159.2. The release body is a real summary, verbatim: “Suppressed console windows flashing on Windows when Codex launches background processes and sandboxed commands. (#49385)”. #49385 cherry-picks #49164 (“Suppress Windows console windows for background subprocesses,” merged to main September 29, 04:38 UTC) and #49308 (“Run piped legacy Windows sandbox processes without a console,” 16:39 UTC) for #48074 (“Windows: terminal windows repeatedly flash during requests after installing the Codex daemon,” open at access); its description says native Windows execution “has not been validated on this exact candidate.” Code: a new crate, codex-rs/utils/process, whose background_command sets CREATE_NO_WINDOW on Windows and is a plain Command::new elsewhere (“Interactive, detached, and private-desktop launches must select their own console policy”). Callers switched to it: core/src/spawn.rs (only StdioPolicy::RedirectForShellTool; Inherit keeps Command::new), core/src/shell_snapshot.rs, hooks/src/registry.rs and hooks/src/engine/command_runner.rs, git-utils/src/git_process.rs (via JobObject::spawn_background), core-plugins (Git and npm), model-provider/src/amazon_bedrock/auth_refresh.rs (only when stdin is not a terminal), login/src/auth/external_bearer.rs, rollout/src/search.rs, exec-server, cli/src/doctor, and windows-sandbox-rs/src/setup.rs; windows-sandbox-rs/src/lib.rs and unified_exec/backends/legacy.rs change ConsoleMode::Inherit to ConsoleMode::NoWindow. Defaults unchanged: the compare touches none of codex-rs/models-manager/models.json, codex-rs/features/src/lib.rs, codex-rs/config/src/types.rs, codex-rs/tui/src/service_tier_resolution.rs, or codex-rs/core/src/session/token_budget.rs. At the tag, models.json gives gpt-6.1-sol priority 1 with default_service_tier null, while gpt-6-sol and gpt-6-luna keep priority; write_stdin_approval and daemon_auto_start are Stage::Stable, default_enabled: true; guardianv2.thread_context is Stage::Removed; fullscreen_transcript keeps default_true, and copy_on_select and right_click_paste default to Auto. Docs, accessed September 30, 2026: the changelog carries a 2026-09-29 “Codex CLI 0.159.2” entry matching the release body and no later entry; the models page still says “For complex coding and agentic workflows, use GPT-6.1 Sol when available to your account and client” and that GPT-5.5 retires from Codex on October 14, 2026; the config reference still says of features.context_management.experimental_mode, “The feature is not currently available”; the pricing page still lists GPT-6.1 Sol at 50 / 2.5 / 250 credits and Fast at 2.5x. Verified 2026-09-30. ↩↩

  181. Alpha-channel state, verified September 30, 2026 against the npm registry and the GitHub releases API. npm dist-tags: latest = 0.159.2, alpha = 0.161.0-alpha.4 (npm 12:02:07 UTC; GitHub rust-v0.161.0-alpha.4 11:49:10 UTC), every per-platform alpha-* tag matching. Since 179: rust-v0.161.0-alpha.3 (GitHub September 30, 02:24:58 UTC; npm 02:39:26 UTC) and alpha.4, whose release bodies read only “Release 0.161.0-alpha.3” and “Release 0.161.0-alpha.4”; rust-v0.161.0-alpha.2…alpha.3 is ahead_by 30 and alpha.3…alpha.4 ahead_by 16, each behind_by 1. rust-v0.160.0-alpha.6.1 (GitHub September 30, 01:09:54 UTC; npm 01:24:04 UTC) is two commits over alpha.6: 917ab708 “[0.160] Backport remaining Windows console fix to frozen alpha.6 (#49386)” and the release commit 4f06e9e5. #49386 (base release/0.160.0-alpha.6, merged September 29, 22:52 UTC) backports #49308 and says alpha.6 “already contains #49164, so only the missing patch is included” and “This does not advance the baked candidate to current main or publish stable 0.160.” No rust-v0.160.0 or rust-v0.161.0 tag and no 0.160.0 or 0.161.0 npm version exist. Whether alpha pointed at 0.160.0-alpha.6.1 before 0.161.0-alpha.3 published is not recoverable from the registry. ↩↩

  182. Codex CLI v0.160.0 release notes, stable (prerelease false), published October 1, 2026 (20:19:13 UTC; npm 20:26:19 UTC). rust-v0.160.0-alpha.6.1…rust-v0.160.0 is ahead_by 2, behind_by 1: cb779962 “[0.160] Backport maintenance-line catalog and security reminder updates (#49763)” and the release commit. #49763 (base release/0.160.0-alpha.6, merged September 30, 23:06 UTC) cherry-picks #49318 (bundled catalog), #49339 (Bedrock catalogs), and #49715 (account-security reminders) “to bring the frozen 0.160 candidate into parity with the fixes delivered on the 0.159 maintenance line”; its codex-rs/models-manager/models.json diff inserts gpt-6.1-sol at priority 1 (default_reasoning_level low, default_service_tier null) and moves gpt-6-astra from 1 to 2 and every later model down one; codex-rs/model-provider/src/amazon_bedrock/catalog.rs gains GPT-6.1 Sol at Bedrock priority 0, and the app-server test now expects openai.gpt-6.1-sol as the Bedrock fallback. rust-v0.159.2…rust-v0.160.1 is 57 commits (ahead_by 57, behind_by 4), 300 files; every commit title was read. Code at rust-v0.160.1: codex-rs/models-manager/models.json is byte-identical to rust-v0.159.2 (same MD5; per-slug diff empty): gpt-6.1-sol priority 1, gpt-6-astra 2, gpt-6-sol 3, gpt-6-luna 4, gpt-5.6-sol 5. codex-rs/features/src/lib.rs differs from rust-v0.159.2 only by two new specs, guardian_root_handoff_context and guardian_conversation_history_tools, each stage: Stage::UnderDevelopment, default_enabled: false. codex-rs/config/src/config_toml.rs AutoReviewToml adds experimental_conversation_history_prompt (“Experimental replacement for the history-retrieval instructions when history tools and Apps are enabled. Omitted or blank values use the built-in prompt.”) and conversation_history_max_output_tokens (“Defaults to 4,000; stricter parent tool limits still apply.”), matching codex-rs/core/config.schema.json; codex-rs/ext/guardian-v2/src/sync_reviewer/conversation_history.rs applies the 4,000 default, and codex-rs/core/src/mcp_tool_call/conversation_history.rs exposes only user_message.search_messages and user_message.read_messages. codex-rs/model-provider-info/src/lib.rs (#49118): env_key is the “Environment variable that stores the user’s API key for this provider”; with requires_openai_auth, “credentials are stored using the backend selected by cli_auth_credentials_store.” codex-rs/cli/src/login.rs run_logout passes cli_auth_credentials_store_mode to logout. codex-rs/tui/src/subscription.rs maps Pro, ProLite, and ProMax to “Pro 200,” “Pro 100,” and “Pro 500” (#49043, #49079). codex-rs/tui/src/projectless.rs applies workspace defaults only when no project layer, saved trust, explicit sandbox or permission setting, remote workspace, or managed default intervenes (#49160). Other items from PR descriptions: #49036, #49057, #49038, #49106, #49112, #49037, #49135, #49119, #49093, #49105, #49144, #49145, #49161, #49171. docs/config.md at the tag is a stub pointing to the hosted docs; the config reference, accessed October 6, 2026, describes model_providers.<id>.env_key as “Environment variable supplying the provider API key” and does not yet list the new Guardian flags or auto_review keys. Verified 2026-10-06. ↩↩↩↩↩

  183. Codex CLI v0.160.1 release notes, stable (prerelease false), published October 5, 2026 (18:29:37 UTC; npm 18:33:51 UTC); npm latest and every per-platform tag read 0.160.1 at the October 6 access. Install npm install -g @openai/codex@0.160.1. rust-v0.160.0…rust-v0.160.1 is ahead_by 2, behind_by 1: 91c0ea5d “Backport Windows remote MCP environment preservation to 0.160 (#51121)” and the release commit, touching only codex-rs/rmcp-client/src/stdio_server_launcher.rs and codex-rs/Cargo.toml (version 0.160.1). #51121 is the exact single-file patch of #50129: “Preserve SYSTEMROOT, TEMP, and TMP in the remote environment allowlist,” with a regression test that “unrequested secrets remain excluded.” At the tag, the launcher chains ["SYSTEMROOT", "TEMP", "TMP"] into the remote allowlist. Verified 2026-10-06. ↩↩↩

  184. Codex CLI v0.159.3 release notes, stable (prerelease false), published September 30, 2026 (22:57:34 UTC; npm 23:02:02 UTC). Release body, verbatim: “Eligible local sessions signed in with ChatGPT can now show optional reminders to complete account security setup. (#49744)”. rust-v0.159.2…rust-v0.159.3 is ahead_by 2, behind_by 1: 9fa22a5c “[0.159] Backport account security setup reminders for 0.159.3 (#49744)” (merged to release/0.159 at 21:44 UTC) and the release commit; 24 files. Upstream #49715: notices fetched asynchronously “for local ChatGPT sessions using the OpenAI provider,” shown “as dismissible inline banners with a browser action, while giving applicable usage banners priority,” with dismissal preserved “across thread changes, reconnects, and banner replacement.” codex-rs/tui/src/security_setup.rs at rust-v0.160.1 (the same change via #49763): “The server owns eligibility, rollout and cutoff copy. Reads never block a turn; no reminder analytics are sent. Unknown or unavailable state produces no notice”; it returns early for non-openai providers, remote workspaces, non-ChatGPT auth, and FedRAMP accounts, and accepts only https://chatgpt.com action URLs. Verified 2026-10-06. ↩↩

  185. Alpha-channel state, verified October 6, 2026 against the npm registry and the GitHub releases API. npm dist-tags: latest = 0.160.1, alpha = 0.162.0-alpha.16 (npm October 5, 21:53:28 UTC; GitHub rust-v0.162.0-alpha.16 prerelease, 21:37:19 UTC), every per-platform alpha-* tag matching. rust-v0.161.0-alpha.13.1 is a GitHub prerelease (October 6, 05:27:02 UTC; npm 05:41:18 UTC) published under the release-0.161.0-alpha.13.1-alpha dist-tag, not alpha. The three most recent non-prerelease GitHub releases are rust-v0.160.1, rust-v0.160.0, and rust-v0.159.3; no 0.161.0 stable exists. 0.161 is not described as skipped, because no higher version has shipped stable. ↩↩

  186. Codex CLI v0.161.0 release notes, stable (prerelease false), published October 7, 2026 (15:58:45 UTC; npm 16:04:02 UTC). rust-v0.161.0-alpha.13.1…rust-v0.161.0 is ahead_by 1, behind_by 1 (the release commit); rust-v0.160.1…rust-v0.161.0 is ahead_by 155, behind_by 4. New-features bullets verbatim: “Sign in to MCP servers from an active terminal session with /mcp login <name>. (#49290)”; “Choose your microphone, speaker, and microphone input channels for voice conversations, with preferences saved locally. (#49437, #49836)”; “Daybreak is opt-in through --enable cli_daybreak or features.cli_daybreak=true; daybreak=true alone is insufficient. By default, controls and indicators are hidden, /daybreak is unavailable, and automatic Cyber routing is omitted” and “Opt-in routing requires eligible ChatGPT sign-in, the OpenAI provider, and advertised model/program support. (#49856, #49858, #49859, #49861, #51207)”; “Select a Cyber access program per turn with codex exec --cyber-access-program or the TypeScript SDK’s cyberAccessProgram option. The explicit exec override remains available with cli_daybreak disabled and leaves the saved choice unchanged. (#49939, #51207)”; “Amazon Bedrock supports multi-agent V2 and Ultra reasoning on compatible models; Bedrock Mantle also accepts AWS GovCloud regions. (#49345, #49813)”; “Authentication guidance now accounts for keyring storage instead of implying credentials always reside in auth.json. (#49361)”. The note’s “GPT-6.1 Sol is now the default model in the bundled and Amazon Bedrock catalogs. (#49318, #49339)” names the PRs v0.159.1 shipped: codex-rs/models-manager/models.json at rust-v0.161.0 has the same MD5 as at rust-v0.160.1 (c1b6edce). At the tag, codex-rs/tui/src/slash_command.rs describes /mcp as “list MCP tools; use /mcp verbose or /mcp login ” and /daybreak as “turn Daybreak on or off”; codex-rs/exec/src/cli.rs defines --cyber-access-program <PROGRAM> (“Request an experimental Cyber access program for this turn (OpenAI provider only). Omit to use server defaults”) with the values standard, daybreak_blue, and daybreak_red; codex-rs/models-manager/models.json lists gpt-daybreak-blue-latest and gpt-daybreak-red-latest with "visibility": "hide". PR-list entries: “#49807 Enable API-key model discovery by default”, “#49437 Add local audio device selection to TUI voice settings”, “#49836 Allow microphone channel selection for voice conversations”. Verified 2026-10-11. ↩↩↩↩↩↩

  187. Codex CLI v0.162.0 release notes, stable (prerelease false), published October 8, 2026 (18:55:59 UTC; npm 19:01:18 UTC). rust-v0.162.0-alpha.18.1…rust-v0.162.0 is ahead_by 1, behind_by 1; rust-v0.161.0…rust-v0.162.0 is ahead_by 227, behind_by 2. New-features bullets verbatim: “Add tools for creating and listing managed Git worktrees from trusted local projects when the worktrees feature is enabled. (#50148)”; “Pin tasks in the agent Command Center with p and keep them in a shared Pinned group when supported by the server. (#51500)”; “Navigate and copy transcript blocks with /copy, use Ctrl+Insert to copy selections, and tune mouse-wheel scrolling with tui.mouse_scroll_speed. (#50434, #50215, #50209)”; “Configure live web access and remote compaction capabilities for custom Responses-compatible model providers. (#50459)”; “Add JavaScript helpers for streaming promise results as they settle, plus opt-in ranked tool search in Code Mode. (#51126, #51209)”; bug-fix bullet “Preserve existing CRLF line endings in apply_patch updates without requiring an opt-in. (#51203)”. The instant-interrupt flip is absent from the curated bullets: PR #51812 “Enable instant interrupts by default” merged October 7, 2026, and codex-rs/features/src/lib.rs carries instant_interrupt with default_enabled: false at rust-v0.161.0 and true at rust-v0.162.1, stage UnderDevelopment at both; Features::with_defaults() enables every spec whose default_enabled is true, whatever its stage. Same file, 0.161.0 to 0.162.1: apply_patch_preserve_line_endings moves to Stage::Removed; ultrafast_mode is added as Stable, default_enabled: true (“Enable Ultra Fast mode independently of Fast mode”; service_tier_enabled("ultrafast") consults it); code_mode_tool_search, code_mode_only_strict_3p_tools, guardianv2_decisions_comparison, incremental_tools, multi_agent_v2_dynamic_tools, and stable_environment_tools are added UnderDevelopment, off. codex-rs/models-manager/models.json at rust-v0.162.1 contains no "ultrafast" tier and differs from rust-v0.160.1 only by dropping null instructions_variables fields. codex-rs/config/src/tui_mouse_scroll.rs rejects a tui.mouse_scroll_speed that is not “a finite positive number”; codex-rs/model-provider-info/src/capabilities.rs defines external_web_access: Option<bool> (“Whether hosted web search may access the live web”) and remote_compaction with the snake_case values unsupported and v2 (“Send compaction_trigger items over the Responses endpoint”), and ProviderCapabilities::from_config in codex-rs/model-provider/src/capabilities.rs defaults remote compaction to V2 for OpenAI and Azure Responses providers. PR-list entries: “#51253 Enforce Fast and Ultra Fast policies independently”, “#50472 Enable Ultrafast service tiers for Amazon Bedrock Astra models”, “#50416 Clarify Git worktree choices for new and forked conversations”. Verified 2026-10-11. ↩↩↩↩↩↩↩

  188. Codex CLI v0.162.1 release notes, stable (prerelease false), published October 9, 2026 (19:44:51 UTC; npm 19:50:30 UTC); npm latest and every per-platform tag read 0.162.1 at the October 11 access. Install npm install -g @openai/codex@0.162.1. rust-v0.162.0…rust-v0.162.1 is ahead_by 3, behind_by 1: 1a1335ee “Preserve line breaks and links in multiline async questions (#51866)”, f715d506 “Limit daemon feature compatibility checks to explicit CLI overrides (#52648)”, and the release commit. Release body, verbatim: “Fixed a TUI crash when asynchronous questions contain multiple lines, preserving line breaks and complete hyperlink destinations. (#51866)”; “Fixed startup failures caused by differences between a running background server’s feature settings and CLI defaults. Compatibility checks now apply only to explicit command-line feature overrides. (#52648)”. ↩↩↩

  189. Alpha-channel and flag state, verified October 11, 2026 against the npm registry, the GitHub releases API, and the source at each tag. npm dist-tags: latest = 0.162.1, alpha = 0.163.0-alpha.5 (npm October 10, 00:48:26 UTC; GitHub rust-v0.163.0-alpha.5 prerelease, 00:26:59 UTC), every per-platform alpha-* tag matching. Stable cuts: v0.161.0 from 0.161.0-alpha.13.1 and v0.162.0 from 0.162.0-alpha.18.1, each one commit ahead of its base; rust-v0.162.0-alpha.20…rust-v0.162.0 is ahead_by 2, behind_by 52, so alpha.20 (October 8, 02:25 UTC) carried 52 commits the stable did not. codex-rs/features/src/lib.rs, rust-v0.160.1 to rust-v0.161.0: api_key_model_discovery moves from UnderDevelopment, off, to Stable, on (PR #49807 “Enable API-key model discovery by default”; codex-rs/models-manager/src/manager.rs: “Supply startup API-key discovery policy; live changes require a new session. Static catalogs ignore this setting”, and should_refresh_models() is true when supports_api_key_discovery(), which requires API-key auth against an endpoint that supports API-key model listing); added cli_daybreak (UnderDevelopment, off), api_key_cyber_access_programs (Stable, off), browser_annotation_api and in_app_voice (Stable, on, both “Requirements-only gate: this should be set from requirements, not user config”), login_shell_package_path (Experimental, “Bundled tools in login shells”), and model_catalog_in_context (UnderDevelopment, off). The three most recent non-prerelease GitHub releases are rust-v0.162.1, rust-v0.162.0, and rust-v0.161.0. ↩↩↩↩↩

  190. Alpha-channel state, verified October 13, 2026 against the npm registry and the GitHub releases API. npm dist-tags: latest = 0.162.1, alpha = 0.163.0-alpha.9 (npm 15:58:51 UTC; GitHub rust-v0.163.0-alpha.9 prerelease, 15:47:20 UTC), after rust-v0.163.0-alpha.8 (GitHub 13:14:41 UTC; npm 13:47:11 UTC) the same day. The three most recent non-prerelease GitHub releases are still rust-v0.162.1, rust-v0.162.0, and rust-v0.161.0. ↩↩

  191. Alpha-channel state, verified October 14, 2026 against the npm registry and the GitHub releases API. npm dist-tags: latest = 0.162.1, alpha = 0.163.0-alpha.11 (npm 03:38:05 UTC; GitHub rust-v0.163.0-alpha.11 prerelease, 03:27:29 UTC), after rust-v0.163.0-alpha.10 (GitHub October 13, 19:04:12 UTC; npm per-platform builds from 19:22 UTC). alpha.10 therefore already existed when guide v2.81 named alpha.9 as current; corrected here. The three most recent non-prerelease GitHub releases are still rust-v0.162.1, rust-v0.162.0, and rust-v0.161.0. ↩↩

  192. Codex Changelog (OpenAI Developers) and openai/codex releases. Codex CLI 0.134.0 (May 26, 2026) added local conversation history search with case-insensitive content matching, made --profile the primary profile selector across CLI/TUI/sandbox flows with legacy-config migration guidance, improved MCP setup with per-server environment targeting plus OAuth for streamable HTTP servers, made connector tool schemas more reliable by preserving local $ref/$defs and compacting oversized schemas before exposure, enabled concurrent execution of read-only MCP tools advertising readOnlyHint, and added richer extension/hook context (conversation history for extension tools, persistent permission-profile metadata across auto-review runtime sync). Codex CLI 0.135.0 (May 28, 2026) added richer codex doctor diagnostics covering environment, Git, terminal, app-server, and thread inventory, surfaced remote connection details and server version in /status when the TUI is connected over a remote, added vim mode text-object editing with improved word/line-end behavior and a configurable interrupt-turn, made /permissions understand and display named permission profiles, gave packaged Codex builds the bundled patched zsh helper across supported macOS and Linux, and added friendly Sandbox presets to the Python SDK for thread and turn APIs. Bug fixes spanned TUI markdown rendering, macOS/Zellij output stability, slash-command completion draft preservation, tmux/iTerm control-mode Ctrl-C, @ app-mention filtering, and resume-flow cwd handling. ↩↩↩↩

  193. OpenAI, Codex source at commit 72f999e, seatbelt.rs and seatbelt_base_policy.sbpl, fetched October 11, 2026: when the policy has full-disk read access and no unreadable roots, the generated macOS profile is (allow file-read*); the base policy notes that child processes inherit the policy of their parent. On the author’s Mac, Codex CLI 0.154.0 in read-only mode, and again with the author’s configuration (no sandbox_mode set), read a file that needs Full Disk Access; see macOS Full Disk Access and AI Agents, section 5. ↩