Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Codex Three-Provider Switcher

一个面向 Windows Codex Desktop 的三线路切换器,可在以下 provider 之间切换:

按钮 Provider 默认模型 凭据来源
GPT Official OpenAI 官方账号 gpt-5.6-sol Codex 已登录的 OpenAI/ChatGPT 账号
Honknet Honknet Responses API gpt-5.6-sol HONKNET_API_KEY 用户环境变量
DeepSeek DeepSeek Responses API deepseek-v4-flash DEEPSEEK_API_KEY 用户环境变量

这是非官方社区工具。它不会提供、共享或代购任何 API Key,也不会绕过供应商的账号、额度或使用限制。

下载与安装(推荐小白使用)

仅支持 Windows 10/11 64 位电脑

Microsoft Store 版(正式发行方案,准备中)

项目将优先通过 Microsoft Store 发布 MSIX。通过认证后,MSIX 会由 Microsoft 使用微软证书重新签名,用户从 Store 安装时不需要处理 GitHub 下载文件常见的 SmartScreen 警告。当前尚未通过 Store 认证,不要从第三方网站下载所谓“商店签名版”

  • Store 上架后,这里会补充唯一的 Microsoft Store 官方链接。
  • Store 版与 GitHub 版使用同一套开源代码和 provider 配置。
  • 开发者无需购买商业代码签名证书;免费签名只适用于通过 Store 审核并由 Store 分发的 MSIX。
  • 在 GitHub 单独分发 MSIX 仍然需要开发者自己的可信签名,不能把未签名的 Store 上传包当作安装包发布。

开发者请阅读 Microsoft Store / MSIX 发布指南

GitHub 备用下载

在 Store 上架前,或无法访问 Store 时,请只从本项目 GitHub Releases 下载:

EXE 安装版

  1. 下载 Codex-Three-Provider-Switcher-Setup-x64.exe
  2. 双击安装,不需要管理员权限。
  3. 安装完成后,双击桌面的“Codex 三线路切换器”。
  4. 只使用 GPT 官方线路时无需配置第三方 Key。
  5. 使用 Honknet 或 DeepSeek 时,从开始菜单打开“配置 Honknet 和 DeepSeek 密钥”,按提示进行隐藏输入。

ZIP 免安装版

  1. 下载 Codex-Three-Provider-Switcher-Portable-x64.zip
  2. 右键选择“全部解压”,不能直接在压缩包内运行。
  3. 双击 Start-Codex-Switcher.cmd 打开切换器。
  4. 使用第三方线路前,双击 Configure-Provider-Keys.cmd 配置 Key。

Windows 安全提示

本提示只适用于 GitHub 提供的未签名 EXE/ZIP 备用版本。本项目没有为这些文件购买商业代码签名证书,因此 Windows SmartScreen 可能显示“Windows 已保护你的电脑”。请先确认文件来自本仓库的 GitHub Releases,再点击“更多信息”与“仍要运行”。如果下载来源不明,请不要运行。通过 Microsoft Store 安装的正式 MSIX 由 Microsoft 签名,不使用这套手动放行流程。

最终效果

Codex 三线路切换器最终界面

面板默认显示中文;点击右上角的 English 可即时切换英文,再点击 中文 即可切回。界面会显示当前 provider、模型、两个第三方 Key 的配置状态以及 DeepSeek 模型目录状态。截图中的“已配置”只表示对应配置在本机可用,不包含或展示任何真实 Key。

为什么需要这个工具

这个项目解决的核心问题不是“管理 Codex 登录账号”,而是明确控制 Codex Desktop 下一次启动时使用的 provider 和模型线路。

1. 解决中转工具残留导致无法切回官方线路

部分用户长期使用 CC Switch、Codex 路由工具或其他脚本配置中转 API。这些工具可能在 %USERPROFILE%\.codex\config.toml 中留下:

  • 顶层 model_provider 仍指向 custom 或其他第三方 provider。
  • 第三方 base_url、模型目录和 bearer token 配置继续生效。
  • 多个工具反复改写同一份配置,导致字段重复、配置错乱或状态难以判断。

后续即使订阅了 Codex 官方账号并完成 OpenAI/ChatGPT 登录,客户端仍可能继续使用原来的中转 provider,看起来像是“官方账号无法登录”或“登录后没有切回官方模型”。这是因为账号授权状态和模型路由配置是两套独立状态:登录成功并不会自动清除第三方 model_provider

本工具在保留官方登录状态、MCP、插件和权限配置的前提下,明确重写顶层 provider/model 路由,并在切换前自动备份,从而稳定切回 GPT Official。

2. 官方 Codex 额度不足时快速切换到中转 API

当官方账号额度不足、暂时受限或需要使用其他模型时,可以一键切换到 Honknet 或 DeepSeek 线路,继续通过 Codex Desktop 工作。官方额度恢复后,再点击 GPT Official 切回,原有 OpenAI/ChatGPT 登录状态仍然保留。

本项目会读取已登录官方账号返回的 Codex 限额数据,用于显示剩余百分比和重置时间;线路切换仍然是人工一键操作,不会自动在后台更改 provider。切换后必须重启客户端并新建任务,才能明确验证新的线路。

不建议让 CC Switch、其他 provider 管理工具和本项目同时改写同一个 config.toml。确定使用本项目后,应由一个工具统一管理线路,避免配置再次相互覆盖。

它会做什么

  • 提供一个包含三个按钮的 Windows 桌面窗口。
  • 默认使用中文界面,并支持在窗口内即时切换中文和英文。
  • 切换前自动备份 %USERPROFILE%\.codex\config.toml
  • 只替换顶层模型路由设置,并维护自己的 provider table。
  • 保留现有的插件、MCP、权限、features、projects 等其他配置。
  • 从 Windows 环境变量读取第三方 Key,不把 Key 写入仓库或 TOML。
  • 显示官方 Codex 剩余量、重置时间,并在窗口打开期间每 60 秒自动刷新。
  • 切换后重启 Codex Desktop;已有任务不会改变 provider,需要新建任务。

系统要求

  • Windows 10 或 Windows 11,64 位 x64 电脑。
  • Microsoft Store 版 Codex Desktop。
  • Windows PowerShell 5.1 或 PowerShell 7。
  • 已至少启动并登录过一次 Codex Desktop,使下列文件存在:
%USERPROFILE%\.codex\config.toml
%USERPROFILE%\.codex\auth.json
  • Honknet 和 DeepSeek 线路需要你自己合法取得的 API Key。
  • 第三方服务端必须支持 Codex 使用的 Responses API。只支持 chat/completions 的接口不能直接使用本项目默认配置。
  • 官方额度显示需要 Node.js 和 npm 版 @openai/codex CLI;未安装时三路切换仍可使用,只有额度区域显示 Unavailable

检查 Codex CLI:

codex --version

需要安装或更新时:

npm install -g @openai/codex

重要安全提醒

不要把真实 API Key 填进以下文件:

  • providers.json
  • config.toml
  • README.md
  • CMD、PowerShell 脚本或 Git 提交

安装程序通过隐藏输入读取 Key,并保存到当前 Windows 用户的环境变量。仓库的 .gitignore 也会排除常见密钥和 Codex 本地配置文件,但 .gitignore 不是泄密后的补救措施。

源码安装(高级用户)

普通用户优先使用上面的 EXE 安装版或 ZIP 免安装版。以下步骤用于需要审查源码、修改 provider 或参与开发的用户。

第一步:登录官方 Codex

先正常打开 Codex Desktop,使用 OpenAI/ChatGPT 账号登录。确认官方模型可以创建新任务并正常回复。

安装程序不会保存或修改你的 OpenAI 登录凭据。官方线路继续使用 Codex 自己的 auth.json

第二步:准备第三方 Key

准备以下 Key,按需配置:

  • Honknet Key:保存到 HONKNET_API_KEY
  • DeepSeek Key:保存到 DEEPSEEK_API_KEY

