Releases: azazo1/codex-switch
Release list
Codex Switch v0.10.0
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
- 升级会依次执行 schema migration 17 到 19, 现有数据库会自动迁移.
- 需要清洗多模态输入时, 请在每个上游编辑页中开启对应开关并选择未知模态策略.
- 旧版本已有的 models.dev 价格数据会用于回填模态能力, 无需手动重新获取.
Full Changelog: v0.9.0...v0.10.0
Codex Switch v0.9.0
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
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
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恢复为js加mcp__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
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
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-version和anthropic-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_id和limit分页, 并提供单模型查询. count_tokens只选择原生支持计数的 Responses 或 Anthropic 上游, 不使用 Chat Completions 本地估算.
Reliability And Cache
- 上游错误分类增加 Anthropic
429,529,overloaded_error和流式error事件. - Anthropic 缓存保持请求保留原始 cache marker, 使用
stream=false和max_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
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 上游会接收标准
messages和tools, 并可将流式或 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
本版本改进活跃连接的流式输出观察体验, 增加可控滚动, 实时输出速度和关闭状态提示, 同时让连接表格适配默认窗口宽度.
Highlights
- 实时输出窗口可以限制最快滚动速度, 默认保持不限速, 并支持设置关闭连接滚到末尾后的保留时间.
- 活跃连接新增输出速度列, 使用模型对应的 tiktoken 编码估算最近 2 秒的可见文本速度, 主列显示
tps, 悬浮显示字符速度. - 已关闭连接会使用弱化颜色继续展示尚未滚完的内容, 到达末尾并完成保留计时后再移除.
- 活跃连接表采用紧凑固定列宽, 默认窗口内不再产生额外横向溢出.
Active Connections
- 主输出缓冲扩展为最近
16384个 Unicode 字符, 并使用绝对字符位置维护独立滚动游标. - 启用限速后, 每条连接按配置的字符速度推进. 输出超过缓冲上限时会从当前最早可用位置继续.
- 连接关闭后会冻结持续时间和输出速度, 禁用终止按钮, 并从页签活跃数量中立即扣除.
- 默认末尾保留时间为
2秒, 可调整为0到300秒. 所有显示设置仅在当前运行期有效.
Output Speed
- 输出速度使用最近 2 秒实际收到的 SSE 文本 delta 计算, 不受窗口滚动速度影响.
- 已知模型使用对应的 tiktoken 编码,
openai/前缀会自动移除, 未知模型回退到o200k_base. - 主列始终使用
~标识估算tps, 避免将中转模型分词差异或不可见 reasoning token 表示为精确值. - 连接停止输出超过统计窗口后速度会降为
0, 关闭后保留最后一次速度供观察.
Interface
- 上游, 模型, 推理强度和 endpoint 使用紧凑固定列宽, 过长内容可以通过悬浮查看完整值.
- 输出速度, 已持续, 开始时间和操作列使用稳定宽度, 实时更新不会改变表格布局.
- 实时输出窗口根据剩余空间在
120到480像素之间调整.
Upgrade Notes
- 本版本不需要手动迁移数据库.
- 活跃连接显示设置不会写入 SQLite, 应用重启后恢复默认值.
Full Changelog: v0.3.0...v0.4.0
Codex Switch v0.3.0
本版本改进 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
本版本累计整理 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_64与aarch64共 6 个构建产物. - 每个平台在归档前检查最终二进制格式, Release 在发布前验证 6 个归档全部存在.
- Release 附带
SHA256SUMS, 用于校验所有下载归档.
Upgrade Notes
- 本版本不需要手动迁移数据库. 替换程序后会继续使用现有 SQLite 数据.
- 导入与现有账号匹配的 OAuth 凭据时, 原有路由和代理设置会保留.
Full Changelog: v0.1.0...v0.2.1