> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fortapi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Codex CLI

> OpenAI 官方 Codex CLI 直连 FortAPI

[Codex CLI](https://github.com/openai/codex) 是 OpenAI 官方的命令行编码助手，类似 Claude Code。它走 OpenAI 兼容协议，所以通过 **`OPENAI_BASE_URL`** + **`OPENAI_API_KEY`** 就能直接切到 FortAPI。

## 前置条件

<Steps>
  <Step title="FortAPI 账号 + API key">
    控制台 → **令牌** → **创建令牌** 拿一把 `sk-...`。详见 [API key 与安全](/zh/authentication)。
  </Step>

  <Step title="Node.js ≥ 18">
    ```bash theme={null}
    node --version
    ```

    没装的话先装：[nodejs.org](https://nodejs.org)。
  </Step>
</Steps>

## 安装 Codex CLI

```bash theme={null}
npm install -g @openai/codex
```

确认版本：

```bash theme={null}
codex --version
```

## 配置 FortAPI 端点

Codex CLI 支持两种方式配置端点：**环境变量** 或 **`~/.codex/config.toml`**。推荐第二种，长期更省心。

### 方法一：写入 `config.toml`（推荐）

编辑 `~/.codex/config.toml`（Windows 在 `%USERPROFILE%\.codex\config.toml`），不存在就新建：

```toml theme={null}
model_provider = "fortapi"
model = "你的模型名"  # 可用模型名见主站价格页面

[model_providers.fortapi]
name = "FortAPI"
base_url = "https://www.fortapi.com/v1"
wire_api = "chat"
env_key = "FORTAPI_API_KEY"
```

然后在 shell 里 export 一次（或加进 `~/.zshrc` / `~/.bashrc`）：

<Tabs>
  <Tab title="macOS / Linux">
    ```bash theme={null}
    export FORTAPI_API_KEY="sk-你的KEY"
    ```
  </Tab>

  <Tab title="Windows (PowerShell)">
    ```powershell theme={null}
    [Environment]::SetEnvironmentVariable("FORTAPI_API_KEY", "sk-你的KEY", "User")
    ```
  </Tab>
</Tabs>

<Note>
  `wire_api = "chat"` 表示走 OpenAI 经典 `/v1/chat/completions` 协议，最稳。如果你想用 Responses API，可以试 `"responses"`，但 FortAPI 上不是所有模型都支持新协议。
</Note>

### 方法二：纯环境变量

如果不想动配置文件：

<Tabs>
  <Tab title="macOS / Linux">
    ```bash theme={null}
    export OPENAI_BASE_URL="https://www.fortapi.com/v1"
    export OPENAI_API_KEY="sk-你的KEY"
    codex
    ```
  </Tab>

  <Tab title="Windows (PowerShell)">
    ```powershell theme={null}
    $env:OPENAI_BASE_URL = "https://www.fortapi.com/v1"
    $env:OPENAI_API_KEY  = "sk-你的KEY"
    codex
    ```
  </Tab>
</Tabs>

<Warning>
  OpenAI 兼容协议下，`base_url` / `OPENAI_BASE_URL` 末尾 **必须** 带 `/v1`。和 Anthropic 不同。
</Warning>

## 第一次验证

```bash theme={null}
cd ~/some-project
codex
```

进交互界面后简单问一句：

```
> 用一句话介绍你自己
```

正常拿到回复 + FortAPI 控制台 → **日志** 有对应记录 = 成功。

## 切换模型

会话内：

```
/model 你的模型名
```

也可以在 `config.toml` 顶部改 `model = "..."` 设默认。可用模型清单见主站 [价格](https://www.fortapi.com) 页。

## 常见问题

<AccordionGroup>
  <Accordion title="401 Unauthorized">
    * `OPENAI_API_KEY`（或 `FORTAPI_API_KEY`）应填 **FortAPI** 令牌（`sk-...`），不是 OpenAI 官方的 `sk-proj-...`。
    * 控制台 → **令牌** 确认 key 没禁用、模型白名单没把当前模型排除。
  </Accordion>

  <Accordion title="404 / model not found">
    * 模型 ID 拼错。FortAPI 上 OpenAI 系列模型与官方命名一致：`gpt-5`、`gpt-5-mini`、`o4-mini`、`gpt-4.1` 等。
    * `OPENAI_BASE_URL` 末尾必须带 `/v1`。
  </Accordion>

  <Accordion title="提示 'unsupported wire_api'">
    把 `config.toml` 里 `wire_api` 改成 `"chat"`。`"responses"` 协议只有部分新模型支持。
  </Accordion>

  <Accordion title="工具调用 / function calling 报错">
    FortAPI 默认完整透传 tool / function calling，行为和官方一致。如果 Codex 报错，先在 OpenAI 官方端用相同 prompt 试一下，确认不是 prompt 本身的问题。
  </Accordion>

  <Accordion title="想同时保留官方账号 + FortAPI">
    用 `config.toml` 配两个 provider，会话内 `/provider <name>` 切换；或者用 [CC Switch](/zh/integrations/ccswitch) 一键切。
  </Accordion>
</AccordionGroup>

## 进阶：和 Claude Code 并存

不少人同时用 Codex（写 OpenAI 系模型擅长的任务）和 Claude Code（长上下文 / 代码理解）。两个工具互不干扰，分别按 [Claude Code](/zh/integrations/claude-code) 和本页配置一次即可。同一把 FortAPI key 通用。
