WhatCable - USB-Cケーブルを検査する小さなメニューバーアプリ
(github.com/darrylmorley)- WhatCableは、Macに接続されたUSB-Cケーブルが実際に何ができるのか、そしてMacの充電が遅い理由をわかりやすい文章で表示するmacOSのメニューバーアプリ
- USB-Cケーブルは見た目が同じでも、USB 2.0の充電専用から240W / 40Gbps Thunderbolt 4まで差が大きく、WhatCableはmacOSがIOKit経由で公開する情報をメニューバーのポップオーバーに表示
- ポートごとにThunderbolt / USB4、USBデバイス、充電専用、低速USB/充電専用ケーブル、未接続といった状態をひと目で確認可能
- 充電診断では、ケーブルが充電速度を制限しているか、Macがより低い電力を要求しているか、充電器とケーブルの組み合わせが適切かといったボトルネックをバナーで表示
- ケーブルのe-markerから実際の速度(USB 2.0、5/10/20/40/80Gbps)、電流定格(3A/5A、最大60W/100W/240W)、チップベンダーを読み取って表示
- 充電器が広告するPDO電圧プロファイル(5V/9V/12V/15V/20Vなど)を一覧表示し、現在ネゴシエートされているプロファイルをリアルタイムで強調表示
- 接続されたデバイスのベンダー名と製品タイプをPD Discover Identity応答から解釈し、ストレージ・ハブ・周辺機器を実際の物理ポートの下にネゴシエートされた速度とともに表示
- アクティブな転送方式としてUSB 2、USB 3、Thunderbolt、DisplayPortを表示し、⌥-クリックや設定トグルでエンジニア向けの基本IOKitプロパティも確認可能
- 設定では、空きポートを隠す、ログイン時に起動する、メニューバーアイコンの代わりに通常のDockアプリとして実行する、ケーブル接続・取り外し通知を有効にするといった項目を用意
- インストールはReleases pageの
WhatCable.zipをダウンロードして/Applicationsへ移動するか、brew tap darrylmorley/whatcableの後にbrew install --cask whatcableで可能 - アプリはApple siliconとIntel向けのユニバーサルバイナリとして提供され、Developer ID署名とAppleの公証を受けているが、実際の動作要件はmacOS 14 Sonoma以降とApple Silicon
whatcableCLIも同じ診断エンジンを使用しており、ポート要約、--json、接続変化のストリーミング--watch、基本IOKitプロパティを含む--rawをサポート- 内部的には
AppleHPMInterfaceType10/11/12、AppleTCControllerType10/11、IOPortFeaturePowerSource、IOPortTransportComponentCCUSBPDSOP、XHCIコントローラのサブツリーを読み取り、権限付与・非公開API・ヘルパーデーモンなしで動作 - 制限事項として、e-markerのない60W未満のケーブルではケーブル情報が表示されない場合があり、偽造または誤ってフラッシュされたe-markerが虚偽の性能を広告している場合、ソフトウェアでケーブル内部を検証する方法はない
- PDデコーダはPD 3.0 / 3.1を対象としており、iOSサンドボックスとApp Sandboxの制約によりiOSおよびApp Store配布はサポートせず、ライセンスはMIT
1件のコメント
Hacker Newsのコメント
すごい。GPT-5.5 がこれを KDE Plasma 6 Plasmoid にどれくらい速く変換できるか見たくて試してみたら、10分と2ドルくらいで、タスクバーに同じ情報を表示する QML アプリができた。
こういうことが今では普通にできるのは本当に驚きなので書いておく
@sleepingNomad がこの7時間で 16件のリリース を出し、HN のフィードバックをその場で反映していたのはすごい。
メニューバーアプリが嫌なら通常のアプリとして実行できるし、GUI が嫌なら今ではコマンドラインからも実行できる。
変更履歴を見ればわかる:
https://github.com/darrylmorley/whatcable/releases?page=2
ChromeOS には USB-C ケーブル識別のための超能力のような機能があることを思い出した: https://www.reddit.com/r/UsbCHardware/comments/1pyojjd/comme...
この macOS アプリが同じ方法を使っているのかはわからないが、リンク先ではケーブルの e-Marker に ChromeOS が読み取って表示できる "Discover Identity" メッセージがあると説明されている。
一般的な Windows ハードウェアでは BIOS の制限のため読み取れないが、Chromebook なら可能で、Mac でもおそらく可能だろう
なかなか良いが、なぜ多くの Mac アプリ はどうしてもメニューバーに常駐したがるのかわからない
問題は 14 インチ画面ではノッチ右側の領域がすでにほぼ埋まっていて、そこにそんなに多く載せているわけでもないことだ
オフにすると WhatCable は通常の Dock アプリとして普通のウィンドウで実行される
Apple 以外のデバイス でも e-Marker は読めるのだろうか? Linux や Windows でも可能なら本当に便利そうだ
作ってくれてありがとう。視覚障害があるので、ケーブルの引き出しを整理するために Amazon で売っている 16ドルの USB テスター を使うのは選択肢にならない。
おかげでケーブルテスト用に Linux が動く SBC を別に買う必要がなくなった
Linux でもこういうことはできるだろうか? おそらく lsusb ラッパー で可能かもしれない。ちょうど PD などを追加する https://github.com/doug-gilbert/lsucpd を見つけた
ネイティブ Mac アプリ なのが気に入った。作って共有してくれてありがとう
stats にアダプター電流の ワット表示 を追加する貢献をしようとしたが、PR はコメントもなく閉じられてしまった。この PR と似た内容だ:
https://github.com/exelban/stats/pull/3024
かなり前から欲しかった機能だ。正体不明の USB-C ケーブル がたくさんあるので、それぞれの性能をラベルで貼れたらいいのにと思っていたが、これで可能になった