Skip to content

Codex 配置 ​

1.安装 Codex ​

确保本地已经安装 Node.js 和 npm,然后执行(Windows 与 macOS 命令相同):

bash
npm install -g @openai/codex

安装完成后,可以通过以下命令检查 Codex 是否安装成功:

bash
codex --version

2.配置访问令牌 ​

将在 TokenSwitch 中获取的令牌写入环境变量。

macOS 配置 ​

如果使用 Zsh(macOS 默认),可以执行:

bash
echo 'export OPENAI_API_KEY="你的令牌"' >> ~/.zshrc
source ~/.zshrc

如果使用 Bash,则执行:

bash
echo 'export OPENAI_API_KEY="你的令牌"' >> ~/.bashrc
source ~/.bashrc

也可以只为当前终端会话临时设置令牌:

bash
export OPENAI_API_KEY="你的令牌"

Windows 配置 ​

方法一:永久配置(推荐)

在 PowerShell 中执行,将令牌写入用户级环境变量:

powershell
[Environment]::SetEnvironmentVariable("OPENAI_API_KEY", "你的令牌", "User")

设置完成后,需要重新打开 PowerShell 或命令提示符使其生效。

也可以通过图形界面设置:按 Win + R,输入 sysdm.cpl,在“高级”选项卡中点击“环境变量”,在“用户变量”区域新建 OPENAI_API_KEY。

方法二:仅为当前 PowerShell 会话临时设置

powershell
$env:OPENAI_API_KEY = "你的令牌"

请勿将真实令牌提交到 Git 仓库或直接写入项目配置文件。

3.创建 Codex 配置文件 ​

macOS 配置文件路径 ​

Codex 的用户级配置文件默认位于:

text
~/.codex/config.toml

如果 .codex 目录不存在,可以先创建该目录:

bash
mkdir -p ~/.codex

然后编辑配置文件:

bash
nano ~/.codex/config.toml

也可以使用其他文本编辑器打开该文件。

Windows 配置文件路径 ​

Codex 的用户级配置文件默认位于:

text
C:\Users\你的用户名\.codex\config.toml

如果 .codex 目录不存在,可以在 PowerShell 中创建该目录:

powershell
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.codex"

然后编辑配置文件:

powershell
notepad "$env:USERPROFILE\.codex\config.toml"

也可以使用 VS Code 等其他文本编辑器打开该文件:

powershell
code "$env:USERPROFILE\.codex\config.toml"

4.自定义服务商配置示例 ​

将以下内容写入配置文件(Windows 与 macOS 内容相同):

toml
# Codex 默认使用的模型,请替换为 TokenSwitch 支持的模型名称
model = "你的模型名称"

# 使用下面定义的 neolink 服务商
model_provider = "neolink"

# 执行命令前的确认策略
approval_policy = "on-request"

# 允许 Codex 在当前工作区内读写文件
sandbox_mode = "workspace-write"

[model_providers.neolink]
# 服务商显示名称
name = "Neolink"

# TokenSwitch 提供的 API 地址
base_url = {{apiUrl}}

# 从该环境变量读取访问令牌
env_key = "OPENAI_API_KEY"

# 使用 OpenAI Responses API 协议
wire_api = "responses"

# 自定义服务商不要求使用 OpenAI 官方账号登录
requires_openai_auth = false

请将配置中的:

toml
model = "你的模型名称"

替换为 TokenSwitch 当前支持的模型名称。

配置项说明 ​

配置项说明
modelCodex 默认使用的模型名称,需要与服务端支持的模型一致
model_provider当前使用的模型服务商,对应 model_providers 下的配置名称
approval_policy命令执行确认策略,on-request 表示在需要时请求用户确认
sandbox_mode沙箱权限,workspace-write 允许读取文件并修改当前工作区
base_urlTokenSwitch 提供的 API 基础地址
env_key保存访问令牌的环境变量名称
wire_apiAPI 通信协议;这里使用 responses
requires_openai_auth是否要求通过 OpenAI 官方账号登录;自定义服务商通常设置为 false

审批策略 ​

approval_policy 用于控制 Codex 执行命令时是否需要用户确认。

常用配置如下:

toml
# Codex 在认为有必要时请求确认
approval_policy = "on-request"

建议首次使用时保留 on-request,避免 Codex 未经确认执行具有潜在风险的操作。

沙箱模式 ​

workspace-write 允许 Codex 读取文件,并在当前工作区内进行修改:

toml
sandbox_mode = "workspace-write"

该模式适合日常开发。Codex 访问工作区之外的文件或执行受限制操作时,可能会要求额外授权。

如果只希望 Codex 分析代码、不修改文件,可以使用:

toml
sandbox_mode = "read-only"

5.检查环境变量 ​

启动 Codex 前,可以确认令牌是否已经生效。

macOS/Linux:

bash
test -n "$OPENAI_API_KEY" && echo "OPENAI_API_KEY 已配置" || echo "OPENAI_API_KEY 未配置"

Windows (PowerShell):

powershell
if ($env:OPENAI_API_KEY) { "OPENAI_API_KEY 已配置" } else { "OPENAI_API_KEY 未配置" }

该命令只检查环境变量是否存在,不会输出令牌内容。

6.开始使用 ​

进入项目所在目录:

bash
cd your-project

启动 Codex:

bash
codex

Codex 启动后,会读取配置文件中的默认模型、服务商、审批策略和沙箱配置。

7.恢复原有 Codex CLI 历史记录 ​

切换为 TokenSwitch API Key 只会改变 Codex 请求模型时使用的身份凭据,通常不会删除本机已有的 Codex CLI 会话。Codex CLI 的历史记录保存在本机 Codex 数据目录中,而不是保存在 API Key 中。

在原来的运行环境中恢复 ​

请尽量使用此前登录 GPT 账号时相同的:

  • 系统用户
  • 操作系统或终端环境
  • Codex 数据目录
  • 项目工作目录

首先检查当前 Codex 数据目录:

macOS/Linux:

bash
echo "${CODEX_HOME:-$HOME/.codex}"

Windows (PowerShell):

powershell
if ($env:CODEX_HOME) { $env:CODEX_HOME } else { "$env:USERPROFILE\.codex" }

再检查是否存在本地会话:

macOS/Linux:

bash
ls -la "${CODEX_HOME:-$HOME/.codex}"
ls -la "${CODEX_HOME:-$HOME/.codex}/sessions"

Windows (PowerShell):

powershell
$codexHome = if ($env:CODEX_HOME) { $env:CODEX_HOME } else { "$env:USERPROFILE\.codex" }
Get-ChildItem -Force $codexHome
Get-ChildItem -Force "$codexHome\sessions"

如果旧会话仍在当前数据目录中,可以尝试恢复最近一次会话:

bash
codex resume --last

也可以打开会话选择列表:

bash
codex resume

如果列表中没有显示目标会话,可在原项目目录中执行命令,或者显示所有项目中的会话:

bash
codex resume --all

切换 API Key 后,恢复的旧会话会继续保留原有上下文,但后续模型请求将通过当前配置的 TokenSwitch 服务发送。

从其他环境迁移历史记录 ​

如果以前在另一个系统用户、电脑、Windows、WSL 或容器中使用 Codex,需要复制原环境中的 Codex 数据目录。

macOS/Linux 迁移步骤 ​

迁移前,请先关闭所有正在运行的 Codex 进程,并备份当前目录:

bash
cp -a ~/.codex ~/.codex.backup

在原环境中打包 Codex 数据:

bash
tar -czf codex-history.tar.gz -C "$HOME" .codex

将压缩包安全地复制到新环境后解压:

bash
tar -xzf codex-history.tar.gz -C "$HOME"

然后检查并恢复会话:

bash
codex resume --all

如果只想迁移会话,避免覆盖新环境中的 config.toml 和 Token 配置,可以只复制原环境中的会话目录,例如:

bash
mkdir -p ~/.codex/sessions
cp -a /原环境的用户目录/.codex/sessions/. ~/.codex/sessions/

Windows 迁移步骤 ​

迁移前,请先关闭所有正在运行的 Codex 进程,并在 PowerShell 中备份当前目录:

