← 返回信息流
Agent SkillLINUX DO · AI·2 小时前

开源AICheck工具:批量检测CC-Switch中转站

原标题:【开源】中转站太多,ccswitch 里面一堆配置,每次失效了都不知道那个可以用,于是 vibe 了一个检测的工具。

速览

AICheck基于Tauri2+SvelteKit+Rust,纯本地无遥测,能够模拟真实客户端(Claude Code、Codex CLI)进行流式对话探测,区分仅流式站点。它还解决了第三方工具与cc-switch切换时指针不同步导致的配置串号问题,支持macOS、Windows、Linux三平台。目前已在GitHub发布,开源接受社区反馈。

AI 深度解读

背景

在 AI 应用日益普及的今天,许多开发者通过“中转站”(API 代理)来调用 Claude、Codex 等模型,以降低成本或绕过地域限制。然而,随着中转站数量增多,管理变得混乱:站点随时可能失效(欠费、下架、网络波动),且不同工具(如 cc-switch、Claude Code、Codex CLI)对中转站的要求不同——有些站点仅支持流式响应,有些则对客户端特征(User-Agent、请求头)敏感。同时,多工具混用时,cc-switch 的配置指针机制存在一个隐蔽的陷阱:第三方工具直接修改 live 配置却不更新指针,导致 cc-switch 在切换时误覆盖其他站点的配置,引发“串站”事故。

为解决这些痛点,LINUX DO 社区用户 hpcll 开发了开源工具 AICheck,专为使用 cc-switch (v3.x) 管理中转站的用户设计。

核心内容

AICheck 是一个纯本地、跨平台的桌面应用,基于 Tauri 2 + SvelteKit + Rust 构建,支持 macOS、Windows、Linux。它直接读取 cc-switch 的站点库,提供批量并发测活、流式与非流式双检测、一键安全切换等功能,并自动修复 cc-switch 的指针同步问题,防止串站。

具体功能包括:

  1. 批量测活:用户可勾选多个站点,并发发起检测。检测针对三种接口分别进行:Claude Messages、Codex Responses、Codex Chat。检测方式不是简单的 /models 端点查询,而是发送真实的流式对话请求——只有成功读到第一个 token 才判定为“活”。这种方式能准确反映站点对实际客户端调用的可用性。

  2. 模拟真实客户端特征:为了适配那些仅允许特定客户端(如 Claude Code、Codex CLI)请求的站点,AICheck 在检测时伪装成对应客户端:

    • 对于 Messages 接口,携带 Claude Code 的完整特征(claude-cli User-Agent、x-app 头、anthropic-beta、x-stainless-* 等)。
    • 对于 Responses/Chat 接口,携带 Codex CLI 特征。 这样即使站点对客户端做了限制,也能测出真实结果,避免假失败。
  3. 流式与非流式双测:检测会同时测试流式(streaming)和非流式(non-streaming)两种模式。如果站点仅支持流式而拒绝非流式,则标记为“仅流式”。用户在切换前就能知道:某些场景(如非流式调用)下此站不可用,避免“测通却用不了”的尴尬。

  4. 一键安全切换:检测通过的站点,用户可一键将其设为当前站。AICheck 会:

    • 写入 live 配置(当前生效的配置)。
    • 同步更新 cc-switch 的数据库(~/.cc-switch/settings.json)及其“当前站”指针。
    • 切换后回读实际配置,并弹窗显示站名和地址,确保切换结果与预期一致。
  5. 修复 cc-switch 的指针同步隐患:原文揭露了 cc-switch v3.17 的一个机制:当用户通过 cc-switch 界面点击“启用”时,cc-switch 会无条件将 live 配置回填进“当前站”指针所指向的那一行,而不做身份核对。如果第三方工具(如 AICheck 以外的脚本)直接修改了 live 配置却没有同步更新指针,那么下次在 cc-switch 里点击“启用”时,live 配置会被错误地写入旧指针指向的站点行,导致该行原配置被覆盖(串站)。AICheck 在切换时主动同步写指针,因此与 cc-switch 混用不会触发此问题。如果用户已经遭遇串站,可以从 cc-switch 的每日自动备份(~/.cc-switch/backups/)中恢复原配置。

下载与安装:项目发布在 GitHub Releases(搜索 hpcll/ai-check-app),提供 dmg(macOS)、msi/exe(Windows)、AppImage/deb/rpm(Linux)等格式。由于未签名,macOS 首次打开需通过“隐私与安全性→仍要打开”绕过。macOS 真机长期使用,Windows/Linux 由 CI 构建,欢迎反馈。

关键要点

  • 专为 cc-switch v3.x 用户设计:直接读取 cc-switch 的站点库,无需手动导入。
  • 真实请求测活:通过发送流式对话请求并等待首 token,而非仅调用 /models 端点,结果更可靠。
  • 客户端特征伪装:模拟 Claude Code 和 Codex CLI 的请求头,避免因客户端限制导致误判。
  • 流式/非流式双测:识别仅支持流式的站点,提前预警。
  • 一键切换并同步指针:切换后同时更新 live 配置和 cc-switch 的“当前站”指针,防止串站。
  • 修复已知坑:解释并解决了 cc-switch 中因第三方工具修改 live 配置而未同步指针导致的串站问题。
  • 纯本地、无遥测:所有操作在本地完成,不发送数据到外部。
  • 跨平台、开源:Tauri 2 + SvelteKit + Rust 构建,支持三大平台,GitHub 开源,欢迎 issue/PR。
  • 未签名,macOS 需额外步骤:官方说明中给出了 macOS 首次打开的方法。
  • 备份恢复:若已串站,可从 cc-switch 的自动备份目录恢复。

意义与影响

AICheck 解决了一个真实且普遍存在的痛点——多中转站管理混乱、工具混用导致的配置污染。它不仅提供了批量测活、安全切换等实用功能,还深入剖析了 cc-switch 的内部机制,揭示了指针同步的隐藏问题,并给出了修复方案。这种“发现问题-分析根因-提供工具”的闭环,体现了开源社区典型的协作精神。

对于开发者而言,AICheck 降低了管理多个中转站的心智负担,避免了因站点失效或配置错乱导致的生产力中断。同时,它通过模拟真实客户端特征,提高了测活的准确性,让用户对站点状态有更真实的认知。此外,项目开源且纯本地运行,适合对隐私敏感的用户。

从技术角度看,AICheck 展示了如何利用 Tauri 2 和 SvelteKit 构建跨平台本地工具,以及如何通过 Rust 实现高性能并发检测。其设计思路(模拟客户端、流式测试、指针同步)也可供其他类似工具参考。

长远来看,这类工具的涌现可能会推动 API 中转站生态的规范化——当用户能轻松检测和管理站点时,不稳定的服务商将更快被淘汰,从而促进健康竞争。同时,AICheck 对 cc-switch 的兼容性改进,也提醒其他工具开发者注意配置同步的原子性,避免类似陷阱。

查看原文 →linux.do