Show HN: WhatCable, a tiny menu bar app for inspecting USB-C cables
166 points
3 hours ago
| 20 comments
| github.com
| HN
USB-C cables can be a mess. One cable charges at 5W, another does 100W and Thunderbolt 4, and they look identical in the drawer.

WhatCable sits in your menu bar and reads the cable data your Mac already has access to. Plug in a cable and it tells you in plain English what it can actually do: charging wattage, data speed, display support, Thunderbolt, etc.

Built in Swift/SwiftUI. Open source, free, no tracking.

GitHub: https://github.com/darrylmorley/whatcable

pimeys
57 minutes ago
[-]
Cool. Just want to chime in that I wanted to see how quickly GPT-5.5 can turn this into a KDE Plasma 6 Plasmoid. Took about 10 minutes and two dollars, and now I have a nice QML app showing the same information in my taskbar.

Just wanted to say this because I feel it's really crazy that I can just do this today...

reply
geordieboozer
44 minutes ago
[-]
To save me 10 mins and $2, is this posted to GitHub somewhere?
reply
rustyhancock
38 minutes ago
[-]
Absolutely this is worth packaging for KDE.

Although I imagine if you don't have the motivation to make it in the first place, you likely don't have the motivation to package it.

reply
pimeys
29 minutes ago
[-]
It's 1st of May here, so probably not doing it today. Looking into it a bit more when I get back from the parties. but it's basically just three files: QML for the UI, some python code to parse /proc data and a metadata file.
reply
sagacity
1 hour ago
[-]
This is pretty nice, but why do a lot of Mac apps insist on living in the menu bar?
reply
poisonborz
1 hour ago
[-]
Making 1 click to access is faster than typing the app name in finder. Dock is usually full and used for different type of apps. Makes also constantly visible output possible with standard ui patterns.
reply
UqWBcuFx6NV4r
1 hour ago
[-]
OK, thanks. We understand what a menu bar is.

How is this conducive to the typical usage pattern of an app like this?

reply
kranner
46 minutes ago
[-]
For some reason the app supports a separate standalone window mode as well [0]. It's not clear why the developer took the trouble to support two different modes when the menubar mode doesn't seem to add anything (like a live-updating icon for throughput).

Well, I can think of one reason why it wasn't that much more trouble. François Chollet had a nice tweet [1] on why removing human cognitive friction is resulting in needless software complexity.

[0] https://github.com/darrylmorley/whatcable/blob/main/Sources/...

[1] https://x.com/fchollet/status/2045929951539707957

reply
awakeasleep
51 minutes ago
[-]
Are you saying you wish this was a desktop app and you would just open it occasionally when curious?

If so, it feels like a needlessly indirect and combative way to go about it.

reply
bichiliad
46 minutes ago
[-]
I love that this is a native mac app. Thanks for building this, and thanks for sharing.
reply
sleepingNomad
3 minutes ago
[-]
Thanks for taking a look, just pleased other people find it useful.
reply
bkummel
2 hours ago
[-]
Doesn't work for me. Says "No USB-C ports detected", although I'm pretty sure my monitor is connected via USB-C, and the monitor also has a built-in USB hub where my USB keyboard is connected to.
reply
sleepingNomad
3 minutes ago
[-]
Hi, should be fixed now.
reply
bkummel
2 hours ago
[-]
There's an issue on Github for this now: https://github.com/darrylmorley/whatcable/issues/2
reply
n3storm
2 hours ago
[-]
can something like this be done for linux? maybe a wrapper for lsusb. I just found https://github.com/doug-gilbert/lsucpd which adds PD and more.
reply
WillAdams
37 minutes ago
[-]
reply
theanonymousone
1 hour ago
[-]
I would like to ask an LLM to rewrite it as Python CLI script. Is it even possible, or some Swift-only functionality is necessary?

P.S. Some time ago I learnt through HN of a one-line command in macOS which revealed the power (Wattage) of the connected charger. Can't find it now, but it was very useful.

reply
krelas
1 hour ago
[-]
`system_profiler SPPowerDataType | grep "Wattage"`?
reply
ricardobeat
1 hour ago
[-]
I remember seeing a recent analysis where the vast majority of cables from Amazon misreported their capabilities. Is this tool going to be able to catch those, or blindly report what the chip advertises?
reply
Neywiny
1 hour ago
[-]
I think for real cables the delta could also be explained by damage or just a bad plug-in attempt, so even if you're not trying to detect counterfeit cables it could be useful to know:

1. What does the host support

2. What does the cable support

3. What does the device support

4. What actually got negotiated

reply
emaro
2 hours ago
[-]
Pretty cool. What I don't understand is why both my USB@1 and USB@2 show the same connected devices. I'd expect to only see the respective devices. USB@1 is my USB-hub monitor, the other one is connected to my phone. Both show keyboard, etc. plus my phone as connected devices.
reply
kmmbvnr_
2 hours ago
[-]
Could it be just a console utility?
reply
captainbland
2 hours ago
[-]
Yeah I like the sound of the functionality but I don't like the idea of it taking up menu bar space. Console utility would be good or even a gui that can be quickly launched through spotlight
reply
bichiliad
46 minutes ago
[-]
reply
piskov
51 minutes ago
[-]
> I don't like the idea of it taking up menu bar space

You know you can close it? :-)

reply
aquir
2 hours ago
[-]
Good stuff, but it's telling me that my USB-C Thunderbolt cable has been plugged in upside down but the connector handled this. I was not aware that you can plug in something into USB-C upside down!
reply
jrmg
5 minutes ago
[-]
What does it mean to be ‘upside down’ if the connector handles both orientations?
reply
justusthane
2 hours ago
[-]
I wasn't either (insomuch as I had never thought about it), but it makes sense if you think about it for a second. If you have one end plugged in one way, and the other end plugged in the other way, each individual wire is flipped from where it should be. The fact that you _can_ plug it in either way means that the device on one end needs to be capable of recognizing that and logically reversing it. Same as automatic crossover in Ethernet.

That's all the program is telling you. It doesn't matter that it's backwards, but technically it is.

reply
regularfry
1 hour ago
[-]
It's not always the case that the cable will correctly fix it. I think (hope?) any that any which didn't would be out of spec, but they exist...
reply
justusthane
4 minutes ago
[-]
It's the cable that is supposed to reverse itself and not the device? I'm not entirely sure I buy that - seems like it would add a lot of unnecessary complexity to every cable.
reply
brk
2 hours ago
[-]
14 Inch 2021 MBPro / M1 Pro chip / Sonoma 14.5

WhatCable says "No USB-C Ports Detected".

System info clearly shows my iPhone attached to USB 3.1 Bus.

reply
bkummel
2 hours ago
[-]
There's an issue on Github for this now: https://github.com/darrylmorley/whatcable/issues/2
reply
wallst07
1 hour ago
[-]
reply
randomeel
37 minutes ago
[-]
Cool ! Would love a brew installation as well
reply
mp0rta
1 hour ago
[-]
Great project. It would be even better if it supported platforms other than Mac.
reply
thiagoperes
1 hour ago
[-]
I am definitely gonna contribute or fork to create an open leaderboard of cable brands and quality :D
reply
j16sdiz
1 hour ago
[-]
It won't tell you the _quality_

It just tell you want the e-marker said.

reply
BiteCode_dev
2 hours ago
[-]
Tangential, but LLT recently came out with their own lineup of USB-C cables guaranteed to be up to spec. And they have the main specs printed on each cable end, so you know what you grab.

That should be mandatory.

reply
pzmarzly
29 minutes ago
[-]
TIL, and they look great indeed. Shame they are all sold out except for <= 0.3m lengths. https://global.lttstore.com/products/ltt-truespec-cable-usb-...
reply
aphroz
2 hours ago
[-]
You mean LTT ?
reply
smusamashah
1 hour ago
[-]
We type two capital LLs a lot these days.
reply
xandrius
1 hour ago
[-]
LoL
reply
ulfw
2 hours ago
[-]
The 'plugged upside down' is weird for a USB-cable. Especially as that doesn't work. I tried plugging it 'the other way around' and it showed the same 'upside down' warning
reply
AndroTux
1 hour ago
[-]
Everyone knows you have to flip the USB cable twice before it’s no longer upside down.
reply
Alifatisk
1 hour ago
[-]
Any plans to support installations through Homebrew?
reply
gedy
1 hour ago
[-]
I like the idea and thanks for sharing, but I do think folks who vibe code or use Claude should take their time using, testing, and improving app before rushing to share. This was pushed/deved like 2 hours ago
reply
LordGrey
1 hour ago
[-]
And it's been updated, with full releases, many times since.

I like this tool, but I agree that it was rushed and it is still being rushed. I urge the developer to slow down and get it right.

reply
literalAardvark
24 minutes ago
[-]
This isn't an air traffic control system though.

Shipping early is an entirely valid dev strategy.

reply
xandrius
1 hour ago
[-]
Just because it got pushed 2h ago it doesn't mean they didn't test it on their end.
reply
hallegbg
2 hours ago
[-]
Nice!
reply
denkmoon
1 hour ago
[-]
I get that the connectors are identical but I find it odd that people find it so challenging. Thunderbolt is the thick and short cable. If it's not thick it's not gonna work well and if it's over a metre it's not gonna work well. cf my pile of thin long "basic" usb c cables.
reply
consp
1 hour ago
[-]
Thunderbolt 4 passive (over usb) is 0.8m in length, longer cables are active, up to two meters I think, so they do exist.
reply
wallst07
1 hour ago
[-]
How do you define "thick" or "short" to a non-engineer/tech person? Relative to what exactly?
reply
zimpenfish
49 minutes ago
[-]
Great, and what about non-Thunderbolt cables? How do I distinguish between power only, USB 2, USB 2+PD, and USB 3.2 cables? I've got a whole pile of cables that, without my Treedix tester, are indistinguishable re: functionality and support.
reply