- Windows sandbox runs can now enforce proxy-only networking with OS-level egress rules, instead of relying on environment variables alone. (#12220) - App-server clients can now start ChatGPT sign-in with a device code flow, which helps when browser callback login is unreliable or unavailable. (#15525) - `codex exec` now supports the prompt-plus-stdin workflow, so you can pipe input and still pass a separate prompt on the command line. (#15917) - Custom model providers can now fetch and refresh short-lived bearer tokens dynamically, instead of being limited to static credentials from config or environment variables. (#16286, #16287, #16288) ## Bug Fixes - Project-local `.codex` files are now protected even on first creation, closing a gap where the initial write could bypass normal approval checks. (#15067) - Linux sandbox launches are more reliable because Codex once again finds a trusted system `bwrap` on normal multi-entry `PATH`s. (#15791, #15973) - The app-server-backed TUI regained several missing workflows: hook notifications replay correctly, `/copy` and `/resume <name>` work again, `/agent` no longer shows stale threads, and the skills picker scrolls past the first page. (#16013, #16021, #16050, #16014, #16109, #16110) - MCP startup is more robust: local servers get a longer startup window, and failed handshakes surface warnings in the TUI again instead of looking like clean startups. (#16080, #16041) - On Windows, `apply_patch` is less likely to fail because it no longer adds redundant writable roots that could trigger unnecessary ACL churn. (#16030) ## Changelog Full Changelog: https://github.com/openai/codex/compare/rust-v0.117.0...rust-v0.118.0 - #15891 [plugins] Polish tool suggest prompts. @mzeng-openai - #15791 fix: resolve bwrap from trusted PATH entry @viyatb-oai - #15900 skills: remove unused skill permission metadata @bolinfest - #15811 app-server: Split transport module @euroelessar - #15067 Protect first-time project .codex creation across Linux and macOS sandboxes @rreichel3-oai - #15903 [codex] import token_data from codex-login directly @bolinfest - #15897 sandboxing: use OsString for SandboxCommand.program @bolinfest - #15910 docs: update AGENTS.md to discourage adding code to codex-core @bolinfest - #15898 chore: move bwrap config helpers into dedicated module @viyatb-oai - #15906 chore: remove skill metadata from command approval payloads @bolinfest - #15909 fix(network-proxy): fail closed on network-proxy DNS lookup errors @viyatb-oai - #14495 Preserve bazel repository cache in github actions @siggisim - #15522 bazel: re-organize bazelrc @sluongng - #15923 codex-tools: extract shared tool schema parsing @bolinfest - #15918 permissions: remove macOS seatbelt extension profiles @bolinfest - #12220 feat(windows-sandbox): add network proxy support @viyatb-oai - #15931 fix: make MACOS_DEFAULT_PREFERENCES_POLICY part of MACOS_SEATBELT_BASE_POLICY @bolinfest - #15933 fix: use matrix.target instead of matrix.os for actions/cache build action @bolinfest - #15928 codex-tools: extract MCP schema adapters @bolinfest - #15948 fix: increase timeout for rust-ci to 45 minutes for now @bolinfest - #15921 [app-server-protocol] introduce generic ClientResponse for app-server-protocol @rhan-oai - #15120 chore: refactor network permissions to use explicit domain and unix socket rule maps @celia-oai - #15525 Add ChatGPT device-code login to app server @daniel-oai - #15876 chore: drop useless stuff @jif-oai - #15954 chore: move pty and windows sandbox to Rust 2024 @bolinfest - #15986 feat: spawn v2 make task name as mandatory @jif-oai - #16000 Use codex-utils-template for login error page @jif-oai - #16001 Use codex-utils-template for review prompts @jif-oai - #15998 Use codex-utils-template for sandbox mode prompts @jif-oai - #15995 Use codex-utils-template for collaboration mode presets @jif-oai - #15996 Use codex-utils-template for search tool descriptions @jif-oai - #15999 Use codex-utils-template for review exit XML @jif-oai - #15985 feat: spawn v2 as inter agent communication @jif-oai - #15973 fix(sandbox): fix bwrap lookup for multi-entry PATH @viyatb-oai - #15944 codex-tools: extract dynamic tool adapters @bolinfest - #15955 ci: add Bazel clippy workflow for codex-rs @bolinfest - #15953 codex-tools: introduce named tool definitions @bolinfest - #16027 fix: fix Windows CI regression introduced in #15999 @bolinfest - #16036 fix: disable plugins in SDK integration tests @bolinfest - #15946 Normalize /mcp tool grouping for hyphenated server names @pakrym-oai - #16035 plugins: Clean up stale curated plugin sync temp dirs and add sync metrics @xl-openai - #15934 Add usage-based business plan types @bwanner-oai - #16031 codex-tools: extract responses API tool models @bolinfest - #16013 Fix tui_app_server hook notification rendering and replay @etraut-openai - #16021 Fix /copy regression in tui_app_server turn completion @etraut-openai - #16044 [mcp] Bypass read-only tool checks. @mzeng-openai - #16030 don't include redundant write roots in apply_patch @iceweasel-oai - #15922 Remove the legacy TUI split @etraut-openai - #15828 [codex] Pin GitHub Actions workflow references @hintz-openai - #16046 ci: run SDK tests with a Bazel-built codex @bolinfest - #16050 Fix tui_app_server resume-by-name lookup regression @etraut-openai - #16014 Fix tui_app_server agent picker closed-state regression @etraut-openai - #16054 chore: clean up argument-comment lint and roll out all-target CI on macOS @bolinfest - #15917 Support Codex CLI stdin piping for `codex exec` @jliccini - #16057 shell-command: reuse a PowerShell parser process on Windows @bolinfest - #16063 refactor: rewrite argument-comment lint wrappers in Python @bolinfest - #15952 bazel: enable the full Windows gnullvm CI path @bolinfest - #16067 ci: run Bazel clippy on Windows gnullvm @bolinfest - #16071 fix: clean up remaining Windows argument-comment-lint violations @bolinfest - #16072 ci: split fast PR Rust CI from full post-merge Cargo CI @bolinfest - #16074 bazel: add Windows gnullvm stack flags to unit test binaries @bolinfest - #16026 fix(tui): refresh footer on collaboration mode changes @fcoury - #16112 Update PR babysitter skill for review replies and resolution @etraut-openai - #16104 Rename tui_app_server to tui @etraut-openai - #16118 fix: fix comment linter lint violations in Linux-only code @bolinfest - #16106 build: migrate argument-comment-lint to a native Bazel aspect @bolinfest - #16115 Remove remaining custom prompt support @etraut-openai - #16116 Remove the codex-tui app-server originator workaround @etraut-openai - #16047 codex-tools: extract tool spec models @bolinfest - #16128 bazel: refresh the expired macOS SDK pin @bolinfest - #16129 codex-tools: extract configured tool specs @bolinfest - #16130 ci: keep rust-ci-full Windows argument-comment-lint on packaged wrapper @bolinfest - #16126 core: fix stale curated plugin cache refresh races @bolinfest - #16132 codex-tools: extract code mode tool spec adapters @bolinfest - #16136 ci: use BuildBuddy for rust-ci-full non-Windows argument-comment-lint @bolinfest - #16137 exec: make review-policy tests hermetic @bolinfest - #16109 Fix skills picker scrolling in tui app server @etraut-openai - #16138 codex-tools: extract local host tool specs @bolinfest - #16114 Remove TUI voice transcription feature @etraut-openai - #16080 [mcp] Increase MCP startup timeout. @mzeng-openai - #16141 codex-tools: extract collaboration tool specs @bolinfest - #16041 Fix app-server TUI MCP startup warnings regression @etraut-openai - #16110 Fix tui_app_server ghost subagent entries in /agent @etraut-openai - #16154 codex-tools: extract utility tool specs @bolinfest - #16204 [codex] Normalize Windows path in MCP startup snapshot test @etraut-openai - #16010 feat: add mailbox concept for wait @jif-oai - #16237 fix: ma1 @jif-oai - #16193 codex-tools: extract discovery tool specs @bolinfest - #16254 codex-tools: extract discoverable tool models @bolinfest - #16253 fix: close Bazel argument-comment-lint CI gaps @bolinfest - #16225 [codex-analytics] refactor analytics to use reducer architecture @rhan-oai - #16279 Update code mode exec() instructions @andmis - #16120 ci: run Windows argument-comment-lint via native Bazel @bolinfest - #16286 auth: generalize external auth tokens for bearer-only sources @bolinfest - #16287 auth: let AuthManager own external bearer auth @bolinfest - #16288 core: support dynamic auth tokens for model providers @bolinfest
npm i -g @openai/codex
or brew install --cask codex
Codex CLI is a coding agent from OpenAI that runs locally on your computer.
If you want Codex in your code editor (VS Code, Cursor, Windsurf), install in your IDE.
If you want the desktop app experience, run
codex app or visit the Codex App page.
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
- Apple Silicon/arm64:
- Linux
- x86_64:
codex-x86_64-unknown-linux-musl.tar.gz - arm64:
codex-aarch64-unknown-linux-musl.tar.gz
- x86_64:
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.
