- Added a more unified permissions flow, including clearer permissions history in the TUI and a slash command to grant sandbox read access when directories are blocked. (#11633, #11512, #11550, #11639) - Introduced structured network approval handling, with richer host/protocol context shown directly in approval prompts. (#11672, #11674) - Expanded app-server fuzzy file search with explicit session-complete signaling so clients can stop loading indicators reliably. (#10268, #11773) - Added customizable multi-agent roles via config, including migration toward the new multi-agent naming/config surface. (#11917, #11982, #11939, #11918) - Added a `model/rerouted` notification so clients can detect and render model reroute events explicitly. (#12001) ## Bug Fixes - Fixed remote image attachments so they persist correctly across resume/backtrack and history replay in the TUI. (#10590) - Fixed a TUI accessibility regression where animation gating for screen reader users was not consistently respected. (#11860) - Fixed app-server thread resume behavior to correctly rejoin active in-memory threads and tighten invalid resume cases. (#11756) - Fixed `model/list` output to return full model data plus visibility metadata, avoiding unintended server-side filtering. (#11793) - Fixed several `js_repl` stability issues, including reset hangs, in-flight tool-call races, and a `view_image` panic path. (#11932, #11922, #11800, #11796) - Fixed app integration edge cases in mention parsing and app list loading/filtering behavior. (#11894, #11518, #11697) ## Documentation - Updated contributor guidance to require snapshot coverage for user-visible TUI changes. (#10669) - Updated docs/help text around Codex app and MCP command usage. (#11926, #11813) ## Chores - Improved developer log tooling with new `just log --search` and `just log --compact` modes. (#11995, #11994) - Updated vendored `rg` and tightened Bazel/Cargo lockfile sync checks to reduce dependency drift. (#12007, #11790) ## Changelog Full Changelog: https://github.com/openai/codex/compare/rust-v0.101.0...rust-v0.102.0 - #10268 app-server: add fuzzy search sessions for streaming file search @nornagon-openai - #11547 Parse first order skill/connector mentions @canvrno-oai - #11227 feat(app-server): experimental flag to persist extended history @owenlin0 - #10672 Add js_repl host helpers and exec end events @fjord-oai - #11512 add a slash command to grant sandbox read access to inaccessible directories @iceweasel-oai - #11631 chore(core) Deprecate approval_policy: on-failure @dylan-hurd-oai - #11636 Better error message for model limit hit. @xl-openai - #11633 feat: introduce Permissions @bolinfest - #10669 docs: require insta snapshot coverage for UI changes @joshka-oai - #11645 fix: skip review_start_with_detached_delivery_returns_new_thread_id o… @owenlin0 - #11639 [feat] add seatbelt permission files @celia-oai - #11622 Remove absolute path in rollout_summary @wendyjiao-openai - #10671 Add js_repl_tools_only model and routing restrictions @fjord-oai - #11657 app-server tests: disable shell_snapshot for review suite @bolinfest - #11646 app-server: stabilize detached review start on Windows @bolinfest - #11638 fix(app-server): surface more helpful errors for json-rpc @owenlin0 - #11417 [apps] Add is_enabled to app info. @mzeng-openai - #11630 Add new apps_mcp_gateway @canvrno-oai - #11656 Persist complete TurnContextItem state via canonical conversion @charley-oai - #11510 Remove git commands from dangerous command checks @joshka-oai - #11668 feat(shell-tool-mcp): add patched zsh build pipeline @nornagon-openai - #11275 Added a test to verify that feature flags that are enabled by default are stable @etraut-openai - #11651 Add cwd as an optional field to thread/list @acrognale-oai - #11660 chore(approvals) More approvals scenarios @dylan-hurd-oai - #11518 [apps] Fix app loading logic. @mzeng-openai - #11679 fix: dont show NUX for upgrade-target models that are hidden @sayan-oai - #11515 Point Codex App tooltip links to app landing page @joshka-oai - #11671 chore(core) Restrict model-suggested rules @dylan-hurd-oai - #11703 fix(ci) lock rust toolchain at 1.93.0 to unblock @dylan-hurd-oai - #11662 feat(network-proxy): structured policy signaling and attempt correlation to core @viyatb-oai - #11709 fix(shell-tool-mcp) build dependencies @dylan-hurd-oai - #11618 feat: add token usage on memories @jif-oai - #11722 Lower missing rollout log level @jif-oai - #11712 chore: streamline phase 2 @jif-oai - #11731 feat: memories config @jif-oai - #11736 feat: increase windows workers stack @jif-oai - #11739 feat: add slug in name @jif-oai - #11745 chore: move explorer to spark @jif-oai - #11748 Fix memories output schema requirements @jif-oai - #11669 core: limit search_tool_bm25 to Apps and clarify discovery guidance @apanasenko-oai - #11755 app-server-test-client websocket client and thread tools @maxj-oai - #11663 fix: reduce flakiness of compact_resume_after_second_compaction_preserves_history @bolinfest - #11667 sandbox NUX metrics update @iceweasel-oai - #11695 Updated app bug report template @etraut-openai - #11477 feat: switch on dying sub-agents @jif-oai - #11711 feat(tui): prevent macOS idle sleep while turns run @yvolovich-cyber - #11686 Report syntax errors in rules file @etraut-openai - #11763 Update read_path prompt @zuxin-oai - #11772 chore: mini @jif-oai - #11697 [apps] Improve app listing filtering. @mzeng-openai - #11666 Add js_repl kernel crash diagnostics @fjord-oai - #11687 support app usage analytics @alexsong-oai - #11769 Improve GitHub issue deduplication reliability by introducing a stage… @etraut-openai - #11770 fix(nix): use correct version from Cargo.toml in flake build @rupurt - #11677 turn metadata: per-turn non-blocking @pash-openai - #11692 rmcp-client: fix auth crash @maxj-oai - #10590 tui: preserve remote image attachments across resume/backtrack @charley-oai - #11782 turn metadata followups @pash-openai - #11773 [app-server] add fuzzyFileSearch/sessionCompleted @nornagon-openai - #11756 codex-rs: fix thread resume rejoin semantics @maxj-oai - #11793 fix: send unfiltered models over model/list @sayan-oai - #11799 fix(protocol): make local image test Bazel-friendly @joshka-oai - #11796 Fix js_repl view_image test runtime panic @fjord-oai - #11800 Fix js_repl in-flight tool-call waiter race @fjord-oai - #11658 feat(skills): add permission profiles from openai.yaml metadata @celia-oai - #11790 bazel: enforce MODULE.bazel.lock sync with Cargo.lock @joshka-oai - #11803 add perf metrics for connectors load @alexsong-oai - #11659 Handle model-switch base instructions after compaction @charley-oai - #11813 Fixed help text for `mcp` and `mcp-server` CLI commands @etraut-openai - #11672 feat(core): add structured network approval plumbing and policy decision model @viyatb-oai - #11674 feat(tui): render structured network approval prompts in approval overlay @viyatb-oai - #11550 feat(tui) Permissions update history item @dylan-hurd-oai - #11767 fix(core): add linux bubblewrap sandbox tag @viyatb-oai - #11534 Add process_uuid to sqlite logs @charley-oai - #11487 core: snapshot tests for compaction requests, post-compaction layout, some additional compaction tests @charley-oai - #11690 fix: show user warning when using default fallback metadata @sayan-oai - #11780 chore(tui): reduce noisy key logging @apanasenko-oai - #11884 fix: only emit unknown model warning on user turns @sayan-oai - #11893 bazel: fix snapshot parity for tests/*.rs rust_test targets @apanasenko-oai - #11759 feat: use shell policy in shell snapshot @jif-oai - #11615 Allow hooks to error @gt-oai - #11918 chore: rename collab feature flag key to multi_agent @jif-oai - #11924 nit: memory storage @jif-oai - #11917 feat: add customizable roles for multi-agents @jif-oai - #11926 docs: mention Codex app in README intro @vb-openai - #11900 feat: drop MCP managing tools if no MCP servers @jif-oai - #11939 Rename collab modules to multi agents @jif-oai - #11894 [apps] Fix app mention syntax. @mzeng-openai - #11866 chore(core) rm Feature::RequestRule @dylan-hurd-oai - #11948 add(feedback): over-refusal / safety check @fouad-openai - #11860 Fixed screen reader regression in CLI @etraut-openai - #11964 add(core): safety check downgrade warning @fouad-openai - #11951 fix(core) exec_policy parsing fixes @dylan-hurd-oai - #11932 fix: js_repl reset hang by clearing exec tool calls without waiting @jif-oai - #11974 Hide /debug slash commands from popup menu @jif-oai - #11922 fix: race in js repl @jif-oai - #11969 fix(ci) Fix shell-tool-mcp.yml @dylan-hurd-oai - #11908 Exit early when session initialization fails @jif-oai - #11986 nit: wording multi-agent @jif-oai - #11995 feat: add `--search` to `just log` @jif-oai - #11994 feat: add `--compact` mode to `just log` @jif-oai - #11833 Don't allow model_supports_reasoning_summaries to disable reasoning @etraut-openai - #11807 Centralize context update diffing logic @charley-oai - #12007 Update vendored rg to the latest stable version (15.1) @etraut-openai - #11970 Protect workspace .agents directory in Windows sandbox @etraut-openai - #12005 Add /statusline tooltip entry @jif-oai - #11982 feat: move agents config to main config @jif-oai - #11224 chore: clarify web_search deprecation notices and consolidate tests @sayan-oai - #12001 Feat: add model reroute notification @shijie-oai - #11801 Add remote skill scope/product_surface/enabled params and cleanup @xl-openai
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.
