
CC Switch v3.16.3 发布解读让使用量计费真正准确 —— schema v11、自定义 User-Agent 与 Codex 统一会话历史【免费下载链接】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本文基于 CC Switch v3.16.3 官方发布说明docs/release-notes/v3.16.3-ja.md中文版 / English整理。这个版本的中心目标是「让使用量计费真正准确」按真实上游模型而非别名计费、修复格式转换路径上的缓存 token 双重计数、把 Claude Code Workflow 子 agent 的用量纳入统计数据库 schema 升级到 v11持久化每条记录的计费依据并配套刷新了使用量仪表盘同时新增了自定义 User-Agent 覆盖、Codex 统一会话历史开关以及一批本地代理与平台层面的健壮性修复。读完本文你能完整掌握 v3.16.3 的功能变更、升级注意事项、风险边界以及这些改动在源码中的实现位置。发布日期2026-06-14 变更规模59 commits | 130 files changed | 10,223 / -4,232 lines版本定位从「可观测」走向「可计费」v3.16.2 的重点是扩展数据可搬性与使用量可观测性而 v3.16.3 在此基础上把重心放在计费的准确性上官方发布说明明确列出了三条主线按真实上游模型计费路由接管routing takeover场景下不再按上游返回的模型别名做归属而是捕获真实的出站模型避免把 kimi / glm 的 token 记成claude-*、成本被高估 525 倍修复格式转换路径的缓存双重计数Chat / Responses / Gemini 转换为 Anthropic 格式时cache_read/cache_creation不再被重复计入 input纳入 Workflow 子 agent 用量Claude Code Workflow 的子 agent 流量此前被本地统计遗漏整体用量约 4.1% 的低估集中在这里schema v11 为每行日志持久化「实际使用的计费依据」。与此配套使用量仪表盘获得一轮整体刷新全局生效的 provider / model 过滤器、品牌图标工具栏、更稳定的余额查询失败重试 保留上次成功结果。官方还提醒若你启用了 Codex 统一会话历史含会话迁移/恢复建议先阅读统一会话历史指南理解「统一 / 迁移 / 恢复」实际改变了什么、数据为何不会丢失使用量统计机制见使用量统计文档自定义 User-Agent 与 Codex 统一会话历史等开关位于设置页面provider 表单的高级选项。新增功能自定义 User-Agent 覆盖v3.16.3 允许在 provider 配置中设置自定义 User-Agent代理会在请求转发、连接性检查、模型列表GET /v1/models三条路径上一致地应用该值。这解决了 UA 白名单受限的 Coding Plan 上游中「连接性检测失败 / 模型列表 403、但代理本体却正常」的分裂状态。Claude 与 Codex 表单都在高级选项中暴露了这个字段提供精选 UA 预设下拉如 Claude Code / Kilo Code 等能过白名单的家族与实时非阻塞的格式校验切回官方预设时遗留的自定义 UA 会被丢弃避免「偷偷改动」请求头。这个「三条路径共用一个解析口径」的设计在源码中可以清晰看到后端统一入口是 parse_custom_user_agent用http::HeaderValue::from_str按字节判定合法性b 32 b ! 127 || b \t转发路径 forwarder.rs、模型列表路径 model_fetch.rs 均复用同一函数非法 UA 在三条路径上静默忽略.ok().flatten()保证不会出现「某条路径用了 UA、另一条报错」的不一致前端校验 isValidUserAgentHeader 与后端口径严格一致trim 后为空视为「未设置」合法仅控制字符除\t外的 0x00–0x1F 与 0x7F非法表单组件见 CustomUserAgentField.tsx。// src-tauri/src/provider.rs L572-L579 pub fn parse_custom_user_agent( raw: Optionstr, ) - ResultOptionHeaderValue, InvalidHeaderValue { match raw.map(str::trim).filter(|s| !s.is_empty()) { Some(ua) HeaderValue::from_str(ua).map(Some), None Ok(None), } }这一能力直接支撑了下述 Codex「Kimi For Coding」预设的复活。Codex 统一会话历史新增可选开关设置 → Codex 应用扩展使官方 Codex 会话与 CC Switch 第三方会话共享同一个 resume 历史桶resume 选择器不再把两者互相隐藏。启用后live 的config.toml会被路由到内置 OpenAI provider 镜像的共享custommodel_provider不修改auth.json默认只对新会话生效启用对话框提供将既有官方会话迁移到共享桶的复选框按代备份禁用对话框提供基于备份台账的精确恢复——仅回滚备份里以openai记录的会话绝不触碰启用期间新建的会话。使用量仪表盘全局 provider / model 过滤器provider 与 model 过滤器从请求日志表格内部提升到顶栏对 Hero 摘要、趋势图、请求日志和两个统计 tab 整体生效。细节语义来源按显示名精确匹配因此「Claude (Session)」这类会话占位行也可选模型按有效计费模型匹配模型下拉随所选来源级联两个下拉都只展示当前时间范围内有数据的选项。前端实现集中在 UsageDashboard.tsx 与 UsageDateRangePicker.tsx 等组件中。模型价格种子刷新对seed_model_pricing做了全量价格审计新增 9 个模型价格Claude Fable 5、Grok 4.3、Mistral Medium 3.5 / Small 4、Qwen 3.7 Max/Plus 等并按各厂商官价订正 28 处既有价格覆盖 GLM、Grok、MiMo、Doubao、Kimi、MiniMax、Mistral、Qwen。每项变更同时更新种子影响新装并向 repair_current_model_pricing 追加一条旧→新守卫修复既有数据库不覆盖用户手动改过的行。Claude Fable 5 模型层级provider 表单在 Claude Code 与 Claude Desktop 两条代理路径上把claude-fable-5作为第四个模型映射层级公开回退链为fable → opus → default与官方降级一致并放行了 Claude Desktop 1.12603.1 校验器对fable-前缀的校验。4 语言版本的回退提示也被明确化在第三方端点留空某一层级时该层模型名会原样透传导致 404。预设与伙伴生态更新Unity2.ai 伙伴 provider覆盖全部 7 个受管应用Claude Code、Codex、Gemini、OpenCode、OpenClaw、Claude Desktop、HermesCodex 使用裸 base URL该网关在根路径公开/responsesOpenCode / OpenClaw / Hermes 使用/v1chat-completions 端点默认模型gpt-5.5。Kimi K2.7 Code 模型新增kimi-k2.7-code输入 $0.95 / 输出 $4.00 / 缓存读取 $0.19每百万 token256K 上下文6 个官方 Moonshot Kimi 预设全部指向它OpenCode / OpenClaw 预设更名为「Kimi K2.7 Code」。价格种子经启动时的幂等插入路径生效老用户无需迁移即获得新价格。Codex「Kimi For Coding」预设复活重新加入该预设openai_chat、kimi-for-coding、256K 上下文并默认启用思考模式。它此前被移除是因为该编码端点以 403 拒绝 Codex 默认的codex-cliUA现在配合代理接管 自定义 User-Agent设为白名单 UA如claude-cli/*即可正常使用。预设 provider 搜索与排序预设选择器改为可搜索、可排序列表内联搜索框放大镜图标切换ESC 或点击外部收起按钮改为响应式网格、尺寸统一并显示默认图标。搜索只匹配 provider 显示名 / 原始名避免 URL 片段与共享分类标签造成噪声匹配。Claude Mythos 5 定价内置模型/价格表登记claude-mythos-5输入 $10 / 输出 $50、缓存读取 $1.00、缓存写入 $12.50每百万 token使使用量统计能正确计费与展示。Fable 5 Verified 徽章设置「版本信息」页在应用名与版本号旁显示该徽章以标识特别构建版本徽章居中至应用名下方。请求详情中的计费模型审计请求详情面板在「请求模型」「计费模型」与响应模型不一致时会全部列出让路由接管产生的账单可以直接在使用量页面核对。变更Claude Desktop 用量并入 Claude 显示仪表盘不再展示独立的「Claude Desktop」桶——它此前永远只能给出不完整的数字Desktop 聊天用量本就不走代理其 Code tab 的会话只是由内置 Claude Code 运行时写入共享的~/.claude/projects目录。Desktop 代理流量在显示层折叠进claude但记账层仍按自己的app_type记录供路由接管计费审计使用真实值可在请求详情面板查看。轻量化的 provider 健康检查健康检查不再发送真实流式模型请求很多第三方 provider 会以 401/403/WAF 拦截造成误报「不可用」改为向 provider 的base_url发一次轻量 HTTP 可达性探测任意 HTTP 响应都算可达只有 DNS / 连接 / TLS / 超时算失败。官方 provider走 OAuth、base_url 刻意留空、没有可信可达目标直接隐藏连通性检查按钮。原有「发送真实请求」确认对话框、测试模型/提示词字段被移除劣化延迟阈值 6s、超时 8s。关键语义该可达性检查绝不重置熔断器——可达 ≠ 可用返回 403 的 host 是可达的但对真实流量是坏的故障切换判定仍只由真实代理流量驱动。Codex 高级选项区整合Codex provider 表单把本地路由、模型映射、推理覆盖、自定义 User-Agent 收进一个可折叠高级选项区与 Claude 表单对齐UA 已设置或本地路由启用时自动展开。自定义 UA 现在也适用于原生 Responses provider不再仅限openai_chat路由。使用量工具栏与布局刷新应用过滤器改由品牌图标渲染经 ProviderIcon「全部」为网格图标替换了在窄窗口下折行难看的文本 tab使用量 Hero 也显示所选应用的品牌图标Codex 主题色从 emerald 改为中性灰贴合 OpenAI 单色品牌。点击循环切换的刷新按钮改为带本地化「关闭」标签的下拉选择顶栏控件压缩以对齐宽度组过长的日期范围标签会省略显示。版本信息面板加载提速「版本信息」面板改为渐进式加载应用版本徽章解析即显示不再等待工具探针各工具卡片在自己的版本探测完成后立即更新探针并行而非串行探测结果在应用会话内带10 分钟 TTL缓存重开「版本信息」tab 时复用缓存、仅后台重新校验过期项不再每次都对 6 个工具全量重探。伙伴与预设调整火山方舟 Coding Plan6 个应用的预设全部更新为新的 Coding Plan 邀请链接替换旧 Agent Plan / 活动链接4 语言刷新伙伴宣传语2 个月 75% 折扣 邀请码 6J6FV5N2产品名从 Agent Plan 订正为 Coding Plan。MiniMax 降为普通 provider移除金色伙伴星标与 API key 宣传横幅所有预设去掉isPartner标志继续作为普通cn_officialprovider 保留图标与主题宣传语保持休眠必要时一行即可重新启用伙伴关系。移除 LemonData、降级 SudoCodeLemonData 预设完全移除含宣传语、图标、赞助条目SudoCode 从伙伴降为普通third_partyprovider去掉isPartner与宣传语保留图标。AtlasCloud Codex GLM 5.1预设中zai-org/glm-5.1声明 200,000 token 上下文窗口与其他 GLM 5.1 预设对齐。修复按真实上游模型计费路由接管流量当请求被路由到另一个上游env 模型映射、Claude Desktop 路由、Copilot 归一化、Codex chat 覆盖时旧逻辑按上游返回的模型归属计费导致 kimi / glm 的 token 被记成claude-*、成本高估约 525 倍。现在转发器捕获真实的出站模型归属顺序为「上游返回值 → 出站模型 → 客户端别名」并把每行实际使用的计费依据持久化schema v11。该依据在成本回填与 30 天 rollup 剪枝中一致使用Claude Desktop 流量也改用自己的app_type记录使价格覆盖正确生效。格式转换路径上的用量计量对各格式转换路径Chat、Responses、Gemini 转 Anthropic的 token / 缓存计量做了审计与修正记录实际返回的模型注入stream_options.include_usage让 OpenAI 兼容上游在流式时吐出 usageClaude←OpenAI 路径上把cache_read与cache_creation从 input 中排除杜绝缓存 token 双重计数扣减 Gemini 的缓存命中 prompt token完全缓存命中的请求仍被记录跳过过去曾虚增请求数的合成全零 usage。schema v11把「计费依据」写进数据库升级注意部分说明本版本为proxy_request_logs新增pricing_model列并以request_model pricing_model维度重建 rollup启动时自动迁移、无需手动操作。源码中的迁移实现印证了这一点schema.rs v10 → v11 迁移给proxy_request_logs补pricing_model列NULL 表示 v11 之前的历史行并重建usage_daily_rollups主键扩展为(date, app_type, provider_id, model, request_model, pricing_model)列注释明确语义pricing_model写入时实际用于计价的模型名pricing_model_source的解析结果pricing_model_source默认responseschema.rs L13730 天 rollup 剪枝逻辑在 usage_rollup.rs 中由于剪枝不可逆明细一旦汇总删除0 成本行就永远失去按pricing_model补价重算的机会剪枝前会先尽力回填一次成本失败仅告警、不阻断清理聚合时COALESCE(l.pricing_model, )把历史 NULL 归一为空串L146-L163。迁移边界也需要注意历史行的成本在写入时已确定、不会被重算app_typeclaude的行混有原生与转换两种来源只有「真实存在但当时未被计费」的接管行会保持零成本待价格补齐后回填。相关测试见 test_rollup_preserves_pricing_model_dimension验证 request 计价模式下pricing_model与model分叉时各自成行。应用内更新不再卡死从应用内安装更新时不再卡在「正在重启」界面旧版需要手动强制退出。下载—安装—重启流程完全移到后端执行新增install_update_and_restart命令按平台决定安装顺序并先释放单实例锁再重启不再依赖「应用包已被替换后旧 WebView 继续跑 JS」退出请求被分类处理使重启请求落入 Tauri 默认流程避免窗口状态插件的互斥量死锁。Codex 升级不再破坏安装从「版本信息」页升级 Codex 不再抛「Missing optional dependency openai/codex-…」错误。旧升级链先执行codex update这在 npm 安装下实质是一次裸重装——即使对应平台二进制没装上也会报告成功。现在 Codex 被排除出「self-update 优先」路径改为由 runnable 检测驱动「卸载 重装」的自愈仅限 npm 管理的安装这也是能真正补上缺失平台二进制的修复方式。代理接管相关修复接管时保留 Codex OAuth 凭据Codex provider 启用代理接管时不再剥离ANTHROPIC_AUTH_TOKEN占位符——旧行为在热切换、新装以及旧版本已剥离过的 live 配置中都会破坏 Claude Code 登录。现在对所有受管非 CopilotCodex provider含仅 URL 的 provider无条件注入该占位符GitHub Copilot 行为仅 API_KEY不变。跨配置目录切换时的接管残留恢复在代理接管启用时修改配置目录并重启不再让 Claude / Codex / Gemini 指向已失效的本地代理。旧实例重启前先恢复被接管过的 live 文件首次运行导入拒绝把接管占位符持久化为 providerSSOT 恢复在写回前会校验当前 provider 配置中不含占位符。误标签 SSE 响应聚合Claude / Codex 格式转换请求中若 MaaS 网关把stream:false的请求强制改成流式、却用非 SSE 的 Content-Type 返回 SSE 正文不再报晦涩的 422「Failed to parse upstream response」。代理在解析失败时检测是否为 SSE把 chunks 聚合成单个 JSON 后走既有转换器客户端仍收到合法的非流式响应剩余解析失败附带 content-type、编码、响应体摘录等诊断信息deflate 解码改为先试 zlib 再试裸流。Hermes 配置重复 YAML 键Hermes 配置写入不再累积重复的顶层键如mcp_servers此前会引发「Failed to parse Hermes config as YAML: duplicate entry with key」错误。区段替换改为从剩余文本中删除所有旧副本而不是退化为追加去重安全网同时处理 LF 与 CRLF 行尾修复时保留最后一个最新副本与 Hermes 自身 PyYAML「后写获胜」语义对齐。使用量查询健壮性与错误明确化使用量卡片不再因一次瞬时抖动变红查询重试一次网络 / 超时 / 5xx 等临时失败下最多 10 分钟继续展示上次成功结果确定性失败认证、空 key、未知 provider、4xx立即暴露并清除快照防止凭据变更后旧余额复活原生余额 / Coding Plan / 订阅查询超时从 10s 提高到 15s适配响应较慢的国际端点Coding Plan 不再返回空白失败而是明确的「API key is empty」/「Unknown coding plan provider」错误自定义 JS 脚本的使用量查询不再靠猜 env 字段解析{{apiKey}}/{{baseUrl}}——对把凭据放在别处的应用如 Codex 的auth.OPENAI_API_KEY加config.toml的 base_url旧逻辑即使 provider 配好了也永远拿到空值。现在脚本查询及其测试/预览复用与原生余额路径相同的逐应用凭据解析器脚本内显式填写的非空值仍然优先。Claude Code Workflow 子 agent 用量统计本地无代理会话日志的用量统计此前遗漏了 Claude Code Workflow 子 agent 的流量整体用量低估约 4.1%集中在 workflow / subagent 的会话记录中。现在扫描器会深入再下一层的subagents/workflows/wf_*/记录目录解析器也不再丢弃「缺少stop_reason但已产生 input / 缓存 token 成本」的 assistant 消息。去重逻辑不变因此不会重复计数。源码中可看到目录扫描与专项测试扫描逻辑在 session_usage.rs注释说明 Workflow 子 agent 比普通子 agent 多嵌套一层workflows/wf_ID/漏掉这一层就会丢失 Workflow 的 token测试 test_collect_jsonl_files_includes_workflow_subagents 专门构造subagents/workflows/wf_test123/目录结构验证采集。其他修复Codex/responses图像整流带图像的 Codex/responses请求路由到纯文本 OpenAI-chat 模型如 DeepSeekdeepseek-v4-flash时不再报 HTTP 400「unknown variantimage_url」。媒体整流器现在也覆盖 Codex 适配器扫描 responsesinput中的input_image块对已知纯文本模型主动剥离图像上游报告「不支持图像」时也会替换图像重试。智谱 Coding Plan 配额窗口误标签不再在每周周期最后几个小时把 5 小时窗口与周窗口标反。两个窗口现在由显式unit字段区分3 5 小时6 周不再依赖重置时间的升序排序——用户最密集查询周配额的时刻恰好是两者被标反的时刻字段缺失时仍回退到旧的重置时间启发式。macOS 重复 provider 终端窗口启动 provider 终端时不再在命令会话旁多开一个空窗口。Terminal.app 冷启动改用launch而非activateGhostty 用初始命令只开一个会话AppleScript 路径失败时保留回退。Claude Desktop 模型映射占位符表单此前用「菜单显示名」「请求模型」两列且品牌示例不一致DeepSeek vs Kimi看似某个显示名映射到了无关模型。现在两个占位符都从所在行的角色推导保持品牌一致轻量 Haiku 层级使用 flash 示例。弹层被全屏面板遮挡预设搜索等弹层/工具提示不再画在全屏面板之后导致看似点不到z-index 提升到全屏 overlay 之上但仍低于模态对话框。ToggleRow 图标缩小多行文本旁图标保持固定尺寸不再挤压变形。升级注意schema v11 自动迁移proxy_request_logs新增pricing_model列rollup 按request_model pricing_model重建启动自动迁移、无需手动操作。历史行成本不重算真实的接管零成本行待价格补齐后回填。模型映射新增第 4 层Fable 5Claude Code 与 Claude Desktop 的模型映射变为 4 层Sonnet / Opus / Fable / Haiku。原有 3 层 provider 重新打开并保存后会补上claude-fable-5层留空则继承 Sonnet。注意在第三方端点留空任意层级时该层模型名会原样透传并可能 404请按需填写。「Kimi For Coding」预设需要代理接管 白名单 UA复活后的该预设如果直接使用默认codex-cliUA 仍会 403。使用时请启用代理接管并在 provider 高级选项中把自定义 User-Agent 设为白名单 UA如claude-cli/*。健康检查语义变化从「发送真实模型请求」变为「HTTP 可达性探测」。可达 ≠ 可用返回 403 的 host 可达但对真实流量可能是坏的。故障切换判定仍只由真实代理流量驱动不受健康检查影响。风险通知本版本继续适用此前反向代理相关功能的风险声明Codex OAuth 反向代理将 ChatGPT 订阅的 Codex OAuth 经反向代理使用可能违反 OpenAI 服务条款详见 v3.13.0 发布说明的风险注意事项docs/release-notes/v3.13.0-ja.mdCodex 第三方 provider Chat 路由经 CC Switch 本地代理转换并转发到第三方 provider 时计费 / 合规 / 数据留存限制因 provider 而异使用前请确认其服务条款Claude Desktop 第三方 provider 代理切换经内置代理网关转发 Claude Desktop 请求时同样须遵守目标 provider 的计费 / 合规 / 数据留存条款。启用上述功能的用户自行承担相关风险CC Switch 不对因此产生的账号限制、警告或服务停止负责。下载与安装从 Releases 获取与系统对应的构建官方渠道为 ccswitch.io 与 GitHub ReleasesCC Switch 完全免费开源、不向用户收费任何索取付费或凭据的「CC Switch」站点/客户端均为假冒。系统要求系统最低版本架构WindowsWindows 10x64macOSmacOS 12 (Monterey)Intel (x64) / Apple Silicon (arm64)Linux见下表x64 / ARM64Windows文件说明CC-Switch-v3.16.3-Windows.msi推荐 - 支持自动更新的 MSI 安装器CC-Switch-v3.16.3-Windows-Portable.zip便携版解压即运行macOS文件说明CC-Switch-v3.16.3-macOS.dmg推荐 - DMG 安装器拖入 ApplicationsCC-Switch-v3.16.3-macOS.zip解压拖入 ApplicationsUniversal BinaryCC-Switch-v3.16.3-macOS.tar.gzHomebrew 安装与自动更新用brew install --cask cc-switch brew upgrade --cask cc-switchLinuxLinux 资产同时提供x86_64与ARM64aarch64按uname -m输出选择CC-Switch-v3.16.3-Linux-x86_64.AppImage/.deb/.rpmCC-Switch-v3.16.3-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致谢与相关资源v3.16.3 感谢以下贡献者提交的修复与功能详见发布说明致谢部分接管时保留 Codex OAuth 凭据、格式转换实际模型记录与 input token 修正、应用内更新重启死锁修复、macOS 重复终端窗口修复、Hermes 重复 YAML 键修复、使用量脚本凭据解析修复、预设搜索与排序、预设按钮外观调整、claude-mythos-5定价等。延伸阅读均位于仓库docs/目录Codex 会话历史统一功能介绍与使用指南——启用统一开关前必读使用量统计——仪表盘数据源代理日志、会话同步与聚合机制设置——自定义 User-Agent、Codex 统一会话历史等开关的位置本地路由显示设置与故障转移——理解路由接管与熔断语义。【免费下载链接】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),仅供参考