CC Switch v3.19.0 实战指南:安全加固全面落地,并根治代理读图打爆上下文的问题

CC Switch v3.19.0 实战指南:安全加固全面落地,并根治代理读图打爆上下文的问题 CC Switch v3.19.0 实战指南安全加固全面落地并根治代理读图打爆上下文的问题【免费下载链接】cc-switchA cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build Hermes Agent. Only official website: ccswitch.io项目地址: https://gitcode.com/GitHub_Trending/cc/cc-switchCC Switch v3.19.0发布于 2026-07-30是围绕安心使用展开的一次集中版本一边对 Skill 安装、ccswitch://深链接导入、SQL 备份导入、通用配置合并与外部终端启动等入口做系统性安全加固一边完成了一个关键代理正确性修复——让图片经代理转发时不再被当作纯文本计入 token同时新增 models.dev 自动价格同步与 Grok 官方模式用量导入两项用量能力。读完本文你能够理解每一项安全修复的攻击面与修复机制、掌握升级后必须手动处理的两个密钥事项并能直接使用新版用量面板与更新镜像。对应语言版本中文版 日本語版[!WARNING]只通过官方渠道获取 CC Switch。CC Switch 是完全免费开源的桌面应用不向用户收取任何费用。官方渠道仅包括官方网站 ccswitch.io、源码仓库 farion1231/cc-switch 的 GitHub 发布页以及作者 farion1231。任何要求付费、充值或提供登录凭据的CC Switch均为假冒如被诱导付款请立即停止交易并通过 GitHub Issues 举报。版本概览v3.19.0 由两部分主导一轮安全加固与一个重大代理正确性修复。安全侧PR #5811 及后续独立修复GitHub 仓库安装 Skill 防 zip-slip 与路径穿越并引入归档限制关闭 Gemini 通用配置凭据泄漏通道且升级后首次启动执行一次性清除SQL 备份导入改在 SQLite authorizer 下执行并直接拒绝ATTACH等越界语句通用配置片段合并不再跟随__proto__污染全局原型外部终端启动改用 POSIX 单引号转义ccswitch://导入确认完整展示 payload凭据类取值脱敏并高亮风险值用量脚本默认禁用导入。代理侧工具结果中的媒体不再被序列化为工具文本而是由每个协议转换桥以原生媒体格式重新发送彻底终结一张 113 KB 截图吃掉 10 万 token、两三次截图让 Codex 会话反复 400 卡死的问题issue #4465、#5663。用量统计models.dev 自动价格同步可选项PR #5734手动改价/删价持久化到人类可编辑的~/.cc-switch/model-pricing.jsonGrok CLI 官方 OAuth 模式流量无法经过本地代理、此前完全不可见的用量导入以及 Provider 卡片上的 SuperGrok 订阅配额展示。分发与体验应用内更新优先走dl.ccswitch.ioCloudflare R2 镜像GitHub 为回退签名校验不变Codex 用量导入对 fork 会话复用已解析的父 rollout 时间线PR #5626预设默认模型升级为 Claude Opus 5、GPT-5.6 Sol、Gemini 3.6 Flash修正 OpenClaw Kimi For Coding 预设地址工具栏应用切换器改为纯图标。本版本无数据库 schema 迁移版本保持 v16升级即开即用。版本统计38 个 commit 132 个文件变更 14,926 / -1,415 行。配套文档建议配合阅读用量统计用量面板的数据来源与统计口径本版本新增 models.dev 自动价格同步与 Grok 官方模式用量导入Deep-Link 导入ccswitch://导入确认框各字段含义与usageEnabled等参数默认值本版本起用量脚本默认禁用导入文档已同步修正SECURITY.md本版本补齐了威胁模型与报告范围——哪些输入按不可信对待、哪些问题欢迎报告一目了然。代理修复读图不再打爆上下文这是本版本最重要的代理修复修复了 issue #4465 与 #5663 中报告的真实场景。问题机理当客户端通过工具调用读图Codex 的view_image或任何返回图片的 MCP 工具时旧版协议转换会把整个图片块序列化进 tool message 的文本中上游按纯文本对 base64 计数——约 9,000 倍膨胀一张 113 KB 的 PNG 折算出 100,000 prompt token。由于 Codex 每轮重放完整历史两三次截图就能把会话挤出上下文窗口会话被反复 400 卡死。修复方式代理现在把媒体载荷从工具结果中抬出由各桥以原生格式重发——图片覆盖所有桥文件与音频在目标协议支持的地方生效两条 Chat 桥Claude→Chat、Codex Responses→Chat承载图片/文件/音频工具消息中留下短标记媒体作为合成 user message 跟在工具批次之后Claude→Responses 恢复原生input_imageCodex / GrokBuild→Anthropic 重建标准 Anthropic 图片块Claude→Gemini 在 Gemini 3 上使用多模态functionResponse.parts旧模型用inlineData仅接受内联 base64 图片。检测覆盖带类型的 Responses 块、Anthropicsource块、MCPdatamimeType结果以及整段图片 data URL并能穿透数组与嵌套content包装包括 JSON 编码的工具输出一旦判定输出含媒体其中残留的 data URL 与裸 base64 会被折叠为占位符——裸 base64 单独出现绝不触发媒体检测普通工具输出原样保留。不含媒体的工具结果在所有桥上与之前逐字节一致prompt cache 前缀不受影响发往上游的媒体块刻意不携带cache_control标记以免 GLM、Qwen 等严格上游拒收。实测对 Kimi K3同一轮重放稳定在约 12k 输入 token、99% 缓存命中率此前每次重放需携带 85k 的 base64 文本。实现入口在 tool_media.rs该模块定义了ToolMediaScopeImagesOnly/InlineImagesOnly/AllSupported区分各桥支持的模态范围plan_chat_tool_output_media在不改动无媒体输出的前提下构建工具文本 媒体部分的分离计划flush_pending_chat_tool_media将累积的媒体作为合成 user 消息刷出工具消息中的标记文本如[cc-switch: tool result media moved to the following user message]也定义于此与文档描述完全对应。不支持图片回退现在能看见工具结果里的图不支持图片回退unsupported image fallback设置会在上游纯文本或拒收图片时用占位标记替换图片块但它此前只能看见仍是结构化块的图片——已被展平为 base64 文本的工具结果图片对它不可见纯文本上游只能失败且无法恢复。媒体清洗器现在在所有路径上对称地检测并剥离工具输出内的媒体发送前剥离与被拒后重试两条路径都能救回这类轮次。由于检测深入到工具结果回归测试固定了反应式重试仍只在真正的模态拒绝时触发——上下文长度 400 不会被误判为图片拒绝而重试。用量统计models.dev 自动价格同步用量面板的价格区域新增models.dev 自动价格同步卡片默认关闭、手动开启开启时弹出确认说明 CC Switch 将在启动时从 models.dev 刷新所选模型的价格至多每 6 小时一次且内置价与手动设置价同模型的匹配项都会被覆盖选择模型对话框提供 models.dev 全目录可搜索、可过滤另有自动纳入常用模型选项覆盖 Claude、GPT、Gemini、Grok、DeepSeek、Qwen、MiMo、LongCat、Kimi、MiniMax、GLM 近期发布模型每族最多 6 个可逐个排除卡片展示上次同步时间与错误信息提供立即同步可打开或重载本地价格文件。前端同步逻辑见 modelsDevAutoSync.ts常量MODELS_DEV_STARTUP_SYNC_INTERVAL_MS即 6 小时间隔syncModelsDevPricing在开启且距上次同步超过间隔时才拉取目录并批量写入updateModelPricingBatch失败会记录错误但不阻塞启动syncModelsDevPricingOnStartup保证每个渲染进程只跑一次。手动价格持久化本版本起手动改价与删价同时记录在~/.cc-switch/model-pricing.json与数据库同目录的人类可编辑文件每次启动重放——数据库重建后手动价格不再消失删除的内置价格以 tombstone 记录、最终保持删除状态而不会被重新播种。注意该文件初始为空、刻意不从现有价格表回填否则内置价全部变成覆盖项阻碍未来内置价修正所以升级前做的编辑仍只存在于数据库中——重新保存一次即可进入文件。当同步真正改变了某个价格历史上从未计算过成本为零或缺失的用量行会按新价重算已有成本的行保持原值。此外 models.dev 列表过滤掉非文本与已弃用模型音频/图片/视频/embedding 等顺带让手动选价对话框更清爽。Grok 官方模式用量终于进入仪表盘Grok CLI 走官方 OAuth 登录时无法被路由到本地代理Grok 以空配置作为模式开关无处指向 CC Switch这部分消耗此前在用量面板中完全不可见。现在 CC Switch 随常规会话日志同步导入逐轮用量从~/.grok/sessions下的updates.jsonl读取turn_completed事件含已归档会话成本优先采用 CLI 自报的精确值缺失时回退本地价格表内置表新增grok-4.5-build输入 $2 / 输出 $6 / 缓存读 $0.30每百万 token导入行以上游 per-turn ID 为键回滚的会话不会导致重复计数配合结算窗口与近期代理活动检查路由模式与官方模式混用时同一流量不会被计两次新行以供应商名Grok Build (Session)出现在仪表盘应用过滤器新增 Grok Build 选项数据源细分新增带独立图标的 Grok Build Session 条目四种语言全覆盖。SuperGrok 订阅配额上卡片official 分类下的 Grok Build 供应商现在直接在卡片上显示 SuperGrok 订阅用量与 Claude Code / Codex / Gemini 的官方订阅脚注并列CC Switch 读取 Grok CLI 自己的 OAuth 凭据~/.grok/auth.json并查询 grok.com 的账单端点获取配额窗口使用百分比与重置时间重置间隔可识别时标注 weekly/monthly否则落入新的 Credits 档托盘用量摘要中渲染为c组。瞬时网络失败保留上次读数并重试而非清空脚注token 过期提示重新运行grok login。Claude Code、Claude Desktop 与 Codex 中受管的 xAI OAuthSuperGrok供应商自动获得同样的配额展示——数据来自绑定到该供应商的账号用量脚本入口相应隐藏。注意Grok Build 供应商是否算official现在仅由category字段决定不再探测配置内容。新增内置价格claude-opus-5加入内置价格表输入 $5 / 输出 $25缓存读 $0.50 / 缓存写 $6.25每百万 token其用量不再显示 $0。播种采用 insert-if-absent不覆盖已编辑的价格Opus 5 fast mode 单独计费刻意未列入。安全加固九个条目两项需要你行动本节九项中两项需要你动手轮换进入过 Gemini 通用配置的密钥、检查曾通过ccswitch://导入的 MCP 条目——升级须知会给出具体做法。其余升级即生效无需操作。如果你从不打开别人发来的ccswitch://链接、也从没用过共享的 Gemini 通用配置这九项大体意味着今后出问题的面更小若两条中任一条适用于你这个版本值得优先升级。1. Gemini 通用配置不再泄漏密钥升级后自动清除旧版 Gemini 通用配置提取器只从共享片段中剔除GEMINI_API_KEY与GOOGLE_GEMINI_BASE_URL其余env条目逐字复制——但GOOGLE_API_KEY是一等 Gemini 凭据于是某账号的密钥连同任何其它凭据样式的条目被深合并进每个使用通用配置的 Gemini 供应商并送往该供应商的 base URL——那很可能是一个第三方中转。修复后提取器跳过所有匹配凭据模式的键与 Claude 提取器同一匹配器集合前端片段校验器与之对齐手动编辑也无法把凭据塞回去。由于 Gemini 片段一旦存在就永不重新提取升级后首次启动还会执行一次性清除scrub泄漏的凭据从片段本身、所有被合并过的供应商、以及~/.gemini/.env中清掉——按键名 精确值匹配所以某供应商自己的同名但不同值的键不会误伤env 文件的格式与注释被保留。实现见 scrub_leaked_gemini_common_config所有可能失败的步骤排在写入标记位之前失败即带错返回让下次启动原样重来动手前向settings表写审计记录gemini_common_config_scrub_audit_v1——只记键名与受影响的供应商 id绝不记值因为settings表会随 WebDAV/S3 同步上传留值等于把一次清除换成一份跨设备扩散、永不过期的明文副本。2. Skill 仓库安装加固路径穿越与归档限制从 GitHub 仓库安装或浏览 Skill 此前可能写到目标目录之外归档条目拼接到目标路径前未做规范化含..的 ZIP 可逃逸解压目录zip-slip仓库坐标从未校验形如../../../releases/download/v1/evil的分支名可把下载重定向到任意 release 资源——而 Skill 仓库可通过不可信的ccswitch://深链接添加且默认启用仅打开 Skills 面板就足以触发下载。来自备份恢复、同步快照与从应用导入的 Skilldirectory值同样未校验就拼进路径卸载时可能对外部目录remove_dir_all。现在每个落点都校验目录名仓库 owner/name/branch 在唯一的下载收口点做白名单校验解压有硬性上限10,000 条目、写入 512 MB、下载 128 MB、符号链接目标 4 KB自引用链接拒绝新错误消息四语言齐备。3. 深链接导入确认全量展示标出风险此前ccswitch://MCP 导入确认只渲染单行截断的Command:args、url、env一律不显示——携带command: shargs: [-c, curl …|sh]与LD_PRELOAD环境变量的链接在界面上只显示为无害的sh点确认后却会被写进每个应用的 live MCP 文件。现在确认框逐行渲染命令、每个参数、URL 与环境变量换行不截断键名含 TOKEN / KEY / SECRET / PASSWORD 的 env 值显示为前缀 星号脱敏实现见 deeplinkRisk.ts 的maskSensitiveValue超过 8 字符保留前 4 位否则全星号。值得多看一眼的值被高亮并归入警告块shell 解释器携带内联执行标志isInlineCommandFlag按形态而非字面量判定——POSIX 侧匹配- 字母串中含c的并写短开关-c、-lc、-ecoWindows 侧匹配/c、/k大小写不敏感、可带后缀PowerShell 匹配-Command的任意合法缩写-comm、-c以及-EncodedCommand/-e/-ec见 classifyCommand改变进程加载行为的环境变量ENV_HIJACK_PATTERNS覆盖LD_*、DYLD_*、NODE_OPTIONS、NODE_EXTRA_CA_CERTS、PYTHONPATH、PYTHONSTARTUP、RUBYOPT、PERL5OPT、JAVA_TOOL_OPTIONS、BASH_ENV、ENV、IFS、PATH、HTTP(S)_PROXY指向环回/内网/云元数据的端点classifyEndpoint做字面量匹配含169.254.169.254元数据地址、RFC 1918、fc00::/7、IPv4-mapped IPv6源码注释明确解释了为何不做 DNS 解析——解析引入超时且结果可能与客户端实际连接时不同DNS rebinding作为提示用途字面量匹配足够。标记纯属提示、从不拦截导入——本地 Ollama 端点完全正常。供应商确认获得同样处理将立即写入所有指定应用的警告改为无条件显示不再受链接可控字段门控。源码注释deeplinkRisk.ts 头部也点明了设计立场深链接携带自定义 endpoint 与 env 是第三方供应商的正常配置能力真正的缺口是用户点导入时看不见自己在同意什么——补的是可见性不是黑名单。4. 深链接用量脚本默认禁用先见代码再用通过深链接导入的用量查询脚本是每次查询用量都会执行的 JavaScript此前可在你从未见过代码的情况下被启用后端把提供了代码当作同意执行确认框只显示启用/禁用徽章。现在脚本默认禁用——链接必须显式携带usageEnabledtrue才请求启用——确认框在可滚动、完整换行的代码块中展示解码后的完整脚本并警告启用后会被执行。解码失败时回退展示原始 payload畸形脚本无法伪装成没有脚本对应 decodeDeeplinkPayload解码失败回落到原始串、绝不返回空串——空会让整块内容凭空消失那正是攻击者想要的效果。脚本代码仍存于供应商审阅后可在应用内手动启用。5. URL-safe Base64 曾让整个确认框变空白上一节修复确认框显示不够这一条修复确认框什么都显示不出来。后端接受四种 Base64 变体含 RFC 4648 §5 的 URL-safe 字母表而前端atob只认标准字母表、且解码失败时原样返回输入而非抛错——同一段 payload 后端解码成功并导入前端却拿着一团解不开的字符。用量脚本与系统提示词因此显示为不透明 Base64MCP 配置最糟JSON.parse失败被组件吞掉确认框渲染 0 servers 与空列表后端却照旧把真实条目写进 live MCP 文件。payload 中把一个/改成_就足够——确认框变空白、导入照常工作上一节刚补上的全量展示也随之失效。前端解码器现在先归一化 URL-safe 字母表再解码确认框所显示永远等于将导入的内容共享解码器首次获得单元测试含一个前置自断言确保样例真的落在 URL-safe 分支而非两种编码碰巧相同。该缺陷影响 v3.8.0 起的所有版本。若你曾通过ccswitch://链接导入过 MCP 服务器值得检查——见下文升级须知。6. SQL 导入拒绝越出导入数据库的语句此前导入数据库备份只校验文件头注释随后整段文本直接交给execute_batch——精心构造的备份可以ATTACH DATABASE在用户可写任意位置创建 SQLite 文件且副作用发生在导入自身状态校验之前所以即使整体导入失败文件也已经落盘WebDAV / S3 同步快照走同一代码路径。现在外部批处理期间安装 SQLite authorizer结束后立即移除应用自身的 schema 维护不受影响ATTACH/DETACH、VACUUM、虚表创建csvfile 等文件支撑模块可读写任意路径以及 SQLite 报告为 unknown 的一切动作全部拒绝——未来新语句默认失败PRAGMA 仅放行导出器实际写入的foreign_keys与user_version两项。7. 通用配置片段的原型污染应用、移除、比较通用配置片段的三个 walker 过去都跟随__proto__进入全局Object.prototypeJSON.parse({__proto__:{…}})产生自有可枚举属性合并即把攻击者选定的值写到全局原型上——而settings表在同步时整体被远端覆盖一旦恶意 WebDAV / S3 快照落盘打开一次供应商表单即足以触发合并。现在三个 walker 均跳过__proto__、constructor、prototype已应用通用配置的比较额外要求自有属性顺带修掉一个可见怪象——{__proto__:{}}过去被判定为任何配置的子集。8. 启动外部终端时目录名的命令注入在外部终端恢复会话时cd行过去用双引号包裹工作目录仅转义反斜杠与双引号——但双引号内 shell 仍会展开$(…)、反引号与$VAR而这个值正是 CLI 会话历史中记录的真实项目路径macOS 上目录名可以合法包含这些字符。这样命名一个文件夹点恢复就会在你的终端里执行内嵌命令全程不涉及任何被破坏的组件。现在拼装 shell 行的三个启动器Terminal.app、iTerm、kitty改用 POSIX 单引号转义——单引号内什么也不展开穿过 Terminal / iTerm 的 AppleScript 引号层也做了安全处理Ghostty、WezTerm / Kaku、Alacritty 本就以独立参数传目录起始即安全。9. GrokBuild 凭据解析不再替换或内联环境变量键GrokBuild 凭据提取过去在配置声明的env_key变量未设置时回退到进程级XAI_API_KEY——静默替换成另一个账号的密钥送往配置指向的任何 base URL。现在凭据只来自显式内联api_key或env_key精确命名的环境变量。深链接导入不再把环境变量解析为明文api_key只携带env_key名称的链接被拒绝并提示手动添加——照单全收意味着受害者的环境键在请求时仍会被解析、发往链接声明的地址。顺带修复base URL 解析与凭据解析解耦——此前凭据缺失会把 base URL 一起清空导致 macOSGUI 进程不继承 shell 环境上 UI 显示的地址与实际使用的不一致且用量脚本的{{baseUrl}}展开为空。其它修复手工编辑过的配置文件不再导致崩溃或吞掉编辑~/.codex/config.toml中存在mcp_servers但不是表如mcp_servers x时MCP 同步曾在切换中途 panic——且发生在数据库与 live 配置均已写入之后留下半应用状态现在非表值被警告并规范化为空表Codex 与 GrokBuild 写入器同样修复。内联表形式合法 TOML存在镜像问题MCP 删除静默无效而 UI 报告成功、base_url编辑写入 Codex 从不读取的层级——均已处理。根节点或provider/mcp段是数组/标量的opencode.json不再 panic而是带错误拒绝而非重建你自己的model与theme设置不会被清掉。代理转换扛住畸形上游响应上游网关的畸形数据过去可直接击垮本地代理Anthropic SSE 流中非对象的message或content_block、以及顶层为 JSON 数组/标量的缓冲响应体忽略stream: true的网关会这样返回都命中 panic 的索引赋值现在流以正常失败事件结束。畸形content_block头部额外被恢复为文本块——仅净化为空对象虽止住 panic却让其后所有内容被静默丢弃、模型看起来什么都没说坏头部之后的 delta 通常完整所以常见情形现在直接通过发生替换时记录警告。Grok Build 成本回填不再高估回填缺失成本例程过去只把 Codex 与 Gemini 视为上报输入 token 已含缓存读的供应商而 Grok Build 遵循同一约定——回填的 Grok Build 行按全量输入计价后再对缓存读计一次价成本虚高。缓存包含型供应商集合现在在唯一定义处维护路由日志、成本计算器与回填例程共用三者不可能再不一致。注意已被旧回填触碰过的行保留原值——回填只处理零成本行从不改写已有的正成本。OpenClaw 的 Kimi For Coding 地址修正OpenClaw 预设此前指向通用平台端点https://api.kimi.com/v1那不是 Kimi For Coding 订阅使用的地址coding-plan 密钥无法工作。已修正为https://api.kimi.com/coding/v1表单占位符与默认值同步更新。从旧预设创建的供应商需手动指向新地址。其它变更预设默认模型升级Claude Opus 5、GPT-5.6 Sol、Gemini 3.6 Flash内置预设的默认模型全部换代claude-opus-5取代claude-opus-4-8覆盖全部三种命名形式、gpt-5.6-sol取代gpt-5.5与裸gpt-5.6、gemini-3.6-flash取代gemini-3.5-flash。所有镜像位置同步更新——universal / NewAPI 默认值、Codex 自定义config.toml模板、推荐列表、表单占位符、四种语言文案gemini-3.6-flash价格同步播种入数据库$1.50 / $7.50缓存读 $0.15每百万 token。Code0 与 Qiniu Gemini 预设仍钉在gemini-3.1-pro-preview一并对齐 3.6 Flash——这是刻意的档位变更3.6 没有 Pro 版3.5 Pro 仍在伙伴测试限制中。默认值只影响新建供应商已保存供应商保留创建时的模型。Claude Desktop 的 opus 路由前进到claude-opus-5claude-opus-4-8移入兼容别名槽既有配置解析不变。应用内更新走 ccswitch.io 镜像更新器现在先查询https://dl.ccswitch.io/latest.json——release manifest 的 Cloudflare R2 镜像——GitHub Releases 作为回退检查与下载更新不再依赖 GitHub 可达。镜像 manifest 把各平台下载都指向同一 bucketminisign 签名保持原样签名覆盖文件内容而非 URL每个下载的构件仍对照内置公钥校验镜像本身永不被信任。发布由 release 门控的同步工作流处理仅当标签确实是 GitHub 的releases/latest时才重写根 manifest镜像永远不可能把用户回退到旧版本。端点列表内置于应用二进制中见 tauri.conf.json因此现有安装直到升级到包含此变更的版本前仍只查询 GitHub此后dl.ccswitch.io镜像优先、GitHub 回退。Codex 用量导入fork 会话更快导入与重建 Codex 用量统计不再对同一父 rollout 文件按每个 fork 点重读一次每个父~/.codex/sessions/*.jsonl只解析一次为内存 token 时间线供所有从其 fork 出的子会话共享每个子会话的截断点变成内存过滤器。缓存以文件身份戳修改时间、大小外加 Unix 的 device/inode 或 Windows 的卷序列号 文件 ID校验父文件被追加、轮转或替换时重新读取而非提供陈旧数据。提速幅度取决于 fork 密度fork 密集的历史省掉大量冗余解析fork 稀疏的历史基本不变——两种情况下导入结果都逐字节一致。工具栏应用切换器改为纯图标切换按钮不再在图标旁渲染文字标签——受管应用增至八个后标签几乎总是被溢出检测折叠基于 ResizeObserver 的自动压缩逻辑被移除仅显示图标。应用名保留在 hover tooltip读屏器仍可通过aria-label触达。赞助商标识域名与邀请链接刷新多个赞助商迁移域名预设地址、备用端点、邀请链接与 README 行同步更新PackyCode →www.packyapi.ai、RightCode →www.rightapi.ai、ClaudeAPI →www.apito.ai、APINebula →apinebula.ai、AICodeMirror →.ai、AICoding →.inc、AIGoCode →.app并移除两个已失效的备用端点。已创建供应商保留数据库中存储的旧地址——要迁移到新域名请手动编辑地址或从刷新后的预设重建供应商。预设目录更新A6API为同一模型自动挑选多个上游最优结果的聚合平台加入八个应用的赞助商预设PackyCode 预设在支持备用端点的五种预设类型Claude Code / Claude Desktop / Codex / Gemini CLI / Grok Build上新增三个备用地址可在端点管理器与测速中选择AICoding 合作预设回归七个应用赞助商排序与 README 对齐。升级须知本版本无数据库迁移v3.19.0 不含 schema 迁移版本保持 v16升级后立即可用无需等待数据重建。一次性 Gemini 密钥清除必读升级后首次启动会在常规配置提取前执行一次性 Gemini 通用配置清除。部分 Gemini 供应商之后可能报告缺少 API Key条目按凭据样式的键名加精确值匹配删除通常被删的是经共享片段泄漏进来的其它供应商凭据该供应商自己的原值在泄漏发生时已被覆盖、无法恢复——但你有意在多个 Gemini 供应商间复用的同值密钥也会被一并删掉。无论哪种情况先轮换再重填任何进入过共享 Gemini 片段的密钥都应视为已暴露。被删键名与受影响供应商 id从不含值记录在settings表的gemini_common_config_scrub_audit_v1中可据此定位每个需要重填密钥的供应商。曾通过深链接导入过 MCP值得检查必读本版本之前ccswitch://MCP 导入确认可能无法显示即将写入的内容参数与环境变量根本不渲染command: shargs: [-c, …]显示为无害的shpayload 若为 URL-safe Base64 编码则整个列表显示 0 servers——两种情况下后端都照常把条目写进各应用的 live MCP 文件。两个缺陷都影响v3.8.0 起的每个版本本版本一并修复。利用它需要你亲自打开攻击者提供的链接并点击导入绝大多数用户不受影响。如果你确实打开过来源不完全可信的ccswitch://MCP 导入链接值得逐项过一遍 MCP 面板条目或直接查看~/.claude.json的mcpServersCodex 则是~/.codex/config.toml的mcp_servers确认没有你不认识的东西——MCP 服务器会在下次 CLI 启动时作为子进程执行。深链接用量脚本默认禁用携带用量查询脚本的深链接现在默认以脚本禁用状态导入除非链接显式携带usageEnabledtrue。依赖自动启用的链接部分合作商的一键配置链接将导入脚本但不打开用量查询——审阅代码后在供应商编辑器中手动启用。应用内手工配置的用量脚本不受影响。新默认模型只影响新建供应商已保存供应商保留创建时的模型 ID使用新模型需手动编辑。Claude Desktop 的 opus 路由前进到claude-opus-5claude-opus-4-8移入兼容别名槽既有配置解析不变。价格播种与本地价格文件新价格行claude-opus-5、gemini-3.6-flash、grok-4.5-build在下次启动时以 insert-if-absent 追加——播种从不覆盖你编辑过的价格。~/.cc-switch/model-pricing.json初始为空只记录本版本起做出的手动改价与删价——更早的编辑不会迁入要让其幸存数据库重建重新保存一次即可。models.dev 自动同步在开启前保持关闭开启后它是唯一会覆盖匹配价格无论内置还是手动编辑的路径。GrokBuild 隐式环境变量回退已移除依赖隐式XAI_API_KEY环境回退的 GrokBuild 供应商现在需要显式api_key或命名正确的env_key。Grok 官方模式用量有意延迟官方模式的 Grok 用量在约十分钟加一个同步周期之后出现——事件先结算再与代理记录行比对以防重复计数若窗口内路由流量与官方流量交替部分官方轮次会被跳过而非冒险重复计数。旧成本回填高估的 Grok Build 行保留原值——回填只处理零成本行从不修正已有正成本。赞助域名迁移不改变现有供应商已创建供应商保留数据库中存储的旧地址仍指向旧域名。要迁移请手动编辑供应商地址或从刷新后的预设重建。风险提示SuperGrok 配额查询本版本新增供应商卡片上的 SuperGrok 配额展示读取 Grok CLI 自己的 OAuth 凭据~/.grok/auth.json并查询 grok.com 的账单端点——该端点无公开文档响应解析基于对当前格式的观测xAI 变更接口后此功能可能失效届时卡片降级为不显示配额不影响其它部分。CC Switch 不存储也不修改这些凭据。沿承提示xAI Grok OAuth 登录复用官方 Grok CLI 的公开 OAuth 客户端身份使用可能导致账号限制或封禁——详见 v3.18.0 发布说明Codex OAuth 反向代理通过反向代理使用 ChatGPT 订阅的 Codex OAuth 可能违反 OpenAI 服务条款——详见 v3.13.0 发布说明第三方供应商路由本地代理把 Codex、Claude Desktop 或 Grok Build 请求转换转发到第三方供应商时各供应商对计费、合规与数据保留的要求可能不同使用前请阅读目标供应商条款。启用这些功能即视为接受相关风险。CC Switch 不对因使用这些功能导致的账号限制、警告或服务中止负责。下载与安装从 farion1231/cc-switch 的 GitHub Releases 页下载对应系统的构建或从官网 ccswitch.io 获取本版本起下载经 Cloudflare 边缘节点分发不再依赖 GitHub 可达。系统要求系统最低版本架构WindowsWindows 10 及以上x64 / ARM64macOSmacOS 12 (Monterey)Intel (x64) / Apple Silicon (arm64)Linux见下表x64 / ARM64Windows文件说明CC-Switch-v3.19.0-Windows.msi推荐——带自动更新的 MSI 安装包CC-Switch-v3.19.0-Windows-Portable.zip便携版解压即用Windows ARM64 设备选择文件名带arm64标签的构件。macOS文件说明CC-Switch-v3.19.0-macOS.dmg推荐——DMG 安装器拖入 ApplicationsCC-Switch-v3.19.0-macOS.zip解压拖入 ApplicationsUniversal BinaryCC-Switch-v3.19.0-macOS.tar.gz供 Homebrew 安装与自动更新Homebrew 安装brew install --cask cc-switch升级brew upgrade --cask cc-switchLinuxLinux 构件同时提供x86_64与ARM64aarch64选择与机器uname -m输出匹配的架构标签CC-Switch-v3.19.0-Linux-x86_64.AppImage/.deb/.rpmCC-Switch-v3.19.0-Linux-arm64.AppImage/.deb/.rpm发行版推荐格式安装命令Ubuntu / Debian / Linux Mint / Pop!_OS.debsudo dpkg -i CC-Switch-*.deb或sudo apt install ./CC-Switch-*.debFedora / RHEL / CentOS / Rocky Linux.rpmsudo rpm -i CC-Switch-*.rpm或sudo dnf install ./CC-Switch-*.rpmopenSUSE.rpmsudo zypper install ./CC-Switch-*.rpmArch Linux / Manjaro.AppImage赋予执行权限直接运行或使用 AUR其它发行版 / 不确定.AppImagechmod x CC-Switch-*.AppImage ./CC-Switch-*.AppImage相关文档与延伸阅读用量统计用户手册用量面板数据来源与统计口径models.dev 自动价格同步与 Grok 官方模式用量导入的配套说明Deep-Link 导入参考ccswitch://各字段含义与usageEnabled默认值本版本起默认false与导入器一致SECURITY.md双语威胁模型与 in-scope / out-of-scope 清单按谁控制该输入而非值最终到达哪个 API分诊报告在 Claude Code 中使用 GPT 模型与在 Codex 中使用 Claude 模型本版本将该本地路由指南完整移植到英文与日文覆盖第三方 OpenAI Responses 网关API key与经 Codex 设备码 OAuth 登录的 ChatGPT Plus/Pro 订阅两条接入路径并按用哪个模型重新命名所有交叉链接指向读者自身语言版本。【免费下载链接】cc-switchA cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build Hermes Agent. Only official website: ccswitch.io项目地址: https://gitcode.com/GitHub_Trending/cc/cc-switch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考