## Why `write_stdin` inherited serial tool dispatch, so long polls for independent unified-exec sessions blocked each other even when the caller used parallel tool calls or code-mode `Promise.all`. The useful boundary is the terminal process: independent sessions should overlap, while operations sharing one process must not overlap because they mutate stdin, drain one output buffer, and observe the same lifecycle. ## What changed - opt `write_stdin` into parallel tool dispatch - guard each unified-exec process with a process-local interaction mutex while allowing different process IDs to overlap - treat a held interaction mutex as a pruning reservation so parallel `exec_command` calls cannot evict an actively polled process - revalidate process identity after waiting for that mutex so a stale waiter cannot redirect input to a replacement process - add direct non-code and code-mode integration coverage using a symmetric rendezvous: both sessions can finish only if their `write_stdin` calls overlap This does not add a source-order contract for calls targeting the same session. Their interactions are mutually exclusive, but callers must not depend on which concurrent call acquires the process mutex first. ## Testing - `just test -p codex-core write_stdin` (13 passed) - `just fix -p codex-core`
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
Run the following on Mac or Linux to install Codex CLI:
curl -fsSL https://chatgpt.com/codex/install.sh | sh
Run the following on Windows to install Codex CLI:
powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex"
Codex CLI can also be installed via the following package managers:
# 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, Business, 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.