Key 必须来自对应服务商。请勿使用他人的 Key,也不要把 Key 发到聊天、Issue 或截图中。

第三步:下载仓库

使用 Git:

git clone https://github.com/Frog1205/codex-three-provider-switcher.git
cd codex-three-provider-switcher

也可以在 GitHub 页面点击 Code > Download ZIP,解压后进入目录。

第四步:运行安装程序

在仓库目录打开 PowerShell:

powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\Install.ps1

安装程序会依次询问是否配置 Honknet 和 DeepSeek Key:

Honknet key is not configured. Configure or replace it now? [y/N]
DeepSeek key is not configured. Configure or replace it now? [y/N]

输入 y 后按回车,再输入真实 Key。Key 输入过程不会显示字符。

可以只配置其中一个第三方线路。未配置的线路会在切换器中显示 Missing,点击时会拒绝修改配置。

安装完成后,文件位于:

%LOCALAPPDATA%\CodexThreeProviderSwitcher

桌面会出现:

Codex Three-Provider Switcher

第五步:重启并首次切换

  1. 完全退出 Codex Desktop。
  2. 重新打开 Codex Desktop一次,使新环境变量进入客户端进程。
  3. 保存当前任务中的未提交内容。
  4. 双击桌面的 Codex Three-Provider Switcher
  5. 点击所需线路。
  6. 等待 Codex Desktop 重启。
  7. 在客户端中创建一个新任务进行验证。

不要用切换前已经打开的任务判断是否成功。旧任务可能继续保留原会话的 provider 状态。

不使用安装程序时,手工配置 Key

PowerShell 方法

设置 Honknet:

[Environment]::SetEnvironmentVariable(
  "HONKNET_API_KEY",
  "你的真实Honknet Key",
  "User"
)

设置 DeepSeek:

[Environment]::SetEnvironmentVariable(
  "DEEPSEEK_API_KEY",
  "你的真实DeepSeek Key",
  "User"
)

验证变量是否存在,不显示 Key:

![string]::IsNullOrWhiteSpace(
  [Environment]::GetEnvironmentVariable("HONKNET_API_KEY", "User")
)

![string]::IsNullOrWhiteSpace(
  [Environment]::GetEnvironmentVariable("DEEPSEEK_API_KEY", "User")
)

返回 True 表示对应变量已配置。

Windows 图形界面方法

  1. 打开“设置”,搜索“环境变量”。
  2. 选择“编辑账户的环境变量”。
  3. 在“用户变量”区域点击“新建”。
  4. 变量名填写 HONKNET_API_KEYDEEPSEEK_API_KEY
  5. 变量值填写对应的真实 Key。
  6. 保存后完全退出并重新打开 Codex Desktop。

env_key 不是环境变量本身。它是 Codex config.toml 中的字段,用来告诉 Codex应该读取哪个 Windows 环境变量。

日常使用

桌面窗口显示:

  • 当前 provider 和模型。
  • Honknet Key 是否存在。
  • DeepSeek Key 是否存在。
  • DeepSeek 模型目录是否可用。
  • 官方 Codex 剩余百分比和重置时间。

默认是中文界面。点击窗口右上角的 English 会立即切换全部面板文案、状态提示和弹窗;英文界面中点击 中文 可随时切回,不需要重启软件。

三个按钮分别切换到:

  • GPT Official
  • Honknet
  • DeepSeek

每次切换都会在下面的目录创建一份备份:

%USERPROFILE%\.codex\provider-switch-backups

官方额度显示

窗口打开后会立即读取一次官方 Codex 剩余量,随后每 60 秒刷新。即使当前 provider 是 Honknet 或 DeepSeek,额度读取器也会独立查询已登录的官方账号。

当剩余量从 0% 恢复为可用状态时,额度区域会变成绿色并显示:

Official quota is available. You can switch back to GPT Official.

本版本只显示和提示,不会自动替你切换 provider。确认额度恢复后,由你点击 GPT Official,等待客户端重启并新建任务。

