whatcable
macOS 菜单栏工具,用大白话告诉你每根 USB-C 线能充电多快、传数据多快
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
macOS 菜单栏工具,用大白话告诉你每根 USB-C 线能充电多快、传数据多快
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你一定有过这样的经历:桌上堆着五六根 USB-C 线,看起来一模一样——黑色、编织线身、一个 USB-C 头插进去——但充电速度却天差地别。有的 240W 满速快充,有的只有 5W 龟速慢充;有的能传 40Gbps 数据,有的连文件传输都不支持,插上去只充电。
问题在于,USB-C 接口是一个伪装成"万能口"的复杂性怪物。从 USB 2.0 充电线到 240W / 40 Gbps 的 Thunderbolt 4 线,从表面看它们完全相同,但能力差距高达数十倍。普通用户根本无法分辨。WhatCable 正是为解决这个痛点而生的。

图1:WhatCable 菜单栏弹出界面,清晰展示各端口线材能力
WhatCable 由独立开发者 Darryl Morley 创建。项目最初源于他个人的真实困惑:面对 Mac 上的多个 USB-C 端口和手边十几根线,他无法快速判断哪根线能满速充电、哪根只能传数据、哪根其实是"假全功能"线。
macOS 系统本身通过 IOKit 框架已经暴露了几乎所有线材的详细参数信息,包括 USB-PD 协议握手数据、e-marker 芯片信息、传输速度、功率等级等。但这些信息以原始数据的形式藏在系统深处,普通用户根本无法解读。
Darryl 决定把这些数据"翻译"成大白话,WhatCable 因此诞生。2024 年在 Product Hunt 首发后迅速走红,目前 GitHub 突破 5000 Star,成为 macOS 平台最实用的硬件工具类开源项目之一。
从技术角度看,WhatCable 的核心价值在于它扮演了一个协议解码器的角色。macOS 通过 IOKit 暴露了 USB-C 线材的完整元数据:
WhatCable 将这些原始数据转换为用户可理解的状态描述:当充电慢时显示"Cable is limiting charging speed";充电器有余量时显示"Charging at 30W (charger can do up to 96W)";一切匹配时显示"Charging well at 96W"。甚至能展示充电器的完整 PDO 列表(5V / 9V / 12V / 15V / 20V 各档位)。
WhatCable 采用清晰的模块化分层架构,通过 Swift Package Manager 管理:
WhatCable (主应用入口)
├── WhatCableCore ← 核心逻辑层,与平台无关
├── WhatCableDarwinBackend ← macOS 平台后端(IOKit 调用)
├── WhatCableAppKit ← AppKit UI 组件
├── WhatCablePlugins ← 插件系统
├── WhatCableWidget ← WidgetKit 桌面小部件
└── WhatCableCLI ← 命令行工具(支持 JSON 输出)
支持语言:英语、简体中文、繁体中文、日语、法语、德语、意大利语等 15+ 语言。
"可疑线材"警告 ≠ "假货":e-marker 数据异常时显示橙色警告卡,但项目明确说明:警告的意思是"这看起来不寻常",不是"这根线是假货"。USB-PD 规范对某些字段约束不严格,许多合规线材也会触发警告。
仅支持 macOS:IOKit 是 Apple 专有框架,Windows/Linux 用户暂无替代方案。
需要物理连接:必须实际将线材连接到 Mac 才能检测,无法远程使用。
WhatCable 是精准解决 macOS 用户 USB-C 线材识别痛点的菜单栏工具。它将 IOKit 暴露的底层协议数据翻译成大白话,帮助用户判断线材的真实能力、诊断充电瓶颈、识别可疑线材。纯 Swift 编写,MIT 协议开源,适合所有 Mac 用户,尤其是使用多口充电器和多根 USB-C 线材的开发者、设计师和移动办公人群。