Dylan Hurd d86cf538f5 ## New Features
- Added an optional SOCKS5 proxy listener with policy enforcement and config gating. (#9803)
- Plan mode now streams proposed plans into a dedicated TUI view, plus a feature-gated `/plan` shortcut for quick mode switching. (#9786, #10103)
- Added `/apps` to browse connectors in TUI and `$` insertion for app prompts. (#9728)
- App-server can now run in external auth mode, accepting ChatGPT auth tokens from a host app and requesting refreshes when needed. (#10012)
- Smart approvals are now enabled by default, with explicit approval prompts for MCP tool calls. (#10286, #10200)
- Introduced a SQLite-backed log database with an improved logs client, thread-id filtering, retention, and heuristic coloring. (#10086, #10087, #10150, #10151, #10229, #10228)

## Bug Fixes
- MCP tool image outputs render reliably even when image blocks aren’t first or are partially malformed. (#9815)
- Input history recall now restores local image attachments and rich text elements. (#9628)
- File search now tracks session CWD changes and supports multi-root traversal with better performance. (#9279, #9939, #10240)
- Resuming a thread no longer updates `updated_at` until the first turn actually starts. (#9950)
- Shell snapshots no longer inherit stdin, avoiding hangs from startup scripts. (#9735)
- Connections fall back to HTTP when WebSocket proxies fail. (#10139)

## Documentation
- Documented app-server AuthMode usage and behavior. (#10191)

## Chores
- Upgraded the Rust toolchain to 1.93. (#10080)
- Updated pnpm versions used in the repo. (#9992, #10161)
- Bazel build and runfiles handling improvements, including remote cache compression. (#10079, #10098, #10102, #10104)

## Changelog

Full Changelog: https://github.com/openai/codex/compare/rust-v0.92.0...rust-v0.93.0

- #9988 nit: better tool description @jif-oai
- #9991 nit: better unused prompt @jif-oai
- #9994 chore: clean orchestrator prompt @jif-oai
- #10001 backend-client: add get_config_requirements_file @gt-oai
- #9992 update pnpm to 10.28.2 to address security issues @mjr-openai
- #9993 description in role type @jif-oai
- #9944 TUI footer: right-align context and degrade shortcut summary + mode cleanly @charley-oai
- #9803 feat(network-proxy): add a SOCKS5 proxy with policy enforcement @viyatb-oai
- #9950 fix(app-server, core): defer initial context write to rollout file until first turn @owenlin0
- #10003 feat: make it possible to specify --config flags in the SDK @bolinfest
- #9797 remove sandbox globals. @iceweasel-oai
- #10009 chore: introduce *Args types for new() methods @bolinfest
- #10011 really fix pwd for windows codex zip @iceweasel-oai
- #10007 Remove load from SKILL.toml fallback @alexsong-oai
- #10008 enable live web search for DangerFullAccess sandbox policy @sayan-oai
- #9815 Fix: Render MCP image outputs regardless of ordering @Kbediako
- #9654 Show OAuth error descriptions in callback responses @blevy-oai
- #10030 Clarify external editor env var message @joshka-oai
- #9949 Ask user question UI footer improvements @charley-oai
- #9359 tui: stabilize shortcut overlay snapshots on WSL @slkzgm
- #10040 fix: enable per-turn updates to web search mode @sayan-oai
- #10041 fix: allow unknown fields on Notice in schema @sayan-oai
- #9628 Restore image attachments/text elements when recalling input history (Up/Down) @charley-oai
- #9982 [skills] Auto install MCP dependencies when running skils with dependency specs. @mzeng-openai
- #9986 fix(core) info cleanup @dylan-hurd-oai
- #9941 error code/msg details for failed elevated setup @iceweasel-oai
- #9489 feat(core) RequestRule @dylan-hurd-oai
- #10026 Add exec policy TOML representation @gt-oai
- #9821 feat: codex exec auto-subscribe to new threads @jif-oai
- #10004 feat: sqlite 1 @jif-oai
- #10083 feat: sort metadata by date @jif-oai
- #10092 Update shell-tool-mcp.yml @dylan-hurd-oai
- #10079 [bazel] Enable remote cache compression @zbarsky-openai
- #10025 Refine request_user_input TUI interactions and option UX @charley-oai
- #10080 Upgrade to rust 1.93 @zbarsky-openai
- #10095 Update shell-tool-mcp.yml @dylan-hurd-oai
- #9939 file-search: improve file query perf @nornagon-openai
- #10097 chore: deprecate old web search feature flags @sayan-oai
- #10034 compaction @aibrahim-oai
- #10028 allow elevated sandbox to be enabled without base experimental flag @iceweasel-oai
- #10101 fix(ci) fix shell-tool-mcp version v2 @dylan-hurd-oai
- #10043 Added `tui.notifications_method` config option @etraut-openai
- #10104 [bazel] Fix the build @zbarsky-openai
- #10102 default enable compression, update test helpers @sayan-oai
- #10111 fix(ci) more shell-tool-mcp issues @dylan-hurd-oai
- #10115 update the ci pnpm workflow for shell-tool-mcp to use corepack for pnpm versioning @mjr-openai
- #10098 [bazel] Improve runfiles handling @zbarsky-openai
- #10129 Ensure auto-compaction starts after turn started @aibrahim-oai
- #10116 chore(config) personality as a feature @dylan-hurd-oai
- #10123 Add app-server compaction item notifications tests @aibrahim-oai
- #10114 chore(config) Update personality instructions @dylan-hurd-oai
- #10128 removing quit from dropdown menu, but not autocomplete [cli] @natea-oai
- #9728 [connectors] Support connectors part 2 - slash command and tui @mzeng-openai
- #10133 chore(core) personality under development @dylan-hurd-oai
- #10125 emit a metric when we can't spawn powershell @iceweasel-oai
- #10134 fix(tui) reorder personality command @dylan-hurd-oai
- #10135 fix(ci) missing package.json for shell-mcp-tool @dylan-hurd-oai
- #10131 fix: ignore key release events during onboarding @joshka-oai
- #10138 fix: remove references to corepack @bolinfest
- #10086 feat: add log db @jif-oai
- #10089 feat: async backfill @jif-oai
- #10087 feat: log db client @jif-oai
- #10149 chore: improve client @jif-oai
- #10161 nit: update npm @jif-oai
- #10163 [experimental] nit: try to speed up apt-install @jif-oai
- #10164 [experimental] nit: try to speed up apt-install 2 @jif-oai
- #10150 feat: adding thread ID to logs + filter in the client @jif-oai
- #10151 feat: add log retention and delete them after 90 days @jif-oai
- #10152 chore: unify log queries @jif-oai
- #10175 Add OpenAI docs MCP tooltip @joshka-oai
- #10171 feat: reduce span exposition @jif-oai
- #10139 Fall back to http when websockets fail @pakrym-oai
- #10140 chore: ensure pnpm-workspace.yaml is up-to-date @bolinfest
- #9017 Better handling skill depdenencies on ENV VAR. @xl-openai
- #10182 fix: unify `npm publish` call across shell-tool-mcp.yml and rust-release.yml @bolinfest
- #10180 Add features enable/disable subcommands @joshka-oai
- #10184 fix: /approvals -> /permissions @bolinfest
- #10179 Remove WebSocket wire format @pakrym-oai
- #10186 updating comment to better indicate intent of skipping `quit` in the main slash command menu @natea-oai
- #10118 [Codex][CLI] Show model-capacity guidance on 429 @ccy-oai
- #10012 feat(app-server): support external auth mode @owenlin0
- #10103 tui: add feature-gated /plan slash command to switch to Plan mode @charley-oai
- #10191 chore(app-server): document AuthMode @owenlin0
- #10130 [feat] persist dynamic tools in session rollout file @celia-oai
- #10181 add error messages for the go plan type @willwang-openai
- #10198 feat(tui): route employee feedback follow-ups to internal link @joshka-oai
- #10194 load from yaml @alexsong-oai
- #10147 chore(personality) new schema with fallbacks @dylan-hurd-oai
- #10200 MCP tool call approval (simplified version) @mzeng-openai
- #10154 feat: add output to `/ps` @jif-oai
- #10217 nit: actually run tests @jif-oai
- #10177 Add community links to startup tooltips @joshka-oai
- #10210 Chore: plan mode do not include free form question and always include isOther @shijie-oai
- #10218 feat: backfill timing metric @jif-oai
- #10220 chore: unify metric @jif-oai
- #8991 Conversation naming @pap-openai
- #10167 Fetch Requirements from cloud @gt-oai
- #10225 explorer prompt @jif-oai
- #10222 fix: make sure the shell exists @jif-oai
- #10232 chore: do not clean the DB anymore @jif-oai
- #10229 feat: improve logs client @jif-oai
- #10228 feat: heuristic coloring of logs @jif-oai
- #10237 nit: fix db with multiple metadata lines @jif-oai
- #10208 feat: refactor CodexAuth so invalid state cannot be represented @bolinfest
- #10212 chore(feature) Experimental: Personality @dylan-hurd-oai
- #10211 chore(feature) Experimental: Smart Approvals @dylan-hurd-oai
- #10190 Load exec policy rules from requirements @gt-oai
- #10195 plan mode: add TL;DR checkpoint and client behavior note @baumann-oai
- #10239 chore: fix the build breakage that came from a merge race @bolinfest
- #9786 Plan mode: stream proposed plans, emit plan items, and render in TUI @charley-oai
- #10063 Tui: hide Code mode footer label @charley-oai
- #10244 chore: rename ChatGpt -> Chatgpt in type names @bolinfest
- #10238 Plan mode prompt @aibrahim-oai
- #10251 Fix deploy @charley-oai
- #10255 plan prompt @aibrahim-oai
- #10253 Make plan highlight use popup grey background @charley-oai
- #10207 Skip loading codex home as project layer @daniel-oai
- #10256 Update copy @pakrym-oai
- #9735 core: prevent shell_snapshot from inheriting stdin @swordfish444
- #10262 Fix main @pakrym-oai
- #10265 Hide /approvals from the slash-command list @pakrym-oai
- #10267 Update announcement_tip.toml @pakrym-oai
- #10240 file-search: multi-root walk @nornagon-openai
- #10266 fix: dont auto-enable web_search for azure @sayan-oai
- #9279 fix: update file search directory when session CWD changes @yuvrajangadsingh
- #10249 Validate CODEX_HOME before resolving @etraut-openai
- #10272 chore: implement Mul for TruncationPolicy @bolinfest
- #10241 Wire up cloud reqs in exec, app-server @gt-oai
- #10263 Add enforce_residency to requirements @gt-oai
- #10276 add missing fields to WebSearchAction and update app-server types @sayan-oai
- #10283 Turn on cloud requirements for business too @gt-oai
- #10287 Fix minor typos in comments and documentation @ruyut
- #10286 feat(core) Smart approvals on @dylan-hurd-oai
2026-01-30 23:17:24 -07:00
2026-01-30 23:17:24 -07:00
2026-01-08 07:50:58 -08:00
2025-04-16 12:56:08 -04:00
2025-10-17 12:19:08 -07:00
2025-10-17 12:19:08 -07:00
2026-01-29 11:11:47 +01:00
2025-04-16 12:56:08 -04:00
2025-07-31 00:06:55 +00:00
2026-01-02 15:23:22 -07:00

npm i -g @openai/codex
or brew install --cask codex

Codex CLI is a coding agent from OpenAI that runs locally on your computer.

Codex CLI splash


If you want Codex in your code editor (VS Code, Cursor, Windsurf), install in your IDE.
If you are looking for the cloud-based agent from OpenAI, Codex Web, go to chatgpt.com/codex.


Quickstart

Installing and running Codex CLI

Install globally with your preferred package manager:

# Install using npm
npm install -g @openai/codex
# Install using Homebrew
brew install --cask codex

Then simply run codex to get started.

You can also go to the latest GitHub Release and download the appropriate binary for your platform.

Each GitHub Release contains many executables, but in practice, you likely want one of these:

  • macOS
    • Apple Silicon/arm64: codex-aarch64-apple-darwin.tar.gz
    • x86_64 (older Mac hardware): codex-x86_64-apple-darwin.tar.gz
  • Linux
    • x86_64: codex-x86_64-unknown-linux-musl.tar.gz
    • arm64: codex-aarch64-unknown-linux-musl.tar.gz

Each archive contains a single entry with the platform baked into the name (e.g., codex-x86_64-unknown-linux-musl), so you likely want to rename it to codex after extracting it.

Using Codex with your ChatGPT plan

Run codex and select Sign in with ChatGPT. We recommend signing into your ChatGPT account to use Codex as part of your Plus, Pro, Team, Edu, or Enterprise plan. Learn more about what's included in your ChatGPT plan.

You can also use Codex with an API key, but this requires additional setup.

Docs

This repository is licensed under the Apache-2.0 License.

Description
No description provided
Readme Apache-2.0 962 MiB
Languages
Rust 97.2%
Python 1.3%
TypeScript 0.9%
Starlark 0.2%
PowerShell 0.1%