额度读取使用当前 Codex app-server 的 account/rateLimits/read 协议。官方公开文档承诺的查看方式是 usage dashboard 和 CLI 会话中的 /status;如果后续 Codex 版本调整本地协议,额度区域会降级为 Unavailable,不会影响 provider 切换。

自动刷新只在切换器窗口保持打开时运行。关闭窗口后不会安装后台服务或计划任务。

命令行使用

进入安装目录:

cd "$env:LOCALAPPDATA\CodexThreeProviderSwitcher"

查看当前状态:

powershell.exe -ExecutionPolicy Bypass -File .\CodexProviderSwitcher.ps1 -Mode status

切换线路:

powershell.exe -ExecutionPolicy Bypass -File .\CodexProviderSwitcher.ps1 -Mode gpt
powershell.exe -ExecutionPolicy Bypass -File .\CodexProviderSwitcher.ps1 -Mode honkai
powershell.exe -ExecutionPolicy Bypass -File .\CodexProviderSwitcher.ps1 -Mode ds

需要直接以英文界面启动时:

powershell.exe -ExecutionPolicy Bypass -File .\CodexProviderSwitcher.ps1 -Language en

不指定 -Language 时默认使用 zh-CN

别名对应关系:

输入 实际线路
gptofficial GPT Official
honkaihonknet Honknet
dsdeepseek DeepSeek

生成的 Codex 配置

Honknet 切换时会自动维护以下 provider。真实 Key 不会出现在 TOML 中:

[model_providers.honknet]
name = "Honknet"
base_url = "https://sub2api.honknet.io"
env_key = "HONKNET_API_KEY"
wire_api = "responses"
requires_openai_auth = false

DeepSeek 切换时会自动维护:

[model_providers.deepseek]
name = "DeepSeek"
base_url = "https://api.deepseek.com"
env_key = "DEEPSEEK_API_KEY"
wire_api = "responses"
requires_openai_auth = false

顶层活动线路设置会随按钮切换,例如:

model_provider = "honknet"
model = "gpt-5.6-sol"
model_reasoning_effort = "medium"
disable_response_storage = true

修改 URL 或模型

不同账号、代理或服务商可能使用不同 URL 和模型名。修改仓库中的:

src\providers.json

然后重新运行 Install.ps1,安装程序会覆盖 %LOCALAPPDATA% 中的程序文件,但不会删除 Key、Codex 配置或备份。

常用字段:

字段 用途
provider_id 写入 model_provider 的 provider 标识
model 请求的模型 slug
base_url 服务商 API 地址
env_key Windows 环境变量名称,不是 Key 值
wire_api 默认是 responses
catalog_file 可选模型能力目录

DeepSeek 默认附带 deepseek-model-catalog.json。如果更换模型 slug,模型目录中的 slug 也必须匹配。高级用户也可以从 DeepSeek 定义中删除 catalog_file,让 Codex 使用默认模型能力,但部分工具能力可能无法正确声明。

验证安装

先运行不接触正式配置的自动测试:

powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\tests\Test-Switcher.ps1

预期输出:

PASS: syntax, Chinese/English UI, quota reader packaging, aliases, provider/model routing, unrelated config preservation, and backups.

真实线路验收清单:

  • GPT Official 新任务能正常回复。
  • Honknet 新任务能正常回复,且没有 401 或环境变量缺失错误。
  • DeepSeek 新任务能正常回复,且没有模型目录或协议错误。
  • 切换前后 MCP、插件和权限配置仍存在。
  • provider-switch-backups 每次新增一份备份。

常见问题

显示 HONKNET_API_KEY is missing

环境变量没有写入当前 Windows 用户,或 Codex/切换器在设置变量前已经启动。

  1. 用上面的只返回 True/False 命令检查变量。
  2. 完全关闭切换器和 Codex Desktop。
  3. 重新打开;仍不生效时注销并重新登录 Windows。

显示 DEEPSEEK_API_KEY is missing

处理方法与 Honknet 相同。不要把 Key 写进 providers.json

