Codex 配置
1.安装 Codex
确保本地已经安装 Node.js 和 npm,然后执行(Windows 与 macOS 命令相同):
npm install -g @openai/codex安装完成后,可以通过以下命令检查 Codex 是否安装成功:
codex --version2.配置访问令牌
将在 TokenSwitch 中获取的令牌写入环境变量。
macOS 配置
如果使用 Zsh(macOS 默认),可以执行:
echo 'export OPENAI_API_KEY="你的令牌"' >> ~/.zshrc
source ~/.zshrc如果使用 Bash,则执行:
echo 'export OPENAI_API_KEY="你的令牌"' >> ~/.bashrc
source ~/.bashrc也可以只为当前终端会话临时设置令牌:
export OPENAI_API_KEY="你的令牌"Windows 配置
方法一:永久配置(推荐)
在 PowerShell 中执行,将令牌写入用户级环境变量:
[Environment]::SetEnvironmentVariable("OPENAI_API_KEY", "你的令牌", "User")设置完成后,需要重新打开 PowerShell 或命令提示符使其生效。
也可以通过图形界面设置:按 Win + R,输入 sysdm.cpl,在“高级”选项卡中点击“环境变量”,在“用户变量”区域新建 OPENAI_API_KEY。
方法二:仅为当前 PowerShell 会话临时设置
$env:OPENAI_API_KEY = "你的令牌"请勿将真实令牌提交到 Git 仓库或直接写入项目配置文件。
3.创建 Codex 配置文件
macOS 配置文件路径
Codex 的用户级配置文件默认位于:
~/.codex/config.toml如果 .codex 目录不存在,可以先创建该目录:
mkdir -p ~/.codex然后编辑配置文件:
nano ~/.codex/config.toml也可以使用其他文本编辑器打开该文件。
Windows 配置文件路径
Codex 的用户级配置文件默认位于:
C:\Users\你的用户名\.codex\config.toml如果 .codex 目录不存在,可以在 PowerShell 中创建该目录:
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.codex"然后编辑配置文件:
notepad "$env:USERPROFILE\.codex\config.toml"也可以使用 VS Code 等其他文本编辑器打开该文件:
code "$env:USERPROFILE\.codex\config.toml"4.自定义服务商配置示例
将以下内容写入配置文件(Windows 与 macOS 内容相同):
# 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请将配置中的:
model = "你的模型名称"替换为 TokenSwitch 当前支持的模型名称。
配置项说明
| 配置项 | 说明 |
|---|---|
model | Codex 默认使用的模型名称,需要与服务端支持的模型一致 |
model_provider | 当前使用的模型服务商,对应 model_providers 下的配置名称 |
approval_policy | 命令执行确认策略,on-request 表示在需要时请求用户确认 |
sandbox_mode | 沙箱权限,workspace-write 允许读取文件并修改当前工作区 |
base_url | TokenSwitch 提供的 API 基础地址 |
env_key | 保存访问令牌的环境变量名称 |
wire_api | API 通信协议;这里使用 responses |
requires_openai_auth | 是否要求通过 OpenAI 官方账号登录;自定义服务商通常设置为 false |
审批策略
approval_policy 用于控制 Codex 执行命令时是否需要用户确认。
常用配置如下:
# Codex 在认为有必要时请求确认
approval_policy = "on-request"建议首次使用时保留 on-request,避免 Codex 未经确认执行具有潜在风险的操作。
沙箱模式
workspace-write 允许 Codex 读取文件,并在当前工作区内进行修改:
sandbox_mode = "workspace-write"该模式适合日常开发。Codex 访问工作区之外的文件或执行受限制操作时,可能会要求额外授权。
如果只希望 Codex 分析代码、不修改文件,可以使用:
sandbox_mode = "read-only"5.检查环境变量
启动 Codex 前,可以确认令牌是否已经生效。
macOS/Linux:
test -n "$OPENAI_API_KEY" && echo "OPENAI_API_KEY 已配置" || echo "OPENAI_API_KEY 未配置"Windows (PowerShell):
if ($env:OPENAI_API_KEY) { "OPENAI_API_KEY 已配置" } else { "OPENAI_API_KEY 未配置" }该命令只检查环境变量是否存在,不会输出令牌内容。
6.开始使用
进入项目所在目录:
cd your-project启动 Codex:
codexCodex 启动后,会读取配置文件中的默认模型、服务商、审批策略和沙箱配置。
7.恢复原有 Codex CLI 历史记录
切换为 TokenSwitch API Key 只会改变 Codex 请求模型时使用的身份凭据,通常不会删除本机已有的 Codex CLI 会话。Codex CLI 的历史记录保存在本机 Codex 数据目录中,而不是保存在 API Key 中。
在原来的运行环境中恢复
请尽量使用此前登录 GPT 账号时相同的:
- 系统用户
- 操作系统或终端环境
- Codex 数据目录
- 项目工作目录
首先检查当前 Codex 数据目录:
macOS/Linux:
echo "${CODEX_HOME:-$HOME/.codex}"Windows (PowerShell):
if ($env:CODEX_HOME) { $env:CODEX_HOME } else { "$env:USERPROFILE\.codex" }再检查是否存在本地会话:
macOS/Linux:
ls -la "${CODEX_HOME:-$HOME/.codex}"
ls -la "${CODEX_HOME:-$HOME/.codex}/sessions"Windows (PowerShell):
$codexHome = if ($env:CODEX_HOME) { $env:CODEX_HOME } else { "$env:USERPROFILE\.codex" }
Get-ChildItem -Force $codexHome
Get-ChildItem -Force "$codexHome\sessions"如果旧会话仍在当前数据目录中,可以尝试恢复最近一次会话:
codex resume --last也可以打开会话选择列表:
codex resume如果列表中没有显示目标会话,可在原项目目录中执行命令,或者显示所有项目中的会话:
codex resume --all切换 API Key 后,恢复的旧会话会继续保留原有上下文,但后续模型请求将通过当前配置的 TokenSwitch 服务发送。
从其他环境迁移历史记录
如果以前在另一个系统用户、电脑、Windows、WSL 或容器中使用 Codex,需要复制原环境中的 Codex 数据目录。
macOS/Linux 迁移步骤
迁移前,请先关闭所有正在运行的 Codex 进程,并备份当前目录:
cp -a ~/.codex ~/.codex.backup在原环境中打包 Codex 数据:
tar -czf codex-history.tar.gz -C "$HOME" .codex将压缩包安全地复制到新环境后解压:
tar -xzf codex-history.tar.gz -C "$HOME"然后检查并恢复会话:
codex resume --all如果只想迁移会话,避免覆盖新环境中的 config.toml 和 Token 配置,可以只复制原环境中的会话目录,例如:
mkdir -p ~/.codex/sessions
cp -a /原环境的用户目录/.codex/sessions/. ~/.codex/sessions/Windows 迁移步骤
迁移前,请先关闭所有正在运行的 Codex 进程,并在 PowerShell 中备份当前目录:
Copy-Item -Recurse -Force "$env:USERPROFILE\.codex" "$env:USERPROFILE\.codex.backup"在原环境中打包 Codex 数据:
Compress-Archive -Path "$env:USERPROFILE\.codex" -DestinationPath "codex-history.zip"将压缩包安全地复制到新环境后解压:
Expand-Archive -Path "codex-history.zip" -DestinationPath $env:USERPROFILE -Force然后检查并恢复会话:
codex resume --all如果只想迁移会话,避免覆盖新环境中的 config.toml 和 Token 配置,可以只复制原环境中的会话目录:
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.codex\sessions"
Copy-Item -Recurse -Force "原环境路径\.codex\sessions\*" "$env:USERPROFILE\.codex\sessions\"版本兼容性
不同 Codex 版本使用的文件结构可能有所差异。迁移前建议将新旧环境的 Codex 都升级到相同版本:
npm install -g @openai/codex@latest
codex --versionWindows 与 WSL 互相迁移
Windows 和 WSL 使用不同的用户目录。例如:
- Windows:
C:\Users\你的用户名\.codex - WSL:
/home/你的用户名/.codex
从 Windows 迁移到 WSL:
如果此前在 Windows PowerShell 中使用 Codex,现在改为在 WSL 中运行,需要在 WSL 中将 Windows 下的会话复制过来:
mkdir -p ~/.codex/sessions
cp -a /mnt/c/Users/你的Windows用户名/.codex/sessions/. ~/.codex/sessions/从 WSL 迁移到 Windows:
在 Windows 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\"完成后执行:
codex resume --all无法同步的记录
以下记录无法通过 TokenSwitch API Key 自动同步:
- ChatGPT 网页端或客户端中的聊天记录
- 仅保存在 GPT/OpenAI 账号云端、未写入本机 Codex 数据目录的记录
- 已经从本机删除且没有备份的 Codex CLI 会话
TokenSwitch API Key 只负责模型接口鉴权,不具备读取 GPT/OpenAI 账号聊天历史的权限。若记录只存在于 ChatGPT 网页端,需要在原账号中手动导出或复制相关内容,无法直接导入为 Codex CLI 的历史会话。
8.常见问题
配置文件没有生效
确认配置文件路径是否正确:
macOS/Linux:
ls -la ~/.codex/config.tomlWindows (PowerShell):
Test-Path "$env:USERPROFILE\.codex\config.toml"
Get-Content "$env:USERPROFILE\.codex\config.toml"同时检查 TOML 格式是否正确,例如字符串需要使用引号包裹,并且配置项不能重复定义。
提示缺少 API Key
检查环境变量是否已经设置:
macOS/Linux:
test -n "$OPENAI_API_KEY" && echo "已配置" || echo "未配置"Windows (PowerShell):
if ($env:OPENAI_API_KEY) { "已配置" } else { "未配置" }macOS/Linux 如果刚刚修改了 ~/.zshrc,需要重新加载配置:
source ~/.zshrc使用 Bash 时执行:
source ~/.bashrc也可以关闭当前终端并重新打开。
Windows 如果刚刚设置了永久环境变量,需要重新打开 PowerShell 或命令提示符使其生效。
模型不可用
检查 config.toml 中的模型名称是否与 TokenSwitch 支持的模型名称完全一致:
model = "你的模型名称"如果模型名称、API 地址或协议配置不正确,Codex 可能会返回模型不存在、接口不支持或请求失败等错误。
接口不支持 Responses API
上面的配置默认使用 Responses API:
wire_api = "responses"请确认所使用的 TokenSwitch 接口支持 Responses API。如果服务端仅支持其他协议,需要根据服务端的实际兼容方式调整配置。
