Agent IDE — Codex fork for AI-native development environment
Find a file
Eric Traut 713ae22c04
Another round of improvements for config error messages (#9746)
In a [recent PR](https://github.com/openai/codex/pull/9182), I made some
improvements to config error messages so errors didn't leave app server
clients in a dead state. This is a follow-on PR to make these error
messages more readable and actionable for both TUI and GUI users. For
example, see #9668 where the user was understandably confused about the
source of the problem and how to fix it.

The improved error message:
1. Clearly identifies the config file where the error was found (which
is more important now that we support layered configs)
2. Provides a line and column number of the error
3. Displays the line where the error occurred and underlines it

For example, if my `config.toml` includes the following:
```toml
[features]
collaboration_modes = "true"
```

Here's the current CLI error message:
```
Error loading config.toml: invalid type: string "true", expected a boolean in `features`
```

And here's the improved message:
```
Error loading config.toml:
/Users/etraut/.codex/config.toml:43:23: invalid type: string "true", expected a boolean
   |
43 | collaboration_modes = "true"
   |                       ^^^^^^
```

The bulk of the new logic is contained within a new module
`config_loader/diagnostics.rs` that is responsible for calculating the
text range for a given toml path (which is more involved than I would
have expected).

In addition, this PR adds the file name and text range to the
`ConfigWarningNotification` app server struct. This allows GUI clients
to present the user with a better error message and an optional link to
open the errant config file. This was a suggestion from @.bolinfest when
he reviewed my previous PR.
2026-01-23 20:11:09 -08:00
.devcontainer chore: install an extension for TOML syntax highlighting in the devcontainer (#1650) 2025-07-22 10:58:09 -07:00
.github feat: introducing a network sandbox proxy (#8442) 2026-01-23 17:47:09 -08:00
.vscode Move rust analyzer target dir (#5328) 2025-10-18 17:31:46 -07:00
codex-cli fix(cli): add execute permission to bin/codex.js (#9532) 2026-01-20 14:53:14 -08:00
codex-rs Another round of improvements for config error messages (#9746) 2026-01-23 20:11:09 -08:00
docs [connectors] Support connectors part 1 - App server & MCP (#9667) 2026-01-22 16:48:43 -08:00
patches [bazel] Upgrade llvm toolchain and enable remote repo cache (#9616) 2026-01-21 12:52:39 -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 [bazel] Upgrade llvm toolchain and enable remote repo cache (#9616) 2026-01-21 12:52:39 -08:00
.bazelversion [bazel] Upgrade to bazel9 (#9576) 2026-01-21 13:25:36 +00: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 chore: tweak AGENTS.md (#9650) 2026-01-21 20:20:45 -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 Remove stale TODO comment from defs.bzl (#9787) 2026-01-23 20:30:01 +00: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 [bazel] Upgrade llvm toolchain and enable remote repo cache (#9616) 2026-01-21 12:52:39 -08:00
MODULE.bazel.lock feat(tui): retire the tui2 experiment (#9640) 2026-01-22 01:02:29 +00: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.