34 points par GN⁺ 2026-05-02 | 4 commentaires | Partager sur WhatsApp
  • Une app de barre de menus macOS qui montre en phrases simples ce qu’un câble USB-C branché au Mac peut réellement faire, et pourquoi la charge du Mac peut être lente
  • Même si les câbles USB-C se ressemblent extérieurement, les différences vont d’un simple câble de charge USB 2.0 à un Thunderbolt 4 240W / 40Gbps ; WhatCable affiche dans un popover de barre de menus les informations exposées par macOS via IOKit
  • Permet de voir d’un coup d’œil, pour chaque port, des états comme Thunderbolt / USB4, périphérique USB, charge uniquement, câble USB/charge uniquement lent, ou absence de connexion
  • Le diagnostic de charge affiche sous forme de bannière les goulets d’étranglement, par exemple si le câble limite la vitesse de charge, si le Mac demande une puissance plus faible, ou si le chargeur et le câble sont bien assortis
  • Lit et affiche depuis l’e-marker du câble la vitesse réelle (USB 2.0, 5/10/20/40/80Gbps), l’intensité nominale (3A/5A, jusqu’à 60W/100W/240W) et le fournisseur de la puce
  • Liste les profils de tension PDO annoncés par le chargeur (5V/9V/12V/15V/20V, etc.) et met en évidence en temps réel le profil actuellement négocié
  • Interprète le nom du fournisseur et le type de produit des appareils connectés à partir de la réponse PD Discover Identity, et affiche les stockages, hubs et périphériques sous leur port physique réel avec la vitesse négociée
  • Affiche les modes de transfert actifs : USB 2, USB 3, Thunderbolt et DisplayPort ; un ⌥-clic ou un réglage permet aussi de consulter les propriétés IOKit brutes destinées aux ingénieurs
  • Dans les réglages, il est possible de masquer les ports vides, lancer l’app à l’ouverture de session, l’exécuter comme une app Dock classique au lieu d’une icône de barre de menus, et activer les notifications de connexion/déconnexion de câble
  • Installation : télécharger WhatCable.zip depuis la page Releases puis le déplacer vers /Applications, ou utiliser brew tap darrylmorley/whatcable puis brew install --cask whatcable
  • L’app est fournie comme binaire universel pour Apple silicon et Intel, avec signature Developer ID et notarisation Apple, mais ses exigences réelles de fonctionnement sont macOS 14 Sonoma ou plus récent et Apple Silicon
  • Le CLI whatcable utilise le même moteur de diagnostic et prend en charge un résumé des ports, --json, le streaming des changements de connexion avec --watch, et --raw pour inclure les propriétés IOKit brutes
  • En interne, il lit AppleHPMInterfaceType10/11/12, AppleTCControllerType10/11, IOPortFeaturePowerSource, IOPortTransportComponentCCUSBPDSOP et les sous-arborescences du contrôleur XHCI, et fonctionne sans autorisation, API privées ni helper daemon
  • Parmi les limites : sur les câbles de moins de 60W sans e-marker, les informations du câble peuvent ne pas apparaître ; et si un e-marker contrefait ou mal flashé annonce de fausses performances, aucun logiciel ne peut vérifier l’intérieur du câble
  • Le décodeur PD cible PD 3.0 / 3.1 et, à cause des contraintes de sandbox iOS et App Sandbox, la distribution sur iOS et l’App Store n’est pas prise en charge
  • Licence MIT

4 commentaires

 
xguru 2026-05-02

Je l’ai installé pour voir, et le résultat est vraiment très propre, ce qui est appréciable… mais il indique que tous les câbles que j’utilisais pourtant sans problème sont en fait assez médiocres.
Du coup, après avoir vu ça, je me dis de plus en plus qu’il va falloir passer à des câbles plus chers.

Après quelques recherches, j’ai vu qu’on recommandait des modèles comme le Satechi Thunderbolt 5 https://amzn.to/3QKqf0u ou le Satechi USB4 V2 Pro https://amzn.to/3QB9HIp, donc je me suis empressé de commander les deux.

 
aqqnucs 2026-05-03

Est-ce que ça fonctionne avec juste le câble nu ? (sans rien de connecté à l’autre extrémité)

 
xguru 2026-05-03

On dirait que ça ne marche pas. Il semble qu’il faille brancher quelque chose pour que ce soit détecté.

 
GN⁺ 2026-05-02
Commentaires sur Hacker News
  • Super. Je voulais voir à quelle vitesse GPT-5.5 pouvait transformer ça en plasmoïde KDE Plasma 6, donc j’ai essayé : ça a pris environ 10 minutes et 2 dollars, et maintenant j’ai une appli QML qui affiche les mêmes informations dans la barre des tâches
    Je laisse ça ici parce que c’est vraiment incroyable qu’on puisse simplement faire ce genre de chose aujourd’hui

    • J’aimerais économiser 10 minutes et 2 dollars, c’est disponible quelque part sur GitHub ?
    • J’ai fait exactement la même chose avec le dongle Bluetooth Sennheiser BTD-700. J’ai trouvé qu’une personne avait déjà créé une petite bibliothèque C pour contrôler le dongle, et à partir de ça Claude m’a généré un widget KDE correct pour piloter le casque
  • Impressionnant de voir @sleepingNomad sortir 16 releases en 7 heures tout en intégrant les retours HN à la volée
    Si vous n’aimez pas les applis de barre de menus, on peut l’exécuter comme une appli classique, et si vous n’aimez pas les GUI, on peut maintenant aussi l’exécuter en ligne de commande
    Il suffit de regarder le journal des changements :
    https://github.com/darrylmorley/whatcable/releases?page=2

    • J’ai reçu d’excellents rapports de bugs et demandes de fonctionnalités sur HN, et grâce à Claude j’ai pu publier rapidement. Avec un bon pair programmer, faire 16 releases en 7 heures devient bien plus facile
    • Vraiment impressionnant. OP/sleepingNomad, vous pourriez aussi le publier sur MacPorts ?
  • Ça me rappelle que ChromeOS a une sorte de superpouvoir pour identifier les câbles USB-C : https://www.reddit.com/r/UsbCHardware/comments/1pyojjd/comme...
    Je ne sais pas si cette appli macOS utilise la même méthode, mais le lien explique qu’il existe dans l’e-Marker du câble un message "Discover Identity" que ChromeOS peut lire et afficher
    Le matériel Windows classique ne peut pas le lire à cause des limitations du BIOS, mais les Chromebook le peuvent, et les Mac probablement aussi

  • C’est plutôt bien, mais je ne comprends pas pourquoi autant d’apps Mac veulent absolument résider dans la barre de menus

    • D’accord. Surtout pour un truc comme ça, qu’on n’utilisera probablement que quelques fois ; la plupart des gens n’ont sans doute pas tant de câbles que ça ni besoin de les vérifier régulièrement
      Le problème, c’est que sur un écran 14 pouces, la zone à droite de l’encoche est déjà presque pleine, sans même y avoir mis tant de choses que ça
    • Je comprends que ça puisse me convenir à moi sans convenir aux autres. C’est pourquoi j’ai ajouté un bouton "Show in menu bar" dans les réglages
      Si on le désactive, WhatCable se lance comme une appli Dock classique avec une fenêtre normale
    • Un accès en un clic est plus rapide que de taper le nom de l’appli dans Finder. Le Dock est souvent déjà plein et sert à d’autres types d’apps, tandis que le modèle d’interface standard permet aussi de garder la sortie visible en permanence
    • Oui, ma barre de menus est déjà pleine elle aussi
  • Peut-on lire l’e-Marker aussi sur des appareils non Apple ? Ce serait vraiment utile si c’était possible aussi sur Linux ou Windows

  • Merci d’avoir créé ça. Je suis malvoyant, donc utiliser le testeur USB à 16 dollars vendu sur Amazon pour trier mon tiroir à câbles n’est pas une option
    Grâce à ça, je n’ai plus besoin d’acheter un SBC séparé faisant tourner Linux juste pour tester des câbles

  • Est-ce qu’on pourrait faire ça aussi sous Linux ? Peut-être avec un wrapper pour lsusb. Je viens justement de trouver https://github.com/doug-gilbert/lsucpd, qui ajoute notamment le PD

  • J’aime le fait que ce soit une appli Mac native. Merci de l’avoir créée et partagée

  • J’avais essayé de contribuer à stats l’affichage en watts du courant de l’adaptateur, mais ma PR a été fermée sans aucun commentaire. C’est similaire à cette PR :
    https://github.com/exelban/stats/pull/3024

  • C’est une fonctionnalité que je voulais depuis assez longtemps. J’ai beaucoup de câbles USB-C dont j’ignore les caractéristiques, et je me disais que ce serait bien de pouvoir étiqueter les performances de chacun ; maintenant c’est possible