惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

阮一峰的网络日志
阮一峰的网络日志
Blog — PlanetScale
Blog — PlanetScale
B
Blog RSS Feed
L
LangChain Blog
Jina AI
Jina AI
爱范儿
爱范儿
C
Check Point Blog
云风的 BLOG
云风的 BLOG
Last Week in AI
Last Week in AI
月光博客
月光博客
GbyAI
GbyAI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Stack Overflow Blog
Stack Overflow Blog
V
V2EX
A
About on SuperTechFans
有赞技术团队
有赞技术团队
Microsoft Azure Blog
Microsoft Azure Blog
The GitHub Blog
The GitHub Blog
博客园 - Franky
Apple Machine Learning Research
Apple Machine Learning Research
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google DeepMind News
Google DeepMind News
博客园 - 三生石上(FineUI控件)
S
SegmentFault 最新的问题

Hacker News: Best

madhadron - The seven programming ur-languages GitHub - smol-machines/smolvm: Tool to build & run portable, lightweight, self-contained virtual machines. I Measured Claude 4.7's New Tokenizer. Here's What It Costs You. Introducing Claude Design by Anthropic Labs It Is Time to Ban the Sale of Precise Geolocation The creative software industry has declared war on Adobe Isaac Asimov: The Last Question Newly unsealed records reveal Amazon’s price-fixing tactics, California attorney general claims Clojure - Documentary Android CLI and skills: Build Android apps 3x faster using any agent Qwen3.6-35B-A3B on my laptop drew me a better pelican than Claude Opus 4.7 Codex:全能型助手 Introducing Claude Opus 4.7 Qwen Studio The Future of Everything is Lies, I Guess: Where Do We Go From Here? Virginia Bans Sale of Geolocation Data YouTube now lets you turn off Shorts Burgers | マクドナルド公式 ChatGPT for Excel Ask HN: Who is using OpenClaw? Live Nation illegally monopolized ticketing market, jury finds Google Broke Its Promise to Me. Now ICE Has My Data. Open Source Isn't Dead. The Future of Everything is Lies, I Guess: New Jobs Unexpected €54k billing spike in 13 hours: Firebase browser key without API restrictions used for Gemini requests IPv6 – Google Your Backpack Got Worse On Purpose Good sleep, good learning, good life Fixing a 20-year-old bug in Enlightenment E16. Does Gas Town 'steal' usage from users' LLM credits & paid services to improve itself?
GitHub - darrylmorley/whatcable: macOS menu bar app that ...
sleepingNoma · 2026-05-01 · via Hacker News: Best

What can this USB-C cable actually do?

A small macOS menu bar app that tells you, in plain English, what each USB-C cable plugged into your Mac can actually do, and why your Mac might be charging slowly.

USB-C hides a lot under one connector. Anything from a USB 2.0 charge-only cable to a 240W / 40 Gbps Thunderbolt 4 cable, all looking identical in your drawer. macOS already exposes the relevant info via IOKit; WhatCable surfaces it as a friendly menu bar popover.

Latest release Platform License: MIT

WhatCable popover

What it shows

Per port, in plain English:

  • At-a-glance headline — Thunderbolt / USB4, USB device, Charging only, Slow USB / charge-only cable, Nothing connected
  • Charging diagnostic — when something's plugged in, a banner identifies the bottleneck:
    • "Cable is limiting charging speed" (cable rated below the charger)
    • "Charging at 30W (charger can do up to 96W)" (Mac is asking for less, e.g. battery near full)
    • "Charging well at 96W" (everything matches)
  • Cable e-marker info — the cable's actual speed (USB 2.0, 5 / 10 / 20 / 40 / 80 Gbps), current rating (3 A / 5 A → up to 60W / 100W / 240W), and the chip's vendor
  • Charger PDO list — every voltage profile the charger advertises (5V / 9V / 12V / 15V / 20V…) with the currently negotiated profile highlighted in real time
  • Connected device identity — vendor name and product type, decoded from the PD Discover Identity response
  • Active transports — USB 2 / USB 3 / Thunderbolt / DisplayPort
  • "Show technical details" toggle revealing the underlying IOKit properties for engineers

Right-click the menu bar icon for Refresh, a Keep window open toggle (handy for screenshots and demos), About, and Quit.

Install

Download the latest WhatCable.zip from the Releases page, unzip, and drag WhatCable.app to /Applications.

The app is universal (Apple silicon + Intel), signed with a Developer ID, and notarised by Apple — no Gatekeeper warnings.

Requires macOS 14 (Sonoma) or later.

How it works

WhatCable reads three families of IOKit services. No entitlements, no private APIs, no helper daemons:

Service What it gives us
AppleHPMInterfaceType10/11 Per-port state: connection, transports, plug orientation, e-marker presence
IOPortFeaturePowerSource Full PDO list from the connected source, with the live "winning" PDO
IOPortTransportComponentCCUSBPDSOP PD Discover Identity VDOs for SOP (port partner) and SOP' (cable e-marker)

Cable speed and power decoding follow the USB Power Delivery 3.x spec.

Build from source

swift run WhatCable

Requires Swift 5.9 (Xcode 15+).

Build a distributable .app

./scripts/build-app.sh

Produces a universal dist/WhatCable.app (arm64 + x86_64) and dist/WhatCable.zip.

Modes:

Configuration Result
No .env Ad-hoc signed. Works locally; Gatekeeper warns on other Macs.
.env with DEVELOPER_ID Developer ID signed + hardened runtime.
.env with DEVELOPER_ID + NOTARY_PROFILE Full notarisation + stapled ticket. Gatekeeper-clean for everyone.

One-time setup for full notarisation:

# 1. Find your signing identity
security find-identity -v -p codesigning

# 2. Store notarytool credentials in the keychain
xcrun notarytool store-credentials "WhatCable-notary" \
    --apple-id "you@example.com" \
    --team-id "ABCDE12345" \
    --password "<app-specific-password>"   # generate at appleid.apple.com

# 3. Create your .env from the template
cp .env.example .env
# ...and fill in DEVELOPER_ID

Caveats

  • Cable e-marker info only appears for cables that carry one. Most USB-C cables under 60 W are unmarked. Any Thunderbolt / USB4 cable, any 5 A / 100 W+ cable, and most quality data cables will be e-marked.
  • PD spec coverage: the decoder targets PD 3.0 / 3.1. PD 3.2 EPR variants may need tweaks once we see real data.
  • Vendor name lookup is bundled but not exhaustive — common cable, charger, hub, dock, and storage vendors are recognised; others fall back to the hex VID.
  • macOS only. iOS sandboxing makes USB-C e-marker access much harder.
  • Not on the App Store. App Sandbox blocks the IOKit reads we depend on.

Contributing

Issues and PRs welcome. The code is small and tries to stay readable — start at Sources/CableTest/ContentView.swift for the UI, PortSummary.swift for the plain-English logic, or PDVDO.swift for the bit-twiddling.

Credits

Built by Darryl Morley.

Inspired by every time someone has asked "is this cable any good?".