Skip to main content
Codex CLI
$ cat ./codex-cli.md

Codex CLI

Codex CLI is a powerful command-line interface tool that leverages OpenAI's Codex AI model to assist developers with code generation, completion, and programming tasks directly from the terminal. The tool enables natural language to code translation, allowing users to describe programming tasks in plain English and receive accurate code implementations across multiple programming languages. Key features include intelligent code completion, automated documentation generation, bug fixing suggestions, and code refactoring assistance. Codex CLI significantly accelerates development workflows by reducing time spent on boilerplate code, syntax lookup, and routine programming tasks. It's particularly valuable for rapid prototyping, learning new programming languages, automating repetitive coding patterns, and enhancing developer productivity in various environments from local development to CI/CD pipelines.

129,442 stars 20,367 forks Rust Apache License 2.0
openai 5351 Dec 24, 2025
Login with GitHub to like and favorite this CLI tool
$ git release --latest

Latest Releases

All releases

New Features
  • Open /config to search preferences across categories, change supported settings immediately, and see which changes require a restart. (#52990, #53429)
  • Send a follow-up while Codex is responding to steer it immediately. Interrupting a turn also stops active Code Mode cells and their nested tool calls. (#51812, #51835)
  • Configure a leader key in /keymap. The default is Ctrl+X, shortcut hints stay open until you choose or cancel, and voice mute moves to F9. (#52273)
  • Restart a managed background server from /daemon. Codex warns about work the restart could interrupt, then reconnects automatically. (#53173)
  • Codex can run independent read-only tools in parallel, including skill, memory, and conversation-history lookups. (#52245)
  • Daybreak is enabled by default for eligible accounts. codex exec can also select it with an OpenAI API key when the server offers access. (#53701, #53717)

Bug Fixes
  • Resuming a saved thread restores its permissions and network approvals, while respecting explicit overrides and current managed policy. (#53150, #53419, #53424)
  • The network proxy now checks permission before a DNS lookup, rejects duplicate Host headers, and prevents credential aliases from bypassing inspection hooks. (#51650, #52661, #53506)
  • Return to an existing side conversation with /side after switching threads. Answers to pending prompts also go back to the thread that asked. (#52184, #53436)
  • On Windows, Ctrl+V and Shift+Insert paste text as well as images. On WSL, repeated pastes reuse the clipboard reader, and copy attempts time out instead of hanging. (#53224, #52967, #53453)
  • Local commands finish promptly when a child keeps an output pipe open. Remote commands preserve late-arriving output so the final poll can still collect it. (#52652, #53331, #53622)
  • codex exec no longer prints the same file diff again after an unrelated command. (#53444)

Documentation
  • Updated the bundled OpenAI Docs guidance for migrations to the GPT-6 family, including model-specific reasoning, tool use, and data residency considerations. (#51768)
  • Clarified how the Linux sandbox uses bubblewrap for filesystem isolation and seccomp for syscall filtering. (#52610)

Chores
  • Codex now uses its standard shell executor and no longer bundles a patched zsh. Configurations using the retired shell flags receive a migration notice. (#52160, #52213)
  • Reduced Linux and macOS release package size by stripping symbols from packaged binaries while preserving them in the original build outputs. (#52178)

Changelog
Full Changelog: https://github.com/openai/codex/compare/rust-v0.162.0...rust-v0.163.0
  • #51539 Add completion-aware realtime attachment and session-scoped detach @zahan-oai
  • #51547 Add a Windows MXC sandbox opt-out @iceweasel-oai
  • #51556 Complete dynamic tool lifecycles on cancellation @mikelam-oai
  • #51575 Expose package assembly helpers and support gzip DotSlash artifacts @bolinfest
  • #51595 Add thread ID exclusions to thread/list @btraut-openai
  • #51602 Distinguish thread listing failures from exhausted history @btraut-openai
  • #51611 Signal abandonment of unanswered MCP elicitations @nicksteele-oai
  • #51627 Stabilize Guardian snapshot prefixes by separating assistant context @jif-oai
  • #51642 Fix retained context handling for typed section content @jif-oai
  • #51650 Require hostname authorization before proxy DNS lookups @jif-oai
  • #51651 Persist Guardian review failures for reports across restarts @jif-oai
  • #51652 Record telemetry for AGENTS.md changes made by apply_patch @jif-oai
  • #51678 Move Windows sandbox tests into a dedicated integration binary @jif-oai
  • #51683 Roll back stale Guardian reviews before reusing reviewer history @olliem-oai
  • #51689 Wait for helper completion in HTTP header cancellation tests @jif-oai
  • #51690 Add a feature flag for Code Mode tool description ordering @swastik-oai
  • #51704 Honor tool-description-first ordering in Code Mode @swastik-oai
  • #51710 Fix a discovery race in the external auth refresh test @jgershen-oai
  • #51734 Load persisted sender context for Guardian reviews @jif-oai
  • #51755 Reuse MCP handler metadata for cache comparisons @owenlin0
  • #51761 Reduce tool metadata cloning in the code-mode runtime @akira-oai
  • #51768 Expand OpenAI Docs migration guidance to the GPT-6 model family @kkahadze-oai
  • #51775 Prevent recursive Tokio tracing in telemetry and SQLite logs @zbarsky-openai
  • #51786 Preserve sandbox overrides across execution requests @iceweasel-oai
  • #51794 Advertise Ultrafast for GPT-6.1 Sol on Amazon Bedrock @celia-oai
  • #51800 Remove duplicate field initializers in extension registry tests @anp-oai
  • #51808 Preserve diagnostic reasons for MCP user verification failures @berkdeniz-oai
  • #51812 Enable instant interrupts by default @pakrym-oai
  • #51819 Migrate the MXC sandbox to the 1.0.0 SDK @iceweasel-oai
  • #51822 Avoid sharing violations when repairing Windows runtime ACLs @johnl-oai
  • #51823 Share MCP binding tool metadata with prepared calls @owenlin0
  • #51828 Add policy-based file contents integrity checks @iceweasel-oai
  • #51831 Add MXC sandbox integrity dependency and policy preparation @iceweasel-oai
  • #51835 Enable code mode interruption by default @won-openai
  • #51840 Add a bubblewrap backend for sandbox integrity checks @iceweasel-oai
  • #51841 Add a macOS Seatbelt backend for sandbox integrity @iceweasel-oai
  • #51842 Add a sandbox integrity runner with outcome and timing metrics @iceweasel-oai
  • #51843 Run sandbox integrity checks before commands and filesystem operations @iceweasel-oai
  • #51847 Preserve Cargo package names in Bazel Rust builds @dkovalenko-oai
  • #51848 Align Bazel release builds with Cargo and fix platform compatibility @dkovalenko-oai
  • #51849 Fix package smoke tests for Cargo and Bazel debug symbols @dkovalenko-oai
  • #51850 Add Bazel release staging archives @dkovalenko-oai
  • #51855 Add Bazel support to the Codex package build action @dkovalenko-oai
  • #51856 Build Bazel release artifacts alongside Cargo artifacts @dkovalenko-oai
  • #51857 Add an app-server prompt prefix compatibility test @jif-oai
  • #51865 Use readable plugin mentions without suppressing same-name skills @canvrno-oai
  • #51866 Preserve line breaks and links in multiline async questions @pash-openai
  • #51868 Record tool registration metrics for each sampling request @akira-oai
  • #51872 Keep global app-server config independent of the launch directory @etraut-openai
  • #51884 Add experimental prediction forks that inherit parent context @liame-oai
  • #51890 Add the missing mxc-sdk UTF-8 resource patch for Bazel @iceweasel-oai
  • #51892 Preserve tool call completeness when recorded arguments are truncated @ningyi-oai
  • #51893 Record metrics for incremental tool updates @akira-oai
  • #51895 Report specific reasons for WebSocket continuation failures @pakrym-oai
  • #51896 Preserve native errors in Windows sandbox ACL diagnostics @alishobeiri-oai
  • #51897 Use a dedicated matcher for network domain policies @rafael-oai
  • #51908 Honor the user input setting for asynchronous questions @mandal-OAI
  • #51930 Support model-specific function description prefixes @tz-openai
  • #51963 Attribute compaction analytics to the correct voice session @reia-oai
  • #51974 Log Windows sandbox availability and backend selection @iceweasel-oai
  • #52034 Preserve agent state when unloading idle multi-agent v2 children @jif-oai
  • #52040 Add regression coverage for cancelled agent reloads @jif-oai
  • #52048 Cover instant interruption in steered-input persistence tests @jif-oai
  • #52061 Run Guardian conversation classifiers concurrently and preserve action order @felixxia-oai
  • #52062 Add scenario coverage for worker context across idle eviction @jif-oai
  • #52065 Require assessment text in the Guardian parser @ioanbudea-OAI
  • #52081 Fix idle cleanup for disconnected multi-agent v2 children @jif-oai
  • #52119 Expose originating tool call metadata in command environments @leo-oai
  • #52160 Remove the patched zsh shell execution backend @jif-oai
  • #52164 Make environment context date and timezone configurable @surajs-oai
  • #52176 Show AWS GovCloud guidance at startup and remember acknowledgment @jackz100
  • #52177 Set a User-Agent for package archive downloads @bolinfest
  • #52178 Strip symbols from source-built release package binaries @bolinfest
  • #52182 Expose a verified sandbox launcher to local MCP servers @bolinfest
  • #52183 Add optional descriptions to agent message board channels @jif-oai
  • #52184 Preserve side conversations across thread navigation @etraut-openai
  • #52193 Enforce managed MXC requirements on Windows @iceweasel-oai
  • #52195 Track source attribution for individual context parts @tz-openai
  • #52200 Allow plugin toggles while searching and preserve filters on refresh @fcoury-oai
  • #52203 Expose Codex lifecycle status in iTerm2 sessions @fcoury-oai
  • #52213 Stop bundling patched zsh in Codex packages @jif-oai
  • #52215 Enforce application network policy in standalone MCP commands @lsingh-oai
  • #52220 Add configurable default plugin activation policy @stevenlee-oai
  • #52223 Enforce application network policy for daemon updates @jackz100
  • #52225 Fix config rebuild call in the Windows MXC preference test @virajrai-oai
  • #52226 Include foreground activity in iTerm2 session status @fcoury-oai
  • #52228 Honor API-key feature gates in TUI Daybreak selection @julee-oai
  • #52234 Support request IDs in exec-server WebSocket handshakes @mattj-openai
  • #52235 Recover gRPC code-mode sessions after missing-session errors @surajs-oai
  • #52241 Preserve subagent capabilities independently of forked history @anp-oai
  • #52245 Enable parallel execution for read-only tools @zamoshchin-openai
  • #52250 Add opt-in Guardian trust for orchestrator connector identities @ankushg
  • #52256 Normalize formatting in docs, web assets, and sample scripts @anp-oai
  • #52268 Preserve large arguments in executed tool call metadata @ningyi-oai
  • #52270 Enable text selection in the fullscreen TUI footer @fcoury-oai
  • #52273 Add configurable persistent leader shortcuts to the TUI @fcoury-oai
  • #52274 Add structured tracing for Guardian reviews and background scoring @ioanbudea-OAI
  • #52277 Preserve UTF-8 byte semantics in network domain matching @rafael-oai
  • #52278 Honor custom OTLP metrics exporters when analytics is disabled @jackz100
  • #52288 Remove duplicate field initializers from extension registry tests @anp-oai
  • #52295 Emit one developer notice per incremental namespace update batch @akira-oai
  • #52299 Make Bazel release jobs advisory @anp-oai
  • #52302 Add opt-in credential masking for proxied sandboxed sessions @winston-openai
  • #52304 Persist remote-control RPC preferences in managed daemon settings @etraut-openai
  • #52325 Track history initialization in Responses turn metadata @anp-oai
  • #52329 Remove per-content source attribution metadata @anp-oai
  • #52330 Clamp wrapped source ranges before remapping terminal hyperlinks @bc-openai
  • #52337 Add durable thread read state with revision-checked updates @btraut-openai
  • #52350 Expose experimental durable thread read state in the app server @btraut-openai
  • #52363 Expand realtime v3 voice support @jacksonmoody-oai
  • #52381 Preserve per-session routing for gRPC code mode @cassirer-openai
  • #52384 Notify subscribers when thread read state changes @btraut-openai
  • #52395 Add experimental app-server thread read-state updates @btraut-openai
  • #52418 Avoid an extra blank quote line when pasting text with a trailing newline @bc-openai
  • #52535 Add opt-in history prefix preservation for full agent forks @jif-oai
  • #52557 Forward clipboard copies to the terminal in Herdr sessions @fcoury-oai
  • #52568 Expose message board permissions and structured denials @jif-oai
  • #52591 Fix races in remote environment and session replacement tests @jif-oai
  • #52608 Upgrade hyper to 1.11.1 and test connection closure @jif-oai
  • #52610 Align Linux sandbox names and docs with bubblewrap and seccomp @bolinfest
  • #52621 Add template setup for local agent message boards @jif-oai
  • #52629 Consolidate local message board storage helpers @jif-oai
  • #52635 Skip background workspace routing reads without ChatGPT auth @joesavona
  • #52637 Add experimental thread item lookup by ID @btraut-openai
  • #52640 Count interrupted goal continuations toward the no-activity limit @etraut-openai
  • #52648 Limit daemon feature compatibility checks to explicit CLI overrides @etraut-openai
  • #52652 Bound local exec-server output draining after process exit @jif-oai
  • #52659 Add an opt-in feature for subagent model context defaults @hlevy-openai
  • #52660 Handle completion events in either order in shell snapshot tests @jif-oai
  • #52661 Prevent brokered credential aliases from bypassing MITM hooks @viyatb-oai
  • #52671 Add retention annotations to submitted tool outputs @won-openai
  • #52674 Move the exec-server test fixture into shared test support @anp-oai
  • #52676 Refresh persisted capability roots from owner-provided configuration @teddywyly-oai
  • #52679 Add timeout-aware exec-server configuration reads @hlevy-openai
  • #52681 Reject reserved Serde JSON keys in code mode @cassirer-openai
  • #52682 Validate Windows sandbox accounts before password repair @zm-oai
  • #52685 Preserve code mode cancellation during output serialization @cassirer-openai
  • #52686 Add opt-in retention for turn tool outputs @won-openai
  • #52689 Forward per-turn Cyber access programs to Guardian @daneschneider-oai
  • #52696 Fix marketplace path matching for Windows junctions @zm-oai
  • #52700 Update the exec-server stable compatibility baseline to Codex 0.162.1 @iceweasel-oai
  • #52702 Retry bootstrap GETs through the system proxy after request failures @abhinav-oai
  • #52707 Migrate the Windows MXC sandbox to split MXC crates @iceweasel-oai
  • #52721 Explain session creation failures during server shutdown @etraut-openai
  • #52723 Add opt-in gRPC over stdio for the code-mode host @cconger
  • #52724 Add observers for initial exec-server connection attempts @aaronl-openai
  • #52725 Report terminal program status with OSC 7501 @fcoury-oai
  • #52736 Allow model catalogs to override incremental tool notices @akira-oai
  • #52742 Add opt-in output token replay for OpenAI requests @pakrym-oai
  • #52748 Make code-mode exit() stop the entire cell @cconger
  • #52756 Classify voice session failures and record terminal outcomes @bc-openai
  • #52778 Make pinned transcript prompts clickable @fcoury-oai
  • #52825 Report exec runtime resets before accepting further requests @JenZhao
  • #52923 Stabilize the realtime steering timeline test @anp-oai
  • #52937 Retain client-marked tool outputs across compaction @won-openai
  • #52946 Keep agent command center rows stable across progress updates @fcoury-oai
  • #52952 Verify reset notification during code-mode host recovery @etraut-openai
  • #52959 Reduce stack usage in async TUI tests @jif-oai
  • #52964 Defer owned transcript redraws during raw paste bursts @etraut-openai
  • #52967 Reuse and prewarm the WSL clipboard text reader @etraut-openai
  • #52968 Keep startup modals protected when terminal input draining times out @etraut-openai
  • #52972 Upgrade rmcp to 3.5.1 and harden lifecycle tests @alishobeiri-oai
  • #52990 Add a searchable /config preferences panel to the TUI @fcoury-oai
  • #53049 Add connection-bound reply handles for app-server requests @bc-openai
  • #53109 Handle broken pipes gracefully in plugin list output @fcoury-oai
  • #53148 Fix startup draft recovery for pending Vim Replace keys @etraut-openai
  • #53150 Restore thread-owned permissions on cold resume @etraut-openai
  • #53152 Allow selecting and copying TUI turn tips @etraut-openai
  • #53153 Show subagent navigation shortcuts in TUI help @etraut-openai
  • #53155 Keep remote app-server events deliverable during shutdown @etraut-openai
  • #53156 Simplify the custom terminal drawing API @bc-openai
  • #53173 Allow restarting managed background servers from the TUI @etraut-openai
  • #53201 Keep agents navigation available after a thread is archived @etraut-openai
  • #53224 Support Windows clipboard text paste shortcuts in the TUI @etraut-openai
  • #53331 Finish remote exec cleanup when output streams remain open @jif-oai
  • #53339 Test final polling of remote processes with open output streams @jif-oai
  • #53358 Remove selected protocol, apply-patch, MCP, and TUI tests @vb-openai
  • #53369 Allow turns when the agent message board is unavailable @jif-oai
  • #53382 Ignore the unsafe-libyaml advisory in dependency audits @swastik-oai
  • #53389 Use cached login credentials for Guardian decisions @swastik-oai
  • #53393 Distinguish Guardian parent-compaction failure reasons @ioanbudea-OAI
  • #53400 Add explicit local board connections with fixed runtime access @jif-oai
  • #53412 Isolate arg0 helper directories by operating system @jif-oai
  • #53419 Restore saved thread permissions during configuration loading @jif-oai
  • #53424 Add regression coverage for network grants on cold thread resume @jif-oai
  • #53426 Preserve Windows runtime registration failure diagnostics @zm-oai
  • #53429 Apply configuration toggles live and improve settings navigation @fcoury-oai
  • #53436 Route TUI request replies to their originating connection and thread @bc-openai
  • #53438 Stop identifying Apple Terminal from TERMSESSIONID @etraut-openai
  • #53440 Preserve status line accents on 16-color terminals @etraut-openai
  • #53443 Use local MSVC toolchains for native Windows Bazel tests @etraut-openai
  • #53444 Suppress repeated turn diffs in codex exec human output @fcoury-oai
  • #53451 Treat incomplete responses as terminal errors @jif-oai
  • #53452 Close input admission while a turn finishes recording @etraut-openai
  • #53453 Prefer the Windows clipboard and bound copy attempts on WSL @etraut-openai
  • #53485 Update quinn-proto to 0.11.18 @smurching-oai
  • #53496 Preserve pending Effects toggles across save refreshes @fcoury-oai
  • #53506 Reject duplicate Host headers in the network proxy @jfoo-oai
  • #53556 Deduplicate TUI modifier handling and terminal color caching @bc-openai
  • #53595 Add async compaction feature configuration @rka-oai
  • #53606 Prepare compaction helpers for background requests @rka-oai
  • #53614 Add infrastructure for speculative remote V2 compaction @rka-oai
  • #53617 Allow hiding native tools while retaining the multi-agent V2 runtime @jif-oai
  • #53620 Reuse background results for remote V2 compaction @rka-oai
  • #53622 Preserve remote exec output until it is collected @jif-oai
  • #53628 Record truncation metrics for accepted Guardian review inputs @ioanbudea-OAI
  • #53631 Materialize the thread before testing a discovered daemon restart @jif-oai
  • #53632 Stabilize write ordering in the shared message board scenario @jif-oai
  • #53633 Add an environment API key fallback for Guardian Decisions @swastik-oai
  • #53654 Keep spawned children provisional until the spawn result returns @jif-oai
  • #53657 Share hook configuration across cloned hook views @jif-oai
  • #53660 Extract shared multi-agent v2 thread spawning @jif-oai
  • #53668 Improve remote exec-server test startup diagnostics @jif-oai
  • #53670 Account for token usage from incomplete responses @jif-oai
  • #53672 Keep discovered Apps tools available during startup recovery @jif-oai
  • #53673 Publish Rust releases with the GitHub CLI @jif-oai
  • #53678 Preserve inherited context in prediction forks @keyz
  • #53689 Constrain API-key model access programs to server support @julee-oai
  • #53691 Account for replay caches in encrypted compaction budgets @ioanbudea-OAI
  • #53693 Add keyboard selection support to the transcript view @fcoury-oai
  • #53698 Interrupt and drain canceled classifier responses before socket reuse @felixxia-oai
  • #53699 Cancel Guardian V2 classifications that exceed the tool-call lag window @felixxia-oai
  • #53701 Enable CLI Daybreak by default and enforce background-turn eligibility @julee-oai
  • #53706 Preserve URLs and email addresses during external agent migration @jif-oai
  • #53709 Separate MCP sandbox policy from launcher metadata @bolinfest
  • #53717 Enable Cyber access programs for API-key sessions by default @julee-oai
  • #53723 Wire V2 capability discovery through exec-server RPC @TAFOYA-OAI

Release 0.163.0-alpha.10.2

Release 0.163.0-alpha.10.1

Release 0.163.0-alpha.11

Release 0.163.0-alpha.9

Installation

npm install -g @openai/codex
brew install --cask codex
$ tail ./comments.log

Comments (0)

Login with GitHub to post a comment
No comments yet. Be the first to comment!