- Added a direct install script for macOS and Linux and publish it as a GitHub release asset, using the existing platform payload (including `codex` and `rg`) (#12740) - Expanded the app-server v2 thread API with experimental thread-scoped realtime endpoints/notifications and a `thread/unsubscribe` flow to unload live threads without archiving them (#12715, #10954) - Promoted `js_repl` to `/experimental`, added startup compatibility checks with user-visible warnings, and lowered the validated minimum Node version to `22.22.0` (#12712, #12824, #12857) - Enabled `request_user_input` in Default collaboration mode (not just Plan mode) (#12735) - Made `5.3-codex` visible in the CLI model list for API users (#12808) - Improved memory behavior with diff-based forgetting and usage-aware memory selection (#12900, #12909) ## Bug Fixes - Improved realtime websocket reliability by retrying timeout-related HTTP 400 handshake failures and preferring WebSocket v2 when supported by the selected model (#12791, #12838) - Fixed a zsh-fork shell execution path that could drop sandbox wrappers and bypass expected filesystem restrictions (#12800) - Added a shared ~1M-character input size cap in the TUI and app-server to prevent hangs/crashes on oversized pastes, with explicit error responses (#12823) - Improved TUI local file-link rendering to hide absolute paths while preserving visible line/column references (#12705, #12870) - Fixed `Ctrl-C` handling for sub-agents in the TUI (#12911) ## Documentation - Fixed a stale sign-in success link in the auth/onboarding flow (#12805) - Clarified the CLI login hint for remote/device-auth login scenarios (#12813) ## Chores - Added structured OTEL audit logging for embedded `codex-network-proxy` policy decisions and blocks (#12046) - Removed the `steer` feature flag and standardized on the always-on steer path in the TUI composer (#12026) - Reduced sub-agent startup overhead by skipping expensive history metadata scans for subagent spawns (#12918) ## Changelog Full Changelog: https://github.com/openai/codex/compare/rust-v0.105.0...rust-v0.106.0 - #12046 feat(network-proxy): add embedded OTEL policy audit logging @mcgrew-oai - #12712 Promote js_repl to experimental with Node requirement @fjord-oai - #12715 Add app-server v2 thread realtime API @aibrahim-oai - #12795 Revert "fix(bazel): replace askama templates with include_str! in memories" @jif-oai - #12791 Handle websocket timeout @pakrym-oai - #12800 fix: enforce sandbox envelope for zsh fork execution @bolinfest - #12802 Propagate session ID when compacting @rasmusrygaard - #12732 feat(app-server): add ThreadItem::DynamicToolCall @owenlin0 - #12807 Add simple realtime text logs @aibrahim-oai - #12805 Update Codex docs success link @etraut-openai - #12809 fix: harden zsh fork tests and keep subcommand approvals deterministic @bolinfest - #12808 make 5.3-codex visible in cli for api users @sayan-oai - #10954 feat(app-server): thread/unsubscribe API @owenlin0 - #12806 only use preambles for realtime @aibrahim-oai - #12830 Revert "only use preambles for realtime" @aibrahim-oai - #12721 Revert "Ensure shell command skills trigger approval (#12697)" @celia-oai - #12831 only use preambles for realtime @aibrahim-oai - #12735 Enable request_user_input in Default mode @charley-oai - #12814 feat: scope execve session approvals by approved skill metadata @bolinfest - #12026 Remove steer feature flag @aibrahim-oai - #12740 Add macOS and Linux direct install script @EFRAZER-oai - #12838 Use websocket v2 as model-preferred websocket protocol @pakrym-oai - #12811 Revert "Add skill approval event/response (#12633)" @celia-oai - #12758 feat: include available decisions in command approval requests @bolinfest - #12824 Disable js_repl when Node is incompatible at startup @fjord-oai - #12813 Clarify device auth login hint @xl-openai - #12848 Try fixing windows pipeline @pakrym-oai - #12856 Attempt 2 to fix release @pakrym-oai - #12744 Skip system skills for extra roots @xl-openai - #12857 Reduce js_repl Node version requirement to 22.22.0 @fjord-oai - #12865 Fix release build take @pakrym-oai - #12705 Hide local file link destinations in TUI markdown @pash-openai - #12823 Enforce user input length cap @etraut-openai - #12417 core: bundle settings diff updates into one dev/user envelope @charley-oai - #12884 chore: new agents name @jif-oai - #12885 nit: captial @jif-oai - #12870 tui: restore visible line numbers for hidden file links @pash-openai - #12684 Add rollout path to memory files and search for them during read @wendyjiao-openai - #12901 chore: better awaiter description @jif-oai - #12900 feat: memories forgetting @jif-oai - #12905 chore: clean DB runtime @jif-oai - #12918 Skip history metadata scan for subagents @daveaitel-openai - #12871 split-debuginfo @pakrym-oai - #12909 feat: use memory usage for selection @jif-oai - #12887 fix: do not apply turn cwd to metadata @jif-oai - #12911 fix: ctrl c sub agent @jif-oai - #12873 Use model catalog default for reasoning summary fallback @pakrym-oai
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.