显示 Official Codex remaining: Unavailable

这只代表额度查询失败,不影响三个 provider 按钮。依次检查:

  1. codex --version 是否可以正常运行。
  2. %APPDATA%\npm\node_modules\@openai\codex\bin\codex.js 是否存在。
  3. 官方 Codex 账号是否已经登录。
  4. 点击 Refresh 重试,或使用官方 usage dashboard 核对。

查询器每个阶段最多等待 8 秒,失败后不会卡住主窗口,并会在下一次自动刷新时重试。

返回 401403

  • Key 无效、已过期或没有对应权限。
  • Key 与 base_url 不是同一个服务商。
  • 环境变量中包含多余引号或空格。

更新 Key 后重启 Codex Desktop。

返回 404、协议错误或 Responses API 错误

默认配置要求服务端支持 Responses API。部分第三方接口只兼容 OpenAI Chat Completions,不能直接用于 Codex 的该 provider 配置。

核对服务商文档中的:

  • base_url
  • 模型 slug
  • Responses API 支持情况

点击后还是旧模型

  • 仍在使用切换前的旧任务。
  • Codex Desktop 没有完全退出。
  • 切换器是在 Codex 自己的终端中运行,因此出于安全保护没有自动关闭宿主客户端。

手工关闭 Codex Desktop,重新打开并新建任务。

config.toml 损坏或想回滚

  1. 完全关闭 Codex Desktop。
  2. 打开 %USERPROFILE%\.codex\provider-switch-backups
  3. 找到最近一份正常的 config-日期时间.toml
  4. 先备份当前文件,再将正常备份复制为 %USERPROFILE%\.codex\config.toml
  5. 重新打开 Codex Desktop。

卸载

使用 EXE 安装版时,在 Windows“设置 > 应用 > 已安装的应用”中卸载 Codex Three-Provider Switcher,或使用开始菜单中的卸载入口。卸载程序文件时会保留 Codex 配置、线路备份和环境变量中的 Key。

使用源码安装方式时,在仓库目录执行:

powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\Uninstall.ps1

默认只删除安装目录和桌面快捷方式,保留:

  • Windows 环境变量中的 Key。
  • Codex config.toml
  • provider 配置和历史备份。

同时删除两个用户环境变量:

powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\Uninstall.ps1 -RemoveCredentials

卸载不会自动恢复当前 provider。如需回到官方线路,请先使用切换器点击 GPT Official,确认成功后再卸载。

项目结构

.
|-- Install.ps1
|-- Uninstall.ps1
|-- README.md
|-- SECURITY.md
|-- LICENSE
|-- packaging
|   |-- Build-Release.ps1
|   |-- CodexThreeProviderSwitcher.iss
|   `-- languages
|       `-- ChineseSimplified.isl
|-- portable
|   |-- Start-Codex-Switcher.cmd
|   |-- Configure-Provider-Keys.cmd
|   `-- PORTABLE-README.md
|-- src
|   |-- CodexProviderSwitcher.ps1
|   |-- ConfigureProviderKeys.ps1
|   |-- Get-CodexRateLimits.ps1
|   |-- providers.json
|   `-- deepseek-model-catalog.json
`-- tests
    |-- Test-Switcher.ps1
    `-- Test-Packages.ps1

开发与贡献

提交 PR 前请运行:

powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\tests\Test-Switcher.ps1
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\tests\Test-Packages.ps1

安装 Inno Setup 6 后,可复现生成发布文件:

winget install --id JRSoftware.InnoSetup --exact
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\packaging\Build-Release.ps1 -Version 1.0.0

产物位于 dist,固定文件名用于 GitHub Releases 的 latest/download 链接。安装程序在编译配置中强制要求 Windows 10+ 与 x64 兼容架构。

不要在 Issue、PR、测试 fixture 或日志中提交真实 Key。示例只能使用明确标记为测试用途的占位符。

许可证

MIT

About

Windows Codex Desktop switcher for GPT Official, Honknet, and DeepSeek

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages