Skip to content

Releases: azazo1/codex-switch

Codex Switch v0.10.0

Choose a tag to compare

@github-actions github-actions released this 05 Aug 16:42

Codex Switch v0.10.0

Date: 2026-08-06

本版本为不支持多模态输入的模型增加请求清洗, 同时把模型价格和能力统一到一个本地信息缓存, 并修复若干代理兼容问题.

Highlights

  • 上游可开启 "为非多模态模型去除多模态输入", 自动把图片, 音频和文件替换为带媒体类型, 大小和文件名等信息的文字描述.
  • 模型能力优先来自本会话 /models 接口, 未命中时使用 models.dev 落盘信息, 未知模型可配置按单模态或多模态处理.
  • 仪表盘 "获取模型信息" 一次刷新模型价格和模态能力, 最近日志与活跃连接 hover 会显示模态能力.
  • 修复 Chat Completions 中仅含推理内容的消息和日志文件被外部删除后的恢复问题.

Features

  • 上游编辑页新增多模态输入清洗开关, 覆盖 Responses, Chat Completions 和 Anthropic Messages, 包括 Anthropic tool_result 内媒体.
  • 上游编辑页新增未知模态模型策略, 支持按单模态或多模态处理没有能力信息的模型.
  • 模型价格和能力合并到 model_info_cache, 启动时会从已有价格原始 JSON 回填模态能力.
  • 代理 /models 返回的能力字段会写入会话缓存, 模型列表实时缓存重启后失效.
  • 最近请求和活跃连接 hover 增加模态能力显示.

Bug Fixes

  • 修复 reasoning-only assistant 消息在 Chat Completions 上游被拒绝的问题.
  • 修复日志文件被外部删除后不会自动重建的问题.

Upgrade Notes

  1. 升级会依次执行 schema migration 17 到 19, 现有数据库会自动迁移.
  2. 需要清洗多模态输入时, 请在每个上游编辑页中开启对应开关并选择未知模态策略.
  3. 旧版本已有的 models.dev 价格数据会用于回填模态能力, 无需手动重新获取.

Full Changelog: v0.9.0...v0.10.0

Codex Switch v0.9.0

Choose a tag to compare

@github-actions github-actions released this 04 Aug 13:14

Codex Switch v0.9.0

本版本加入普通模式持续调试日志, 扩展临时 Key 管理, 并修复多个 Chat Completions 兼容问题.

Highlights

  • 普通模式可在仪表盘开启完整调试日志, 不再依赖 debug 环境.
  • 临时 Key 支持自定义值和编辑额度, 有效期等限制.
  • Chat Completions 工具参数和 reasoning 转换兼容性提升.

Features

  • 仪表盘新增调试日志区域, 可立即开启 tracing 和完整代理 body 的持续写入.
  • 日志按每日和单文件大小轮转, 可配置保留的轮转文件数, 并提供打开日志位置.
  • 调试日志开关和轮转设置持久化到 SQLite, 下次启动继续生效.
  • 临时 Key 支持自定义或自动生成, 编辑名称, key 值, 请求数, token 数和有效期.
  • 临时 Key 有效期支持 1d2h30m10s 这类组合时长.
  • 临时 Key 页面改为更紧凑的表格和可点击 K/M/B token 显示.

Bug Fixes

  • Chat Completions 工具缺少 parameters 或根类型时自动补齐, 修复 OpenCode Go 等严格上游拒绝 codex_app 工具的问题.
  • Responses 上游统一把内部 reasoning marker 和 summary 还原为 reasoning_text.
  • Chat Completions 转换会把 plaintext reasoning content 写入 reasoning_content.

Upgrade Notes

  • 调试日志默认关闭, 现有运行和日志行为不变.
  • 首次启动会自动写入新增设置默认值, 不需要手动迁移.

Full Changelog: v0.8.0...v0.9.0

Codex Switch v0.8.0

Choose a tag to compare

@github-actions github-actions released this 03 Aug 12:22

Codex Switch v0.8.0

本版本为 Chat Completions 上游增加可选的 server tool 过滤, 方便接入 OpenCode Go 等只支持 function 工具的兼容端点.

Chat Server Tools

  • 上游新增 "过滤 server_tool" 开关, 仅在 Wire API 为 Chat Completions 时可用.
  • 开启后会丢弃 web_search/web_search_preview 等非 function 工具, 并清理引用已删除工具的 tool_choice.
  • 全部工具都被过滤时, 请求会移除 tools, tool_choice 和 parallel_tool_calls, 避免上游返回 400.

OpenCode Go

  • 文档补充 OpenCode Go 接入配置: Base URL 使用 https://opencode.ai/zen/go/v1, Wire API 选择 Chat Completions 并开启过滤.
  • Codex 客户端仍通过 Codex Switch 本地 Base URL 接入, 不需要直接配置 OpenCode Go 为 Codex provider.

Upgrade Notes

  • 升级时会自动执行 schema migration 15, 不需要手动迁移数据.
  • 该开关默认关闭, 现有 Chat 上游行为不变.

Full Changelog: v0.7.0...v0.8.0

Codex Switch v0.7.0

Choose a tag to compare

@github-actions github-actions released this 02 Aug 15:54

Codex Switch v0.7.0

本版本完善代理映射模型的返回与展示, 让 Codex 客户端在目标模型被重写后仍能看到正确的模型和工具调用.

Mapped Responses

  • JSON 与 SSE 的 mapped responses 会把响应模型重写回客户端模型, 避免把 target model 暴露给模型列表或详情 API.
  • passthrough SSE 也会经过 bridge 重写, 不再直接转发可能包含 target model 的原始 chunk.
  • 请求日志和活动连接会记录并显示请求模型与 target model, 支持按照实际模型过滤.
  • UI 在请求模型和 target model 不同时会分两行展示, 相同则保持单行.

Tool Mapping

  • 修复 mapped function call 的 namespace 元数据丢失问题, 会重建 original tool name 和 namespace, 例如把 mcp__node_repl__js 恢复为 jsmcp__node_repl.
  • 清理上游模型错误写入 arguments 的 namespace 字段, 保持 in-app browser 等工具可继续调用.

Upgrade Notes

  • 升级时会自动执行 schema migration 14, 不需要手动迁移数据.

Full Changelog: v0.6.1...v0.7.0

Codex Switch v0.6.1

Choose a tag to compare

@github-actions github-actions released this 31 Jul 17:00

Codex Switch v0.6.1

本版本聚焦上游调度和网络连接稳定性, 同时改进 Windows 发布产物和 Sub2Api 用量查询.

Fixes

  • 对启用重试的上游, 普通 HTTP 4xx 会进入阈值驱动的故障切换. 失效上游关联的会话亲和性会被清除, 后续请求可重新选择健康上游.
  • Sub2Api 余额查询会优先请求根路径 /v1/usage, 以适配 Base URL 包含额外路径的配置.
  • HTTPS 客户端同时信任 Mozilla WebPKI 根证书和本机系统根证书, 覆盖常见公开服务与企业本地 CA.
  • Windows release executable 现在包含多分辨率应用图标.

Upgrade Notes

  • 本版本不包含数据库 schema migration, 不需要手动迁移数据.

Full Changelog: v0.6.0...v0.6.1

Codex Switch v0.6.0

Choose a tag to compare

@github-actions github-actions released this 24 Jul 14:24

Codex Switch v0.6.0

本版本新增 Anthropic Messages 双向协议支持, 将 Responses, Chat Completions 和 Anthropic Messages 连接为完整的文本协议转换矩阵. Claude Code 等 Anthropic 客户端现在可以直接使用 Codex Switch 中已有的 OpenAI 兼容上游, 也可以接入原生 Anthropic 上游.

Highlights

  • 新增 /v1/messages, /v1/messages/count_tokens 和 Anthropic Models 接口, 本地访问 key 同时支持 Bearer 与 x-api-key.
  • Responses, Chat Completions 和 Anthropic Messages 可以按入站与上游能力进行 3x3 双向转换, 同协议请求继续保持直通.
  • JSON 与 SSE 转换覆盖文本, 图片, system/developer 指令, thinking/reasoning, 工具调用与结果, web search, usage 和终止事件.

Protocol Routing

  • 上游可以声明 Responses, Chat Completions 或 Anthropic Messages Wire API. Claude Code 发出的 Messages 请求可以转换到 Responses 或 Chat Completions 上游.
  • 同协议路径保留 provider 私有字段, Anthropic cache_control, thinking signature, 客户端 anthropic-versionanthropic-beta.
  • 跨协议路径使用 Responses 作为规范结构. 无法安全表达的 document/PDF, audio 和未知 server tool 会返回对应客户端协议的 400 invalid_request_error.
  • 流式转换支持任意 SSE chunk 分割, CRLF, ping, 并行工具参数增量, thinking 增量, usage 与失败事件.

Anthropic Upstreams

  • Anthropic 上游默认使用 x-api-key, 并发送 anthropic-version: 2023-06-01. Bearer 认证仍可用于兼容中转.
  • SQLite schema migration 13 为上游增加持久化认证方式, 现有上游保持 Bearer.
  • Anthropic Models 列表支持 before_id, after_idlimit 分页, 并提供单模型查询.
  • count_tokens 只选择原生支持计数的 Responses 或 Anthropic 上游, 不使用 Chat Completions 本地估算.

Reliability And Cache

  • 上游错误分类增加 Anthropic 429, 529, overloaded_error 和流式 error 事件.
  • Anthropic 缓存保持请求保留原始 cache marker, 使用 stream=falsemax_tokens=1, 并记录 cache read/create token.
  • Images 和 Responses compact 不会选择 Anthropic 上游. Anthropic 模式在界面中会强制关闭 compact.

Upgrade Notes

  • 升级时会自动执行 schema migration 13, 不需要清除数据库或重新导入上游.
  • 现有 API Key 上游保持 Bearer 认证和原有 Wire API. DeepSeek, Qwen, GLM, Kimi 等 OpenAI 兼容服务通常应继续选择 Chat Completions.
  • 原生 Anthropic 或兼容 Messages 服务需要将 Wire API 设为 Anthropic Messages, 并按服务要求选择 x-api-key 或 Bearer.

Full Changelog: v0.5.0...v0.6.0

Codex Switch v0.5.0

Choose a tag to compare

@github-actions github-actions released this 23 Jul 09:39

Codex Switch v0.5.0

本版本扩展了 Chat Completions 兼容上游的工具调用转换, 增加可配置的上游错误重试和 GUI 构建版本展示, 同时改进了活跃连接输出观察与隔离调试.

Highlights

  • Responses 请求现在可以更完整地转发给只支持 Chat Completions 的 OpenAI 兼容上游, 包括文本和图片消息, function tool, custom tool, namespace tool, tool search, tool output, reasoning 和 usage.
  • 每个上游可以选择关闭, 仅临时错误或全部上游错误的重试策略. 重写后的响应会进入 Codex 自身的有限重试链路.
  • GUI 底部状态栏显示构建版本. 精确 tag 显示 tag, 非 tag 构建显示最近 tag 加 commit, 脏工作区构建显示 tag^commit.

Chat Completions Compatibility

  • Chat Completions 上游会接收标准 messagestools, 并可将流式或 JSON 响应恢复为 Responses 事件和输出项.
  • custom tool 会转换为接收 input 字符串的 function tool. namespace tool 会展开为受长度限制的稳定名称, 回程时恢复原始 namespace 和名称.
  • developer 消息会降级为 system, 以兼容更多 Chat Completions 服务. 私有工具类型, 私有消息结构, 音频和文件输入仍不在自动转换范围内.
  • 原生 Responses 上游仍适合依赖完整 Responses 语义或 provider 私有扩展的工作流.

Upstream Retry

  • 新增每上游保存的错误重试策略, 默认关闭.
  • 仅临时错误 会处理过载, 降速和普通限流. 全部上游错误 还会处理上下文超限, 额度, 策略和无效请求等上游分类不准确的情况.
  • SQLite 会自动执行 schema migration 12, 为现有上游增加默认关闭的重试策略. 不需要手动迁移数据库.

Debugging And Interface

  • just debug 使用隔离数据库启动桌面应用, 可在显式开启后记录完整代理 body. Authorization 和保存的 API Key 不会写入该日志.
  • 活跃连接实时输出窗口关闭了截断文本的自动 hover, 保留稳定的可滚动完整输出窗口.
  • GitHub Actions 会保留 Git 历史, 使非 tag 构建能够解析最近的发布 tag.

Upgrade Notes

  • 本版本不需要清除现有数据库或重新导入上游.
  • 升级后保持原有上游行为. 只有手动启用错误重试策略后, 上游错误才会转换为可重试响应.

Full Changelog: v0.4.0...v0.5.0

Codex Switch v0.4.0

Choose a tag to compare

@github-actions github-actions released this 16 Jul 07:27

本版本改进活跃连接的流式输出观察体验, 增加可控滚动, 实时输出速度和关闭状态提示, 同时让连接表格适配默认窗口宽度.

Highlights

  • 实时输出窗口可以限制最快滚动速度, 默认保持不限速, 并支持设置关闭连接滚到末尾后的保留时间.
  • 活跃连接新增输出速度列, 使用模型对应的 tiktoken 编码估算最近 2 秒的可见文本速度, 主列显示 tps, 悬浮显示字符速度.
  • 已关闭连接会使用弱化颜色继续展示尚未滚完的内容, 到达末尾并完成保留计时后再移除.
  • 活跃连接表采用紧凑固定列宽, 默认窗口内不再产生额外横向溢出.

Active Connections

  • 主输出缓冲扩展为最近 16384 个 Unicode 字符, 并使用绝对字符位置维护独立滚动游标.
  • 启用限速后, 每条连接按配置的字符速度推进. 输出超过缓冲上限时会从当前最早可用位置继续.
  • 连接关闭后会冻结持续时间和输出速度, 禁用终止按钮, 并从页签活跃数量中立即扣除.
  • 默认末尾保留时间为 2 秒, 可调整为 0300 秒. 所有显示设置仅在当前运行期有效.

Output Speed

  • 输出速度使用最近 2 秒实际收到的 SSE 文本 delta 计算, 不受窗口滚动速度影响.
  • 已知模型使用对应的 tiktoken 编码, openai/ 前缀会自动移除, 未知模型回退到 o200k_base.
  • 主列始终使用 ~ 标识估算 tps, 避免将中转模型分词差异或不可见 reasoning token 表示为精确值.
  • 连接停止输出超过统计窗口后速度会降为 0, 关闭后保留最后一次速度供观察.

Interface

  • 上游, 模型, 推理强度和 endpoint 使用紧凑固定列宽, 过长内容可以通过悬浮查看完整值.
  • 输出速度, 已持续, 开始时间和操作列使用稳定宽度, 实时更新不会改变表格布局.
  • 实时输出窗口根据剩余空间在 120480 像素之间调整.

Upgrade Notes

  • 本版本不需要手动迁移数据库.
  • 活跃连接显示设置不会写入 SQLite, 应用重启后恢复默认值.

Full Changelog: v0.3.0...v0.4.0

Codex Switch v0.3.0

Choose a tag to compare

@github-actions github-actions released this 14 Jul 05:52

本版本改进 OAuth 账号导入和活动连接观察体验, 并修正仪表盘中已删除上游的残留统计.

Highlights

  • Codex OAuth 账号现在可以只通过 access token 导入, 不再强制要求 refresh token.
  • 活动连接可以在悬浮窗口中查看多行流式输出, 并明确区分请求中, 等待输出和非流式响应.
  • 仪表盘, 上游列表和活动连接表支持在窗口内滚动, 数据较多时仍可完整操作.

OAuth

  • 导入缺少 refresh token 的 auth.json 时, 应用会保存有效 access token 并标记为 仅 access token.
  • 更新已有账号且新文件不含 refresh token 时, 会保留原有 refresh token, 避免账号失去自动刷新能力.
  • 仅 access token 的账号可以使用到 token 临近过期, 到期后会返回明确的重新导入提示.

Active Connections

  • 流式输出悬浮窗口保留最近 10 个逻辑行和 768 个 Unicode 字符, 支持滚动查看并自动跟随最新内容.
  • 活动连接从请求发出开始显示 请求中, 收到响应头后再切换为流式或非流式状态.
  • 活动连接表限制在可用窗口高度内, 大量并发请求不会把后续界面内容挤出视口.

Dashboard And Upstreams

  • 仪表盘和上游列表支持纵向滚动, 上游列表移除代理展示列, 代理配置能力保持不变.
  • 按上游统计只展示当前仍存在的上游. 删除上游后, 历史请求日志和总计数据会保留, 对应统计行不再显示.

Compatibility

  • Codex OAuth 请求头版本更新为 0.144.2.
  • 本版本不需要手动迁移数据库. 替换程序后会继续使用现有 SQLite 数据.

Full Changelog: v0.2.1...v0.3.0

Codex Switch v0.2.1

Choose a tag to compare

@github-actions github-actions released this 13 Jul 04:15

本版本累计整理 v0.1.0 之后的全部用户可见变更, 不包含 v0.1.0 及更早内容.

Highlights

  • 支持同时管理多个 Codex OAuth 设备授权任务, 每个任务独立展示授权码, 轮询状态, 重试和过期信息.
  • 支持一次导入多个 Codex CLI auth.json 文件, 并按文件报告成功, 更新, 跳过或失败结果.
  • 为桌面应用, 本地代理, 上游, OAuth, 调度, 缓存保持, 余额提醒, 活跃连接, 日志和存储补全使用文档.

Features

  • 设备授权任务支持自动轮询, 退避重试, 到期处理, 手动重试和取消, 多个登录流程可以并行进行.
  • 批量导入会验证凭据结构, 账号身份和 token 有效期, 单个文件失败不会阻止其他有效账号导入.
  • 已存在的 OAuth 账号会在事务中更新凭据, 同时保留上游名称, 启用状态, 调度组, 权重和代理设置.
  • 新导入账号会建立独立上游, 界面可以刷新列表并继续管理对应额度和路由配置.
  • tracing 日志不会记录 access token, refresh token, id token 或完整凭据内容.

Documentation

  • 新增根目录快速开始, 下载方式, 安全边界和完整文档索引.
  • 新增应用, 代理, 上游, OAuth, 余额提醒, 活跃连接, 日志, 存储和发布指南.
  • 补充调度组嵌套, 缓存保持会话, SQLite 备份和本地访问 key 的实际行为说明.

Breaking Changes

  • Release 资产名现在包含版本和标准架构名, 自动下载脚本需要匹配 codex-switch-<version>-<platform>-<arch>.<ext>.

Packaging

  • 为 Linux, Windows 和 macOS 提供 x86_64aarch64 共 6 个构建产物.
  • 每个平台在归档前检查最终二进制格式, Release 在发布前验证 6 个归档全部存在.
  • Release 附带 SHA256SUMS, 用于校验所有下载归档.

Upgrade Notes

  • 本版本不需要手动迁移数据库. 替换程序后会继续使用现有 SQLite 数据.
  • 导入与现有账号匹配的 OAuth 凭据时, 原有路由和代理设置会保留.

Full Changelog: v0.1.0...v0.2.1