[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"package:cask:cc-switch:zh":3,"releases:stats:cask:cc-switch:zh":440,"releases:cask:cc-switch:1:false:false:zh":441,"releases-count:cask:cc-switch:true:zh":583},{"accentColor":4,"artifacts":5,"autoUpdates":32,"categories":33,"conflictsWith":40,"dependsOn":43,"deprecated":36,"description":54,"descriptionEn":55,"developer":56,"disabled":36,"displayName":57,"downloadSha256":58,"downloadSize":59,"downloadUrl":60,"editorChoice":36,"formulaeUrl":61,"homepage":62,"iconUrl":63,"installCommand":64,"installs":65,"installs30d":66,"isFont":36,"isLibrary":36,"kegOnly":36,"kind":69,"latestRelease":70,"machineTranslated":36,"minMacos":53,"name":57,"names":77,"platforms":79,"primaryCategory":409,"rank30d":410,"releaseCount":411,"releaseStats":412,"repoUrl":62,"screenshots":419,"sourceLocale":423,"sourceUrl":428,"summary":429,"summaryTranslation":430,"supports":432,"tags":434,"tap":438,"token":78,"version":76,"versionChangedAt":439},"#E68C53",{"apps":6,"binaries":8,"entries":9,"pkgs":31},[7],"CC Switch.app",[],[10,17],{"declaration":11,"phase":14,"sources":15,"target":13,"type":16},{"app":12,"target":13},[7],"\u002FApplications\u002FCC Switch.app","install",[7],"app",{"declaration":18,"phase":28,"sources":29,"type":30},{"zap":19},[20],{"trash":21},[22,23,24,25,26,27],"~\u002F.cc-switch","~\u002FLibrary\u002FApplication Support\u002Fcom.ccswitch.desktop","~\u002FLibrary\u002FCaches\u002Fcom.ccswitch.desktop","~\u002FLibrary\u002FPreferences\u002Fcom.ccswitch.desktop.plist","~\u002FLibrary\u002FSaved Application State\u002Fcom.ccswitch.desktop.savedState","~\u002FLibrary\u002FWebKit\u002Fcom.ccswitch.desktop","cleanup",[],"zap",[],true,[34],{"icon":35,"machineTranslated":36,"name":37,"slug":38,"sourceLocale":39},"lucide:code-xml",false,"开发工具","developer-tools","zh-CN",{"casks":41,"formulae":42},[],[],{"arch":44,"casks":47,"formulae":48,"macos":49,"requirements":50},[45,46],"arm64","x86_64",[],[],">= 12",{"macos":51},{">=":52},[53],"12","CC Switch 是一款用于 AI 编码工具的开源桌面配置管理器。它帮助开发者通过一个界面管理服务商端点、凭据、模型、MCP 服务器、技能、提示词、会话和用量。它本身不提供 AI 模型订阅，也不替代所管理的编码客户端。\n\n## 功能\n- 切换服务商连接字段，同时保留客户端中无关的配置。\n- 为受支持的客户端选择直接连接、本地路由（含转换和故障转移），或基于模型的聚合。聚合不提供故障转移。\n- 管理 Claude Code、Claude Desktop、Codex、Gemini CLI、Grok Build、OpenCode、OpenClaw、Hermes、Pi 和 MiniMax Code；各集成的功能有所不同。\n- 同步受支持的 MCP 和技能配置，并编辑特定工具的提示词。\n- 查看会话步骤、工具结果和更改，搜索或导出对话，并继续受支持的会话。\n- 在集成支持的情况下，查看请求用量、预估费用、服务商配额和账户信息。\n\n## 安装与要求\n使用 `brew install --cask cc-switch` 安装已收录的 Mac cask，或下载官方 DMG，打开后将 CC Switch 拷贝到“应用程序”。官方 Mac 版本为 Apple Silicon 和 Intel 通用版本，要求 macOS12 或更高版本，并据维护者说明已签名和公证。cask 未列出额外的 formula 依赖或明确冲突。配置服务商或导入受支持的现有配置，然后选择所需模式。所管理的编码工具有各自的安装、运行时、权限和账户要求。\n\n维护者还提供 Windows10+ 安装包（包括 ARM 版本），以及 Linux x86_64\u002FARM64 版本。Linux 要求 glibc2.35+ 和 WebKitGTK4.1，例如 Ubuntu22.04+ 或 Debian12+；根据已公布的版本要求，不支持 RHEL\u002FRocky\u002FAlma8–9。未确认有受支持的移动版。引用指南未公布 RAM 和已安装磁盘空间的最低要求。经验证的4.0.4 Mac DMG 大小为33,926,314字节；这是下载大小，而非安装后占用空间。\n\n## 兼容性与升级\n路由和聚合依赖本地网关及上游协议支持。Claude Code 聚合要求 Claude Code2.1.243 或更高版本。切换后如有提示，请重启 Codex、Gemini CLI 和 Grok Build；Claude Code 聚合的更改无需重启即可生效。WSL 网络连接有单独的 localhost 要求。\n\n版本4.0 更改了设置的保留方式，并移除了常用配置片段。它会将数据库迁移到架构20，并自动在 `~\u002F.cc-switch\u002Fbackups\u002F` 中创建数据库备份；a3.x 客户端无法打开新数据库。降级或更改现有设置前，请查阅官方升级说明。现有服务商预设不会被新默认值悄然替换。\n\n## 账户、费用与许可\nCC Switch 以 MIT 许可发布（版权归 Jason Young 所有），无需购买 CC Switch 订阅即可使用。每家 AI 服务商都有独立的身份验证、订阅\u002FAPI 费用及服务条款。使用相关服务商功能需要 API 密钥和账户凭据；请求费用估算不是账单。配置和会话数据默认存储在本地的 `~\u002F.cc-switch`。云端\u002FWebDAV 同步和中继端点则涉及各自的账户及数据处理选择。\n\n来源：[官方项目与要求](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch)、[4.0.4 英文版发布说明](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fblob\u002Fmain\u002Fdocs\u002Frelease-notes\u002Fv4.0.4-en.md)、[许可证](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fblob\u002Fmain\u002FLICENSE)。","Configuration manager for AI coding agents","Jason Young (farion1231) and contributors","CC Switch","e00344b0f1adbbd8275d1b81ec8b27cc5b2bec7e8207488530eb303a0d5e6ccd",34154225,"https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Freleases\u002Fdownload\u002Fv4.0.6\u002FCC-Switch-v4.0.6-macOS.dmg","https:\u002F\u002Fformulae.brew.sh\u002Fcask\u002Fcc-switch","https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch","https:\u002F\u002Fcdn.opennavo.com\u002Ficons\u002Fuploads\u002Fefbe73b4642d\u002F50e788e99f3b-256.png","brew install --cask cc-switch",{"d30":66,"d365":67,"d90":68},2964,111928,24212,"cask",{"brewCommittedAt":71,"hasNotes":36,"isLatest":32,"isPrerelease":36,"sections":72,"source":73,"translation":74,"version":76},"2026-10-09T15:46:33Z",[],"homebrew",{"status":75},"none","4.0.6",[57,78],"cc-switch",[80,108,135,163,190,218,245,273,300,328,355,382],{"arch":46,"artifacts":81,"conflictsWith":96,"dependsOn":99,"downloadSha256":58,"downloadUrl":60,"macos":106,"minMacos":53,"requiresRosetta":36,"tag":107,"version":76},{"apps":82,"binaries":83,"entries":84,"pkgs":95},[7],[],[85,89],{"declaration":86,"phase":14,"sources":88,"target":13,"type":16},{"app":87,"target":13},[7],[7],{"declaration":90,"phase":28,"sources":94,"type":30},{"zap":91},[92],{"trash":93},[22,23,24,25,26,27],[],[],{"casks":97,"formulae":98},[],[],{"arch":100,"casks":101,"formulae":102,"macos":49,"requirements":103},[46],[],[],{"macos":104},{">=":105},[53],"27","golden_gate",{"arch":45,"artifacts":109,"conflictsWith":124,"dependsOn":127,"downloadSha256":58,"downloadUrl":60,"macos":106,"minMacos":53,"requiresRosetta":36,"tag":134,"version":76},{"apps":110,"binaries":111,"entries":112,"pkgs":123},[7],[],[113,117],{"declaration":114,"phase":14,"sources":116,"target":13,"type":16},{"app":115,"target":13},[7],[7],{"declaration":118,"phase":28,"sources":122,"type":30},{"zap":119},[120],{"trash":121},[22,23,24,25,26,27],[],[],{"casks":125,"formulae":126},[],[],{"arch":128,"casks":129,"formulae":130,"macos":49,"requirements":131},[45],[],[],{"macos":132},{">=":133},[53],"arm64_golden_gate",{"arch":46,"artifacts":136,"conflictsWith":151,"dependsOn":154,"downloadSha256":58,"downloadUrl":60,"macos":161,"minMacos":53,"requiresRosetta":36,"tag":162,"version":76},{"apps":137,"binaries":138,"entries":139,"pkgs":150},[7],[],[140,144],{"declaration":141,"phase":14,"sources":143,"target":13,"type":16},{"app":142,"target":13},[7],[7],{"declaration":145,"phase":28,"sources":149,"type":30},{"zap":146},[147],{"trash":148},[22,23,24,25,26,27],[],[],{"casks":152,"formulae":153},[],[],{"arch":155,"casks":156,"formulae":157,"macos":49,"requirements":158},[46],[],[],{"macos":159},{">=":160},[53],"26","tahoe",{"arch":45,"artifacts":164,"conflictsWith":179,"dependsOn":182,"downloadSha256":58,"downloadUrl":60,"macos":161,"minMacos":53,"requiresRosetta":36,"tag":189,"version":76},{"apps":165,"binaries":166,"entries":167,"pkgs":178},[7],[],[168,172],{"declaration":169,"phase":14,"sources":171,"target":13,"type":16},{"app":170,"target":13},[7],[7],{"declaration":173,"phase":28,"sources":177,"type":30},{"zap":174},[175],{"trash":176},[22,23,24,25,26,27],[],[],{"casks":180,"formulae":181},[],[],{"arch":183,"casks":184,"formulae":185,"macos":49,"requirements":186},[45],[],[],{"macos":187},{">=":188},[53],"arm64_tahoe",{"arch":46,"artifacts":191,"conflictsWith":206,"dependsOn":209,"downloadSha256":58,"downloadUrl":60,"macos":216,"minMacos":53,"requiresRosetta":36,"tag":217,"version":76},{"apps":192,"binaries":193,"entries":194,"pkgs":205},[7],[],[195,199],{"declaration":196,"phase":14,"sources":198,"target":13,"type":16},{"app":197,"target":13},[7],[7],{"declaration":200,"phase":28,"sources":204,"type":30},{"zap":201},[202],{"trash":203},[22,23,24,25,26,27],[],[],{"casks":207,"formulae":208},[],[],{"arch":210,"casks":211,"formulae":212,"macos":49,"requirements":213},[46],[],[],{"macos":214},{">=":215},[53],"15","sequoia",{"arch":45,"artifacts":219,"conflictsWith":234,"dependsOn":237,"downloadSha256":58,"downloadUrl":60,"macos":216,"minMacos":53,"requiresRosetta":36,"tag":244,"version":76},{"apps":220,"binaries":221,"entries":222,"pkgs":233},[7],[],[223,227],{"declaration":224,"phase":14,"sources":226,"target":13,"type":16},{"app":225,"target":13},[7],[7],{"declaration":228,"phase":28,"sources":232,"type":30},{"zap":229},[230],{"trash":231},[22,23,24,25,26,27],[],[],{"casks":235,"formulae":236},[],[],{"arch":238,"casks":239,"formulae":240,"macos":49,"requirements":241},[45],[],[],{"macos":242},{">=":243},[53],"arm64_sequoia",{"arch":46,"artifacts":246,"conflictsWith":261,"dependsOn":264,"downloadSha256":58,"downloadUrl":60,"macos":271,"minMacos":53,"requiresRosetta":36,"tag":272,"version":76},{"apps":247,"binaries":248,"entries":249,"pkgs":260},[7],[],[250,254],{"declaration":251,"phase":14,"sources":253,"target":13,"type":16},{"app":252,"target":13},[7],[7],{"declaration":255,"phase":28,"sources":259,"type":30},{"zap":256},[257],{"trash":258},[22,23,24,25,26,27],[],[],{"casks":262,"formulae":263},[],[],{"arch":265,"casks":266,"formulae":267,"macos":49,"requirements":268},[46],[],[],{"macos":269},{">=":270},[53],"14","sonoma",{"arch":45,"artifacts":274,"conflictsWith":289,"dependsOn":292,"downloadSha256":58,"downloadUrl":60,"macos":271,"minMacos":53,"requiresRosetta":36,"tag":299,"version":76},{"apps":275,"binaries":276,"entries":277,"pkgs":288},[7],[],[278,282],{"declaration":279,"phase":14,"sources":281,"target":13,"type":16},{"app":280,"target":13},[7],[7],{"declaration":283,"phase":28,"sources":287,"type":30},{"zap":284},[285],{"trash":286},[22,23,24,25,26,27],[],[],{"casks":290,"formulae":291},[],[],{"arch":293,"casks":294,"formulae":295,"macos":49,"requirements":296},[45],[],[],{"macos":297},{">=":298},[53],"arm64_sonoma",{"arch":46,"artifacts":301,"conflictsWith":316,"dependsOn":319,"downloadSha256":58,"downloadUrl":60,"macos":326,"minMacos":53,"requiresRosetta":36,"tag":327,"version":76},{"apps":302,"binaries":303,"entries":304,"pkgs":315},[7],[],[305,309],{"declaration":306,"phase":14,"sources":308,"target":13,"type":16},{"app":307,"target":13},[7],[7],{"declaration":310,"phase":28,"sources":314,"type":30},{"zap":311},[312],{"trash":313},[22,23,24,25,26,27],[],[],{"casks":317,"formulae":318},[],[],{"arch":320,"casks":321,"formulae":322,"macos":49,"requirements":323},[46],[],[],{"macos":324},{">=":325},[53],"13","ventura",{"arch":45,"artifacts":329,"conflictsWith":344,"dependsOn":347,"downloadSha256":58,"downloadUrl":60,"macos":326,"minMacos":53,"requiresRosetta":36,"tag":354,"version":76},{"apps":330,"binaries":331,"entries":332,"pkgs":343},[7],[],[333,337],{"declaration":334,"phase":14,"sources":336,"target":13,"type":16},{"app":335,"target":13},[7],[7],{"declaration":338,"phase":28,"sources":342,"type":30},{"zap":339},[340],{"trash":341},[22,23,24,25,26,27],[],[],{"casks":345,"formulae":346},[],[],{"arch":348,"casks":349,"formulae":350,"macos":49,"requirements":351},[45],[],[],{"macos":352},{">=":353},[53],"arm64_ventura",{"arch":46,"artifacts":356,"conflictsWith":371,"dependsOn":374,"downloadSha256":58,"downloadUrl":60,"macos":53,"minMacos":53,"requiresRosetta":36,"tag":381,"version":76},{"apps":357,"binaries":358,"entries":359,"pkgs":370},[7],[],[360,364],{"declaration":361,"phase":14,"sources":363,"target":13,"type":16},{"app":362,"target":13},[7],[7],{"declaration":365,"phase":28,"sources":369,"type":30},{"zap":366},[367],{"trash":368},[22,23,24,25,26,27],[],[],{"casks":372,"formulae":373},[],[],{"arch":375,"casks":376,"formulae":377,"macos":49,"requirements":378},[46],[],[],{"macos":379},{">=":380},[53],"monterey",{"arch":45,"artifacts":383,"conflictsWith":398,"dependsOn":401,"downloadSha256":58,"downloadUrl":60,"macos":53,"minMacos":53,"requiresRosetta":36,"tag":408,"version":76},{"apps":384,"binaries":385,"entries":386,"pkgs":397},[7],[],[387,391],{"declaration":388,"phase":14,"sources":390,"target":13,"type":16},{"app":389,"target":13},[7],[7],{"declaration":392,"phase":28,"sources":396,"type":30},{"zap":393},[394],{"trash":395},[22,23,24,25,26,27],[],[],{"casks":399,"formulae":400},[],[],{"arch":402,"casks":403,"formulae":404,"macos":49,"requirements":405},[45],[],[],{"macos":406},{">=":407},[53],"arm64_monterey",{"icon":35,"machineTranslated":36,"name":37,"slug":38,"sourceLocale":39},77,22,{"brewLag":413,"cadence":417,"count30d":418},{"compared":414,"earlierCount":415,"medianMinutes":416},3,2,-60,"weekly",4,[420],{"caption":421,"height":422,"machineTranslated":36,"sourceLocale":423,"theme":424,"thumbUrl":425,"url":426,"width":427},"官方4.0界面示例：macOS 上的提供商卡片、直连、路由和聚合模式，以及侧边栏工具。",849,"en-US","light","https:\u002F\u002Fcdn.opennavo.com\u002Fscreenshots\u002Fuploads\u002Fscreenshot\u002F58d0a56b0693\u002Fe72030ed8aa4-640.png","https:\u002F\u002Fcdn.opennavo.com\u002Fscreenshots\u002Fuploads\u002Fscreenshot\u002F58d0a56b0693\u002Fe72030ed8aa4-1280.png",1280,"https:\u002F\u002Fgithub.com\u002Fhomebrew\u002Fhomebrew-cask\u002Fblob\u002FHEAD\u002FCasks\u002Fc\u002Fcc-switch.rb","用于管理 AI 编码工具服务商、本地路由、模型聚合、MCP、技能、提示词、会话和用量的桌面工具。",{"locale":39,"machineTranslated":36,"sourceLocale":423,"status":431},"manual",{"arm64":32,"requiresRosetta":36,"status":433,"x86_64":32},"known",[57,435,436,437],"MCP","Tauri","MIT","homebrew\u002Fcask","2026-10-09T17:00:58.404407Z",null,{"current":442,"records":443,"size":580,"stats":581,"total":411},1,[444,447,452,471,488,505,510,515,520,525,530,535,540,545,550,555,560,565,570,575],{"brewCommittedAt":71,"hasNotes":36,"isLatest":32,"isPrerelease":36,"sections":445,"source":73,"translation":446,"version":76},[],{"status":75},{"brewCommittedAt":448,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":449,"source":73,"translation":450,"version":451},"2026-10-08T15:50:41Z",[],{"status":75},"4.0.5",{"bodyMarkdown":453,"brewCommittedAt":454,"hasNotes":32,"id":455,"isLatest":36,"isPrerelease":36,"machineTranslated":36,"publishedAt":456,"sections":457,"source":466,"sourceLocale":423,"summary":467,"title":468,"translation":469,"version":470},"# CC Switch v4.0\n\n### 稳定版（4.0.4）：全新界面、全新聚合模式，以及更安全的配置切换\n\n这是 v4.0 的首个稳定版，应用会自动更新到此版本。它包含 4.0 预览版中的全部内容，以及预览期间从 4.0.1 到 4.0.4 所做的修复和新增功能。\n\n这是迄今为止规模最大的 CC Switch 版本。我们重新思考了 CC Switch 体验的核心：如何连接模型、如何切换提供商，以及如何管理不断增多的 AI 编程工具。\n\n界面从侧边栏到托盘全面改版，让应用、配置、用量和会话各有清晰的位置。全新的聚合模式可将多个提供商的模型集中到一个 Claude Code 或 Codex 模型选择器中，让你直接在客户端内切换。用量页面也经过重新设计：每个请求都会记录其 token 用量、费用和输出速度；选择“All”时间范围，可通过热力图查看过去一年的每日用量。会话管理经过彻底重写：AI 在每轮中做了什么、修改了什么，以及哪一步失败，都能一目了然。配置写入核心也已重建：切换提供商现在只替换关键字段，而不是重写整个文件，大幅降低复杂度，也彻底解决了一类设置丢失问题。现在还可以将 MCP 服务器同步到 Pi，让一份 MCP 配置同时服务于 8 款 AI 编程工具。\n\n> **从 3.x 升级？** 提供商切换方式、数据库版本和部分设置均已更改。建议先阅读下方的“升级前须知”。\n\n---\n\n## 全新设计的界面\n\n新版界面采用侧边栏布局和橙色主题。切换应用，以及使用 MCP、Skills、Prompts、Sessions、Accounts 和 Usage 等全局功能，都可以在侧边栏中一键完成。\n\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Ffarion1231\u002Fcc-switch\u002Fmain\u002Fassets\u002Frelease-notes\u002Fv4.0.0\u002Fmain-en.png\" alt=\"全新界面：侧边栏、模式标签页和提供商卡片\" width=\"720\">\u003C\u002Fp>\n\n- **模式一目了然**：每个应用页面顶部都有三个标签页：Direct \u002F Routing \u002F Aggregation。点击标签页只会改变当前视图，不会修改配置。真正切换模式的按钮会说明将要执行的操作；返回 Direct 只需一步，而且可以撤销\n- **工具集中管理**：全新的 Apps 页面会显示每个 AI 编程工具的版本、安装位置和来源，并提供安装、升级和批量升级功能\n- **添加提供商面板更清爽**：搜索、选择预设、填写表单即可。搜索支持中文名称和域名；同一供应商的套餐和区域合并为一行，因此 Claude 预设所占行数明显减少。预设提供商不再以推荐项突出显示\n- **配额显示剩余量**：卡片显示“剩余 5 小时，94%”或“余额 8.99 CNY”，每个等级后还会显示重置倒计时，例如“⏱ 2h30m”。配额默认以低调的灰色显示：百分比低于 10% 时才加粗，余额耗尽后才变红。点击即可重新检查并查看结果。Codex 订阅还会显示剩余的已保存重置次数及其到期时间；ChatGPT 订阅则会显示 Codex Credits 余额，并按 API 价格换算成美元\n- **托盘按应用整理**：每行显示“名称 · 模式 · 提供商 · 配额”，子菜单仅列出当前可以切换到的提供商。只有确实需要你处理时，托盘图标才会显示圆点\n- **设置按用途分组**：常规、应用配置、本地路由、网络、数据、关于。本地路由的服务状态、监听地址和故障转移设置现集中在同一处\n- **编辑不再使用对话框**：提供商、MCP 服务器和提示词会在内容区域以完整页面打开，侧边栏仍可正常使用。存在未保存的更改时，点击侧边栏、按下 ⌘ 或从托盘切换出去，都会先询问你\n\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Ffarion1231\u002Fcc-switch\u002Fmain\u002Fassets\u002Frelease-notes\u002Fv4.0.0\u002Fapps-en.png\" alt=\"Apps 页面：在同一处查看所有 AI 编程工具的版本、安装和升级\" width=\"720\">\u003C\u002Fp>\n\n升级用户首次启动时会看到一条简短提示，说明功能位置的变化。每次更新后，首次启动时也会显示更改摘要。要再次查看，请点击“最近更新”（Settings → About）。\n\n---\n\n## 聚合：多个提供商，一个模型选择器\n\n以前，要使用其他提供商的模型，你必须返回 CC Switch、切换提供商，再回到客户端。\n\n开启 **Aggregation** 并添加几个提供商后，它们的模型就会一同显示在 Claude Code 或 Codex 的模型选择器中。无论选择哪个模型，请求都会直接发送给对应的提供商，全程无需离开客户端。\n\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Ffarion1231\u002Fcc-switch\u002Fmain\u002Fassets\u002Frelease-notes\u002Fv4.0.0\u002Fagg-codex-en.png\" alt=\"多个提供商的模型一同列在 Codex 模型选择器中\" width=\"560\">\u003C\u002Fp>\n\n- **随时添加或移除**：点击提供商卡片上的“添加”或“移除”，然后选择一个提供商作为默认项，用于处理未指定聚合模型的请求\n- **模型信息一目了然**：每个模型名称都会标明其提供商，例如“Kimi K3（Kimi For Coding）”；描述则显示实际的上游模型 ID 和上下文窗口，例如 `kimi-k3 · 256K`\n- **表单更精简**：在“Aggregation”标签页添加或编辑提供商时，连接详情和模型列表会放在同一页，只需填写这些内容。“Direct”和“Routing”标签页仍使用完整表单\n- **在 Codex 中混用提供商，不再出错**：将官方账号设为默认项后，官方和第三方模型会并列显示。在不同提供商的模型间切换时，上下文压缩和推理状态会保留\n\n- **会话中途切换模型**：你可以在会话进行期间切换到其他模型。请注意，每次切换后，新模型都必须重新构建提示词缓存，因此切换后的首轮开销会明显增加\n- **重启提醒**：Codex 模型列表发生变化时，系统会提示你重启；Codex CLI 用户可以点击横幅中的按钮，一键重启后台服务。Claude Code 的聚合模型更改会立即生效，无需重启\n\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Ffarion1231\u002Fcc-switch\u002Fmain\u002Fassets\u002Frelease-notes\u002Fv4.0.0\u002Fagg-en.png\" alt=\"聚合：一个默认提供商和六个已添加的提供商\" width=\"720\">\u003C\u002Fp>\n\n聚合为可选功能，目前支持 Claude Code 和 Codex。Claude Code 的聚合模型列表要求 Claude Code 2.1.243 或更高版本。聚合会根据你选择的模型为每个请求进行路由，不提供故障转移。\n\n| 模式 | 请求如何传递 | 适用场景 |\n|------|---------------------|----------|\n| **Direct** | 客户端直接与提供商通信 | 日常使用 |\n| **Routing** | 通过本地路由发送至一个提供商，并进行协议转换和故障转移 | 协议不兼容，或需要故障转移时 |\n| **Aggregation** | 通过本地路由，按模型分发至多个提供商 | 在同一会话中混用多个提供商的模型 |\n\n> **致敬 opencodex**\n>\n> 聚合功能从 [opencodex](https:\u002F\u002Fgithub.com\u002Flidge-jun\u002Fopencodex) 中汲取了大量经验，并直接建立在其理念之上：在模型 ID 前加上提供商名称，让多个提供商的模型可以共用 Claude Code 和 Codex 的选择器；允许 Codex 在第三方模型上压缩上下文；检测后台服务是否仍在使用旧模型列表，并提示重启。这些功能都源自 opencodex 的探索。感谢作者（[@lidge-jun](https:\u002F\u002Fgithub.com\u002Flidge-jun)）和贡献者开源这项工作，我们也由衷敬佩他们的开源精神！\n>\n> 如果你想要一个专门将任意模型接入 Codex 和 Claude Code 的工具，我们强烈推荐试试 opencodex！\n\n---\n\n## 用量\n\n**用量页面**重新设计了指标、趋势图、请求日志，以及四个可分页的提供商、模型和定价表。新增的“All”时间范围会以 53 周热力图显示每日用量；查询较长时间范围时，窗口也不再冻结。\n\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Ffarion1231\u002Fcc-switch\u002Fmain\u002Fassets\u002Frelease-notes\u002Fv4.0.0\u002Fusage-en.png\" alt=\"用量：53 周热力图和请求日志\" width=\"720\">\u003C\u002Fp>\n\n- **输出速度**现在只按生成时间计算，不包含等待首个 token 的时间。即使未使用路由，从 Claude Code 和 Codex 会话日志导入的请求也会显示估算速度，并以“≈”标记\n- **模型表新增成功率和速度列**。“平均费用”列已移除；将鼠标悬停在费用上即可查看\n- **提供商表和模型表现在统计缓存 token**，因此各行的 token 数相加后会与顶部的总 token 数一致\n- 从会话日志导入、且未经过路由的用量会显示类似“Claude Code · Session logs”的提供商名称；悬停后会说明为何无法区分具体提供商\n- 用量记录改为在单独的线程中写入，因此磁盘速度较慢也不会拖慢路由服务\n\n---\n\n## 切换提供商，配置保持原样\n\n这是本次版本最重要的底层改动，适用于 Claude Code、Codex、Gemini CLI、Grok Build 和 Claude Desktop。\n\nCC Switch 于 2025 年 8 月推出，当时 API 生态远不如今天成熟。官方和第三方提供商的 API 格式往往差异很大，因此最初的设计是在每次切换时重写整个配置文件。这种做法带来了一系列问题，也增加了大量复杂性。如今生态已经成熟，是时候重建这一机制了。\n\n**之前**：切换提供商时，会根据该提供商保存的快照重写整个配置文件。你添加到 `settings.json` 中的钩子、插件和权限，或添加到 `config.toml` 中的 MCP 服务器，要么会在切换时丢失，要么会被并入某个提供商的快照，导致切换到其他提供商后便消失。\n\n**现在**：切换时只替换端点、凭据、模型和协议，以及该提供商自身的开关。其他内容都会原样保留：\n\n- 对于 TOML 和 `.env` 文件，未修改的行、注释和顺序都会逐字节保持不变\n- 对于 JSON 文件，其他所有键的值和顺序都会保留\n- 共享设置会直接留在配置文件中，因此不再需要“公共配置片段”功能\n\n**编辑器会预览切换后配置文件的样子**。你在编辑器中修改的全局设置会写入配置文件；保存前，CC Switch 会检查期间是否有其他程序修改过该文件。\n\n新的写入引擎还增加了多层保护：\n\n- 如果无法解析配置文件，就会停止写入，并保持原文件不变\n- 写入前会检查外部更改，绝不会覆盖其他程序刚刚保存的文件\n- 多个文件同时更改时，会先记录操作意图。如果应用在中途意外退出，下次启动时会自动完成操作，避免文件只写入一部分\n- 每个文件首次写入新版本前，都会按原样备份\n- 存有密钥的配置文件仅允许你读取和写入\n\n启用或关闭路由不再依赖备份和恢复整个配置。Codex 切换到第三方提供商时，被覆盖的 ChatGPT 登录信息会在本地暂存；切回官方账号后会自动恢复。\n\n---\n\n## 会话管理：清晰查看每次 AI 编程会话\n\n\nAI 编程工具会在你的设备上完整记录每次会话，但原始日志是数千行 JSON，几乎无法阅读。本次版本从头重写会话管理，让这些记录尽可能易读，并为每次会话添加令牌用量和费用。\n\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Ffarion1231\u002Fcc-switch\u002Fmain\u002Fassets\u002Frelease-notes\u002Fv4.0.0\u002Fsession-en.png\" alt=\"会话阅读器：步骤摘要、工具调用详情和对话大纲\" width=\"720\">\u003C\u002Fp>\n\n- **九种客户端，一种阅读方式**：Claude Code、Codex、Gemini CLI、Grok Build、OpenCode、OpenClaw、Hermes、Pi 和 MiniMax Code 的会话都会解析为结构化内容，文本、思考、工具调用、工具结果和图像分别以各自的形式呈现\n- **一轮操作，一行摘要**：一连串 AI 操作会折叠为一行，例如“步骤 · 44 · 27 条命令 · 2 个文件已更改 · 1 次失败 · 27m45s”。失败的命令会以红色标记，展开后可查看参数、输出和退出代码。连续的文件读取和搜索会合并显示为“读取 N 个文件，搜索 N 次”\n- **对话大纲**：右侧面板列出你的每条提示，以及该轮进行了多少步骤、得出了什么结论。包含失败步骤的轮次会显示红点；点击即可跳转\n- **三种视图**：“全部”显示完整过程，“聊天”仅显示你和 AI 的对话，“更改”仅显示哪些文件发生了更改\n- **一眼查看整个会话**：页眉显示项目目录、开始和结束时间、提示和工具调用数量、模型、令牌总数，以及按 API 价格计算的费用\n- **在会话中查找**：自动展开折叠的工具输出中找到的匹配项，并滚动到相应位置；即使会话很长，输入也依然流畅\n- **从回顾会话回到工作**：一键在你喜欢的终端（例如 Ghostty）中继续会话，或复制恢复命令。还可导出为 Markdown，并复制单轮对话或整个会话\n- **更易搜索的列表**：按项目或时间分组；搜索标题、目录、首条和末条消息或会话 ID；并可批量删除\n- 现已支持 OpenCode 2.x 会话和 Gemini CLI 新版 JSONL 会话格式，Hermes 会话也已恢复正常打开\n\n会话阅读器的重新设计由 [@Owlbay](https:\u002F\u002Fgithub.com\u002FOwlbay) 主导。非常感谢 Owlbay 付出的巨大努力。\n\n---\n\n## 与 Pi 同步 MCP\n\nPi 1.0 内置 MCP，配置格式与 Claude Code 相同。在 MCP 页面为 Pi 开启同步后，现有 MCP 服务器即可在 Pi 中使用。加上 Claude Code、Codex、Gemini CLI、Grok Build、OpenCode、Hermes 和 MiniMax Code，现在一份 MCP 配置即可管理 8 种 AI 编程工具。\n\n- **只写入连接字段**：Pi 自身的设置（如超时、工具暴露和 OAuth）保持不变\n- **关闭同步不会删除条目**：它们只会在 Pi 中标记为已禁用；重新开启同步后，这些设置仍然保留\n- **不支持的配置会立即标出**：使用 Pi 不支持的 SSE 传输方式，或名称含特殊字符的服务器，不会写入文件\n\nPi 的 MCP 同步由 [@Owlbay](https:\u002F\u002Fgithub.com\u002FOwlbay) 和 [@LystranG](https:\u002F\u002Fgithub.com\u002FLystranG) 开发。\n\n---\n\n## 更多改进\n\n- **Claude Code 快速切换项**：新增“禁用自动模式服务器检查”。从 Claude Code 2.1.281 起，经由第三方网关或本地路由的每次会话都会先因“无资格”提示而停止一次。勾选此项后，检查会在本地运行，提示也会消失。新建的第三方提供商默认勾选；官方端点不要勾选。现在每个快速切换项后都有“?”，说明其作用，以及它是全局设置还是随提供商变化\n- **MCP**：可一次粘贴多个服务器配置，支持 JSON、TOML、Codex 或 OpenCode 格式。如果写入某个应用失败，可只重试该应用；单个服务器出错也不再阻止其他服务器同步\n- **Skills**：“已安装”和“发现”合并为一个页面，提供一键“全部更新”，并可选择同步方式：自动、仅符号链接或仅复制。已安装列表的表头新增全选框\n- **提示词**：在一个页面管理八款应用的提示词，将提示词复制到其他应用，导入现有文件，并撤销删除\n- **账户**：一览账户、重新登录操作和剩余配额\n- **一览备份**：“备份与恢复”现在有可展开的“其他备份”区域，列出 `~\u002F.cc-switch` 下每类备份的路径、大小和项目数。可打开存储位置或删除整个类别；删除前会告知将丢失的内容\n- **自动填充模型元数据**：选择获取到的模型时，会从预设和 models.dev 填入上下文窗口、输出上限、推理等级和输入类型，不会覆盖你已填写的内容\n- **Claude Desktop**：使用模型映射时，本地路由服务会自动启动，并在不再需要时停止\n- **OpenCode**：支持 OpenCode 2.0 的新提供商配置。新旧格式均可读写，格式错误会指出具体字段。可选择思考变体：已知支持推理的模型会自动标记，变体由 OpenCode 自行生成。同步时会保留 `opencode.jsonc` 中的注释和格式，并跟踪 OpenCode 2.x 用量\n- **MiniMax Code**：可从“应用”页面安装和升级，创建提供商时可选择自己的提供商密钥\n- **预设和定价**：新增 Command Code、OpenCode Zen（Claude Code 和 Codex；与 OpenCode Go 共用一行）以及 MoArk（Claude Code、Codex、Pi、OpenCode、OpenClaw）预设；更新 Claude Opus 5.5、GPT-6 Sol \u002F Luna、MiMo V2.6 等定价；所有现有预设现在都有合适的图标\n\n- **根据日志更轻松地排查问题**：切换提供商，以及进入或离开路由或聚合模式时，现在会记录切换的起止位置和切换结果\n- **默认隐藏项目切换器**：多数用户不需要项目，因此全新安装后，主页面和托盘中不再显示项目切换器。需要时可在设置中开启。如果你已经在使用它，则不会有任何变化\n\n---\n\n## 升级前须知\n\n**设置的存放位置已更改。**共享设置现在保留在客户端自己的配置文件中，“通用配置片段”功能已移除。在客户端中临时选择的模型或推理力度，在切换离开再切回来后会恢复为提供商的值。若要保留该设置，请在提供商编辑器中保存。\n\n**部分修复需切换一次后才生效。**Codex 模型目录和会话历史记录修复会在 CC Switch 下次写入 Codex 配置时生效，因此升级后只需切换一次提供商。重新同步一次现有 MCP 配置，即可清除旧的 `type` 字段。\n\n**切换后按提示重启。**切换模型后，Codex、Gemini CLI 和 Grok Build 需要重启；Codex 的聚合列表更改后也需要重启。Claude Code 聚合模型的更改无需重启。\n\n**数据库架构现为 20。**升级前会自动备份数据库，备份位于 `~\u002F.cc-switch\u002Fbackups\u002F`（文件名以 `db_backup_` 开头）。之后回退到 3.x 会显示“数据库版本过新”。\n\n**现有卡片保持不变。**预设更新仅适用于新建的提供商。例如，现有 Claude 提供商不会自动勾选“禁用自动模式服务器检查”；如有需要，请在编辑器中勾选。新定价只会补录此前按 $0 记录的请求；其他历史费用不会重新计算。\n\n**Claude Code 的聚合模式需要 2.1.243 或更高版本。**Claude Code 在该版本中新增了 `modelPicker` 设置，聚合模型会通过它列在 `\u002Fmodel` 中。更早版本会忽略此设置，因此 `\u002Fmodel` 不会显示任何聚合模型。运行 `claude --version` 检查版本，运行 `claude update` 升级。\n\n**部分设置已移除。**包括：按提供商设置的费用倍率（中继价格已包含倍率，再乘一次只会造成数值偏差）；连通性检查高级设置（现在使用内置默认值）；以及 Claude 的“队友模式”和“最大力度思考”快速切换项（现在每次 Claude Code 会话都内置团队功能，而最大力度会将每次会话锁定在最昂贵的等级；需要时可在会话中使用 `\u002Feffort max`）。已写入配置的变量不会被移除。\n\n---\n\n## 修复\n\n- **Claude Code 使用 ChatGPT 账户时，对话会因 400 错误而中断。**官方 Codex 后端在推理记录中新增了一个字段，导致后续请求被拒绝。之前已失败的对话现在会自动恢复\n- **Claude Code 映射到 GPT 或 Grok 时，关闭思考仍会以最大力度进行推理。**现在关闭思考会将推理力度降至低；目标模型不支持的等级会自动调整；GPT-5.x pro 上的 `\u002Feffort low` 不再因 400 而失败\n- 使用 `⌘Q` 退出、通过 Dock 的“退出”或在 macOS 上注销后，客户端仍指向已停止的本地路由服务\n- Codex 官方路由的回复延迟很久才出现，用量被记录为 0\n- Codex 模型目录中的 GPT 模型丢失了官方提示词、工具能力和推理等级\n- 从 Codex 0.158 起，MCP 配置中的 `type` 字段会导致错误，甚至可能使 Codex 无法启动\n- MiniMax 工具调用的参数解析失败，部分模型的思考内容还会混入回复文本\n- 部分上游在流式响应中混用 LF 和 CRLF 换行，导致工具调用丢失\n- 上游拒绝请求时被错误报告为“达到输出上限”；现在会报告实际的上游错误及其原因\n- Claude Desktop 配合 OpenCode Go 使用时会出现 `400 MissingSessionID`；本地路由现在会自动添加会话 ID\n- 导入 Skill 时勾选的其他应用实际上没有收到它；同步 Skills 还会删除 OpenClaw 目录中同名的文件夹\n- 添加或导入提示词可能会清空你手动编写的提示词文件\n- WSL 下的 Codex 启动和会话扫描变慢\n- MCP 时间预设启动后立即退出；现在会运行 `uvx mcp-server-time`（对于已添加的服务器，请手动将命令改为 `uvx`，并将参数改为 `mcp-server-time`）\n- 升级部分 CLI 时会额外安装一份 npm\n- 清理旧日志后，数据库文件没有缩小\n- 设置中的“保存并重启服务”实际上没有重启服务\n- macOS 上，应用内更新或配置目录更改后，重启的窗口会被其他应用窗口挡住（本次升级仍由旧版本执行重启，因此该修复从下次更新起生效）\n- Grok Build 的“获取 API 密钥”会打开普通主页；Hermes 和 OpenClaw 的 Xiaomi MiMo 预设默认选择了不支持图像的模型\n\n---\n\n## 4.0.0 预览版以来的更改\n\n如果你已安装 4.0.0 至 4.0.3 期间发布的预览版，本节列出预览期间的更改。上文已包含全部内容。\n\n**新增**：Claude Code 的“禁用自动模式服务器检查”快速切换项，并为每个切换项添加说明；与 Pi 1.0 同步 MCP；MCP 服务器和提示词的全页编辑，并在离开前提醒保存；“其他备份”概览；Codex Credits 余额；OpenCode 2.0 的新提供商配置和思考变体；用量模型表新增成功率和速度列；OpenCode Zen 和 MoArk 预设；已安装 Skills 全选；切换日志；每次更新后的更新摘要。\n\n\n**修复**：修复 ChatGPT 账户对话出现 400 时失败的问题；关闭思考时仍以最高强度推理的问题；Claude Code 聚合模式下，`\u002Fmodel` 顶部出现四行相同模型的问题；导入 Skill 时已勾选的应用未获得该 Skill 的问题；其他工具更改 Codex 模型目录设置后，模型映射和聚合模型失效的问题；Gemini CLI 会话未显示的问题；WSL 下 Codex 扫描变慢的问题；上游错误被报告为输出限制的问题；Claude Desktop 搭配 OpenCode Go 时出现 400 的问题；流式传输中工具调用丢失的问题；用量表遗漏缓存 token 的问题；写入用量数据拖慢路由的问题；时间 MCP 预设启动时退出的问题；Codex 用量同步可能卡住的问题；以及侧边栏动画、分隔线、选择多个推理级别时行高被拉伸、时间范围选择器边框和图标填满容器等 UI 细节问题。\n\n**优化**：更改 Claude Code 的聚合模型不再需要重启；提供商表单会与当前所在标签页对应，并且可以将完整 Codex 表单中获取的模型直接选入模型映射表；移除 Claude 的“Teammates Mode”和“Max Effort Thinking”快捷开关。\n\n**4.0.4 新增**：\n- macOS 上，应用内更新或更改配置目录后，重启的窗口会显示在前台\n- 新安装默认隐藏项目切换器\n- 窄版用量窗口中，请求日志的 Speed 列不再被挤到水平滚动区域\n- About 页面上的 Star 提示现为独立横幅，可将其关闭\n\n---\n\n## 致谢\n\n感谢所有为此版本作出贡献的人：\n\n[@Owlbay](https:\u002F\u002Fgithub.com\u002FOwlbay)（会话阅读器重新设计、用量热图与性能优化、整页编辑及未保存更改提醒、Pi 的 MCP 同步、时间 MCP 预设、MiMo 预设），[@qyinter](https:\u002F\u002Fgithub.com\u002Fqyinter)（大量 UI\u002FUX 优化），[@allenxu09](https:\u002F\u002Fgithub.com\u002Fallenxu09)，[@parkavenue9639](https:\u002F\u002Fgithub.com\u002Fparkavenue9639)，[@ggbdpq](https:\u002F\u002Fgithub.com\u002Fggbdpq)，[@SailingLoong](https:\u002F\u002Fgithub.com\u002FSailingLoong)，[@DEAN-Cherry](https:\u002F\u002Fgithub.com\u002FDEAN-Cherry)，[@LystranG](https:\u002F\u002Fgithub.com\u002FLystranG)，[@lcgash](https:\u002F\u002Fgithub.com\u002Flcgash)，[@Chris-Xie369](https:\u002F\u002Fgithub.com\u002FChris-Xie369)，[@fisHarly0](https:\u002F\u002Fgithub.com\u002FfisHarly0)，[@minc-nice-100](https:\u002F\u002Fgithub.com\u002Fminc-nice-100)，[@funkpopo](https:\u002F\u002Fgithub.com\u002Ffunkpopo)，[@ISuuuu](https:\u002F\u002Fgithub.com\u002FISuuuu)，[@tingfeng347](https:\u002F\u002Fgithub.com\u002Ftingfeng347)，[@Hexc01](https:\u002F\u002Fgithub.com\u002FHexc01)，[@zhengkaics](https:\u002F\u002Fgithub.com\u002Fzhengkaics)，[@7ten7](https:\u002F\u002Fgithub.com\u002F7ten7)，[@2doright](https:\u002F\u002Fgithub.com\u002F2doright)，[@RemindZ](https:\u002F\u002Fgithub.com\u002FRemindZ)，[@M3chD09](https:\u002F\u002Fgithub.com\u002FM3chD09)，[@Richard-Zhang1019](https:\u002F\u002Fgithub.com\u002FRichard-Zhang1019)，[@YuxuZhou-CN](https:\u002F\u002Fgithub.com\u002FYuxuZhou-CN)，[@Eureka0w0v0](https:\u002F\u002Fgithub.com\u002FEureka0w0v0)，[@Ne1ther](https:\u002F\u002Fgithub.com\u002FNe1ther)，[@h6rime](https:\u002F\u002Fgithub.com\u002Fh6rime)，[@bigben446](https:\u002F\u002Fgithub.com\u002Fbigben446)，[@szupzj18](https:\u002F\u002Fgithub.com\u002Fszupzj18)，[@AnxForever](https:\u002F\u002Fgithub.com\u002FAnxForever)\n\n也感谢 [@PnutCN](https:\u002F\u002Fgithub.com\u002FPnutCN)、[@Aaron-WealthTech](https:\u002F\u002Fgithub.com\u002FAaron-WealthTech)、[@RuriLothlorien](https:\u002F\u002Fgithub.com\u002FRuriLothlorien)、[@Ming-Sir-69](https:\u002F\u002Fgithub.com\u002FMing-Sir-69)、[@juntaosun](https:\u002F\u002Fgithub.com\u002Fjuntaosun)、[@killServer0](https:\u002F\u002Fgithub.com\u002FkillServer0)、[@shangchaovo](https:\u002F\u002Fgithub.com\u002Fshangchaovo)、[@gsmchen](https:\u002F\u002Fgithub.com\u002Fgsmchen)、[@winter-maple](https:\u002F\u002Fgithub.com\u002Fwinter-maple)、[@guangzh3n](https:\u002F\u002Fgithub.com\u002Fguangzh3n)、[@AltCtrlFn](https:\u002F\u002Fgithub.com\u002FAltCtrlFn)、[@R-Tsubasa](https:\u002F\u002Fgithub.com\u002FR-Tsubasa)、[@Lingbou](https:\u002F\u002Fgithub.com\u002FLingbou)、[@Enough1122](https:\u002F\u002Fgithub.com\u002FEnough1122)、[@IAld010](https:\u002F\u002Fgithub.com\u002FIAld010)，感谢大家提供详尽的错误报告、调查和建议，帮助我们找到问题根源。\n\n特别感谢 [opencodex](https:\u002F\u002Fgithub.com\u002Flidge-jun\u002Fopencodex) 项目；Aggregation 的许多设计都得益于其开源探索。\n\n也感谢所有提交问题或协助复现错误的人。完整技术细节请参阅 [CHANGELOG](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fblob\u002Fmain\u002FCHANGELOG.md)。\n\n\n[官方版本发布说明](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Freleases\u002Ftag\u002Fv4.0.4)。","2026-10-07T12:59:54Z",625,"2026-10-07T14:00:21.503962Z",[458],{"area":459,"items":460},"亮点",[461,462,463,464,465],"重新设计侧边栏、提供商卡片、应用管理和托盘。","聚合多个提供商的 Claude Code 和 Codex 模型。","保留无关配置字段并检测外部修改。","重构会话与用量视图；将 MCP 同步至 Pi。","数据库升级至 schema20；查看3.x 迁移和重启说明。","editorial","首个稳定版4.0：界面重新设计、多提供商模型聚合、更安全的配置写入，以及重构后的会话和用量视图。","CC Switch 4.0.4",{"locale":39,"machineTranslated":36,"sourceLocale":423,"status":431},"4.0.4",{"bodyMarkdown":472,"brewCommittedAt":473,"hasNotes":32,"id":474,"isLatest":36,"isPrerelease":36,"machineTranslated":36,"publishedAt":475,"sections":476,"source":466,"sourceLocale":423,"summary":484,"title":485,"translation":486,"version":487},"# CC Switch v3.20.4\n\n> 本次发布主要包含修复，另有一项新集成：**MiniMax Code 成为第十款受管理的应用**——提供商、MCP、Skills、提示词、会话浏览和使用统计均已接入；默认模型、登录和会话删除仍由 MiniMax Code 自行管理。本次修复重点解决通过本地代理使用 Codex 的问题，并彻底修复了导致 Codex 无法使用的四项问题：从 Codex 0.154 开始，放在 `additional_tools` 中的工具会导致严格的 Chat 网关直接返回 400；只要出现一张带有 `detail: \"original\"` 的截图，会话后续每一轮都会返回 400；编辑或切换离开某些 Codex 提供商时，保存的 API 密钥会被悄悄清除；绑定到已删除 ChatGPT 账户的卡片既无法切换，也无法重新绑定。Claude Code 方面，GitHub Copilot 下的自动模式已恢复正常；`\u002Feffort` 的 `xhigh` 和 `max`，以及 Grok 4.6 的推理强度，都会按选定级别发送。Claude Desktop 的第三方配置现也支持 Linux。**本次发布包含数据库迁移（v18 → v19）；建议升级前手动备份数据库**——详见[升级说明](#this-release-includes-a-database-migration)。\n\n**[中文版 →](v3.20.4-zh.md) | [日本語版 →](v3.20.4-ja.md)**\n\n---\n\n## 亮点：现在可以做什么\n\n- **使用 CC Switch 管理 MiniMax Code**（[#7383](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7383)，[#7578](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7578)）：这是第十款受管理的应用。提供商会与 MiniMax Code 自身设置一同写入 `~\u002F.minimax\u002Fconfig.yaml`，且可同时使用多个提供商；MCP 与 `~\u002F.minimax\u002Fmcp.json` 双向同步；同时接入 Skills 和 `AGENTS.md` 提示词库；预设来自 Pi 的预设目录，共 41 个。默认模型、登录和会话删除**仍由 MiniMax Code 自行管理**——CC Switch 不会改动这些内容。\n- **在仪表板中查看 MiniMax Code 会话和使用情况**：以只读方式浏览会话并复制恢复命令；使用情况会以单独的“MiniMax Code (Session)”来源增量导入，首次同步时会补录历史数据。\n- **在 Linux 上将 Claude Desktop 切换到第三方提供商**（[#7331](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7331)，修复 [#4855](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F4855)）：配置路径采用与 macOS 和 Windows 相同的布局，Flatpak 版本也可使用。\n- **Codex 0.154 及更高版本通过 Chat 网关时不再收到 400**（[#7454](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7454)，修复 [#7451](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7451)、[#6158](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6158)）：`additional_tools` 中的工具现在会正确合并到请求中，不再变成带有 `content: null` 的系统消息。\n- **一张截图不再导致整个 Codex 会话失效**（[#7476](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7476)，修复 [#6495](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6495)、[#7458](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7458)）：升级后，已损坏的会话也会立即恢复，无需手动编辑历史记录。\n- **编辑 Codex 提供商或切换离开时，不再清除已保存的 API 密钥**（[#7434](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7434)，修复 [#7433](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7433)）。\n- **删除 ChatGPT 账户后，绑定到该账户的 Codex 卡片可以重新绑定或切换离开**（[#7395](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7395)，修复 [#7392](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7392)）。\n- **在 GitHub Copilot 下使用 Claude Code 自动模式**（[#5404](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F5404)，修复 [#5175](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5175)）。\n- **`\u002Feffort` 会准确发送你选择的级别**（[#7318](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7318)、[#7531](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7531)，修复 [#7314](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7314)、[#5367](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5367)）：`xhigh` 不再被丢弃，映射到 Grok 4.6 的模型会再次携带推理强度，GPT-5.6 和 GPT-6 Astra 上的 `max` 不再被降级为 `xhigh`。\n- **没有描述的工具不再导致整个请求返回 400**（[#7319](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7319)、[#7378](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7378)，修复 [#7303](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7303)）。\n- **在请求日志中查看每秒输出 token 数**（[#3369](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F3369)，修复 [#5936](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5936)）。\n- **在 OpenCode 提供商表单中搜索并批量添加模型**（[#7515](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7515)，修复 [#7423](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7423)）。\n\n---\n\n## 使用指南\n\n- **[Claude Desktop](..\u002Fuser-manual\u002Fen\u002F2-providers\u002F2.6-claude-desktop.md)**：本次发布新增的 Linux 配置路径、Flatpak 版本的限制，以及更新后的支持范围表。\n- **[添加提供商](..\u002Fuser-manual\u002Fen\u002F2-providers\u002F2.1-add.md)**：说明 Codex 原生 Responses 直连与 Chat 路由转换的区别（Chat 专用提供商示例现已列出百度千帆 Coding Plan 和 StepFun Step Plan），以及“隐藏 AI 归属信息”开关现在写入的三个字段。\n\n---\n\n> [!WARNING]\n>\n> ## 仅限官方渠道（请阅读）\n>\n> CC Switch 是一款**完全免费且开源**的桌面应用，**不会向用户收取任何费用**。请仅通过以下官方渠道获取软件：\n>\n> | 渠道 | 唯一官方渠道 |\n> | ------------------ | ------------------------------------------------------------------------------ |\n\n> | 网站 | **[ccswitch.io](https:\u002F\u002Fccswitch.io)** |\n> | 源代码 | **[github.com\u002Ffarion1231\u002Fcc-switch](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch)** |\n> | 下载 | **[GitHub Releases](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Freleases)** |\n> | 作者 | **[@farion1231](https:\u002F\u002Fgithub.com\u002Ffarion1231)** |\n> | 举报冒充者 | **[GitHub Issues](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues)** |\n>\n> **任何要求付款、充值或提供登录凭据的“CC Switch”网站或客户端都是假的。**如果你已受骗付款，请立即停止交易，并通过 GitHub Issues 提交举报。\n\n---\n\n## 概述\n\nMiniMax Code 是 MiniMax 的编程代理；终端版本 `mcode` 和桌面应用共用 `~\u002F.minimax` 数据目录。CC Switch 以增量模式管理它，与 OpenCode、Hermes 和 Pi 类似：每个提供商都是 `~\u002F.minimax\u002Fconfig.yaml` 中 `custom_provider` 下的一个条目，可同时存在多个提供商；写入时会保留 MiniMax Code 的其他设置，并遵循其配置文件锁定机制。MCP 与 `~\u002F.minimax\u002Fmcp.json` 双向同步，Skills 部署到 `~\u002F.minimax\u002Fskills\u002F`，提示词库写入 `~\u002F.minimax\u002FAGENTS.md`；会话浏览为只读，使用情况则从 MiniMax Code 自身数据库增量导入。我们刻意将管理范围保持精简：默认模型、登录、云功能和会话删除均交由 MiniMax Code 处理；本地代理接管、故障切换、托盘、通用配置片段和 Profiles 也都不涵盖它。（[#7383](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7383)，[#7578](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7578)）\n\n最重要的修复与通过本地代理使用 Codex 有关。从 0.154 开始，Codex 会将插件和执行命名空间等额外工具放入 `additional_tools` 输入项；转换器将其误当作消息，生成带有 `content: null` 的系统消息，严格的 Chat 网关会直接返回 400，其中的工具也会被丢弃（[#7454](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7454)）。Codex 使用 `detail: \"original\"` 标记截图，这个值仅适用于 Responses API；将其原样复制到 Chat 请求后，Ark\u002FDoubao、SenseNova、GLM 和 vLLM 等网关会对整个请求返回 400。由于 Codex 每轮都会重放完整历史，一张图片就会导致该会话从此之后的每一轮都失败（[#7476](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7476)）。另外两项问题与账户数据有关：对于使用自身凭据来源的 Codex 提供商，编辑并保存提供商或切换离开时，已保存的 API 密钥会被空的实时认证信息覆盖（[#7434](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7434)）；在 Auth Center 删除 ChatGPT 账户并重新登录后，绑定旧账户的卡片在每次切换、接管和启动恢复时都会报“找不到账户”（[#7395](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7395)）。\n\nClaude Code 的转换请求也有多项修复：没有描述的工具不再以 `\"description\": null` 发送（[#7319](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7319)、[#7378](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7378)）；GitHub Copilot 下的自动模式分类器不再因 `stop` 参数而收到 400（[#5404](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F5404)）；`\u002Feffort xhigh` 不再被丢弃，映射到 Grok 4.6 的模型会再次携带推理强度，GPT-5.6 和 GPT-6 Astra 上的 `max` 不再被降级为 `xhigh`（[#7318](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7318)、[#7531](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7531)）。其余修复涉及 Skills 安装（skills.sh ID 与目录名不一致，以及仓库文件超过 10,000 个的情况，[#6381](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6381)、[#7489](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7489)）、重新读取提示词的外部编辑（[#7194](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7194)）、WSL 上的 OMO 统一配置（[#7550](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7550)）、关于页面的版本检测（[#7346](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7346)、[#7348](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7348)）和 Windows 任务栏（[#6348](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6348)）。功能方面，Claude Desktop 的第三方配置支持 Linux（[#7331](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7331)），请求日志显示每秒输出 token 数（[#3369](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F3369)），OpenCode 提供商表单可搜索并批量添加获取到的模型（[#7515](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7515)）。\n\n预设也进行了维护更新：国内 Codex 预设已与各厂商的 Responses 文档保持一致（Kimi For Coding 改为 K2.8 Preview，拥有 1M 上下文窗口；DeepSeek 默认使用 `deepseek-flash`）；MiniMax 中国站点和 BaiLing 改用当前官方域名；AICodeWith 的 Codex 系列端点修正为 `\u002Fv1`，并新增了若干预设。2026-09-12，DeepSeek 撤回了 V4 Pro 按 V4.1 Flash 价格计费的公告，因此本次发布撤销了 v3.20.3 提前进行的价格调整，并恢复峰值级别。本次发布包含数据库迁移：`SCHEMA_VERSION` 18 → 19，为 MCP 和 Skills 表添加 MiniMax Code 启用列。\n\n**发布日期**：2026-09-22\n\n**变更规模**：46 次提交 | 更改 156 个文件 | +8,673 \u002F -684 行\n\n---\n\n## 新增\n\n### MiniMax Code 成为第十款受管理的应用\n\nMiniMax Code（`app_type` 为 `mcode`）的终端版和桌面版共用一个数据目录；默认目录为 `~\u002F.minimax`，可通过 `MINIMAX_DATA_DIR` 将其移至其他位置（或使用旧版 `MAVIS_DATA_DIR`）。（[#7383](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7383)，[#7578](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7578)）\n\n- **提供商**：采用类似 OpenCode、Hermes 和 Pi 的附加模式。每个提供商都是 `~\u002F.minimax\u002Fconfig.yaml` 中 `custom_provider` 下的一个条目；卡片是否显示为“已添加”仅取决于其键是否存在于文件中。表单沿用 OpenCode 风格的结构化编辑器，并提供 JSON 编辑器，支持三种 API 格式：`anthropic-messages`、`openai-completions` 和 `openai-responses`；预设取自 Pi 的预设目录，发布时包含 41 个预设。加载列表时会导入在 MiniMax Code 中创建的自定义提供商，在其中进行的编辑也会同步回来；账号类型的提供商（其 `kind` 不是 `custom`）既不会导入，也不会被覆盖。写入时会保留 `config.yaml` 中的其他所有键，并遵守 MiniMax Code 自身的 `config.yaml.lock` 目录锁（锁超过 10 秒后会被回收；否则保存会失败并提示重试）；原生文件写入失败时，数据库更改会回滚。从 `config.yaml` 删除提供商后，其卡片会立即刷新为未添加状态，可以重新添加（[#7578](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7578)）。\n- **默认模型由 MiniMax Code 管理**：CC Switch 从不写入 `defaultModel` \u002F `defaultLightModel`。只要提供商或模型被其中任一项引用，CC Switch 就会拒绝删除或禁用它；请先在 MiniMax Code 中切换到其他默认模型。\n- **MCP**：与 `~\u002F.minimax\u002Fmcp.json` 双向同步。编辑只会替换传输字段（`command`、`args`、`env`、`url`、`headers`、`type`），因此会保留 `timeout` 等原生选项；如果服务器 ID 相同但传输方式不同，则会跳过并显示提示，而不会覆盖；完整重新同步不会移除开关已关闭的条目——只有明确禁用或删除才会移除。数据库提交失败时会恢复原生文件。\n- **Skills 和提示词**：Skills 部署到 `~\u002F.minimax\u002Fskills\u002F`，并采用与 Pi 相同的所有权检查，因此绝不会改动由 CC Switch 以外的程序部署的同名 Skill。提示词库会将已启用的提示词写入 `~\u002F.minimax\u002FAGENTS.md`：切换之前，会先将文件中的外部编辑写回当前提示词；如果尚未启用任何 MiniMax Code 提示词，则会先将文件中不匹配的内容保存为备份提示词。禁用最后一个提示词会清空文件；单个提示词上限为 32 KiB（按 UTF-8 字节计）。\n- **深层链接**：MCP 深层链接的 `apps` 字段接受 `mcode`；MiniMax Code 的提供商深层链接会被拒绝。\n- **本次发布不包含**：MiniMax Code 原生登录和云功能、本地代理接管和故障转移、托盘入口、通用配置片段、通用提供商、配置文件（MiniMax Code 页面会隐藏配置文件切换器）、逐卡片提供商测试、设置中的目录覆盖，以及从“设置 → 关于”安装或升级。\n\n### MiniMax Code 会话及仪表板中的用量\n\n会话浏览器以只读方式打开 `~\u002F.minimax\u002Fv2\u002Fsqlite\u002Fruntime-state.sqlite` 并列出 MiniMax Code 对话（不列出隐藏、已归档和子会话，以及 peek\u002Fchannel\u002Fcron 会话）；每个会话都提供恢复命令 `env MINIMAX_DATA_DIR=\u003Cdir> mcode --session \u003Cid>`（Windows 上使用 PowerShell 语法）。会话与 MiniMax Code 的运行时状态绑定，因此无法从界面删除，后端也会拒绝删除。\n\n用量会从同一数据库的 `local_runtime_token_usage` 表增量导入，来源标记为“MiniMax Code (Session)”，并在仪表板中提供单独的应用筛选器。推理 token 计为输出；模型 ID 为第一个 `\u002F` 之后的部分（`custom_provider:router\u002Fvendor\u002Fmodel` 会记录为 `vendor\u002Fmodel`）。当 MiniMax Code 自身的 `cost_usd` 是有限的非负数时，会直接使用该值；若缺失、为负数或非有限值，则改用 CC Switch 定价表计算费用。原生费用恰为 $0 的行会以 $0 存储，但与其他带 token 的 $0 行一样，一旦模型在定价表中有价格，就会由共享费用回填功能重新定价。与 Pi 一样，包含 MiniMax Code 的总计会附带说明：缓存写入数据不完整。（[#7383](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7383)）\n\n### Claude Desktop 第三方配置支持 Linux\n\n此前，在 Linux 上写入 Claude Desktop 的第三方配置会直接失败，并报不支持的平台错误。现在 Linux 与 macOS 和 Windows 使用相同的文件布局：配置根目录为 `$XDG_CONFIG_HOME`（必须是绝对路径）；未设置时使用 `~\u002F.config`；CC Switch 会在其下的 `Claude\u002F` 和 `Claude-3p\u002F` 目录中维护配置文件。当 CC Switch 作为 Flatpak 运行时（通过 `\u002F.flatpak-info` 检测），始终写入主机的 `~\u002F.config`，绝不写入沙盒私有的 `XDG_CONFIG_HOME`；如果你的 Claude Desktop 使用自定义 XDG 目录，请改用原生软件包。捆绑的 Flatpak 清单已授予访问主目录的权限。macOS 和 Windows 路径保持不变；用户手册（zh\u002Fen\u002Fja）新增了 Linux 路径和支持范围表。（[#7331](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7331)，修复 [#4855](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F4855)）\n\n### 请求日志显示每秒输出 token 数\n\n请求日志表会在输出 token 旁显示生成速率（例如 `1,234\u002F56 tps`），请求详情面板则在输出 token 后的括号中显示。对于记录了首 token 时间的流式请求，速率 = 输出 token ÷（总延迟 − 首 token 时间），只计算首 token 之后的生成时间；非流式请求使用完整延迟，因此速率包含等待首 token 的时间。速率达到 1 或以上时四舍五入为整数，低于 1 时保留一位小数。没有输出 token 或没有有效时间窗口的行不显示速率；从 Claude Code、Codex 和 Gemini 会话日志导入的行也不显示，因为它们没有延迟数据。速率在显示时根据已存储字段计算，不涉及架构或日志记录变更。（[#3369](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F3369)，修复 [#5936](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5936)）\n\n### OpenCode 提供商表单：搜索并批量添加模型\n\n点击“Fetch Models”后，表单上方会显示可搜索的多选列表：按模型 ID 或所有者筛选，勾选所需模型（更改搜索词时会保留已选项），然后点击“Add selected (N)”即可一次性添加；模型 ID 同时用作配置键和初始显示名称。已配置的模型会显示为已勾选、不可选择，并标记为“Already added”；现有条目的名称、限制和选项保持不变。更改 Base URL 或 API Key 会清空候选列表，并丢弃来自先前端点的迟到响应；在搜索框中按 Enter 不会提交表单。原有的逐行下拉选择器仍然保留；复用 OpenCode 字段的 MiniMax Code 提供商表单也有相同的选择器。（[#7515](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7515)，修复 [#7423](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7423)）\n\n### 新增预设\n\nKimi Global 和 Kimi For Coding Global（[#7526](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7526)）、FluxA Token Plan 和 Soshow 加入七款应用：Claude Code、Claude Desktop、Codex、Hermes、OpenClaw、OpenCode 和 Pi；两个 Kimi Global 预设适用于 Kimi 国际站（kimi.ai）。Codex 还新增了 StepFun API（国内版和国际版）、百度千帆（按量付费）和 iFlytek Astron Coding Plan 的原生 Responses 预设。现有提供商不受影响。\n\n### 其他新增内容\n\n- **五款模型的定价**：`grok-4.7`、`glm-5.3-flashx`、`hy4-preview`（Hunyuan Hy4 Preview）、`qwen3.8-2.4t-a95b` 和 `qwen3.8-27b` 之前没有定价行，因此其请求均记为 $0。升级后，启动时的回填会为这些 ID 对应的历史 $0 请求补入费用。Grok 4.7 对低于 200K token 的提示按基础档定价。\n- **关于卡片上的 Star 提示**：“Settings → About”卡片在标题和按钮之间新增 GitHub Star 提示行，点击后会打开仓库；GitHub 按钮移至按钮行首位。\n\n---\n\n## 变更\n\n### 国内 Codex 预设与各供应商的 Responses 文档保持一致\n\n- **Kimi For Coding**：`kimi-for-coding` 现在由 K2.8 Preview 提供；目录条目更名为“Kimi For Coding (K2.8 Preview)”，上下文窗口从 262144 扩大到 1048576，声明支持文本和图像输入，推理档位也从仅支持 `high` 扩展为 `low` \u002F `high` \u002F `max`（默认 `high`）。`kimi-for-coding-highspeed` 仍为 262144，且仅支持 `high`。\n- **DeepSeek**：预设现在默认使用 `deepseek-flash`（V4.1 Flash，文本和图像），不再使用旧别名 `deepseek-v4-flash`；`deepseek-v4-pro` 条目声明为仅支持文本，两个条目均与内置的 DeepSeek 官方目录一致。仍使用 `deepseek-v4-flash` 的卡片照常运行，因为供应商会将该别名路由到 `deepseek-flash`。\n- **腾讯混元**：新增 `hy4-preview`（960K 输入，仅支持文本）；默认模型仍为 `hy3`。\n- **千问AI平台和 QwenCloud 按量付费**：新增开放权重模型 `qwen3.8-2.4t-a95b`（仅支持文本）和 `qwen3.8-27b`（文本和图像）。\n- **没有预设切换协议**：四个腾讯 Token Plan Enterprise 预设继续使用 Chat，因为 TokenHub 说明 Kimi K2.7 Code 不支持 Responses，而其中的 DeepSeek V4 和 GLM-5.2 在服务端也只会被转换为 Chat。\n\n### MiniMax 中国站和 BaiLing 改用当前官方域名\n\n七款应用中的 MiniMax 中国站预设从 `api.minimaxi.com` 改为 `api.minimax.cn`（Claude Code 和 Claude Desktop 使用 `\u002Fanthropic`；Codex、Hermes、OpenClaw、OpenCode 和 Pi 使用 `\u002Fv1`），网站和 API 密钥链接也改为 `platform.minimax.cn`。Coding Plan 用量检测同时识别新旧域名，并改为逐段匹配主机名，因此类似 `api.minimax.cn.example.com` 的相似主机不再触发检测。在 Codex 中，`minimax.cn` 会被视为原生 Responses，并禁用 `web_search`，与旧域名的处理方式相同。\n\nBaiLing 在同样的七款应用中从 `api.tbox.cn` 改为 `api.ant-ling.com`。仍使用 `Ling-2.5-1T` 的六款应用（供应商文档中已不再列出该模型）现在默认使用 `Ling-2.6-1T`，与 Codex 保持一致；`Ling-2.6-1T` 也已注册为仅支持文本的模型，详见升级说明。\n\n### Codex 在 StepFun、百度千帆和 iFlytek Astron 的 Responses 端点上禁用 `web_search`\n\n\nCodex 默认会发送托管式 `web_search` 工具，但 StepFun 的 Responses API 仅接受 `function` 工具，千帆按量付费和 Astron 的 Responses 文档也没有列出托管工具。`stepfun.com`、`stepfun.ai`、`qianfan.baidubce.com` 和 `xf-yun.com` 上的原生 Responses 卡片现在会将 `web_search = \"disabled\"` 写入 `~\u002F.codex\u002Fconfig.toml`（对千帆和 Astron 来说这是预防性措施；尚未确认它们会拒绝请求）。这些域名也提供 Chat 产品（StepFun Step Plan、Qianfan Coding Plan \u002F Token Plan、Astron Chat），因此不会将这些域名整体视为原生 Responses，Chat 卡片的 `web_search` 设置也不受影响。\n\n### 其他预设维护\n\n- SudoCode.chat 的 Claude Code、Claude Desktop、Codex 和 Grok Build 预设新增备用端点 `api.sudorelay.com`，该端点会显示在端点速度测试中；默认地址仍为 `api.sudocode.chat`。\n- 九款应用中的 APIKEY.FUN 网站、注册链接和 Base URL 从 `apikey.fun` 改为 `apikey.fan`；Claude Code、Claude Desktop、Codex、Gemini 和 Grok Build 保留旧地址作为备用端点。\n\n---\n\n## 修复\n\n### Codex 0.154+ 请求包含 `additional_tools` 时，不再被 Chat 网关以 400 拒绝\n\n从 0.154 开始，Codex 会将请求的额外工具（`functions` \u002F `collaboration` 执行命名空间、插件）放入单个 `additional_tools` 输入项：`{\"type\":\"additional_tools\",\"role\":\"developer\",\"tools\":[…]}`。该项包含 `role`，但没有 `content`。Codex 的 Responses-to-Chat 转换器将所有带有 `role` 的项都当作消息处理，并在 `messages[1]` 生成 `{\"role\":\"system\",\"content\":null}`；严格的 Chat 网关会报告 `messages[1]: missing field \"content\"` 并拒绝整个请求，而这些工具在 Chat 和 Anthropic 转换路径中也会被静默丢弃。现在遍历消息时会跳过这个承载项；其中的工具会去重并与顶层 `tools` 合并（名称冲突时以顶层声明为准），命名空间会展开（`exec_command` 在 `functions` 下会变为 `functions__exec_command`），响应侧则会将名称映射回 Codex 可识别的形式。不含该承载项的请求转换结果与此前逐字节一致。（[#7454](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7454)，修复 [#7451](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7451)、[#6158](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6158)）\n\n### 单张 `detail: \"original\"` 图像不再导致 Codex 会话永久损坏\n\n当模型的 Codex 目录条目声明 `supports_image_detail_original` 时，Codex 会为工具返回的图像（例如 `view_image` 截图）标记 `detail: \"original\"`，而该值仅适用于 Responses API。转换为 Chat 上游请求时，该值会原样复制到 `image_url.detail`，导致严格的 OpenAI 兼容网关（Ark\u002FDoubao、SenseNova、GLM、vLLM 等）为整个请求返回 400。Codex 每轮都会重放完整历史，因此一张图像就会导致会话之后每一轮都失败，包括纯文本轮次。\n\n修复分为两层：对于 Chat 图像，代理会将 `original` 降级为 `auto`（`auto`、`low` 和 `high` 不变），因此升级后，已经损坏的会话以及不会自行修复历史记录的旧版 Codex（早于 0.155.0）会立即恢复；同时，为 Chat 转换生成的 Codex 目录始终写入 `supports_image_detail_original: false`，从而阻止 Codex 从源头发送 `original`。直接粘贴到对话中的图像从未受影响。（[#7476](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7476)，修复 [#6495](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6495)、[#7458](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7458)）\n\n### 编辑 Codex 提供商或切换到其他提供商时，不再清除已保存的 API 密钥\n\n部分 Codex 提供商在自己的 `[model_providers.*]` 表（`env_key`、`auth` \u002F `aws` 表，或 `http_headers` 中的 `Authorization`）中保存凭据来源。这类提供商不会向 `config.toml` 注入 token，而默认模式每次切换到第三方提供商时都会删除共享的 `~\u002F.codex\u002Fauth.json`，因此实时快照中的身份验证信息始终为空，数据库中的 `OPENAI_API_KEY` 就成了密钥的唯一副本。有两条路径将这个空身份验证信息视为权威数据：当前提供商的编辑对话框从实时快照填充表单；切换离开时的回填则将实时快照写回数据库。因此，打开编辑器后不做任何更改直接保存，或只是切换离开，都会静默删除密钥；随后，用量脚本对话框会将这张没有密钥的卡片视为官方订阅，并重置已保存的脚本。\n\n现在这两个位置都会将“实时身份验证信息不含凭据”（缺少 `auth.json`，或仅含已退出登录标记 `auth_mode`）视为缺失字段：保留已存储的身份验证信息，同时仍按常规捕获实时的 `config.toml`。如果实时身份验证信息中包含实际凭据，则仍以其为准，因此手动编辑 `~\u002F.codex\u002Fauth.json` 仍然有效。（[#7434](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7434)，修复 [#7433](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7433)）\n\n### 删除 ChatGPT 账户后，与其绑定的 Codex 卡片可以重新绑定或切换到其他提供商\n\n在 Auth Center 中删除受管理的 ChatGPT 账户并重新登录后，即使是同一位 ChatGPT 用户和同一工作区，也会生成新的本地账户 ID。仍绑定旧 ID 的 Codex 卡片随后在每次切换路由、切换接管状态、启动恢复和重新绑定时都会失败，并提示 `账号不存在: \u003Cid>`（找不到账户），导致用户既无法更换提供商，也无法为该卡片选择新账户。\n\n\n现在，切换时会区分“账户已删除”和“账户仍然存在，但 live 中没有匹配的令牌”：对于已删除的账户，只会释放 cc-switch 的所有权标记，不会动 `~\u002F.codex\u002Fauth.json`，因此同一用户之后使用原生 Codex CLI 登录时，不会被误删为 cc-switch 管理的登录。只有在持久化的 `codex_oauth_auth.json` 通过验证后，才会判定账户已删除；如果文件无法读取、格式错误，或账户实际上仍在磁盘上，切换就会中止，live 文件保持不变，不会猜测。若卡片自身的绑定已损坏，错误提示会建议点击服务商卡片上的“选择账户”重新绑定。不会自动重新绑定。（[#7395](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7395)，修复 [#7392](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7392)）\n\n### 不再将没有描述的工具作为 `null` 发送\n\nClaude-to-OpenAI Chat 和 Claude-to-Responses 转换器会将每个工具的 `description` 原样复制到请求中，因此没有描述的工具会变成 `\"description\": null`，严格的 OpenAI 兼容上游就会以 400 `expected string, received null` 拒绝整个轮次。Anthropic 托管工具（例如 `web_search`）按定义没有描述，自定义工具和没有描述的 MCP 工具也会触发此问题；受影响的是整个请求，而不只是该工具。现在，缺失或显式为 `null` 的描述会被省略，其他值则原样传递；字段仍按 `name` → `description` → `parameters` 的顺序写入，而带描述的工具序列化结果与之前逐字节一致，因此不影响提示缓存。Codex 的 Responses-to-Chat 转换器对函数工具也有同样的问题，现已一并修复（[#7378](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7378)）。（[#7319](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7319)，修复 [#7303](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7303)）\n\n### Claude Code 自动模式现可通过 GitHub Copilot 使用\n\nClaude Code 的自动模式分类器会在每次安全检查时发送 `stop_sequences`。通过 GitHub Copilot 时，Anthropic-to-OpenAI Chat 转换会将其映射为 `stop`，而 Copilot 为 Claude 模型提供的 Chat Completions 路由会因该参数返回 400，因此分类器每次都会失败，普通对话则不受影响。现在仅当服务商为 GitHub Copilot 时才会移除转换后的 `stop`；其他 OpenAI 兼容上游（例如 OpenRouter）仍与之前一样保留该参数。（[#5404](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F5404)，修复 [#5175](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5175)）\n\n### `\u002Feffort` 等级可完整传递至 OpenAI 和 Grok 上游\n\n将 Claude Code 的推理力度转换为 OpenAI 格式（Chat 的 `reasoning_effort`、Responses 的 `reasoning.effort`）时有三处遗漏，现均已补齐：\n\n- `\u002Feffort xhigh` 会发送 `output_config.effort: \"xhigh\"`，解析器此前无法识别该值；而显式的 `output_config.effort` 会屏蔽 `thinking` 回退值，导致完全不发送任何等级。现在 `xhigh` 会一对一映射。\n- 支持推理的模型列表此前只有 `grok-4.5` 系列和 `grok-build-*`，因此映射到 `grok-4.6` \u002F `grok-4.6-build` 的 Claude 模型会丢失所有等级，包括 `max`。现在列表已加入 `grok-4.6` 和 `grok-4.6-*`。\n- 显式的 `max` 过去总会降级为 `xhigh`。现在，对于支持独立最高等级的 `gpt-5.6`、`gpt-5.6-sol`、`gpt-5.6-terra`、`gpt-5.6-luna` 和 `gpt-6-astra`，会原样发送 `max`；其他模型仍回退为 `xhigh`。\n\n`low`、`medium` 和 `high` 请求保持不变。（[#7318](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7318)，[#7531](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7531)，修复 [#7314](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7314)、[#6197](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6197)、[#3389](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F3389)、[#5367](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5367)）\n\n### DeepSeek V4 Pro 定价恢复至峰值档\n\n根据 DeepSeek 关于“V4 Pro 将从 2026-09-14 起路由至 V4.1 Flash”的公告，v3.20.3 提前将 `deepseek-v4-pro` 调整为 Flash 档价格（每百万 token $0.30 \u002F $1.20，缓存读取 $0.006）。DeepSeek 于 2026-09-12 撤回该公告，而 V4 Pro 仍按原价计费，因此 V4 Pro 请求记录的费用远低于实际成本。本次发布将价格恢复为每百万 token 输入 $1.32、输出 $3.96、缓存读取 $0.044（峰值档，即人民币 9 \u002F 27 \u002F 0.3）。修复只会改写四个价格列仍保留 v3.20.3 写入值（0.3 \u002F 1.2 \u002F 0.006 \u002F 0）的行；自定义行不受影响。`deepseek-v4-flash` 和 `deepseek-flash` 等 Flash 系列 ID 仍按 V4.1 Flash 档定价。\n\n### 提示列表会读取外部对 live 文件的修改\n\n全局 `CLAUDE.md`、`AGENTS.md` 或其他应用的 live 提示文件在 CC Switch 外部被编辑后，提示列表会一直显示数据库中的旧内容，直到重启。现在加载提示列表时会重新读取 live 文件，并在内容有差异时更新当前启用的提示；窗口重新获得焦点时，已打开的提示面板也会刷新（编辑、确认或写入进行中时会等待）。只刷新已启用的提示，不影响其他模板；文件缺失、无法读取、为空或仅含空白时，保留已存内容；同步或恢复过程中则跳过刷新。Pi 仍使用自己的、基于 `AGENTS.md` 的启用机制，不在此范围内。（[#7194](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7194)）\n\n### 技能安装：ID 与目录名不一致，或仓库文件过多\n\n\n- skills.sh 会将技能的 `skillId` 作为目录名传入，但仓库中的 ID 不一定就是目录名。例如，`tencent\u002FWeChatReading` 在 `skills\u002FSKILL.md` 发布了 `name: weread-skills`，因此安装失败；即使安装成功，更新检查也只按目录名匹配，无法找到该技能。现在查找时会先尝试显式路径和同名目录，然后接受元数据 `name` 等于该 ID 的 `SKILL.md`（必须唯一；若多个目录声明了同一个名称，则拒绝安装，而不会任意选取）。更新检查会优先使用已保存的源路径，因此技能在仓库内移动或重命名后仍可继续更新。（[#6381](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6381)，修复 [#6365](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6365)）\n- 安装技能时会下载整个 GitHub 仓库的归档文件；像 `hugohe3\u002Fppt-master` 这样的仓库含有 13,248 个条目，超过了 10,000 个条目的限制，并因 `ARCHIVE_TOO_MANY_ENTRIES` 失败。远程归档、本地 ZIP 安装和 WebDAV 恢复的条目上限现已提高至 30,000；实际限制仍为 512 MiB 解压预算。（[#7489](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7489)，修复 [#7475](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7475)）\n\n### WSL 中的 OpenCode 目录也能找到 OMO 统一配置\n\n当 OpenCode 配置目录指向 WSL（`\\\\wsl.localhost\\\u003Cdistro>\\home\\\u003Cuser>\\.config\\opencode` 或 `\\\\wsl$\\…`）时，OMO 4.19.3 及后续版本会将统一配置保存在 WSL 侧的主目录中（`~\u002F.omo\u002Fomo.jsonc` 或 `omo.json`）。CC Switch 过去只会在 Windows 主目录中查找；找不到时便静默回退到 OMO 已不再读取的旧插件文件（`oh-my-opencode.jsonc`），因此看似切换成功，实际上并未生效。现在会根据 OpenCode 目录的 WSL 路径推导 WSL 主目录，读取、写入和删除操作都会优先检查该目录；如果两侧都没有统一配置，仍会回退到旧文件。（[#7550](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7550)，修复 [#7363](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7363)）\n\n### 从其他入口打开时，Windows 主窗口也会保留任务栏按钮\n\n静默启动或关闭到托盘后，Windows 主窗口会通过 `skip_taskbar(true)` 隐藏；只有托盘中的“打开主窗口”会在调用 `show()` 前重置该标记。通过其他入口重新显示窗口时，它没有任务栏按钮，而且只要最小化一次就会再也找不到。现在所有这些入口都会先调用 `set_skip_taskbar(false)`：应用已在运行时从快捷方式或开始菜单再次启动、令主窗口获得焦点的 `ccswitch:\u002F\u002F` 深层链接、URL 打开事件，以及版本不匹配时显示的数据库恢复界面。（[#6348](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6348)）\n\n### “隐藏 AI 署名”也会隐藏 Claude Code 的会话链接\n\nClaude Code 为网页和 Remote Control 会话创建的提交和 PR 会带有 claude.ai 会话链接，该链接由单独的 `attribution.sessionUrl` 控制；只清除 `commit` 和 `pr` 已无法隐藏全部署名。现在，Claude 编辑器的“隐藏 AI 署名”开关会写入 `attribution: {commit: \"\", pr: \"\", sessionUrl: false}`，并且只有三项全部满足时才显示为已勾选。取消勾选时仍会删除整个 `attribution` 对象。（[#7053](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7053)）\n\n### 关于页面的版本检测：不再下载完整 npm 元数据，也不再将 Ubuntu 版本误判为工具版本\n\n- 检查 npm 分发工具的最新版本时，过去会下载完整的 npm packument（Codex、OpenCode 和 OpenClaw 等频繁发布的包，解压后为 14–25 MB），只为读取其中的 `dist-tags`；而这也是唯一没有 15 秒超时设置的探测，使用共享客户端的 600 秒超时作为回退。在网络较慢时，卡片可能数分钟都停留在“加载中...”。现在改用专用的 `\u002F-\u002Fpackage\u002F{package}\u002Fdist-tags` 端点（响应仅数十字节到几 KB），超时设为 15 秒；发生超时、网络错误或 404 时显示“未知”。（[#7346](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7346)，修复 [#7339](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7339)）\n- 在 Windows 上，通过 WSL 探测工具时，会在交互式登录 shell 中运行 `\u003Ctool> --version`，并读取标准输出中的第一个 `x.y.z`。Ubuntu 每天首次登录时会显示 MOTD（“Welcome to Ubuntu 24.04.4 LTS …”），因此 Claude Code 卡片会显示 `24.04.4`。现在会在运行工具前打印一个哨兵字符串，并且只解析最后一个哨兵之后的输出。（[#7348](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7348)，修复 [#7347](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7347)）\n\n### 智谱的 Responses 端点可以获取模型列表\n\n智谱的 OpenAI Responses 端点（`https:\u002F\u002Fopen.bigmodel.cn\u002Fapi\u002Fv1`，智谱 GLM Codex 预设的 Base URL）返回的是 Codex 远程目录格式（`\u002Fmodels`、`models[].slug`），而非 OpenAI \u002F Anthropic 的 `data[].id`，所以通过 Codex 服务商形式获取模型时总是返回空列表。现在如果没有 `data` 字段，就会改为读取 `models[].slug`；存在 `data` 时行为不变。（[#7330](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7330)）\n\n### AICodeWith 的 Codex 系列端点改为 `\u002Fv1`\n\nAICodeWith 的 Responses 端点为 `https:\u002F\u002Fapi.aicodewith.ai\u002Fv1`；供应商博客中的 `\u002Fchatgpt\u002Fv1` 是文档错误（已向供应商确认）。Codex 预设以及复用相同端点的 Hermes、OpenClaw 和 Pi 预设均改用 `\u002Fv1`。现有卡片需要手动编辑，详见升级说明。\n\n### Claude Desktop 在 DeepSeek V4 路由上提供 1M 上下文\n\nDeepSeek V4 系列支持 1M 上下文，但固定使用这些模型的 Claude Desktop 预设未启用 `supports1m`，因此 Claude Desktop 的模型列表中始终没有 1M 选项。DeepSeek（Sonnet \u002F Opus 使用 `deepseek-v4-pro`，Haiku 使用 `deepseek-v4-flash`）、OpenCode Go（`deepseek-v4-flash`）和 Baidu Qianfan Token Plan（`deepseek-v4-pro`）预设现在都声明支持 1M。`[1m]` 后缀仅在本地 Claude Desktop 中生效；发送给提供商的内容不变。\n\n### 切换应用时，提供商列表会回到顶部\n\n提供商视图在切换应用时会重复使用滚动容器，只替换其中的动画列表，因此会沿用上一个应用的滚动位置：从一个滚动到底部的长列表切换后，下一个应用可能看起来像空白页。现在切换应用时，页面主容器和提供商列表容器都会在绘制前回到左上角。([#5211](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F5211))\n\n### 界面细节\n\n- **不再显示过期的用量等级**：关闭用量脚本或切换到官方订阅模板后，提供商卡片不再显示旧脚本结果中的多级展开按钮；官方提供商卡片也同样如此。\n- **单色预设图标**：预设选择器中的单色图标现在使用前景色，与表单预览和提供商卡片保持一致（例如 9527CODE 等图标之前看起来发灰）。\n- **Pi 提供商图标**：没有图标的 Pi 提供商不再保存为 Pi 应用徽标；卡片现在显示名称首字母，与其他应用中的自定义提供商一致。([#6826](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6826))\n- **繁体中文措辞**：Pi 表单中的重复键提示现在使用「供應商識別碼」，与字段标签一致。([#7187](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7187))\n\n---\n\n## 升级说明\n\n### 此版本包含数据库迁移\n\n`SCHEMA_VERSION` 18 → 19：`mcp_servers` 和 `skills` 表各新增一个 `enabled_mcode` 列，默认关闭。首次启动时会自动运行迁移。CC Switch 会尝试先备份数据库，并将备份放在 `~\u002F.cc-switch\u002Fbackups\u002F`（文件名以 `db_backup_` 开头）；但备份失败只会记录日志，不会中止升级。运行此版本后，v3.20.3 及更早版本将因“Database version is too new”而拒绝打开数据库；若要降级，只能恢复升级前的备份。为确保安全，请在升级前退出 CC Switch 并手动复制一份：\n\n```bash\ncp ~\u002F.cc-switch\u002Fcc-switch.db ~\u002Fcc-switch-before-v3.20.4.db\n```\n\nWindows 上的默认位置为 `%USERPROFILE%\\.cc-switch\\cc-switch.db`。如果你在设置中更改了配置目录，数据库和 `backups\u002F` 都位于该目录中。\n\n### MiniMax Code 默认显示在应用切换器中\n\n这也适用于设置早于此版本的安装。如果不需要，可在“设置 → 主页显示”中将其关闭。\n\n### 自动读取现有 MiniMax Code 数据\n\n- 首次打开 MiniMax Code 页面时，会导入已存在于 `~\u002F.minimax\u002Fconfig.yaml` 中的自定义提供商。\n- 仅当所有应用的提示词库仍为空（实际情况通常是全新安装），且文件不超过 32 KiB 时，才会在启动时导入 `~\u002F.minimax\u002FAGENTS.md`。已有 Claude、Codex 或其他提示词的升级用户不会自动导入；首次启用 MiniMax Code 提示词时，会先将文件内容保存为备份提示词，因此不会丢失内容。\n- 首次同步用量时会导入 `local_runtime_token_usage` 中的全部历史记录，因此仪表板会立即显示 MiniMax Code 的历史用量总计。\n- 现有 MCP 服务器和 Skills 在 MiniMax Code 中默认关闭；在手动启用之前，CC Switch 不会写入任何内容到 `~\u002F.minimax`。\n\n### MiniMax Code 数据目录仅从环境变量读取\n\nCC Switch 从自身环境读取 `MINIMAX_DATA_DIR`，然后读取 `MAVIS_DATA_DIR`；如果两者均未设置，则使用 `~\u002F.minimax`。设置中没有目录覆盖选项；如果 MiniMax Code 使用自定义目录，必须使用相同的环境变量启动 CC Switch。\n\n### 更改 MiniMax Code 的默认模型\n\n若要删除或停用 `defaultModel` \u002F `defaultLightModel` 引用的提供商或模型，请先在 MiniMax Code 中切换到其他默认模型。MiniMax Code 持有配置锁时，保存会失败并提示重试，而不会无限期等待。\n\n### 绑定到已删除 ChatGPT 账户的 Codex 卡片需要手动重新绑定一次\n\n不会自动重新绑定：点击卡片上的“选择账户”，然后选择新的登录账户。在重新绑定卡片前，无法为其启用 Codex 接管；如果上次退出时接管已开启，启动恢复会因绑定检查失败而关闭 Codex 接管，并保持 `~\u002F.codex\u002Fauth.json` 不变。重新绑定后再开启接管。([#7395](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7395))\n\n### 已清除的 Codex API 密钥不会自动恢复\n\n此修复只会防止今后发生密钥丢失。如果 Codex 提供商的密钥已在先前编辑或切换时丢失，请重新输入；如果其用量脚本因此被重置，也需要重新配置。([#7434](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7434))\n\n### 需要再次检查“隐藏 AI 归属信息”\n\n现在只有 `attribution.sessionUrl` 也设置为 `false`，此开关才会被视为开启，因此升级后，使用旧 `{commit: \"\", pr: \"\"}` 格式保存的配置会显示为未勾选。再次勾选即可添加 `sessionUrl: false`；现有配置不会自动重写。([#7053](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7053))\n\n### 打开提示词列表时会采用实时文件中的外部修改\n\n\n如果应用的实时提示词文件（`CLAUDE.md`、`AGENTS.md` 等）与已启用的提示词不同且文件非空，打开提示词列表时，数据库中存储的内容会被文件内容覆盖。未启用的模板不受影响，Pi 也不在此范围内。([#7194](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7194))\n\n### 推理力度会按所选等级发送\n\n现在，在 `gpt-5.6`、`gpt-5.6-sol`、`gpt-5.6-terra`、`gpt-5.6-luna` 和 `gpt-6-astra` 上使用 `\u002Feffort max` 会实际请求 `max` 等级（[#7531](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7531)）；`\u002Feffort xhigh` 以及映射到 `grok-4.6` \u002F `grok-4.6-*` 的模型现在也会发送推理力度，而此前不会发送任何内容（[#7318](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7318)）。推理令牌用量和延迟可能相应增加。\n\n### 升级后，部分转换后的请求会有一次前缀缓存未命中\n\n升级后，有两类请求会发生一次字节级变化，之后保持稳定：第一类是在宽松的 Chat 或 Anthropic 上游中携带 `additional_tools` 承载内容的 Codex 请求（[#7454](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7454)），其中 `content: null` 系统消息会消失，承载内容中的工具会合并到 `tools`；第二类是在宽松上游中包含无描述工具、且此前接受 `\"description\": null` 的请求（[#7319](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7319)、[#7378](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7378)）。带有描述的工具序列化结果不变。\n\n### `Ling-2.6-1T` 现在被视为纯文本模型\n\n此规则适用于使用此 ID 的所有提供商，而不仅是预设：代理启用媒体回退时，发送给它的图像会在请求发送到上游前被替换为 `[Unsupported Image]` 标记。\n\n### Linux 上的 Claude Desktop 无需迁移\n\n与其他平台一样，切换到 Claude Desktop 提供商并重启 Claude Desktop 即可。如果你自行构建的 Flatpak 权限比随附清单更窄，例如可以授予对 `xdg-config\u002FClaude` 和 `xdg-config\u002FClaude-3p` 的读写权限（将末尾的应用 ID 替换为你自己的构建版本）：\n\n```bash\nflatpak override --user --filesystem=xdg-config\u002FClaude --filesystem=xdg-config\u002FClaude-3p com.ccswitch.desktop\n```\n\n### 旧 Pi 提供商没有图标时仍显示 Pi 图标\n\n只有从现在开始保存的提供商才会改为显示名称首字母。要更新旧卡片，只需在表单中更改其图标。([#6826](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6826))\n\n### 预设更改仅影响新建的提供商\n\n现有卡片会保留创建时的配置快照。此版本涉及的更改：\n\n- **MiniMax 中国站点**：现有卡片仍使用 `api.minimaxi.com`；用量检测、Codex 原生 Responses 目录和 `web_search` 开关仍会识别此域名，因此继续正常工作。\n- **BaiLing**：现有卡片仍使用 `api.tbox.cn`，Codex 以外的应用仍使用 `Ling-2.5-1T`。请编辑 Base URL 和模型，或重新添加预设。\n- **AICodeWith**：手动将现有的 Codex、Hermes、OpenClaw 和 Pi 卡片更改为 `https:\u002F\u002Fapi.aicodewith.ai\u002Fv1`。\n- **APIKEY.FUN**：现有卡片仍使用 `api.apikey.fun`。\n- **SudoCode.chat 的备用端点 `api.sudorelay.com`**：仅会写入新建的 Claude Code、Claude Desktop、Codex 和 Grok Build 卡片；现有卡片可在端点速度测试中将其添加为自定义端点。\n- **Codex 模型目录**：Kimi For Coding 的 K2.8 Preview 行（1M 窗口，`low` \u002F `high` \u002F `max`）、DeepSeek 的 `deepseek-flash` 默认项和纯文本 `deepseek-v4-pro` 行、Hunyuan 的 `hy4-preview`，以及 Qwen 开放权重模型行。可在卡片的模型目录中手动添加，或重新添加预设。\n- **Claude Desktop 的 1M 选项**（DeepSeek、OpenCode Go 和 Baidu Qianfan Token Plan 预设）：在提供商编辑器中为相应路由勾选“声明 1M”，或重新添加预设。\n- **Kimi 国际站点**：现有 Kimi 卡片仍使用中国域名（`api.moonshot.cn` \u002F `api.kimi.com`）；对于来自国际站点 kimi.ai 的密钥，请使用新的 Kimi Global \u002F Kimi For Coding Global 预设。\n\n### Codex 目录修复会在下次切换提供商时生效\n\n切换提供商时会重新生成 `config.toml` 和目录文件。此版本涉及的更改：Chat 上游的卡片不再声明 `supports_image_detail_original`（[#7476](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7476)）；`stepfun.com`、`stepfun.ai`、`qianfan.baidubce.com`、`xf-yun.com` 和 `minimax.cn` 上的原生 Responses 卡片会写入 `web_search = \"disabled\"`；`minimax.cn` 上的卡片使用原生 Responses 目录；并且 `Ling-2.6-1T` 声明为纯文本。请在受影响的卡片上切换离开一次再切回来。代理端将 `original` 降级为 `auto` 会立即生效；因截图而损坏的会话也无需手动编辑历史记录。\n\n### 定价\n\n- 五条新增定价行会使用 `INSERT OR IGNORE` 写入（你已自行添加的同名行会保留）；启动时回填会为这些 ID 下此前按 $0 记录的历史请求补充费用。已有非零费用的行不会更改。\n- `deepseek-v4-pro` 修复仅会在行仍精确匹配 v3.20.3 写入的 0.3 \u002F 1.2 \u002F 0.006 \u002F 0 时，将其改回 1.32 \u002F 3.96 \u002F 0.044。自定义行不会更改；但手动设为这些精确数值的行无法区分，也会被重置。v3.20.3 期间记录的 V4 Pro 费用不会重新计算，因为回填只处理费用不高于 $0 且存在令牌用量的记录，因此只有升级后的请求会按恢复后的价格计费。\n- Grok 4.7 对少于 200K 令牌的提示词按基础等级定价；xAI 对 200K 令牌及以上的提示词收取双倍费用（$4 \u002F $12），而定价表无法区分这一等级。\n\n---\n\n## 风险提示\n\n### 延续的提示\n\n**xAI Grok OAuth 登录**：复用了官方 Grok CLI 的公开 OAuth 客户端身份；使用此功能可能导致账户受限或暂停——详情请参阅[v3.18.0发行说明](v3.18.0-en.md#risk-notice)。\n\n**Codex OAuth 反向代理**：通过反向代理使用 ChatGPT 订阅中的 Codex OAuth，可能违反 OpenAI 服务条款。详情请参阅[v3.13.0发行说明](v3.13.0-en.md#️-risk-notice)。\n\n**SuperGrok 配额查询**：提供商卡片上的配额显示依赖 grok.com 的非公开计费端点；xAI 更改接口后，该功能可能停止工作——详情请参阅[v3.19.0发行说明](v3.19.0-en.md#risk-notice)。\n\n**第三方提供商路由**：CC Switch 本地代理将 Codex、Claude Desktop 或 Grok Build 请求转换并转发给第三方提供商时，各提供商在计费、合规和数据保留方面的限制各不相同。使用前请阅读目标提供商的服务条款。\n\n启用这些功能即表示用户接受相关风险。对于因使用这些功能而导致的账户受限、警告或服务暂停，CC Switch 概不负责。\n\n---\n\n## 致谢\n\n本次发行的 46 次提交中，28 次来自 22 位外部贡献者，其中 11 位是首次贡献。\n\n### 代码贡献\n\n- 感谢 @SaladDay：集成 MiniMax Code（[#7383](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7383)），以及恢复绑定到已删除 ChatGPT 账户的 Codex 卡片（[#7395](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7395)，修复 [#7392](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7392)）。\n- 感谢 @thisTom：删除 MiniMax Code 提供商后刷新卡片（[#7578](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7578)）。\n- 感谢 @Railgun-wiki：为 Claude Desktop 的第三方配置提供 Linux 支持（[#7331](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7331)，修复 [#4855](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F4855)），这是首次贡献；@vianrina 在 [#7389](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7389) 提交了相同功能，其两项改进——测试门控和手册中的支持范围表——也纳入了本次发行。\n- 感谢 @SailingLoong：处理 `additional_tools`（[#7454](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7454)，修复 [#7451](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7451)、[#6158](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6158)）；对没有描述的工具不再发送 `null`（[#7319](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7319)，修复 [#7303](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7303)；Codex 路径上的对应修复见 [#7378](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7378)）；以及 Grok 4.6 推理强度和 `xhigh` 透传（[#7318](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7318)，修复 [#7314](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7314)、[#6197](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6197)、[#3389](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F3389)）；@BigStrongSun 报告了 [#6158](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6158)，并曾在 [#6159](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6159) 提交修复。\n- 感谢 @nameserendipity：为 Codex `detail: \"original\"` 图像提供两层修复（[#7476](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7476)，修复 [#6495](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6495)、[#7458](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7458)），这是首次贡献；@szupzj18 早先在 [#6515](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6515) 提出了针对 Ark 的修复，@somnifex 也曾在 [#7104](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7104) 提出另一种修复。\n- 感谢 @YUZHEthefool：修复 Codex 已保存的 API 密钥被清除的问题（[#7434](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7434)，修复 [#7433](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7433)）；@SailingLoong 曾提交相同修复，见 [#7492](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7492)。\n- 感谢 @liuziyuan：修复 GitHub Copilot 下的自动模式分类器（[#5404](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F5404)，修复 [#5175](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5175)），这是首次贡献。\n- 感谢 @2doright：为 GPT-5.6 和 GPT-6 Astra 保留 `max` 层级（[#7531](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7531)，修复 [#5367](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5367)），这是首次贡献。\n- 感谢 @juexe：在请求日志中显示每秒输出 token 数（[#3369](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F3369)，修复 [#5936](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5936)），这是首次贡献。\n- 感谢 @funkpopo：在 OpenCode 表单中添加模型搜索和批量添加功能（[#7515](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7515)，修复 [#7423](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7423)），这是首次贡献。\n- 感谢 @allenxu09：提示用户读取对实时文件所做的外部编辑（[#7194](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7194)）。\n- 感谢 @xwil1：安装和更新 id 与目录名不同的 skills.sh 技能（[#6381](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6381)，修复 [#6365](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6365)）。\n- 感谢 @yovinchen：安装大型技能仓库（[#7489](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7489)，修复 [#7475](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7475)）。\n- 感谢 @fszcd：在 WSL 上检测 OMO 统一配置（[#7550](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7550)，修复 [#7363](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7363)），延续了他们此前提交的 [#7367](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7367)。\n- 感谢 @misaka-myu：修复 Windows 主窗口的任务栏按钮（[#6348](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6348)）。\n\n- 感谢 @sj817：涵盖会话链接的“隐藏 AI 署名”([#7053](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7053))，这是首次贡献。\n- 感谢 @lyfuci：npm dist-tags 探测 ([#7346](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7346)，修复 [#7339](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7339))，以及 WSL 版本检测中的 MOTD 干扰问题 ([#7348](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7348)，修复 [#7347](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7347)，该问题由其本人报告)，这是首次贡献；@NineSu 之前已在 [#7307](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7307) 中为同一探测添加超时。\n- 感谢 @xwwwb：Zhipu Responses 端点的模型列表 ([#7330](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7330))，这是首次贡献。\n- 感谢 @Muleizhang：切换应用时重置滚动位置 ([#5211](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F5211))，延续其此前的 [#4397](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F4397)。\n- 感谢 @JackieJK：Pi 提供商图标回退为名称首字母 ([#6826](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6826))，这是首次贡献。\n- 感谢 @ntdatt812：统一繁体中文 Pi 表单中的措辞 ([#7187](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7187))。\n- 感谢 @ysntony：Kimi 国际版网站预设 ([#7526](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7526)），以及 README 中 Kimi 链接的调整 ([#7522](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7522))，这是首次贡献。\n\n### 问题报告\n\n- 感谢 @zhanghuihubei 和 @BigStrongSun 报告 Codex 0.154 的 `additional_tools` 在 Chat 转换中变成空系统消息的问题 ([#7451](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7451)，[#6158](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6158))。\n- 感谢 @ywy0 和 @BAOfanTing 报告 Codex 截图经由 Ark\u002FDoubao 和 SenseNova 返回 400 的问题 ([#6495](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6495)，[#7458](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7458))。\n- 感谢 @paiguFK 报告编辑 Codex 提供商后 API 密钥被清除的问题 ([#7433](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7433))。\n- 感谢 @phjzs 报告删除 ChatGPT 账号并重新登录后出现悬空绑定的问题 ([#7392](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7392))。\n- 感谢 @Syuryuuki 报告没有描述的工具会生成 `null` 并导致 400 的问题 ([#7303](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7303))。\n- 感谢 @JoaquinHJ 报告自动模式分类器在 GitHub Copilot 下无法使用的问题 ([#5175](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5175))。\n- 感谢 @NorthDream-Y 和 @xiaodream551-a11y 报告 Grok 4.6 的推理力度丢失，以及 GPT-5.6 的 `max` 被降级的问题 ([#7314](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7314)，[#5367](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5367))；也感谢 @bowendeng286-cmd 和 @icannotwait 报告路由到 OpenAI 协议时 `xhigh` 及其他推理力度设置未生效的问题 ([#6197](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6197)，[#3389](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F3389))。\n- 感谢 @xngch 请求为 Claude Desktop 提供 Linux 支持 ([#4855](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F4855))。\n- 感谢 @Morganwan90 和 @CrazyFigure 报告 Skills 安装失败 ([#6365](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6365)，[#7013](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7013)，[#7475](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7475))；也感谢 @jambo200 请求提高 ZIP 条目限制 ([#7513](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7513))。\n- 感谢 @liushilongpku 报告在 WSL 下未检测到 OMO 统一配置的问题 ([#7363](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7363))。\n- 感谢 @netszzy 报告版本检测会下载完整 npm 元数据且没有超时的问题 ([#7339](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7339))。\n- 感谢 @sberry007 建议在请求日志中显示输出速率 ([#5936](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5936))。\n- 感谢 @Zingsun 请求提供将获取到的模型直接添加到 OpenCode 配置中的方式 ([#7423](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7423))。\n\n---\n\n## 下载与安装\n\n访问 [Releases](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Freleases\u002Flatest) 并下载适用于你系统的构建版本，或从官方网站 [ccswitch.io](https:\u002F\u002Fccswitch.io) 获取（下载通过 Cloudflare 边缘节点分发，不依赖 GitHub 可访问）。\n\n### 系统要求\n\n| 系统 | 最低版本 | 架构 |\n| --- | --- | --- |\n| Windows | Windows 10 及更高版本 | x64 \u002F ARM64 |\n| macOS | macOS 12 (Monterey)+ | Intel (x64) \u002F Apple Silicon (arm64) |\n| Linux | 见下表 | x64 \u002F ARM64 |\n\n### Windows\n\n| 文件 | 说明 |\n| --- | --- |\n| `CC-Switch-v3.20.4-Windows.msi` | **推荐** - MSI 安装程序，支持自动更新 |\n| `CC-Switch-v3.20.4-Windows-Portable.zip` | 便携版，解压后运行 |\n\nWindows ARM64 设备应选择文件名中带有 `arm64` 标记的安装包。\n\n### macOS\n\n| 文件 | 说明 |\n| --- | --- |\n| `CC-Switch-v3.20.4-macOS.dmg` | **推荐** - DMG 安装程序，拖至“应用程序”文件夹 |\n\n| `CC-Switch-v3.20.4-macOS.zip` | 解压后拖至“应用程序”文件夹，通用二进制文件 |\n| `CC-Switch-v3.20.4-macOS.tar.gz` | 用于 Homebrew 安装和自动更新 |\n\nHomebrew 安装：\n\n```bash\nbrew install --cask cc-switch\n```\n\n升级：\n\n```bash\nbrew upgrade --cask cc-switch\n```\n\n### Linux\n\nLinux 提供 **x86_64** 和 **ARM64** (`aarch64`) 两种架构的安装包。选择架构标记与机器 `uname -m` 输出相符的文件：\n\n- `CC-Switch-v3.20.4-Linux-x86_64.AppImage` \u002F `.deb` \u002F `.rpm`\n- `CC-Switch-v3.20.4-Linux-arm64.AppImage` \u002F `.deb` \u002F `.rpm`\n\n| 发行版 | 推荐格式 | 安装命令 |\n| --- | --- | --- |\n| Ubuntu \u002F Debian \u002F Linux Mint \u002F Pop!\\_OS | `.deb` | `sudo dpkg -i CC-Switch-*.deb` 或 `sudo apt install .\u002FCC-Switch-*.deb` |\n| Fedora \u002F RHEL \u002F CentOS \u002F Rocky Linux | `.rpm` | `sudo rpm -i CC-Switch-*.rpm` 或 `sudo dnf install .\u002FCC-Switch-*.rpm` |\n| openSUSE | `.rpm` | `sudo zypper install .\u002FCC-Switch-*.rpm` |\n| Arch Linux \u002F Manjaro | `.AppImage` | 添加可执行权限后直接运行，或使用 AUR |\n| 其他发行版 \u002F 不确定 | `.AppImage` | `chmod +x CC-Switch-*.AppImage && .\u002FCC-Switch-*.AppImage` |\n\n\n[官方版本发布页](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Freleases\u002Ftag\u002Fv3.20.4)。","2026-09-22T15:45:41Z",626,"2026-10-07T09:38:27.243348Z",[477],{"area":459,"items":478},[479,480,481,482,483],"管理 MiniMax Code 会话、提供商和用量。","显示输出 token 速度；搜索并批量添加 OpenCode 模型。","修复 Codex additional_tools 和原始详情图像处理。","保留已保存的 API 密钥并恢复账户重新绑定操作。","包含数据库迁移及明确的升级注意事项。","新增 MiniMax Code 管理功能，改进提供商预设和用量视图，并修复路由、凭据及技能相关问题。","CC Switch 3.20.4",{"locale":39,"machineTranslated":36,"sourceLocale":423,"status":431},"3.20.4",{"bodyMarkdown":489,"brewCommittedAt":490,"hasNotes":32,"id":491,"isLatest":36,"isPrerelease":36,"machineTranslated":36,"publishedAt":492,"sections":493,"source":466,"sourceLocale":423,"summary":501,"title":502,"translation":503,"version":504},"# CC Switch v3.20.3\n\n> 如今主流开源模型的官方 API 大多原生支持 OpenAI Responses 格式。本次发布将 Kimi 的两个 Codex 预设从 Chat Completions 转换切换为 **原生 Responses 直连**。至此，DeepSeek、Zhipu GLM、Qwen、MiniMax、小米 MiMo、LongCat 和 Kimi 的官方 Codex 预设均可直连厂商端点；再加上火山引擎 Doubao 和腾讯混元，这些服务不再需要通过本地路由转换格式。如果你的 Codex 卡片仍使用添加时的 Chat 格式，请重新添加一次预设，或在编辑页将“上游格式”设为 Responses，即可直连。其余更新是一系列由贡献者推动的正确性修复：空的 `reasoning_content` 占位符不再让 Claude Code 被空 Thought 块刷屏；Codex 代理任务不再在一次进度更新后戛然而止；Claude Desktop 的模型探测不再将 Responses 上游误报为“不可用”；退出时不再把 Claude 的代理重试与超时设置覆盖到 Codex\u002FGemini\u002FGrok Build；通用提供商同步不再清除子卡片设置；Codex 方面则补齐了省略 `model_provider` 时的代理路由、Windows 上持续增长的会话用量，以及托盘中托管账户的配额显示。预设和定价也进行了维护：聚合平台目录已更新，千问AI平台更名并迁移至 Qwen 3.8，MiniMax 默认使用 M3，DeepSeek V4 系列价格调整为 V4.1 Flash 档。**本次发布不包含数据库迁移。**\n\n**[中文版 →](v3.20.3-zh.md) | [日本語版 →](v3.20.3-ja.md)**\n\n---\n\n## 亮点：现在可以做什么\n\n- **在 Codex 中通过原生 Responses 直连 Kimi**：Kimi 开放平台和 Kimi For Coding 预设从 `openai_chat` 切换到 `openai_responses`，因此 Codex 可直接连接厂商的 `\u002Fv1\u002Fresponses`，无需再通过本地路由将 Responses 转换为 Chat。至此，DeepSeek、Zhipu GLM、Qwen、MiniMax、小米 MiMo、LongCat 和 Kimi 的官方 Codex 预设均可直连；仍仅提供 Chat Completions 的端点（百度千帆、腾讯 Token Plan、QwenCloud For Coding、StepFun、百灵、ModelScope 和聚合平台）则继续通过本地路由转换。如果现有卡片仍使用添加时的 Chat 格式（包括 Kimi，以及早前版本中已切换的 DeepSeek、GLM 等），请重新添加一次预设，或在编辑页将“上游格式”设为 Responses，即可直连；详见升级说明。\n- **Claude Code 不再被空 Thought 块刷屏**（[#7227](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7227)，修复 [#5028](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5028)、[#4404](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F4404)）：GLM、Qwen 和 DeepSeek 等会在每个数据块中保留空 `reasoning_content` 占位符的上游，不再让每个 token 都单独占一行并附带一个空思考块。\n- **Codex 代理任务不再在一次进度更新后戛然而止**（[#7280](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7280)，修复 [#6529](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6529)）：使用 Chat 上游时，commentary 与紧随其后的工具调用会合并到同一条 assistant 消息中，因此上游不会过早发出 `stop`。\n- **Claude Desktop 不再在 Responses 上游报告“模型不可用”**（[#7287](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7287)，修复 [#7103](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7103)）：探测所用的 `max_tokens=1` 在转换时会限制为 16，即 Responses API 允许的最小值。\n- **退出后，Codex、Gemini 和 Grok Build 的代理重试与超时设置不再被 Claude 的设置覆盖**（[#7210](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7210)，修复 [#7204](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7204)）。\n- **同步通用提供商时，不再清除其子项的用量脚本、通用配置退出选项和排序**（[#7212](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7212)，修复 [#7134](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7134)）。\n- **缺少 `model_provider` 的 Codex 卡片在接管时也会经过本地代理**（[#7263](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7263)，修复 [#6256](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6256)），而不会悄悄直连 `api.openai.com`。\n- **Windows 上持续增长的 Codex 会话用量不再漏记**（[#7219](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7219)，修复 [#6060](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6060)）：即使修改时间不变，也会通过文件大小判断。\n- **在托盘中查看绑定到托管 Codex 卡片的 ChatGPT 账户配额**（修复 [#7267](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7267)）：绑定多个账户后不再只显示账户名称。\n- **查看 Claude Fable 的每周限额**：提供商卡片和托盘现在都会解析用量 API 新增的 `limits[]` 数组。\n- **一键禁用 Claude Code 的 Artifact 工具**：严格校验工具架构的网关（包括 DeepSeek）不再对每个请求返回 400。\n- **官方 DeepSeek Codex 预设现在可以读取图像**（[#7286](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7286)，修复 [#7283](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7283)）；`deepseek-flash` 和 V4 系列按 V4.1 Flash 档计费，而非 $0 或旧的高峰价格。\n- **一键添加千问AI平台 Token Plan**（[#7183](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7183)）；千问AI平台迁移至 Qwen 3.8，MiniMax 默认使用 M3（[#7255](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7255)），聚合平台的 Codex 目录也已更新。\n\n---\n\n## 使用指南\n\n\n- **[添加提供商](..\u002Fuser-manual\u002Fen\u002F2-providers\u002F2.1-add.md)**：了解 Codex 原生 Responses 直连与 Chat 路由转换的区别、Claude 快速切换项表（含新增的“禁用 Artifact 工具”），以及“预设更改只影响新建提供商”的含义。\n- **[请求路由](..\u002Fuser-manual\u002Fen\u002F4-proxy\u002F4.2-routing.md)**：了解接管时的配置重写与还原；本次针对缺少 `model_provider` 的 Codex 卡片所做的路由修复也属于此流程。\n- **[用量统计](..\u002Fuser-manual\u002Fen\u002F4-proxy\u002F4.4-usage.md)**：了解 Codex 会话解析和定价配置，以及本次发布中的字节游标和价格回填规则。\n\n---\n\n> [!WARNING]\n>\n> ## 请仅使用官方渠道（请阅读）\n>\n> CC Switch 是一款**完全免费且开源**的桌面应用，**不会向用户收取任何费用**。请仅通过以下官方渠道获取软件：\n>\n> | 渠道 | 仅限官方渠道 |\n> | ------------------ | ------------------------------------------------------------------------------ |\n> | 网站 | **[ccswitch.io](https:\u002F\u002Fccswitch.io)** |\n> | 源代码 | **[github.com\u002Ffarion1231\u002Fcc-switch](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch)** |\n> | 下载 | **[GitHub Releases](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Freleases)** |\n> | 作者 | **[@farion1231](https:\u002F\u002Fgithub.com\u002Ffarion1231)** |\n> | 举报冒充者 | **[GitHub Issues](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues)** |\n>\n> **任何要求付款、充值或提供登录凭据的“CC Switch”网站或客户端都是假的。**如果你受骗付款，请立即停止交易，并通过 GitHub Issues 提交举报。\n\n---\n\n## 概述\n\n如今，主流开源模型的官方 API 大多原生提供 OpenAI Responses 端点，而 Responses 长期以来一直是 Codex 唯一原生支持的协议。此前，CC Switch 为这些模型提供两种 Codex 预设：一种是厂商端点原生支持 Responses 时的直连方式；另一种是在仅提供 Chat Completions 时，通过本地代理将 Codex 的 Responses 请求转换为 Chat，再将流式响应转换回来。转换流程虽然可用，但每增加一层转换就多一处出错的可能——本次修复的 [#7280](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7280) 正是这类转换缺陷。Kimi 开放平台和 Kimi For Coding 端点现在都原生提供 `\u002Fv1\u002Fresponses`，且官方 Codex 集成指南要求使用 `wire_api = \"responses\"`，因此这两个预设改为原生 Responses 直连。至此，这些主流开源模型——DeepSeek、Zhipu GLM、Qwen（千问AI平台 \u002F QwenCloud）、MiniMax、小米 MiMo、LongCat 和 Kimi——的官方 Codex 预设均可直连厂商端点，火山引擎 Doubao 和腾讯混元也同样如此；仍仅提供 Chat Completions 的端点（百度千帆、腾讯 Token Plan、QwenCloud For Coding、StepFun、百灵、ModelScope 和聚合平台）继续通过本地路由转换，用户手册中的“仅支持 Chat”示例也已改为列出这些提供商。\n\n其余更新是一系列由贡献者推动的正确性修复，解决了若干已存在数月的问题。在代理方面：在每个数据块中都保留空 `reasoning_content` 占位符的 OpenAI 兼容上游，不再让 Claude Code 被空 Thought 块以及每个 token 一次换行刷屏；Codex 的 Responses 转 Chat 转换器不再把 commentary 消息与紧随其后的工具调用拆成两条 assistant 消息——过去这会导致长任务在一次进度更新后就结束；Claude Desktop 的单 token 模型探测会限制为 Responses API 的最小值，因此映射后的模型不再被报告为“不可用”；路由下的 Codex 图像生成也修复了三类问题：粘贴完整端点、大小写混合的后缀以及流式用量。我们还修复了两个数据完整性问题：每次正常退出都会把 Claude 的重试和超时设置复制到 Codex、Gemini 和 Grok Build 的代理行；同步通用提供商时会清除其子项的用量脚本、通用配置退出选项和端点自动选择，并将卡片移至列表底部。Codex 方面：接管现在会在卡片省略 `model_provider` 时使用代理地址；用量导入现在通过持久化字节游标识别 Windows NTFS 上持续增长的文件；托盘会显示托管 Codex 卡片所绑定 ChatGPT 账户的配额；Claude Fable 的每周限额也会显示在提供商卡片和托盘中。Claude 提供商编辑器新增“禁用 Artifact 工具”快速切换项，适用于拒绝 Claude Code Artifact 工具架构的网关。\n\n预设方面：聚合平台的 Codex 预设已更新为当前目录；DashScope\u002FBailian 更名为千问AI平台并迁移至 Qwen 3.8（[#7183](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7183)）；MiniMax 默认使用 M3（[#7255](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7255)）；内置的 DeepSeek Codex 目录现与支持视觉的 `deepseek-flash` 保持一致（[#7286](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7286)）；DeepSeek V4 系列价格调整为 V4.1 Flash 档。本次发布不更改数据库架构。\n\n**发布日期**：2026-09-11\n\n**变更规模**：22 次提交 | 更改 62 个文件 | +3,458 \u002F -802 行\n\n---\n\n## 新增\n\n### Claude 提供商编辑器中的“禁用 Artifact 工具”快速切换项\n\n一些第三方 Anthropic 兼容网关（包括 DeepSeek）会用严格的正则检查器验证工具 JSON Schema，并拒绝 Claude Code 的 Artifact 工具在其 `str_replace` 数据库能力推出后生成的 Unicode 属性转义（`\\p{Cc}`、`\\p{Cf}`、…），于是每个请求都会失败并返回 400 `Invalid schema for function 'Artifact'`，与所选模型无关。在现有 Claude 快捷开关旁新增第六个复选框，可在提供方设置 `env.CLAUDE_CODE_DISABLE_ARTIFACT=\"1\"`，从而彻底不将 Artifact 工具加入工具数组；取消勾选时会像其他开关一样移除此键。四种语言的标签以及用户手册中的开关表（zh\u002Fen\u002Fja）均已更新。\n\n### Claude Fable 的每周限额显示在提供方卡片和托盘中\n\nClaude OAuth 用量 API 现在会在顶层 `limits[]` 数组中报告按模型划分的每周限额（`kind: \"weekly_scoped\"`，包含 `scope.model.display_name` 和 `percent`），而非使用专门的顶层时间窗口；解析器只读取旧版时间窗口，因此 Fable 限额从未显示。现在会将 `limits[]` 解析到 `seven_day_fable`、`seven_day_opus` 和 `seven_day_sonnet`——范围行优先于同名旧版时间窗口，重复项和格式错误的行会被跳过，旧版时间窗口、额外用量和未知时间窗口均会保留。托盘为 Fable 设置了独立标签组，因此不会与每周最大值合并；四种语言均已添加“Fable”标签。\n\n### 新增提供方预设\n\n千问AI平台 Token Plan ([#7183](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7183)) 与下文所述品牌更新同时加入七款应用的预设库：Claude Code、Claude Desktop、Codex、Hermes、OpenClaw、OpenCode 和 Pi。现有提供方不受影响。\n\n### 为 `deepseek-flash` 和 `deepseek-v4-flash-vision-exp` 增加定价行\n\n`deepseek-flash` 是 DeepSeek 目前唯一推荐的 ID，`deepseek-v4-flash-vision-exp` 是官方安装脚本通过 1.2.0 写入的旧版视觉模型名称；两者均由 V4.1 Flash 提供服务，价格为每百万个单位 $0.30\u002F$1.20，缓存读取价格为 $0.006。此前两者都没有定价行，而 `LIKE '{id}-%'` 前缀回退只匹配更长的 ID，因此这两个 ID 下的请求此前都按 $0 计费。\n\n---\n\n## 已更改\n\n### Kimi 的 Codex 预设改为原生 Responses 直连\n\nKimi 开放平台（`api.moonshot.cn\u002Fv1`）和 Kimi For Coding（`api.kimi.com\u002Fcoding\u002Fv1`）现在都原生提供 `\u002Fv1\u002Fresponses`，其官方 Codex 集成指南也要求使用 `wire_api = \"responses\"`，因此两个预设从 `openai_chat`（本地代理将 Responses 转换为 Chat，必须接管路由）改为 `openai_responses`（Codex 直接连接）。两个端点均使用真实密钥，按照准确的 Codex 0.153.4 请求格式进行了验证（`reasoning.encrypted_content`、`reasoning.summary`、托管式 web_search、重放的推理项），并通过 `codex exec` 完成端到端工具循环。`kimi-k3` 成为开放平台的默认模型及目录首行，`kimi-k2.7-code` 保留为第二行；两个预设均移除只对 Chat 转换有意义的 `codexChatReasoning`，Kimi For Coding 预设还移除 `promptCacheRouting`——在原生路径中，Codex 会自行发送 `prompt_cache_key`；每个 Kimi 行均声明 `supportsParallelToolCalls`，与官方 Kimi Code `models.json` 一致；不声明默认推理设置，因为 `config.toml` 中的 `model_reasoning_effort` 优先于目录默认值，而目录默认值只会标记 `\u002Fmodel` 选择器。用户手册（zh\u002Fen\u002Fja）现已在“仅 Chat”示例中列出仍使用 Chat 路由的提供方，并更正了 Kimi Code 拒绝 `codex-cli` 用户代理的过时说明。后端无更改。\n\n### 聚合平台 Codex 预设更新至当前目录\n\nSiliconFlow（.cn）的默认模型改为 `deepseek-ai\u002FDeepSeek-V4-Flash`（1M 窗口、高\u002F最大力度，并明确规定 `enable_thinking`\u002F`reasoning_effort`），因为 MiniMax M2.5 已在国内站点退役；Atlas Cloud 改为 `zai-org\u002Fglm-5.2`，这是其 Coding Plan 收录的最新 GLM（1M 窗口）；Novita 改为 `zai-org\u002Fglm-5.3`（1M，仅文本）；NVIDIA NIM 改为 `moonshotai\u002Fkimi-k3`（1M，文本+图像；NIM 接受 `reasoning_effort` 的 low\u002Fhigh\u002Fmax，省略此字段时默认使用 max，因此预设明确指定 high，以匹配其 `config.toml`）；OpenCode Go 的 GLM\u002FKimi 条目也已更新——`glm-5.3`（新默认项）、`glm-5.3-flash` 和 `kimi-k3` 替换 `glm-5.2`、`glm-5.1` 和 `kimi-k2.7-code`，其窗口、模态和力度等级与 models.dev 保持一致，而 DeepSeek V4 Pro\u002FFlash 和 MiMo V2.5 Pro 行保持不变。对于未记录新模型思考\u002F力度约定的平台（Atlas Cloud、Novita），预设会明确设置空操作覆盖项，避免后端再按模型名称注入厂商原生思考字段。\n\n### DashScope\u002FBailian 预设更名为千问AI平台，并采用 Qwen 3.8 ([#7183](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7183))\n\n\n国内 Bailian 预设更名为千问AI平台并采用专属图标，控制台和 API 密钥链接改为 `platform.qianwenai.com`；Claude Code、Claude Desktop、Codex、Hermes、OpenClaw、OpenCode 和 Pi 中的 Qwen 系列统一更新至 3.8 一代——Opus\u002FSonnet\u002FHaiku 对应 `qwen3.8-max` \u002F `qwen3.7-plus` \u002F `qwen3.8-flash`，并统一采用官方 983、616-token 窗口；国内 `Bailian For Coding` 预设（Claude Code、Claude Desktop、Hermes）在原有端点上改为 `千问AI平台 Coding Plan`；OpenClaw\u002FOpenCode\u002FPi 的模型元数据也与官方客户端文档保持一致。国际版 QwenCloud 预设保留原名并采用专属图标；按量付费预设改用 Qwen 3.8，Token Plan 预设也与之统一（Codex 和 Hermes 原本已使用 3.8 条目），而 QwenCloud For Coding 保留 `qwen3.7-plus`、`qwen3-coder-plus` 及其 `coding-intl` 端点。端点有一处例外：Pi 的 QwenCloud Token Plan 从 `\u002Fapps\u002Fanthropic`（Anthropic Messages）切换到 `\u002Fcompatible-mode\u002Fv1`（OpenAI Chat Completions），Hermes 和 OpenClaw 的 Token Plan 预设仍使用 Anthropic 地址。\n\n### MiniMax 预设默认使用 M3 并移除过期优惠（[#7255](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7255)，修复 [#7254](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7254)）\n\n七个预设文件中的官方 MiniMax 和 MiniMax (en) 预设现在均默认使用 `MiniMax-M3`——Claude Code 声明 1M 上下文（`MiniMax-M3[1M]`，采用官方 `CLAUDE_CODE_AUTO_COMPACT_WINDOW=1000000`），Claude Desktop 启用 1M 支持，OpenClaw\u002FOpenCode\u002FPi 元数据则包含 1、000、000-token 上下文、131、072-token 输出额度、图像输入和推理支持。所有预设和四种语言中已移除过期的 Coding Plan 优惠。现有配置和第三方默认设置均不变。\n\n### DouBaoSeed 预设更名为 Volcengine Doubao\n\n七款应用的预设文件中已本地化显示名称：zh\u002Fzh-TW 使用「火山 豆包AI」，en\u002Fja 使用“Volcengine Doubao”，遵循 Qiniu\u002FCompshare 惯例——顶层名称保留拉丁字母回退名称，因此该预设仍可用中文和英文搜索。OpenCode 和 Pi 写入客户端配置文件的 `settingsConfig.name` 也已更名，但仍保留 ASCII 格式（`Volcengine Doubao`）。实时配置中的标识符刻意保持不变：Codex TOML 提供方名称、Hermes 节点键 `doubao_seed`、Pi 的提供方键、OpenClaw 模型引用前缀、优惠键和图标。\n\n### DeepSeek V4 系列重新定价至 V4.1 Flash 档位\n\nDeepSeek 已停用 V4 Flash，并宣布从 2026-09-14 12:00（北京时间）起，V4 Pro 请求将路由至 V4.1 Flash，并按 Flash 价格计费；本次发布提前执行了这一调整。`deepseek-v4-flash`、`deepseek-v4-flash-0731` 和 `deepseek-v4-pro` 调整为 $0.30\u002F$1.20，缓存读取价格为 $0.006；修复条目只更正仍处于先前峰时档位的行，并排在 2026-08-16 峰时\u002F非峰时行之后，因此旧数据库会逐步经过中间价格。因缺少权威来源，`deepseek-chat` 和 `deepseek-reasoner` 保持不变。`deepseek-v4-pro` 也从已确认的纯文本表中移除——它现在会落到支持视觉的模型，因此图像清理器会对其放行。\n\n### Claude“应用于所有角色”按表单顺序执行\n\n此前，一键将单个模型名称复制到 Claude 模型映射的所有角色中的按钮会优先采用 `ANTHROPIC_MODEL`；现在它按面板从上到下的顺序读取（Sonnet、Opus、Fable、Haiku、subagent），仅在最后才将默认模型用作回退值。\n\n### Atlas Cloud 不再是赞助商\n\nREADME 的四种语言赞助商表格、横幅、`isPartner`\u002F`partnerPromotionKey` 标记和推广字符串中均已移除赞助商身份；七款应用的预设本身保留，只从赞助商组移至非赞助商组，端点、模型和图标均不变。\n\n---\n\n## 已修复\n\n### 空的 `reasoning_content` 占位内容不再让 Claude Code 被空思考块淹没\n\n一些 OpenAI 兼容上游（GLM、Qwen、通过 ModelScope\u002FDashScope 提供的 DeepSeek-V4-Pro、Bailian、JD Cloud 等）会在每个内容块中保留 `reasoning_content: \"\"` 占位内容，而不是省略该字段。OpenAI Chat 转 Anthropic SSE 转换器的推理分支此前只检查字段是否存在；它与内容分支共享开放块状态，因此每个内容块都会先关闭已打开的文本块，再打开一个空思考块，然后重新打开文本块——N 个内容块变成 2N 个内容块，其中一半是空思考块。Claude Code 会将其渲染为每个 token 一行，并显示数十个空 Thought 块，同时也会使会话 JSONL 膨胀。现在会在进入该分支前过滤空推理内容，与内容分支及非流式转换器已有的防护一致；新增两个回归测试，分别固定占位内容形式和真实推理内容的块索引、类型及顺序。（[#7227](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7227)，修复 [#5028](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5028)、[#4404](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F4404)；取代 [#4869](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F4869)、[#6421](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6421)、[#6576](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6576)）\n\n### Chat 上游中的 Codex Agent 任务不会再在进度更新后停止\n\n\nCodex Responses-to-Chat Completions 转换器在一个模型轮次包含一条 commentary 消息，且紧接着出现 `function_call` 项时，会连续输出两条 assistant 消息；Chat 上游会将仅含文本的消息视为完整轮次，并在预期的工具调用之前返回 `finish_reason=stop`。现在，如果紧邻的 assistant 消息尚无 `tool_calls`，待处理的工具调用会合并到该消息中；待处理的推理内容按片段附加，因此并行调用不会重复它。其他所有边界情况（user\u002Ftool 边界、之前的工具调用批次、媒体刷新）仍使用新建消息的路径；对于不含推理内容的合并调用，推理占位符回填仍然适用。([#7280](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7280)，修复 [#6529](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6529)；取代 [#6530](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6530)、[#5895](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F5895)；另见报告 [#5860](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5860))\n\n### Claude Desktop 在 Responses 上游上的模型探测不再失败\n\nResponses API 会拒绝低于 16 的 `max_output_tokens`，但 Anthropic 客户端会合法地发送很小的探测预算——Claude Desktop 的模型可用性探测使用 `max_tokens=1`——而 Anthropic-to-Responses 转换会原样复制该值，因此严格的上游会返回 400，Claude Desktop 便会在本地路由下将映射的模型报告为不可用。转换时会将 1 至 15 的值钳制到 16；16 及以上的值、0 和非整数值仍保持原有透传语义，常规会话请求仍像以前一样逐字节转换，而 Codex OAuth 路径之后仍会剥除 `max_output_tokens`。([#7287](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7287)，修复 [#7103](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7103))\n\n### 路由下的 Codex 图像生成：粘贴完整端点、混合大小写后缀、流式用量\n\n`\u002Fimages\u002Fedits` 路由以及 Images\u002FResponses\u002FCompact\u002FChat 共用的后缀表已在 v3.20.2 发布；本次修复补上了三个相关缺口。如果基础 URL 粘贴的是完整的 `\u002Fchat\u002Fcompletions` 或 `\u002Fresponses` 端点，且“完整 URL”开关关闭，现在会像 Chat 路径此前已能处理的那样推导出同级 Images 和 Alpha Search 端点，而不是向 `…\u002Fchat\u002Fcompletions\u002Fimages\u002Fgenerations` 发送独立请求。后缀检测和同级端点重写现在不区分大小写（`\u002Fv1\u002FImages\u002FEdits\u002F`、`\u002Fv1\u002FResponses\u002FCompact\u002F`），同时保留原始 URL 前缀、百分号编码和查询参数。流式 Images 用量现在会先从 `image_generation.completed` 事件顶层的 `usage` 中解析（跳过不带该字段的 `partial_image` 事件），再回退到 Chat Completions 流解析器，因此流式生成不再记录为零 token。([#7177](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7177)，后续修复，承接 [#7036](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7036))\n\n### 关闭代理和分配端口时不再覆盖各应用的代理设置\n\n正常退出时，代理的还原流程会调用旧版全局代理配置写入器，以清除早已弃用的 `live_takeover_active` 标志；该写入器读取 Claude 行，并执行不带 WHERE 子句的 UPDATE，因此每次关闭都会把 Claude 的 `max_retries` 和三个超时字段复制到 Codex、Gemini 和 Grok Build 行中——而该 UPDATE 本身根本没有包含这个标志，所以除了覆盖设置外，这一步毫无作用。临时监听端口路径也会在每次代理启动时执行同样的操作。现已移除这项无效的回写（实时配置还原、备份清理和健康状态重置均不变），并通过全局配置接口保存解析出的临时端口；该接口只会修改共用的监听和日志列。两个回归测试为四个应用分别设置不同的值，并验证这些设置在两条路径中都能保留。([#7210](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7210)，修复 [#7204](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7204))\n\n### 通用提供商同步会保留子项的设置和位置\n\n同步通用提供商时，会重新生成其 Claude\u002FCodex\u002FGemini 子提供商。子项的 `settings_config` 会与现有行合并，但 `meta`、`created_at` 和 `sort_index` 却取自生成的对象；从 UI 创建时，通用提供商不会携带这些字段，因此 UPDATE 会把子项的用量脚本、退出通用配置的设置、端点自动选择及其他各应用设置清成 `{}`，并将排序索引重置为 NULL，使卡片掉到列表底部，看起来就像被删除后重新创建一样。现在，已有子项会保留这三个字段；名称、基础 URL、密钥、模型、网站和备注仍由通用提供商控制，新建子项时仍会继承父项的元数据。([#7212](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7212)，修复 [#7134](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7134))\n\n### Codex 卡片未设置 `model_provider` 时，接管后也会遵循代理地址\n\n如果 Codex 卡片的 TOML 中没有 `model_provider`，Codex 会回退到内置的 `openai` 提供商；但接管时会将代理地址写入顶层 `base_url`，而 Codex 不会读取该字段，因此请求会绕过本地代理，直接发送到 `api.openai.com`。现在，缺少的选择器会被视为内置的 `openai` 提供商，代理地址则写入 `openai_base_url`；现有的旧版重路由迁移随后会将其转换为 `cc-switch` 自定义提供商表，并携带 `PROXY_MANAGED` bearer——与其他所有第三方接管使用的结构相同。显式指定的提供商选择不变。([#7263](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7263)，修复 [#6256](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6256)，参见 [#7217](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7217))\n\n### Codex 用量导入现在能在 Windows 上检测不断增长的 rollout\n\n\nCodex 会在整个会话期间保持 rollout 追加句柄打开，因此在 Windows NTFS 上，文件增长时 mtime 不会更新，单纯依据 mtime 的判断会永远跳过持续增长的 rollout。现在，Codex 行会将观测到的字节长度存储在现有的 `session_log_sync.last_byte_offset` 列中；只有 mtime 和大小均未变化时才会跳过文件。解析器会手动按换行符拆分记录，因此末尾不完整的记录会在下一轮重试，且不会推进行游标。后续修复还会将不完整尾部的字节计为已观测：此前只有完全读取的记录才会计入持久化长度，因此以半条记录或空白字符结尾的 rollout（已崩溃且从未恢复的会话）长度总是小于文件大小，每次同步都会被完整重解析——行游标仍会停在不完整记录之前，因此文件增长后会立即重试；若文件未变，则会在 mtime+大小检查中跳过。([#7219](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7219)，修复 [#6060](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6060)；另有后续提交)\n\n### 托盘会显示已绑定 ChatGPT 账号在受管理 Codex 卡片上的配额\n\n自 [#6537](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6537) 起，托盘有意移除了绑定受管理 ChatGPT 账号的 Codex 官方卡片的用量后缀，因为它只有应用级订阅缓存，而该缓存取决于 Codex CLI 当前持有的登录信息（先查 macOS Keychain，再查 `auth.json`）；绑定多个账号时，这种缓存无法安全地表示账号级配额。提供商卡片会查询绑定账号，但查询结果从未传到托盘，因此拥有多个 ChatGPT 登录账号的用户会看到没有配额的 `Codex · \u003Cname>`。用量缓存现在新增按账号索引的 Codex OAuth 快照映射，配额查询会将结果写入其中——传输错误会保留上一次有效快照，认证或 HTTP 错误则会替换它，使托盘隐藏无效配额，而不是显示过期数据——并且每次写入都会安排一次托盘刷新。刷新和显示路径共用同一个 `TrayUsageSource` 判断：受管理 Codex 卡片只读取其绑定账号的快照（绝不回退到提供商级或 CLI 快照）；未保存用量开关时默认启用（与提供商卡片一致）；携带账号绑定的固定官方卡片也会走受管理路径。重新绑定后会立即切换到新账号的快照，之前账号的迟到响应也无法覆盖标签。（修复 [#7267](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7267)）\n\n### DeepSeek 的 Codex 目录与支持视觉输入的 `deepseek-flash` 保持一致\n\n随附的 DeepSeek 官方 Codex 目录已更新为供应商当前的 `models.json`（slug `deepseek-flash`，图像输入模态，`supports_image_detail_original`），而 `deepseek-v4-flash` 不再归入已确认的纯文本表：DeepSeek 仍接受旧版 ID，并将其路由到支持视觉输入的 V4.1 Flash，因此代理的媒体清理器和生成的 Codex 目录现在会对此 ID 采用开放式放行，而不是将图像替换为 `[Unsupported Image]`，或在 Codex 中隐藏图像输入。([#7286](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7286)，修复 [#7283](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7283))\n\n### 第三方 Token Plan 的 DeepSeek V4 行已声明为纯文本\n\n官方端点将 `deepseek-v4-flash` 路由到视觉模型后，该 ID 在所有地方都会采用开放式放行；但百度千帆和腾讯 Token Plan 仍提供纯文本 V4 部署——千帆 Coding Plan 文档称图像输入会返回 400，腾讯的 2026-09-10 计划列表也只列出 V4。现在，它们的 Codex 预设行（Flash 和 Pro 系列，包括 `-0731`\u002F`-0813`\u002F`-202605`\u002F`-202606`）都明确声明 `inputModalities: [\"text\"]`，不再依赖注册表；预设测试也确保官方 DeepSeek 预设保持未声明状态（开放式放行）。（后续修复，承接 [#7283](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7283)）\n\n---\n\n## 升级说明\n\n### 此版本不包含数据库迁移\n\n架构版本保持为 18。Codex 字节游标复用现有的 `session_log_sync.last_byte_offset` 列。\n\n### 升级后会重新解析一次 Codex rollout\n\nCodex 行尚无已存储的字节长度，因此首次同步时，各平台都会重新读取每个 rollout（仅增加 CPU 开销；已导入的事件会按行偏移跳过，因此不会重复计数）。之后的同步会跳过未更改的文件。\n\n### 已被覆盖的各应用代理设置不会恢复\n\n[#7210](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7210) 会阻止设置被覆盖，但无法恢复此前关闭时从 Claude 复制到 Codex、Gemini 和 Grok Build 的重试\u002F超时值——请在代理设置中检查一次，并重置与原配置不符的项目。\n\n### 从现在起，通用同步会保留子项设置\n\n此前同步已清除的设置（用量脚本、退出通用配置、端点自动选择、排序位置）需要重新输入一次。\n\n### 接管时，没有 `model_provider` 的 Codex 卡片现在会通过本地代理路由\n\n在 [#7263](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7263) 之后，此类卡片不再悄悄直连 `api.openai.com`，与其他所有第三方接管行为一致。\n\n### 预设变更仅影响新建的提供商\n\n现有卡片会保留创建时的快照。本次版本受影响的内容：Kimi 的两个 Codex 预设——现有 Kimi 卡片仍为 `openai_chat`，并可通过路由继续使用；若要直接连接，请将卡片的上游格式设为 Responses，或重新导入预设（请注意，Kimi 开放平台 Tier 0 密钥每分钟仅限 3 次请求，不足以支持多请求工具循环）；聚合器 Codex 目录；千问AI平台更名及 Qwen 3.8（包括 Pi 的 QwenCloud Token Plan 协议切换）；MiniMax M3 默认值；Volcengine Doubao 显示名称；以及 Qianfan\u002FTencent Token Plan 中 DeepSeek 条目的纯文本声明（使用这些预设的现有卡片仍会依靠遇到图片时自动剥除并重试的机制，或者重新导入预设）。\n\n### Codex 目录修复将在下次切换提供商时生效\n\n目录文件会在切换时重新生成：本版本的条目是 DeepSeek 官方目录中的 `deepseek-flash` 视觉条目（[#7286](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7286)）。请在 DeepSeek 卡片上切换到其他提供商，再切回来一次。\n\n### 定价\n\n`deepseek-flash` 和 `deepseek-v4-flash-vision-exp` 是新增的初始数据条目，因此启动时的回填会将这些 ID 记录的历史请求按 $0 计价。`deepseek-v4-flash` \u002F `-0731` \u002F `-pro` 修复仅更正仍采用初始数据中峰值层级价格的条目（0.44\u002F1.32\u002F0.014 以及 1.32\u002F3.96\u002F0.044）；自定义条目不会更改，历史费用也_不会_重新计算。V4 Pro 调整会在 DeepSeek 的 2026-09-14 切换前生效，因此在此之前发出的 V4 Pro 请求会按 Flash 价格计费。`deepseek-chat` 和 `deepseek-reasoner` 保持原值。\n\n### Anthropic 客户端以 `max_tokens` 1–15 探测 Responses 上游时，现在会发送 16\n\n无需配置。\n\n### 升级后，Chat 上游 Codex 卡片会遇到一次前缀缓存未命中\n\n[#7280](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7280) 合并 commentary 与工具调用的消息会使请求字节发生一次变化；之后各轮的结构将保持稳定。\n\n### 托管 Codex 卡片默认在系统托盘显示配额\n\n未保存用量开关设置时会显示配额，与提供商卡片的行为一致；关闭卡片的用量开关即可隐藏配额。\n\n---\n\n## 风险提示\n\n### 延续的风险提示\n\n**xAI Grok OAuth 登录**：会复用官方 Grok CLI 的公开 OAuth 客户端身份；使用此功能可能导致账户受限或暂停——详情请参阅[v3.18.0发行说明](v3.18.0-en.md#risk-notice)。\n\n**Codex OAuth 反向代理**：通过反向代理使用 ChatGPT 订阅中的 Codex OAuth，可能违反 OpenAI 服务条款。详情请参阅[v3.13.0发行说明](v3.13.0-en.md#️-risk-notice)。\n\n**SuperGrok 配额查询**：提供商卡片上的配额显示依赖 grok.com 的非公开计费接口；xAI 更改界面后，此功能可能停止工作——详情请参阅[v3.19.0发行说明](v3.19.0-en.md#risk-notice)。\n\n**第三方提供商路由**：CC Switch 本地代理将 Codex、Claude Desktop 或 Grok Build 请求转换并转发给第三方提供商时，各提供商在计费、合规和数据保留方面的限制各不相同。使用前请阅读目标提供商的服务条款。\n\n启用这些功能即表示用户接受相关风险。因使用这些功能而导致的账户受限、警告或服务暂停，CC Switch 概不负责。\n\n---\n\n## 致谢\n\n本次版本 22 次提交中有 11 次来自 8 位外部贡献者。\n\n### 代码贡献\n\n- 感谢 @gongzhenhu：过滤空的 `reasoning_content` 占位内容（[#7227](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7227)，修复 [#5028](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5028)、[#4404](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F4404)），这是首次贡献；@AdJIa（[#4869](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F4869)）、@U1traTC（[#6421](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6421)）和 @Hypocrite000（[#6576](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6576)）此前也分别针对同一问题提出过修复。\n- 感谢 @fszcd：合并 Codex commentary 与工具调用（[#7280](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7280)，修复 [#6529](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6529)），这是首次贡献；@BigStrongSun 在 [#6530](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6530) 中自行报告并提交了修复，@xu-xiang 也曾在 [#5895](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F5895) 中尝试修复。\n- 感谢 @SailingLoong：将 Claude Desktop 探测的 `max_tokens` 限制为 16（[#7287](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7287)，修复 [#7103](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7103)），以及 DeepSeek 视觉目录镜像（[#7286](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7286)，修复 [#7283](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7283)）；@John1Tang 此前已在 [#7126](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7126) 中提出探测限制修复。\n- 感谢 @Komikawayi：提交了三项修复——关闭时覆盖各应用代理设置（[#7210](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7210)，修复 [#7204](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7204)）、通用提供商同步保留子项元数据（[#7212](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7212)，修复 [#7134](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7134)），以及在缺少 `model_provider` 时让 Codex 遵循代理地址（[#7263](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7263)，修复 [#6256](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6256)）。\n\n- 感谢 @woniuxiaoshu：为 Codex 用量功能持久化字节游标（[#7219](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7219)，修复 [#6060](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6060)），这是首次贡献；@LimiChan-2026（[#6080](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6080)，也报告了 #6060）、@woshimaxfive（[#6027](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6027)，也在 Windows 上报告了相同症状 [#6023](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6023)）和 @puppnn（[#6246](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6246)）此前也分别针对同一问题提出过修复。\n- 感谢 @thisTom：跟进 Codex 图像生成的三项工作（[#7177](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7177)），延续其本人此前的 [#7036](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7036)。\n- 感谢 @shigzz：千问AI平台更名及 Qwen 3.8 更新（[#7183](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7183)），这是首次贡献。\n- 感谢 @jellyjelly814：MiniMax M3 默认值和过期优惠清理（[#7255](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F7255)），自行报告并在 [#7254](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7254) 中自行修复，这是首次贡献；@octo-patch 此前已在 [#3567](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F3567) 中提出升级 M3 默认值，并在 [#6396](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fpull\u002F6396) 中提出 M3 定价和模态支持。\n\n### 问题报告\n\n- 感谢 @Sunshine-SACA 和 @snowing0427 报告空思考块泛滥及内容块碎片化（[#5028](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5028)、[#4404](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F4404)）；也感谢 @csj-ccc 在 #4404 中补充 ModelScope Qwen3-Coder 在 v3.20.0 上的复现案例。\n- 感谢 @BigStrongSun 和 @aducker2016 报告 Responses 转 Chat 转换会拆分 assistant 轮次（[#6529](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6529)、[#5860](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F5860)）——后者追查发现 DeepSeek 无休止重复的根本原因相同。\n- 感谢 @haoyubai212 报告 Claude Desktop 在 Responses 上游上的探测 400 问题（[#7103](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7103)）。\n- 感谢 @HEYUESAMA 报告 DeepSeek 图片被替换为 `[Unsupported Image]`，且目录声明仅支持文本（[#7283](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7283)）。\n- 感谢 @Jason-purse 报告重启后 Codex 的故障转移设置被 Claude 覆盖（[#7204](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7204)）。\n- 感谢 @auqhjjqdo 报告通用提供商同步破坏了用量查询等设置（[#7134](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7134)）。\n- 感谢 @pemagic 报告 Codex 直接连接 `api.openai.com`、绕过本地路由（[#6256](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6256)）；也感谢 @Tiacoo 在 [#7217](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7217) 中说明相同症状在 Codex 0.153.x 上的表现。\n- 感谢 @LimiChan-2026 和 @MoEternal 报告 Windows 上未能检测到 Codex 用量（[#6060](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F6060)、[#7264](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7264)）。\n- 感谢 @ringzxw 报告绑定多个 ChatGPT 账户时系统托盘不显示配额（[#7267](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Fissues\u002F7267)）。\n\n---\n\n## 下载与安装\n\n访问 [Releases](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Freleases\u002Flatest) 并下载适用于您系统的构建版本，或从官方网站 [ccswitch.io](https:\u002F\u002Fccswitch.io) 获取（下载通过 Cloudflare 边缘节点分发，不依赖 GitHub 可访问）。\n\n### 系统要求\n\n| 系统 | 最低版本 | 架构 |\n| ------- | -------------------- | ----------------------------------- |\n| Windows | Windows 10 及更高版本 | x64 \u002F ARM64 |\n| macOS | macOS 12（Monterey）及更高版本 | Intel（x64）\u002F Apple Silicon（arm64） |\n| Linux | 见下表 | x64 \u002F ARM64 |\n\n### Windows\n\n| 文件 | 说明 |\n| ---------------------------------------- | ------------------------------------------------ |\n| `CC-Switch-v3.20.3-Windows.msi` | **推荐** - MSI 安装程序，支持自动更新 |\n| `CC-Switch-v3.20.3-Windows-Portable.zip` | 便携版，解压后运行 |\n\nWindows ARM64 设备应选择文件名带有 `arm64` 标签的安装包。\n\n### macOS\n\n| 文件 | 说明 |\n| -------------------------------- | ----------------------------------------------------- |\n| `CC-Switch-v3.20.3-macOS.dmg` | **推荐** - DMG 安装程序，拖入“应用程序”即可 |\n| `CC-Switch-v3.20.3-macOS.zip` | 解压后拖入“应用程序”，通用二进制文件 |\n| `CC-Switch-v3.20.3-macOS.tar.gz` | 用于 Homebrew 安装和自动更新 |\n\nHomebrew 安装：\n\n```bash\nbrew install --cask cc-switch\n```\n\n升级：\n\n```bash\nbrew upgrade --cask cc-switch\n```\n\n### Linux\n\nLinux 提供适用于 **x86_64** 和 **ARM64**（`aarch64`）的安装包。请选择架构标签与您机器的 `uname -m` 输出相匹配的文件：\n\n- `CC-Switch-v3.20.3-Linux-x86_64.AppImage` \u002F `.deb` \u002F `.rpm`\n- `CC-Switch-v3.20.3-Linux-arm64.AppImage` \u002F `.deb` \u002F `.rpm`\n\n| 发行版 | 推荐格式 | 安装命令 |\n| --------------------------------------- | ------------------ | ---------------------------------------------------------------------- |\n\n| Ubuntu \u002F Debian \u002F Linux Mint \u002F Pop!\\_OS | `.deb` | `sudo dpkg -i CC-Switch-*.deb` 或 `sudo apt install .\u002FCC-Switch-*.deb` |\n| Fedora \u002F RHEL \u002F CentOS \u002F Rocky Linux | `.rpm` | `sudo rpm -i CC-Switch-*.rpm` 或 `sudo dnf install .\u002FCC-Switch-*.rpm` |\n| openSUSE | `.rpm` | `sudo zypper install .\u002FCC-Switch-*.rpm` |\n| Arch Linux \u002F Manjaro | `.AppImage` | 赋予可执行权限后直接运行，或使用 AUR |\n| 其他发行版 \u002F 不确定 | `.AppImage` | `chmod +x CC-Switch-*.AppImage && .\u002FCC-Switch-*.AppImage` |\n\n\n[官方版本发布页](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch\u002Freleases\u002Ftag\u002Fv3.20.3)。","2026-09-11T18:46:03Z",627,"0001-01-01T00:00:00Z",[494],{"area":459,"items":495},[496,497,498,499,500],"新增 Artifact Tool 开关和 Claude Fable 配额显示。","更新 Kimi、MiniMax、Qwen、DeepSeek 预设和定价。","过滤空推理块；保留 Codex 工具调用及进度。","保留各应用代理设置和通用提供商元数据。","修复 Responses 探测、图片用量和 Windows 导入。","更新提供商预设与定价，修复推理和会话转换，并保留各应用的路由设置。","CC Switch 3.20.3",{"locale":39,"machineTranslated":36,"sourceLocale":423,"status":431},"3.20.3",{"brewCommittedAt":506,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":507,"source":73,"translation":508,"version":509},"2026-09-07T15:38:06Z",[],{"status":75},"3.20.2",{"brewCommittedAt":511,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":512,"source":73,"translation":513,"version":514},"2026-08-28T03:39:58Z",[],{"status":75},"3.20.1",{"brewCommittedAt":516,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":517,"source":73,"translation":518,"version":519},"2026-08-18T09:50:07Z",[],{"status":75},"3.20.0",{"brewCommittedAt":521,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":522,"source":73,"translation":523,"version":524},"2026-08-06T10:25:19Z",[],{"status":75},"3.19.2",{"brewCommittedAt":526,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":527,"source":73,"translation":528,"version":529},"2026-07-31T16:17:10Z",[],{"status":75},"3.19.1",{"brewCommittedAt":531,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":532,"source":73,"translation":533,"version":534},"2026-07-30T07:25:49Z",[],{"status":75},"3.19.0",{"brewCommittedAt":536,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":537,"source":73,"translation":538,"version":539},"2026-07-21T16:14:25Z",[],{"status":75},"3.18.0",{"brewCommittedAt":541,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":542,"source":73,"translation":543,"version":544},"2026-07-14T01:02:08Z",[],{"status":75},"3.17.0",{"brewCommittedAt":546,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":547,"source":73,"translation":548,"version":549},"2026-07-02T01:30:59Z",[],{"status":75},"3.16.5",{"brewCommittedAt":551,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":552,"source":73,"translation":553,"version":554},"2026-06-27T07:37:52Z",[],{"status":75},"3.16.4",{"brewCommittedAt":556,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":557,"source":73,"translation":558,"version":559},"2026-06-15T01:42:07Z",[],{"status":75},"3.16.3",{"brewCommittedAt":561,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":562,"source":73,"translation":563,"version":564},"2026-06-08T16:53:24Z",[],{"status":75},"3.16.2",{"brewCommittedAt":566,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":567,"source":73,"translation":568,"version":569},"2026-06-01T14:40:22Z",[],{"status":75},"3.16.1",{"brewCommittedAt":571,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":572,"source":73,"translation":573,"version":574},"2026-05-29T16:49:31Z",[],{"status":75},"3.16.0",{"brewCommittedAt":576,"hasNotes":36,"isLatest":36,"isPrerelease":36,"sections":577,"source":73,"translation":578,"version":579},"2026-05-16T07:18:21Z",[],{"status":75},"3.15.0",20,{"brewLag":582,"cadence":417,"count30d":418},{"compared":414,"earlierCount":415,"medianMinutes":416},{"current":442,"records":584,"size":442,"stats":588,"total":411},[585],{"brewCommittedAt":71,"hasNotes":36,"isLatest":32,"isPrerelease":36,"sections":586,"source":73,"translation":587,"version":76},[],{"status":75},{"brewLag":589,"cadence":417,"count30d":418},{"compared":414,"earlierCount":415,"medianMinutes":416}]