# Codex CLI commands: the ones that matter, with examples

> The Codex CLI commands, flags and slash commands you will use, checked against version 0.166.0, and which of them spend tokens on a 5abeer key.

Updated: 2026-11-02

Codex CLI has three kinds of commands: subcommands such as `codex exec`, flags such as `--model`, and slash commands such as `/review` that you type inside a session. This guide covers the ones you will use most, checked against Codex CLI 0.166.0, with examples that run on a 5abeer key.

## Which Codex CLI commands do you need first?

Most work in Codex comes down to eight commands. Add `--help` to any of them for the full options:

```bash
codex                                   # open the interactive terminal UI
codex "explain this repository"         # open it with a first prompt
codex exec "run the tests and fix any failure"   # run one task without the UI
codex resume --last                     # reopen the latest session in this folder
codex review --uncommitted              # review the changes you haven't committed
codex mcp list                          # list the MCP servers you added
codex doctor                            # check the install, config and sign-in
codex update                            # update Codex to the latest release
```

OpenAI released 0.166.0 on 29 October 2026, and it was still the latest stable release when we checked on 2 November 2026. Flags change between releases, so when one below doesn't match your copy, trust `codex <command> --help`.

## What does each codex command do?

### Run Codex

- **`codex`:** opens the terminal UI, with an optional first prompt in quotes.
- **`codex exec`, or `codex e`:** runs one task without the UI and exits, for scripts and CI. Pass `-` to read the prompt from standard input.
- **`codex review`:** reviews your `--uncommitted` changes, the diff against a `--base` branch or one `--commit` without the UI, or follows review instructions you pass as a prompt.

### Pick up past work

- **`codex resume`:** reopens a saved session by id or name. `--last` picks the latest one in this folder, and `--all` searches every folder.
- **`codex fork`:** copies a past session into a new chat, keeping the original.
- **`codex exec resume`:** continues a `codex exec` session, optionally with a follow-up prompt.
- **`codex archive`, `codex unarchive` and `codex delete`:** archive, restore or permanently delete a saved session.

### Connect tools

- **`codex mcp`:** manages the MCP servers in `~/.codex/config.toml`: `add`, `list`, `get` and `remove`, plus `login` and `logout` for servers that use OAuth.
- **`codex plugin`:** installs and manages Codex plugins.
- **`codex features`:** lists feature flags and turns them on or off in `config.toml`.

### Sign-in and upkeep

