Ahmed Ibrahim 8272f9a71e ## New Features
- Added an experimental, feature-gated JavaScript REPL runtime (`js_repl`) that can persist state across tool calls, with optional runtime path overrides. (#10674)
- Added support for multiple simultaneous rate limits across the protocol, backend client, and TUI status surfaces. (#11260)
- Reintroduced app-server websocket transport with a split inbound/outbound architecture, plus connection-aware thread resume subscriptions. (#11370, #11474)
- Added memory management slash commands in the TUI (`/m_update`, `/m_drop`) and expanded memory-read/metrics plumbing. (#11569, #11459, #11593)
- Enabled Apps SDK apps in ChatGPT connector handling. (#11486)
- Promoted sandbox capabilities on both Linux and Windows, and introduced a new `ReadOnlyAccess` policy shape for configurable read access. (#11381, #11341, #11387)

## Bug Fixes
- Fixed websocket incremental output duplication, prevented appends after `response.completed`, and treated `response.incomplete` as an error path. (#11383, #11402, #11558)
- Improved websocket session stability by continuing ping handling when idle and suppressing noisy first-retry errors during quick reconnects. (#11413, #11548)
- Fixed stale thread entries by dropping missing rollout files and cleaning stale DB metadata during thread listing. (#11572)
- Fixed Windows multi-line paste reliability in terminals (especially VS Code integrated terminal) by increasing paste burst timing tolerance. (#9348)
- Fixed incorrect inheritance of `limit_name` when merging partial rate-limit updates. (#11557)
- Reduced repeated skill parse-error spam during active edits by increasing file-watcher debounce from 1s to 10s. (#11494)

## Documentation
- Added JS REPL documentation and config/schema guidance for enabling and configuring the feature. (#10674)
- Updated app-server websocket transport documentation in the app-server README. (#11370)

## Chores
- Split `codex-common` into focused `codex-utils-*` crates to simplify dependency boundaries across Rust workspace components. (#11422)
- Improved Rust release pipeline throughput and reliability for Windows and musl targets, including parallel Windows builds and musl link fixes. (#11488, #11500, #11556)
- Prevented GitHub release asset upload collisions by excluding duplicate `cargo-timing.html` artifacts. (#11564)

## Changelog

Full Changelog: https://github.com/openai/codex/compare/rust-v0.99.0...rust-v0.100.0

- #11383 Do not resend output items in incremental websockets connections @pakrym-oai
- #11246 chore: persist turn_id in rollout session and make turn_id uuid based @celia-oai
- #11260 feat: support multiple rate limits @xl-openai
- #11412 tui: show non-file layer content in /debug-config @bolinfest
- #11405 Remove `test-support` feature from `codex-core` and replace it with explicit test toggles @bolinfest
- #11428 fix: flaky test @jif-oai
- #11429 feat: improve thread listing @jif-oai
- #11422 feat: split codex-common into smaller utils crates @bolinfest
- #11439 feat: new memory prompts @jif-oai
- #11305 Cache cloud requirements @gt-oai
- #11452 nit: increase max raw memories @jif-oai
- #11455 feat: close mem agent after consolidation @jif-oai
- #11454 fix: optional schema of memories @jif-oai
- #11449 feat: set policy for phase 2 memory @jif-oai
- #11420 chore: rename disable_websockets -> websockets_disabled @sayan-oai
- #11402 Do not attempt to append after response.completed @pakrym-oai
- #11462 clean: memory rollout recorder @jif-oai
- #11381 feat(core): promote Linux bubblewrap sandbox to Experimental @viyatb-oai
- #11389 Extract `codex-config` from `codex-core` @bolinfest
- #11370 Reapply "Add app-server transport layer with websocket support" @maxj-oai
- #11470 feat: panic if Constrained<WebSearchMode> does not support Disabled @bolinfest
- #11475 feat: remove "cargo check individual crates" from CI @bolinfest
- #11459 feat: memory read path @jif-oai
- #11471 chore: clean rollout extraction in memories @jif-oai
- #9348 fix(tui): increase paste burst char interval on Windows to 30ms @yuvrajangadsingh
- #11464 chore: sub-agent never ask for approval @jif-oai
- #11414 Linkify feedback link @pakrym-oai
- #11480 chore: update mem prompt @jif-oai
- #11485 fix: Constrained import @owenlin0
- #11341 Promote Windows Sandbox @iceweasel-oai
- #10674 Add feature-gated freeform js_repl core runtime @fjord-oai
- #11419 refactor: codex app-server ThreadState @maxj-oai
- #11413 Pump pings @pakrym-oai
- #11488 feat: use more powerful machines for building Windows releases @bolinfest
- #11479 nit: memory truncation @jif-oai
- #11494 Increased file watcher debounce duration from 1s to 10s @etraut-openai
- #11335 Add AfterToolUse hook @gt-oai
- #11500 feat: build windows support binaries in parallel @bolinfest
- #11290 chore(tui) Simplify /status Permissions @dylan-hurd-oai
- #11503 Make codex-sdk depend on openai/codex @pakrym-oai
- #11474 app-server: thread resume subscriptions @maxj-oai
- #11277 Added seatbelt policy rule to allow os.cpus @etraut-openai
- #11506 chore: inject originator/residency headers to ws client @apanasenko-oai
- #11497 Hydrate previous model across resume/fork/rollback/task start @aibrahim-oai
- #11513 feat: try to fix bugs I saw in the wild in the resource parsing logic @bolinfest
- #11509 Consolidate search_tool feature into apps @apanasenko-oai
- #11388 change model cap to server overload @willwang-openai
- #11504 Pre-sampling compact with previous model context @aibrahim-oai
- #11516 Clamp auto-compact limit to context window @aibrahim-oai
- #11520 Update context window after model switch @aibrahim-oai
- #11519 Use slug in tui @pakrym-oai
- #11522 fix: add --test_verbose_timeout_warnings to bazel.yml @bolinfest
- #11526 fix: remove errant Cargo.lock files @bolinfest
- #11521 test(app-server): stabilize app/list thread feature-flag test by using file-backed MCP OAuth creds @bolinfest
- #11387 feat: make sandbox read access configurable with `ReadOnlyAccess` @bolinfest
- #11486 [apps] Allow Apps SDK apps. @mzeng-openai
- #11532 fix compilation @sayan-oai
- #11531 Teach codex to test itself @pakrym-oai
- #11540 ci: remove actions/cache from rust release workflows @bolinfest
- #11542 ci(windows): use DotSlash for zstd in rust-release-windows @bolinfest
- #11498 build(linux-sandbox): always compile vendored bubblewrap on Linux; remove CODEX_BWRAP_ENABLE_FFI @viyatb-oai
- #11545 fix: make project_doc skill-render tests deterministic @bolinfest
- #11543 ci: capture cargo timings in Rust CI and release workflows @bolinfest
- #11539 Bump rmcp to 0.15 @gpeal
- #11548 Hide the first websocket retry @pakrym-oai
- #11551 Add logs to model cache @aibrahim-oai
- #11556 Fix rust-release failures in musl linking and release asset upload @bolinfest
- #11558 Handle response.incomplete @pakrym-oai
- #11557 fix: stop inheriting rate-limit limit_name @xl-openai
- #11564 rust-release: exclude cargo-timing.html from release assets @bolinfest
- #11546 fix: update memory writing prompt @zuxin-oai
- #11448 Fix test flake @gt-oai
- #11569 feat: mem slash commands @jif-oai
- #11573 Fix flaky pre_sampling_compact switch test @jif-oai
- #11571 feat: mem drop cot @jif-oai
- #11572 Ensure list_threads drops stale rollout files @jif-oai
- #11575 fix: db stuff mem @jif-oai
- #11581 nit: upgrade DB version @jif-oai
- #11577 feat: truncate with model infos @jif-oai
- #11590 chore: clean consts @jif-oai
- #11593 feat: metrics to memories @jif-oai
- #11579 Fix config test on macOS @gt-oai
- #11600 feat: add sanitizer to redact secrets @jif-oai
- #11609 chore: drop mcp validation of dynamic tools @jif-oai
2026-02-12 09:50:36 -08:00
2026-02-12 09:50:36 -08:00
2026-01-08 07:50:58 -08:00
2025-04-16 12:56:08 -04:00
2026-02-06 14:41:53 +01:00
2025-04-16 12:56:08 -04:00
2026-01-31 20:33:06 +00: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 1.3 GiB
Languages
Rust 96.1%
Python 2.6%
TypeScript 0.3%
JavaScript 0.2%
Starlark 0.2%
Other 0.4%