Agent IDE — Codex fork for AI-native development environment
Find a file
Dylan Hurd 675f165c56
fix(core) Preserve base_instructions in SessionMeta (#9427)
## Summary
This PR consolidates base_instructions onto SessionMeta /
SessionConfiguration, so we ensure `base_instructions` is set once per
session and should be (mostly) immutable, unless:
- overridden by config on resume / fork
- sub-agent tasks, like review or collab


In a future PR, we should convert all references to `base_instructions`
to consistently used the typed struct, so it's less likely that we put
other strings there. See #9423. However, this PR is already quite
complex, so I'm deferring that to a follow-up.

## Testing
- [x] Added a resume test to assert that instructions are preserved. In
particular, `resume_switches_models_preserves_base_instructions` fails
against main.

Existing test coverage thats assert base instructions are preserved
across multiple requests in a session:
- Manual compact keeps baseline instructions:
core/tests/suite/compact.rs:199
- Auto-compact keeps baseline instructions:
core/tests/suite/compact.rs:1142
- Prompt caching reuses the same instructions across two requests:
core/tests/suite/prompt_caching.rs:150 and
core/tests/suite/prompt_caching.rs:157
- Prompt caching with explicit expected string across two requests:
core/tests/suite/prompt_caching.rs:213 and
core/tests/suite/prompt_caching.rs:222
- Resume with model switch keeps original instructions:
core/tests/suite/resume.rs:136
- Compact/resume/fork uses request 0 instructions for later expected
payloads: core/tests/suite/compact_resume_fork.rs:215
2026-01-19 21:59:36 -08:00
.devcontainer chore: install an extension for TOML syntax highlighting in the devcontainer (#1650) 2025-07-22 10:58:09 -07:00
.github chore: upgrade to Rust 1.92.0 (#8860) 2026-01-16 11:12:52 -08:00
.vscode Move rust analyzer target dir (#5328) 2025-10-18 17:31:46 -07:00
codex-cli fix: add tui.alternate_screen config and --no-alt-screen CLI flag for Zellij scrollback (#8555) 2026-01-09 18:38:26 +00:00
codex-rs fix(core) Preserve base_instructions in SessionMeta (#9427) 2026-01-19 21:59:36 -08:00
docs Rename hierarchical_agents to child_agents_md (#9215) 2026-01-14 19:14:24 +00:00
patches feat: add support for building with Bazel (#8875) 2026-01-09 11:09:43 -08:00
scripts WebSocket test server script (#9175) 2026-01-13 16:21:14 -08:00
sdk/typescript add WebSearchMode enum (#9216) 2026-01-14 12:51:42 -08:00
shell-tool-mcp fix: change codex/sandbox-state/update from a notification to a request (#8142) 2025-12-18 15:32:01 -08:00
third_party/wezterm Vendor ConPtySystem (#7656) 2025-12-09 17:23:51 +00:00
.bazelignore fix: add .git to .bazelignore (#9008) 2026-01-10 00:55:02 +00:00
.bazelrc feat: add support for building with Bazel (#8875) 2026-01-09 11:09:43 -08:00
.codespellignore Terminal Detection Metadata for Per-Terminal Scroll Scaling (#8252) 2025-12-18 12:50:00 -08:00
.codespellrc Terminal Detection Metadata for Per-Terminal Scroll Scaling (#8252) 2025-12-18 12:50:00 -08:00
.gitignore gitignore bazel-* (#8911) 2026-01-08 07:50:58 -08:00
.markdownlint-cli2.yaml fix(tui): document paste-burst state machine (#9020) 2026-01-13 11:48:31 -08:00
.npmrc chore: migrate to pnpm for improved monorepo management (#287) 2025-04-18 16:25:15 -07:00
.prettierignore [apply-patch] Clean up apply-patch tool definitions (#2539) 2025-08-21 20:07:41 -07:00
.prettierrc.toml Initial commit 2025-04-16 12:56:08 -04:00
AGENTS.md add generated jsonschema for config.toml (#8956) 2026-01-13 10:22:51 -08:00
announcement_tip.toml Revert "Delete announcement_tip.toml" (#9032) 2026-01-10 07:30:14 -08:00
BUILD.bazel fix: support remote arm64 builds, as well (#9018) 2026-01-10 18:41:08 -08:00
CHANGELOG.md Documentation improvement: add missing period (#3754) 2025-10-30 13:01:33 -07:00
cliff.toml docs(changelog): update install command to @openai/codex@<version> (#2073) 2025-10-18 11:02:22 -07:00
defs.bzl feat: add support for building with Bazel (#8875) 2026-01-09 11:09:43 -08:00
flake.lock Fix nix build (#4048) 2025-10-17 12:19:08 -07:00
flake.nix Fix nix build (#4048) 2025-10-17 12:19:08 -07:00
justfile feat: add bazel-codex entry to justfile (#9177) 2026-01-13 16:16:22 -08:00
LICENSE Initial commit 2025-04-16 12:56:08 -04:00
MODULE.bazel fix: support remote arm64 builds, as well (#9018) 2026-01-10 18:41:08 -08:00
MODULE.bazel.lock feat: add bazel-codex entry to justfile (#9177) 2026-01-13 16:16:22 -08:00
NOTICE resizable viewport (#1732) 2025-07-31 00:06:55 +00:00
package.json chore: subject docs/*.md to Prettier checks (#4645) 2025-10-03 11:35:48 -07:00
pnpm-lock.yaml fix: Upgrade @modelcontextprotocol/sdk to ^1.24.0 (#7817) 2025-12-10 10:17:00 -08:00
pnpm-workspace.yaml feat: codex-shell-tool-mcp (#7005) 2025-11-21 08:16:36 -08:00
PNPM.md fix: include pnpm lock file (#377) 2025-04-18 17:01:11 -07:00
rbe.bzl fix: support remote arm64 builds, as well (#9018) 2026-01-10 18:41:08 -08:00
README.md Fixed broken link in README (#8682) 2026-01-02 15:23:22 -07: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.