- **`codex login` and `codex logout`:** sign in with a ChatGPT account or an OpenAI key, or sign out. A 5abeer key needs neither.
- **`codex doctor`:** checks the install, config, sign-in and runtime. Add `--json` for a report a script can read.
- **`codex update`:** updates Codex when your installed release supports self-update. Otherwise, install it again as on the [setup page](https://5abeer.ai/en/docs/apps/codex.md#install).
- **`codex cloud` and `codex apply`:** run Codex cloud tasks, which OpenAI marks experimental, and apply their diffs locally. Codex cloud needs a ChatGPT sign-in, so neither works on an API key alone; see [Codex CLI with an API key](https://5abeer.ai/en/guides/codex-cli-api-key#plan-or-key).

## Which flags change how Codex works?

These are the global flags you will use most:

- **`--model`, `-m`:** the model for this run. Use any id from the GPT table further down.
- **`--sandbox`, `-s`:** what the commands Codex runs may touch: `read-only`, `workspace-write` or `danger-full-access`.
- **`--ask-for-approval`, `-a`:** when Codex stops to ask you: `on-request`, or `never`.
- **`--cd`, `-C`:** the folder Codex treats as the project.
- **`--add-dir`:** one more folder Codex may write to.
- **`--config`, `-c`:** overrides one `config.toml` key for this run, written as `key=value`.
- **`--profile`, `-p`:** layers `~/.codex/profile-name.config.toml` on top of your main config.
- **`--search`:** switches web search from the default cached index to live search.
- **`--worktree`:** starts in a new managed Git worktree, away from your current checkout.

`--dangerously-bypass-approvals-and-sandbox`, or `--yolo`, removes the sandbox and the approval prompts. Use it only in a container or virtual machine you can throw away.

`codex exec` accepts `-m`, `-s`, `-C`, `-c` and `-p` too, plus flags of its own:

- **`--json`:** prints events as newline-delimited JSON.
- **`-o`, `--output-last-message`:** writes the final message to a file.
- **`--output-schema`:** a JSON Schema file that the final answer must follow.
- **`--ephemeral`:** runs without saving session files.
- **`--skip-git-repo-check`:** lets it run outside a Git repository.

## Which slash commands work inside a session?

Type `/` in the terminal UI to open the list. These are the ones you will reach for most:

- **`/model`:** choose the model and the reasoning effort.
- **`/permissions`:** choose what Codex may do without asking, such as the Auto or Read Only preset.
- **`/status`:** shows the session's configuration and token usage.
- **`/review`:** reviews the changes in your working tree, focusing on behavior changes and missing tests.
- **`/diff`:** shows the Git diff, including untracked files.
- **`/plan`:** switches to Plan mode, where Codex proposes a plan before it changes code.
- **`/init`:** writes an `AGENTS.md` file with instructions for Codex.
- **`/compact`:** summarizes the conversation so it doesn't hit the context limit.
- **`/new`, `/resume` and `/fork`:** start a new chat, resume a saved one, or fork the current one.
- **`/side`, or `/btw`:** opens a side chat in a temporary fork, away from the main thread.
- **`/mcp`:** lists MCP tools. `/mcp login` with a server name signs in to it.
- **`/import`:** brings in your setup, the current project and recent chats from Claude Code.
- **`/quit` or `/exit`:** exits Codex.

## Which commands spend tokens on a key?

On a key you pay per token, so it helps to know which commands call the model:

| Calls the model | Doesn't call the model |
| --- | --- |
| Your messages, `codex` with a prompt, `codex exec` | `/status`, `/diff`, `/model`, `/permissions` |
| `codex review` and `/review` | `codex mcp list`, `codex features list` |
| `/init`, which asks the model to write `AGENTS.md` | `--help` on any command |
| `/compact`, which asks the model to summarize the chat |  |

`/review` uses the session's model unless you set `review_model` in `config.toml`. Every turn also resends the conversation so far, with the files and command output Codex read, so a long session costs more per turn. `/status` shows the running total, and `/new` starts a clean chat when a task is done.

Give scripts that run `codex exec` on every commit a key with its own spend limit, as in [Control every key](https://5abeer.ai/en/docs/start/keys.md#controls). A worked monthly cost is in [Codex CLI with an API key](https://5abeer.ai/en/guides/codex-cli-api-key#cost).

## How do you set defaults in config.toml?

Codex reads `~/.codex/config.toml` on every start. A project can add its own `.codex/config.toml`, which Codex loads only when you trust the project. These keys set the defaults that the flags above override:

```toml
model_reasoning_effort = "high"
approval_policy = "on-request"
sandbox_mode = "workspace-write"
web_search = "cached"
```

- **`model_reasoning_effort`:** how much the model reasons, such as `medium` or `high`. The levels on offer depend on the model.
- **`approval_policy`:** the default for `-a`.
- **`sandbox_mode`:** the default for `-s`.
- **`web_search`:** `disabled`, `cached`, `indexed` or `live`. The default is `cached`.

Keep these lines above the first header in square brackets. In TOML, a key written under `[model_providers.khabeer]` belongs to that block, not to your settings.

## How to run these commands on a 5abeer key

On a 5abeer key, only the provider in `config.toml` changes. You don't need `codex login`, and `codex cloud` and `codex apply` still need a ChatGPT sign-in. Top up with one of the [payment methods](https://5abeer.ai/en/docs/start/payment.md), create a key for the OpenAI provider as in [Create a key](https://5abeer.ai/en/docs/start/keys.md#create), and save it in the `KHABEER_API_KEY` environment variable. Then put the `model` and `model_provider` lines above the first header in square brackets, and the provider block at the end of `~/.codex/config.toml`:

`~/.codex/config.toml`

```toml
model = "gpt-6.1-sol"
model_provider = "khabeer"

[model_providers.khabeer]
name = "5abeer"
base_url = "https://api.5abeer.ai/v1"
env_key = "KHABEER_API_KEY"
wire_api = "responses"
```

Run `codex exec "summarize this repository"` in a project folder. A reply means the key and the base URL work. The full setup, with profiles that keep your ChatGPT sign-in, is in [Codex CLI with an API key](https://5abeer.ai/en/guides/codex-cli-api-key#switch).

These are the newest GPT models, at our price per million tokens. Use any of these ids with `-m` or on the `model` line:

| Model | Id | Input (ours) | Output (ours) | Context |
| --- | --- | --- | --- | --- |
| GPT-6.1 Sol | `gpt-6.1-sol` | $0.60 | $3 | 922K |
| GPT-6 Astra | `gpt-6-astra` | $3 | $15 | — |
| GPT-6 Sol | `gpt-6-sol` | $0.60 | $3 | 922K |

Every model that runs in Codex is on the [Codex CLI setup page](https://5abeer.ai/en/docs/apps/codex.md#models), and the [OpenAI API page](https://5abeer.ai/en/api/openai) puts our price next to the official one.

## What do real examples look like?

Run each one from your project folder:

```bash
codex exec -s read-only "where is the login flow handled?"
```

```bash
codex exec -s workspace-write "run the tests and fix the first failure"
```

```bash
codex exec -o summary.md "list the TODO comments in src/"
```

```bash
codex review --uncommitted
codex review --base main
```

```bash
codex resume --last
```

```bash
codex mcp add docs --url https://mcp.example.com/mcp --bearer-token-env-var DOCS_MCP_TOKEN
codex mcp add files -- npx -y @modelcontextprotocol/server-filesystem .
```

```bash
codex -c 'model_reasoning_effort="high"' "plan the database migration"
```

In CI, give the runner the same `config.toml` and set `KHABEER_API_KEY` from a secret, as in [Claude Code GitHub Actions](https://5abeer.ai/en/guides/claude-code-github-actions#secrets).

## Common errors and fixes

- **Codex says the key is missing:** `KHABEER_API_KEY` isn't set in the shell or CI job that runs it.
- **`codex exec` won't run outside a Git repository:** add `--skip-git-repo-check`.
- **A spend limit stops a script:** the key returns [`API_KEY_QUOTA_EXHAUSTED`](https://5abeer.ai/en/docs/help/errors.md#API_KEY_QUOTA_EXHAUSTED) until you raise its limit.
- **Anything else in the setup:** run `codex doctor`. Our other error codes are in [Errors and fixes](https://5abeer.ai/en/docs/help/errors.md).

## FAQ

### Which Codex version does this guide cover?

Codex CLI 0.166.0, released on 29 October 2026. Run `codex --version` to see yours, and `codex update` to move to the latest release.

### What is the difference between codex and codex exec?

`codex` opens the interactive terminal UI, where slash commands work. `codex exec` runs one task without it and exits.

### Why doesn't /approvals work?

Codex 0.166.0 has no `/approvals` command, though older guides may still show it. Use `/permissions` inside a session, or set `-a` and `-s` when you start Codex.

### Do these commands work in ChatGPT?

Not on the web: OpenAI notes that they don't apply to ChatGPT on the web. The ChatGPT desktop app has its own slash command list.

### Can I use these commands on a 5abeer plan instead of a key?

Yes for the local commands, if your plan includes Codex, as the Bundle plans and the GPT plan do. The 5abeer AI app sets Codex up on your plan with no key; see [What each plan runs](https://5abeer.ai/en/docs/subscriptions/plan-apps.md#codex). Plans are for the supported apps. For your own code, create an API key.

## Sources

Checked on 2026-11-02:

- OpenAI: [Developer commands, Codex CLI](https://learn.chatgpt.com/docs/developer-commands?surface=cli)
- OpenAI: [Configuration reference](https://learn.chatgpt.com/docs/config-file/config-reference)
- OpenAI: [Model Context Protocol](https://learn.chatgpt.com/docs/extend/mcp?surface=cli)
- OpenAI: [Authentication](https://learn.chatgpt.com/docs/auth)
- OpenAI: [Slash commands in the ChatGPT desktop app](https://learn.chatgpt.com/docs/reference/slash-commands)
- GitHub: [openai/codex release rust-v0.166.0](https://github.com/openai/codex/releases/tag/rust-v0.166.0)
- GitHub: [openai/codex, slash_command.rs at rust-v0.166.0](https://github.com/openai/codex/blob/rust-v0.166.0/codex-rs/tui/src/slash_command.rs)

> 5abeer is an independent service, not affiliated with OpenAI.

## Get started

If your plan includes Codex, the 5abeer AI app sets it up with no key. With a key, add the provider block above and run `codex exec`.
