Introduction
Codex CLI is OpenAI's open-source terminal coding agent that can read and write files, run commands, fix bugs, and complete full coding tasks directly in the command line.
By connecting through OpenVeer, you can freely use multiple models — including GPT and Claude — in Codex CLI, with more flexible and competitive pricing.
Prerequisites
Before you begin, make sure you have:
-
Installed Node.js
Download and install from the Node.js website (latest LTS, v20 or newer recommended) to install Codex CLI via npm -
Obtained an OpenVeer API Key
Log in to the OpenVeer Console to get your API key (starts withsk-)
If you don't have an OpenVeer account yet, please register at OpenVeer first and obtain your API key.
Step 1: Install Codex CLI
Choose any of the following methods to install:
npm (Recommended)
Install globally with npm — works on all operating systems:
npm install -g @openai/codexIf you run into permission issues, prepend sudo (macOS / Linux).
Homebrew (macOS)
macOS users can also install with Homebrew:
brew install codexVerify the installation
After installing, run the following command to confirm:
codex --versionIf a version number is printed, the installation succeeded.
Step 2: Configure the OpenVeer API
Codex CLI manages model providers via configuration files under the ~/.codex/ directory. All we need to do is add a custom provider pointing to OpenVeer.
2.1 Locate the config directory
- macOS / Linux:
~/.codex/ - Windows:
C:\Users\<username>\.codex\
If the directory does not exist, run codex once in your terminal then press Ctrl + C to exit — it will be created automatically.
2.2 Configure the API key
In the config directory, create or edit the auth.json file and fill in your OpenVeer key:
{
"OPENAI_API_KEY": "sk-xxxxxxxxxxxx"
}| Field | Description |
|---|---|
OPENAI_API_KEY |
Your OpenVeer API key (starts with sk-) |
2.3 Configure the model provider
In the config directory, create or edit the config.toml file and add the OpenVeer provider:
# Default model
model = "gpt-5.5"
# Default provider — matches [model_providers.openveer] below
model_provider = "openveer"
# OpenVeer provider configuration
[model_providers.openveer]
name = "OpenVeer"
base_url = "https://api.openveer.com/v1"
wire_api = "responses"
requires_openai_auth = true| Field | Description |
|---|---|
model |
Default model ID — pick one from the model list below |
model_provider |
Default provider — must match the ID inside [model_providers.xxx] |
name |
Display name of the provider — can be customized |
base_url |
OpenVeer's OpenAI-compatible URL — fixed at https://api.openveer.com/v1 |
wire_api |
Wire protocol — recent Codex versions require responses (Responses API) |
requires_openai_auth |
Set to true to authenticate using the key from auth.json |
After saving both files, restart Codex CLI for the changes to take effect.
Make sure auth.json is valid JSON and config.toml is valid TOML. Do not use full-width / smart quotes, otherwise the config won't apply.
Step 3: Get Started
Verify the configuration
In any project directory, run the following command to confirm everything is wired up:
codex "Introduce yourself in one sentence"If you get an AI reply, the configuration is working. If you see a sign-in screen, or 401 / 403 errors, refer to the FAQ section below.
Interactive mode
Run codex directly to enter the interactive UI — ideal for full coding tasks:
codexOnce inside, describe what you need in natural language, e.g.:
Create an Express.js server with a JSON-returning health check endpointCodex will analyze your project, generate code, run commands, and ask for confirmation before performing sensitive operations.
Approval modes
On first run, Codex will ask you to pick an approval level:
| Mode | Description |
|---|---|
| Read Only | Only file reads are allowed — any modification or command requires confirmation |
| Auto | Can read/write files and run commands within the working directory (recommended) |
| Full Access | Performs any operation without confirmation — use with caution |
We recommend starting with Auto mode. Type /approvals in the interactive UI to change it anytime.
Switch models
In the interactive UI, type /model to switch quickly, or change the model field in config.toml and restart.
Supported Models
For Codex CLI, the following GPT-5 series models are recommended:
| Model ID | Strengths | Recommended Use Cases |
|---|---|---|
gpt-5.5 |
Latest flagship, top coding ability | First pick for Codex, complex engineering |
gpt-5.4 |
Previous-generation flagship, very capable | Complex coding, architecture design |
gpt-5.4-mini |
Lightweight, fast, cost-effective | Daily coding, fast iteration |
gpt-5.3-codex |
Coding model optimized for Codex | Agentic coding tasks |
gpt-5.2 |
Stable and balanced | Routine coding tasks |
Model selection tips: The GPT-5 series above pairs best with Codex CLI. For the best experience, prefer gpt-5.5; gpt-5.3-codex is specifically optimized for Codex's agentic coding scenarios.
Common Commands
Frequently used commands and shortcuts in Codex CLI:
| Command | Description |
|---|---|
codex |
Enter the interactive UI |
codex "task" |
Start with an initial instruction |
codex exec "task" |
Non-interactive mode — run and exit |
codex --model gpt-5.4 |
Start with a specified model |
codex --version |
Show the version number |
/model |
Switch model inside the interactive UI |
/approvals |
Adjust approval mode inside the UI |
Ctrl + C |
Exit the interactive UI |
FAQ
Q1: A ChatGPT sign-in screen appears after launch?
If you see "Sign in with ChatGPT" or similar after launch, the configuration didn't take effect.
Troubleshooting:
- Make sure both
config.tomlandauth.jsonare inside~/.codex/ - Check that
model_providerinconfig.tomlis set toopenveer - Check that
auth.jsonis valid JSON and the key is filled in completely
Q2: Getting 401 / 403 errors?
| Status Code | Meaning | Solution |
|---|---|---|
401 Unauthorized |
Missing or invalid API key | Check the key in auth.json — it should start with sk- |
403 Forbidden |
Insufficient permission or expired key | Go to the Console to verify the key |
Also make sure base_url is set to https://api.openveer.com/v1, not the official OpenAI URL.
Q3: Connection failed?
- Check your network connection
- Make sure
base_urlinconfig.tomlis correct - If you're behind a proxy, ensure it allows access to
api.openveer.com
Q4: wire_api = "chat" is no longer supported?
Recent Codex CLI versions (0.84.0 and later) have removed the chat protocol. Update wire_api in config.toml to responses:
wire_api = "responses"OpenVeer supports the Responses API — just restart Codex after the change.
Q5: Tool calls or runs are failing?
Make sure wire_api in config.toml is set to responses. If you still hit compatibility issues, switch to a recommended GPT-5 series model (e.g. gpt-5.5, gpt-5.3-codex) — they pair more reliably with Codex CLI.
Q6: Use environment variables instead of auth.json?
You can also configure the key via an environment variable. Change the provider block in config.toml to:
[model_providers.openveer]
name = "OpenVeer"
base_url = "https://api.openveer.com/v1"
wire_api = "responses"
env_key = "APIMART_API_KEY"Then set the environment variable APIMART_API_KEY to your OpenVeer key. auth.json is no longer required in this setup.
Q7: How do I switch models?
Two ways:
- In the interactive UI: Type
/modelto switch - Edit the config: Change the
modelfield inconfig.tomland restart Codex CLI
Q8: How do I check usage and billing?
Log in to the OpenVeer Console to view API call statistics, token consumption details, and cost trends.
Support and Help
If you run into any issues while using Codex CLI:
- 📚 OpenVeer Documentation Center
- 💬 Discord Community
- 🐦 Twitter @AIOpenVeer
- 📧 Technical support: zhihong@openveer.com
Get Started with OpenVeer
Sign up for OpenVeer now, get your API key, and experience a multi-model programming assistant in Codex CLI!
This documentation is built and hosted on Mintlify, a developer documentation platform.