Skip to content

About

Experimental cross-platform launcher for Codex provider profiles

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Codex Easy Switch

一个跨平台的本地 Codex 启动器,供用户在个人账号和自定义 API 服务之间切换。服务地址、模型和密钥由使用者自行提供,项目不包含预设中转站或账号。

0.4.11 恢复“同时显示个人账号额度”选项,并修复号池已提供 Fast 档位时本地未启用 Fast 功能的问题。开启额度显示后,启动器创建仅监听本机的转发连接:桌面保留真实个人登录以显示额度,聊天请求发往所选服务时只携带该服务的 API 密钥。请保持启动器运行。保留 0.4.10 的本地项目恢复、运行时发现和 HTTPS 连接修复。

个人账号与 API 的项目显示

新版 Desktop 会按登录身份保存侧栏项目。切到没有 ChatGPT 身份的 API 后,原有项目可能从侧栏消失,文件本身仍在。0.4.10 在退出 Desktop 后保存个人视图,为 API 模式准备仅包含普通本地文件夹项目及明确对话归属的视图;切回个人模式时恢复原视图,并合并 API 期间对本地项目的修改。云端项目、其他账号视图和个人待发送消息不会复制到 API 视图。启动失败时回滚此次视图切换。

请通过启动器完成两个方向的切换。个人视图恢复记录保存在 Codex 配置目录的 .codex-easy-switch-personal-view.json,原始视图另有 desktop-view-*.json 备份;切回个人模式前不要删除恢复记录。该兼容流程依据 Desktop 26.1103 的本地状态格式实现,尚未完成各平台真实桌面切换的全面验证;遇到其他账号处于活动状态时会停止自动恢复。

更新提醒

打开启动器后会在后台查询本项目 GitHub 最新稳定版,成功结果缓存 24 小时;保持程序运行时每天再次检查。发现新版后,首页显示版本提醒和“下载更新”,点击后通过浏览器下载当前系统及架构对应的发行文件;没有对应文件时打开发布页。首页也有“检查更新”按钮。检查失败不会阻止正常启动,日志中记录错误类别。

只查询公开版本信息,不发送 API 密钥、服务地址、聊天或账号资料。关闭启动器后不会继续检查,也不会自动安装或覆盖运行中的程序。退出旧启动器后,用下载的新版本替换即可,原有系统凭据和服务设置继续保留。

共享网络导致 GitHub 版本 API 返回 403/429 时,会改用公开发布页确认稳定版本;此时点击更新会打开发布页选择下载。

HTTPS 连接说明

API 地址应填写服务商给出的基础路径,例如 https://relay.example/v1。证书校验始终开启;Mac 使用系统钥匙串信任,Windows 使用系统证书库,同时附带公共 CA 证书。企业代理证书需由用户或管理员配置为可信,也支持已有的 SSL_CERT_FILE / SSL_CERT_DIR 配置。域名不匹配、证书过期或未受信任时会拒绝连接;程序不会自动降级 HTTP。

HTTP 301/302 等跳转会提示填写最终 API 基础地址,避免把密钥发送到未经确认的地址;401/403 表示密钥或权限问题。若仍连接失败,可以通过“日志”查看错误类别,无需向开发者提供私有中转地址或密钥。

Windows 下载(免安装 Python)

下载后双击运行,先在电脑上安装并正常运行一次 Codex Desktop。个人账号直接启动;其他服务在设置中选择提供商并填写相应信息。

版本 下载
x64,Intel / AMD 64 位电脑(推荐) 下载 Windows x64 EXE
x86,32 位启动器 下载 Windows x86 EXE

全部版本、发布说明及 SHA256 校验文件。这两个版本面向 Windows 10/11,内含 Python 和图形组件,不用执行安装命令。x86 启动器已在 64 位 Windows 的兼容环境中验证;它不会让官方 Codex Desktop 支持原本不支持的 32 位操作系统。EXE 尚未购买代码签名证书,Windows 可能显示未知发布者。

Linux 与 macOS 下载(免安装 Python)

系统 下载
Linux x64(Intel / AMD) 下载 Linux x64
Linux ARM64 下载 Linux ARM64
macOS Apple Silicon 下载 macOS ARM64
macOS Intel 下载 macOS x64

Linux:下载后解压,在解压出的文件夹中运行 ./Codex-Provider-Launcher。启动器优先打开官方 ChatGPT Linux 桌面应用;如果没有安装桌面版,会在图形终端启动 Codex CLI。需要图形桌面、已解锁的 Secret Service 凭据库,以及桌面应用或 Codex CLI。CLI 模式暂不能可靠记住会话内的模型切换。Linux 包在 Ubuntu 22.04 上构建和测试;官方 Linux 桌面应用有自己的系统要求。

macOS:解压 ZIP,将 Codex-Provider-Launcher.app 放入应用程序文件夹并打开。需要先安装并登录官方 Codex 或 ChatGPT 桌面应用;密钥保存在钥匙串。两个包均在 macOS 15 原生构建和进行界面自检,真实桌面登录与对话尚未在 Mac 上验证。官方 Codex 桌面版的架构支持以 OpenAI 当前说明为准;Intel 启动器的构建成功不代表官方桌面版支持 Intel。应用尚未使用 Apple 开发者证书签名或公证,macOS 可能阻止打开。

启动页提供个人账号及在设置中勾选显示的服务;设置页支持 DeepSeek、豆包、千问 AI 平台、阿里云百炼和自定义 Responses API。普通 Chat Completions 的可选 LiteLLM 适配器不包含在便携包内。密钥保存在系统凭据库:Windows 凭据管理器、macOS 钥匙串或 Linux Secret Service;发行包不含开发者的密钥、域名或配置。

目前是实验版本。 Windows 图形界面、隔离配置校验和模拟协议转换已测试;Linux、macOS 便携包已在各自系统构建并检查图形界面和路由桥接;DeepSeek 原生 Responses 的流式和同名命名空间工具调用已实测;新增豆包、千问 AI 平台和百炼接口尚未使用真实账户完成端到端验证。各系统的完整桌面切换尚未全部验证。请先备份配置和聊天数据,不要把它用于无法中断的工作。

适用场景:个人额度用完后继续工作

当个人账号的 Codex 使用额度暂时用完,而手头的任务还没有完成时,可以通过启动器切换到自己配置的中转站或其他兼容 API 服务,继续后面的工作。等个人账号额度恢复后,再切回个人账号。

  1. 点击启动器右上角的“设置”,选择提供商并填写所需信息;使用 DeepSeek 时只需填写密钥。
  2. 需要切换时,先保存工作并正常退出 Codex Desktop,然后点击主界面显示的目标提供商按钮启动。
  3. 尝试打开原来的对话继续任务;如果旧对话无法继续,可以新建对话并提供必要的任务背景。
  4. 个人账号额度恢复后,正常退出 Codex,在启动器中选择“个人账号”重新启动。

切换使用的是所选服务自己的账号额度或 API 计费,不会增加个人账号额度。启动器会保留现有聊天和项目配置,但目前需要重启 Codex。0.4.7 适配了 Codex CLI 0.166 对旧对话提供商的一致性检查:启动前备份并更新本机分页对话索引中的提供商标记,继续使用原对话编号。迁移范围为 openai、launcher_custom 和旧版 opencodex_desktop_pool;其他提供商和旧式 legacy 对话不自动迁移。会话正文、时间、权限和账号文件不在迁移范围内。历史对话的跨服务继续功能仍在实验阶段,不能保证所有模型或服务都能无缝延续上下文。

主要功能

  • 个人账号直接启动;设置中选择提供商,可控制各提供商是否出现在启动页。旧版中转站配置归入“自定义模型”,保留配置和系统凭据,可修改启动按钮名称。
  • 豆包 / 火山方舟:选择按量、Coding Plan 或 Agent Plan,填写对应 API Key,设置页可填写多个模型 ID,桌面选择器会显示这些模型。内置名称来自官方文档,仅是候选,不代表当前账号已开通;可尝试读取上游列表或手动增删,实际权限以控制台和调用结果为准。各套餐密钥和 API 地址不互通,详见方舟 Responses 文档。
  • 千问 AI 平台:通过设置页的“申请 API Key”打开官方密钥页面,选择“按量 API”或“Token Plan”,填写对应密钥和模型 ID。套餐密钥(sk-sp-)与按量密钥使用不同地址,不可混用;候选模型可增删。参见千问平台 Responses 文档。
  • 通义 / 阿里云百炼:可配置多个 Responses 模型并在 Codex 中选择;提供北京地域业务空间 ID 后,可点“读取授权模型”查询账号已授权的内置候选。模型列表仍可手动增删,API Key 授权和余额以实际调用结果为准。填写北京地域工作空间 ID、API Key 和模型 ID;留空时使用百炼北京地域默认地址,其他地域填写官方提供的完整 Responses API 基础地址。模型须已开通并支持 Responses,参见百炼 Codex 文档。
  • 自定义模型:填写启动页按钮名称、支持 OpenAI Responses 的 API 基础地址、模型 ID 和密钥;可新建多个自定义配置,也可按旧方式读取模型列表并选择推荐模型。仅提供 Chat Completions 的服务不能直接使用此入口。
  • 豆包、千问 AI、百炼及 DeepSeek 的“测试模型”会发起一条真实简短请求,可能消耗额度或产生费用;测试只验证基本回复,不证明工具调用、流式传输和全部 Codex 功能兼容。
  • DeepSeek 按官方 Codex 接入文档直连原生 Responses API,保留命名空间和工具调用,不再经过 LiteLLM。普通 Chat Completions 服务仍可使用本机 LiteLLM 适配。
  • DeepSeek 模式提供 deepseek-flash 和 deepseek-v4-pro,支持关闭思考(none)、low、high、max 推理档位;同时设置模型目录和桌面端档位显示配置。设置中可选择默认模型并从官方 /models 读取列表;桌面端可在 Flash 与 Pro 间切换,旧对话残留的其他提供方模型会替换为所选默认模型。Flash 支持图片,Pro 为文本模型。切回个人账号或中转站时恢复各自的模型选择。
  • 设置中的“同时显示个人账号额度”在已登录个人账号时生效。启动器使用本机转发边界保留个人登录显示,并在转发前替换成提供商独立密钥;个人访问凭证、账号 ID 和 Cookie 不会发给中转站。此时需要保持启动器运行,关闭它会停止本机连接。未登录或关闭该选项时,继续直接使用 API 密钥。个人额度只说明个人订阅状态,不等于号池余量;号池未开放客户端用量接口时,不显示虚构的号池百分比。此选项不能解决提供商拒绝某种 API 优惠或组织权限的限制。
  • API 服务本身的余额、组织权限或上游账号限额仍适用;例如官方返回组织不可用于 Codex 的错误时,启动器不能解除该限制。号池若使用的上游本来就是个人账号,仍会消耗该账号额度。
  • API 密钥使用系统凭据库;非本机 HTTP 默认禁用。服务地址只保存在本机配置文件中。
  • 切换前通过实际 Codex CLI 在临时目录检查配置,备份原始配置,检测并发编辑;可在启动器中恢复上次配置及其对话路由记录。新版 CLI 的本机分页对话会迁移提供商标记,历史正文和账号文件不会被主动改写。
  • 中转站设置可测试 /models 连接,选择服务推荐模型、指定模型或上次使用的模型,并设置默认推理深度;读取模型列表不代表推理请求一定成功。密钥以掩码显示,可点击修改。上次模型通过桌面桥接记录,Linux 终端模式暂不能可靠记录会话内的模型切换。服务提供 OpenCodex 原生目录时同步显示/隐藏状态并折叠重复的 --fast 条目。指定模型时为桌面选择器生成隔离目录;服务推荐模式需要服务提供模型列表。
  • 启动前检查中转站声明的 Fast 档位是否被 Codex 识别为可选项,并按真实模型目录启用 [features].fast_mode。Fast 开关的 service_tier 原样转发(当前 Codex 将 Fast 序列化为 priority);本机日志记录模型、速度档和状态码以便排错。桌面端的闪电按钮还受登录状态和配置策略影响;请求 priority 不保证上游实际提供加速。
  • 配置校验在隔离进程中进行,并清理其子进程;连接测试会区分常见的 HTTP 错误、超时、DNS 和证书问题,不会在提示中显示密钥。
  • 遇到不认识的旧 profile、provider 或自定义目录时停止;对于旧模型目录,可显式勾选隔离。不是所有 CCSwitch 配置都能自动修复。

使用

Windows 普通用户可直接使用上方 EXE 下载。以下是源码运行方式,适用于开发、Linux/macOS 或需要可选 LiteLLM 适配器的用户。

安装 Python 3.10 或更新版本、带 Tk 的 Python、Codex CLI 和对应平台的 Codex。Linux 还需要图形桌面、终端模拟器和已解锁的 Secret Service。macOS 需要钥匙串。Windows 的桌面入口目前面向 Microsoft Store 安装的 Codex。

  1. 下载源码,在项目目录运行 start-windows.cmd(Windows)或 ./start.sh(Linux/macOS)。脚本会在项目目录创建 .venv 并从 Python 包仓库安装依赖,首次运行需要网络。Linux 缺少 Tk 时需先用系统包管理器安装相应的 python3-tk 包。
  2. 点击“个人账号”无需填写配置;首次使用其他服务时,打开右上角“设置”,选择提供商,按提示填写并勾选在启动页显示。保存后点击对应按钮启动。
  3. 正常退出已有 Codex Desktop,再从启动器启动。启动器会尝试记住先前的个人模型;没有记录时使用 Codex 的默认模型。历史对话路由桥接仍处于实验阶段。
  4. 使用 Chat 适配器时保持启动器运行。关闭启动器会停止适配器并中断相关请求。运行结束后,请通过启动器切回个人账号或恢复上一次配置。

也可以手动安装:

python -m venv .venv
# 激活 .venv 后:
python -m pip install '.[chat]'
codex-provider-launcher

Linux 无图形环境不可使用 GUI。当前的便携程序尚未签名。

配置与隐私

豆包、百炼和千问 AI 的推理深度按提供商文档和具体模型区分,设置页可选择启动默认档位,Codex 内可选择目录所列档位。未知型号暂只显示 low,不代表已验证其上游支持;部分平台会将不同请求档位映射到同一实际档位。模型与套餐的可用性以服务商和账号权限为准。千问 AI 按量密钥与 Token Plan 密钥需使用各自的入口。

主界面右上角的“日志”按钮可查看、刷新和复制启动检查与报错记录。日志保存在用户配置目录的 logs/launcher.log,单个文件最多 1 MB,保留 3 个轮转备份。日志过滤密钥,不记录对话正文;它记录启动器的诊断信息,不包含上游完整请求日志。配置入口仍在右上角“设置”,主界面显示个人账号和已启用的提供商。

配置和备份保存在各系统的用户配置目录 codex-provider-launcher 下;它们可能包含自定义服务地址和个人配置,请勿上传。密钥不存入 profiles.json、命令行或项目源码。使用 Codex 时,对话内容、工具输出和其他请求数据会发送到你选择的服务及其上游;启用模型同步时启动器也会访问所选服务。Python 依赖由各自的供应方维护,其网络行为应由使用者审查。

开发测试

python -m pip install -e '.[test,chat]'
python -m unittest discover -s tests -v
# 设置 TEST_LITELLM 为 litellm 可执行文件的路径,可运行模拟上游集成测试。

本项目独立开发,与 OpenAI、DeepSeek、OpenCodex 和 LiteLLM 没有官方隶属关系。

从源码打包 Windows EXE

分别使用 32 位或 64 位 Python 3.13 环境运行 python -m pip install . -r packaging/requirements.txt,再运行 python packaging/build_windows.py。程序会按当前 Python 的位数生成 x86 或 x64 EXE 和 SHA256 校验文件到 dist/。编译桥接程序需要 Windows 自带的 .NET Framework 4 编译器;成品已包含桥接程序。也可以在 GitHub Actions 中手动运行 Windows portable EXE 工作流构建两个版本。

Linux 或 macOS 使用目标系统和架构的 Python 3.12,执行 python -m pip install . -r packaging/requirements.txt、python packaging/build_posix.py。程序会生成平台对应的压缩包和 SHA256 文件,也可在 GitHub Actions 中手动运行 Linux and macOS portable builds 工作流。

About

Experimental cross-platform launcher for Codex provider profiles

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages