darrylmorley / whatcable
git clone https://github.com/darrylmorley/whatcable.git
v1.5.0 · 10d ago
🔥 on GitHub Trending today
macOS menu bar app that reports in plain English what each USB-C cable on your Mac can do and why charging may be slow.
Why you might care
Useful when a USB-C cable charges slowly or links at the wrong speed, since it reads cable e-marker and port data from IOKit and explains the bottleneck. It shows cable speed and current rating, plus USB-IF certification matched against a list bundled with the app, with no network lookups.
+8
stars, 24h · #4,259
+89
stars, 7 days · #2,432
+~330
stars, 30 days · #2,483
9.0k
★ total · +1% this week
274
forks · 35 open issues
Star history (as recorded here)
LanguageSwift
License—
Created2026-05-01 (5mo ago)
Last push10d ago
Watchers17
OwnerUser
Seen on GitHub Trending
- 2026-10-23 — #11 daily in swift · +17 ★
- 2026-10-23 — #5 weekly in swift · +89 ★
GitHub topics
apple-siliconhardware-infoiokitmac-appmacosmenubarmenubar-appswiftswiftuithunderboltusb-cusb-power-deliveryutility
Links
- GitHub: github.com/darrylmorley/whatcable
- Homepage: https://whatcable.uk
- Releases · Issues · Hacker News mentions
README excerpt
# WhatCable > **What can this USB-C cable actually do?** **Website: whatcable.uk** (overview, screenshots, and CLI docs) 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. Part of a family: **WhatBattery** for battery health and charging, **WhatPort** for every port at once. ## What it shows Per port, in plain English: - **At-a-glance headline:** Thunderbolt / USB4, USB device, Display connected, 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) - *"Battery full, not charging"* (plugged in, battery full, so the Mac isn't drawing power) - **Mid-session fault warnings:** if a cable develops trouble while it's plugged in (a power overcurrent, or the connection dropping and coming back), a banner appears on the port. It reads the port's own fault counters, so it catches faults that only show up once a cable is under load. - **Data-speed diagnostic:** a plain-English verdict on what's limiting the link, the Mac port, the cable, or the device. For example *"Cable is limiting data speed"*, *"Device runs at 10 Gbps, this is the fastest it supports, not a cable problem"*, or *"Running slower than expected"* when the link came up degraded. Shown inline, in the CLI, and in JSON. - **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 - **USB-IF certification:** cables that carry a certificate ID (XID) get a "USB-IF certified" line naming the manufacturer. The ID is read off the cable itself and matched against a list of USB-IF certifications bundled with the app, which is where the manufacturer name comes from. Nothing is looked up over the network. A cable advertising an ID that USB-IF doesn't publish gets a neutral "certified but unlisted" line instead. Certification is voluntary and Apple's own cables land there, so it's a fact about the ID, never a verdict on the cable. The raw XID is in the JSON output. - **Cable trust signals:** an orange card appears when the e-marker reports values that look unusual against the USB-PD spec, like a zero vendor ID, a reserved bit pattern in the speed / current / cable-latency fields, or a VID that isn't in USB-IF's published list. Wording is hedged on purpose: a flag means "this looks unusual," not "this cable is fa
Blurb generated by claude-haiku-5-5 today. Star deltas marked ~ are extrapolated from partial history.