powershell
Copy-Item -Recurse -Force "$env:USERPROFILE\.codex" "$env:USERPROFILE\.codex.backup"

在原环境中打包 Codex 数据:

powershell
Compress-Archive -Path "$env:USERPROFILE\.codex" -DestinationPath "codex-history.zip"

将压缩包安全地复制到新环境后解压:

powershell
Expand-Archive -Path "codex-history.zip" -DestinationPath $env:USERPROFILE -Force

然后检查并恢复会话:

bash
codex resume --all

如果只想迁移会话,避免覆盖新环境中的 config.toml 和 Token 配置,可以只复制原环境中的会话目录:

powershell
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.codex\sessions"
Copy-Item -Recurse -Force "原环境路径\.codex\sessions\*" "$env:USERPROFILE\.codex\sessions\"

版本兼容性 ​

不同 Codex 版本使用的文件结构可能有所差异。迁移前建议将新旧环境的 Codex 都升级到相同版本:

bash
npm install -g @openai/codex@latest
codex --version

Windows 与 WSL 互相迁移 ​

Windows 和 WSL 使用不同的用户目录。例如:

  • Windows:C:\Users\你的用户名\.codex
  • WSL:/home/你的用户名/.codex

从 Windows 迁移到 WSL:

如果此前在 Windows PowerShell 中使用 Codex,现在改为在 WSL 中运行,需要在 WSL 中将 Windows 下的会话复制过来:

bash
mkdir -p ~/.codex/sessions
cp -a /mnt/c/Users/你的Windows用户名/.codex/sessions/. ~/.codex/sessions/

从 WSL 迁移到 Windows:

在 Windows PowerShell 中执行:

powershell
$wslUser = "你的WSL用户名"
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.codex\sessions"
Copy-Item -Recurse -Force "\\wsl$\Ubuntu\home\$wslUser\.codex\sessions\*" "$env:USERPROFILE\.codex\sessions\"

完成后执行:

bash
codex resume --all

无法同步的记录 ​

以下记录无法通过 TokenSwitch API Key 自动同步:

  • ChatGPT 网页端或客户端中的聊天记录
  • 仅保存在 GPT/OpenAI 账号云端、未写入本机 Codex 数据目录的记录
  • 已经从本机删除且没有备份的 Codex CLI 会话

TokenSwitch API Key 只负责模型接口鉴权,不具备读取 GPT/OpenAI 账号聊天历史的权限。若记录只存在于 ChatGPT 网页端,需要在原账号中手动导出或复制相关内容,无法直接导入为 Codex CLI 的历史会话。

8.常见问题 ​

配置文件没有生效 ​

确认配置文件路径是否正确:

macOS/Linux:

bash
ls -la ~/.codex/config.toml

Windows (PowerShell):

powershell
Test-Path "$env:USERPROFILE\.codex\config.toml"
Get-Content "$env:USERPROFILE\.codex\config.toml"

同时检查 TOML 格式是否正确,例如字符串需要使用引号包裹,并且配置项不能重复定义。

提示缺少 API Key ​

检查环境变量是否已经设置:

macOS/Linux:

bash
test -n "$OPENAI_API_KEY" && echo "已配置" || echo "未配置"

Windows (PowerShell):

powershell
if ($env:OPENAI_API_KEY) { "已配置" } else { "未配置" }

macOS/Linux 如果刚刚修改了 ~/.zshrc,需要重新加载配置:

bash
source ~/.zshrc

使用 Bash 时执行:

bash
source ~/.bashrc

也可以关闭当前终端并重新打开。

Windows 如果刚刚设置了永久环境变量,需要重新打开 PowerShell 或命令提示符使其生效。

模型不可用 ​

检查 config.toml 中的模型名称是否与 TokenSwitch 支持的模型名称完全一致:

toml
model = "你的模型名称"

如果模型名称、API 地址或协议配置不正确,Codex 可能会返回模型不存在、接口不支持或请求失败等错误。

接口不支持 Responses API ​

上面的配置默认使用 Responses API:

toml
wire_api = "responses"

请确认所使用的 TokenSwitch 接口支持 Responses API。如果服务端仅支持其他协议,需要根据服务端的实际兼容方式调整配置。