34 pontos por GN⁺ 2026-05-02 | 5 comentários | Compartilhar no WhatsApp
  • Um app de barra de menus para macOS que mostra em linguagem simples o que um cabo USB-C conectado ao Mac realmente consegue fazer e por que o carregamento do Mac pode estar lento
  • Cabos USB-C podem parecer idênticos por fora, mas variam muito, de USB 2.0 só para carregamento até Thunderbolt 4 de 240W / 40Gbps; o WhatCable exibe em um pop-up na barra de menus as informações que o macOS expõe via IOKit
  • Dá para ver de relance, por porta, estados como Thunderbolt / USB4, dispositivo USB, apenas carregamento, cabo USB/lento ou só de carregamento, e nenhuma conexão
  • O diagnóstico de carregamento mostra em banners gargalos como: se o cabo está limitando a velocidade de carga, se o Mac está solicitando menos energia, ou se carregador e cabo combinam bem
  • Lê e mostra, a partir do e-marker do cabo, a velocidade real (USB 2.0, 5/10/20/40/80Gbps), a corrente nominal (3A/5A, até 60W/100W/240W) e o fornecedor do chip
  • Lista os perfis de tensão PDO anunciados pelo carregador (5V/9V/12V/15V/20V etc.) e destaca em tempo real o perfil atualmente negociado
  • Interpreta o nome do fornecedor e o tipo de produto dos dispositivos conectados a partir da resposta PD Discover Identity, e mostra armazenamento, hubs e periféricos sob a porta física real junto com a velocidade negociada
  • Mostra os modos de transferência ativos como USB 2, USB 3, Thunderbolt e DisplayPort, e também permite ver as propriedades base de IOKit para engenheiros via ⌥-clique ou uma opção nas configurações
  • Nas configurações, é possível ocultar portas vazias, iniciar no login, rodar como um app normal no Dock em vez de usar ícone na barra de menus, e ativar notificações de conexão/desconexão de cabos
  • A instalação pode ser feita baixando WhatCable.zip na Releases page e movendo para /Applications, ou com brew tap darrylmorley/whatcable seguido de brew install --cask whatcable
  • O app é oferecido como binário universal para Apple silicon e Intel, com assinatura Developer ID e notarização da Apple, mas o requisito real de funcionamento é macOS 14 Sonoma ou superior e Apple Silicon
  • A CLI whatcable usa o mesmo mecanismo de diagnóstico e oferece resumo das portas, --json, streaming de mudanças de conexão com --watch e --raw para incluir propriedades básicas do IOKit
  • Internamente, ele lê AppleHPMInterfaceType10/11/12, AppleTCControllerType10/11, IOPortFeaturePowerSource, IOPortTransportComponentCCUSBPDSOP e a subárvore do controlador XHCI, funcionando sem concessão de permissões, APIs privadas ou daemon auxiliar
  • Como limitação, em cabos abaixo de 60W sem e-marker as informações do cabo podem não aparecer, e se um e-marker falsificado ou gravado incorretamente anunciar capacidades falsas, não há como o software verificar o interior do cabo
  • O decodificador de PD é voltado para PD 3.0 / 3.1, e por causa das restrições do sandbox do iOS e do App Sandbox, não há suporte a iOS nem distribuição pela App Store
  • Licença MIT

5 comentários

 
Comentários no Lobste.rs
  • Seria ótimo se também houvesse uma versão para Linux, mas talvez no Linux os dados necessários não sejam expostos.
    Esta ferramenta não tem relação com vibe coding, exceto pelo fato de um robô aparecer em algum lugar no log de commits, então a tag vibecoding é enganosa. Se esse for o critério, releases do Vim também deveriam receber a mesma tag.
  • É parecido com uma ferramenta que já pensei várias vezes em criar por conta própria. Quero voltar à minha mesa e experimentá-la junto com a minha coleção de dongles.
 
xguru 2026-05-02

Na prática, depois de instalar, ficou tão limpo que gostei bastante... mas os cabos que eu usava e achava bons aparecem todos como meia-boca.
Depois de ver isso, fico pensando toda hora que preciso trocar por cabos mais caros.

Pesquisando, vi que o Satechi Thunderbolt 5 https://amzn.to/3QKqf0u e o Satechi USB4 V2 Pro https://amzn.to/3QB9HIp são bem recomendados, então corri e já pedi os dois.

 
aqqnucs 2026-05-03

Funciona só com o cabo solto? (sem nada conectado na outra ponta)

 
xguru 2026-05-03

Parece que não funciona. Acho que só é reconhecido quando algo está conectado.

 
GN⁺ 2026-05-02
Comentários do Hacker News
  • Muito legal. Quis ver quão rápido o GPT-5.5 conseguiria transformar isso em um Plasmoid do KDE Plasma 6, então testei: levou uns 10 minutos e cerca de 2 dólares, e agora existe um app em QML que mostra a mesma informação na barra de tarefas
    Só deixando registrado porque é realmente impressionante que hoje dê para simplesmente fazer esse tipo de coisa

    • Quero economizar 10 minutos e 2 dólares; isso está em algum lugar no GitHub?
    • Fiz exatamente a mesma coisa com o dongle Bluetooth Sennheiser BTD-700. Achei que alguém já tinha criado uma pequena biblioteca em C para controlar o dongle e, com base nela, o Claude fez um widget decente para KDE que controla os fones
  • Impressionante como @sleepingNomad lançou 16 releases nas últimas 7 horas, incorporando feedback do HN em tempo real
    Se você não gosta de apps na barra de menus, dá para rodar como app normal, e se não gosta de GUI, agora também dá para rodar pela linha de comando
    Dá para ver só pelo changelog:
    https://github.com/darrylmorley/whatcable/releases?page=2

    • Recebi ótimos bug reports e pedidos de funcionalidade no HN e, graças ao Claude, consegui lançar atualizações rapidamente. Ter um bom pair programmer torna 16 releases em 7 horas muito mais fácil
    • Realmente impressionante. OP/sleepingNomad, você poderia colocar isso também no MacPorts?
  • Isso me lembrou que o ChromeOS tem uma espécie de superpoder para identificar cabos USB-C: https://www.reddit.com/r/UsbCHardware/comments/1pyojjd/comme...
    Não sei se esse app para macOS usa o mesmo método, mas o link explica que há uma mensagem "Discover Identity" dentro do e-Marker do cabo que o ChromeOS consegue ler e exibir
    O hardware comum de Windows não consegue ler isso por limitações da BIOS, mas Chromebooks conseguem, e Macs provavelmente também

  • Bem legal, mas não sei por que tantos apps para Mac insistem em ficar residentes na barra de menus

    • Concordo. Principalmente algo assim, que parece ser usado só algumas vezes; imagino que a maioria das pessoas não tenha tantos cabos nem queira verificar isso regularmente
      O problema é que, numa tela de 14 polegadas, a área à direita do notch já está quase lotada, e nem tenho tanta coisa assim lá
    • Para mim tudo bem, mas entendo que para outras pessoas talvez não. Então adicionei um toggle "Show in menu bar" nas configurações
      Se desativar, o WhatCable roda como um app normal no Dock, com janela comum
    • Acesso com um clique é mais rápido do que digitar o nome do app no Finder. O Dock normalmente já está cheio e serve para outros tipos de app, enquanto o padrão de UI permite deixar a saída sempre visível
    • Pois é, minha barra de menus também já está lotada
  • Dá para ler o e-Marker também em dispositivos não Apple? Se funcionasse em Linux ou Windows, parece que seria realmente útil

  • Obrigado por criar isso. Sou deficiente visual, então usar aquele testador USB de 16 dólares vendido na Amazon para organizar minha gaveta de cabos não é uma opção
    Isso evita que eu precise comprar um SBC separado rodando Linux só para testar cabos

  • Será que dá para fazer isso no Linux também? Talvez com um wrapper do lsusb. Acabei de encontrar https://github.com/doug-gilbert/lsucpd, que aparentemente adiciona PD e outras informações

  • Gosto que isso seja um app nativo para Mac. Obrigado por criar e compartilhar

  • Tentei contribuir com a exibição em watts da corrente do adaptador no stats, mas meu PR foi fechado sem nenhum comentário. É algo parecido com este PR:
    https://github.com/exelban/stats/pull/3024

  • É uma funcionalidade que eu queria há bastante tempo. Tenho muitos cabos USB-C de origem desconhecida e sempre pensei que seria bom poder etiquetar o desempenho de cada um; agora isso ficou possível