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...
No need to bother maintainers, just package it up and upload it to the KDE store as a Plasma extension. Then it can appear for download in "Get New Widgets" in Plasma edit mode. Plenty of "lazy" widgets in there.
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.
It's May Day, which is a labour holiday everywhere except North America commemorating the Haymarket Affair when American police brutally repressed striking workers .
In North America we have Labor Day in September to distance it from the historical associations with actual organizing and police brutality.
Thanks! HN gave me great bug reports and feature requests. Claude helped me ship fast. 16 releases in 7 hours is a lot easier with a decent pair programmer.
Agreed, especially for something like this that might get used a handful of times (I’m assuming most people don’t have myriad cables or want to check them regularly?)
The problem of course is that on my 14” screen the area to the right of the notch is already close to full and I don’t even have that many things there…
It works for me, but I understand for others it might not. So, there's now a "Show in menu bar" toggle in Settings. Turn it off and WhatCable runs as a regular Dock app with a normal window instead.
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.
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.
> removing human cognitive friction is resulting in needless software complexity
This is kind of a hilarious statement just on the surface. Isn't removing burden from humans the whole purpose of software? How can you call the complexity "needless"?!
(the actual tweet seems to go into a bit more detail around being incentivized to find good abstractions)
Making it trivial to generate software is making people turn their brains off. They don't think through the details and accept the "default" from an LLM which has no concern for the user experience.
I think you're conflating the burden of creation with the burden of relevance, suitability, usability and usefulness of the created artifact. The more the person in charge is disengaged, the sloppier the output is likely to be.
Thanks for creating this. I'm blind so the $16 USB tester off amazon to sort through my drawer of cables is not an option. This will stop me from needing to buy a sbc just so I have something running Linux to test cables.
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.
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?
The tool can only tell you what the cable says. Detecting the gauge and composition of the wires in the cable is either destructive or requires temperature probes.
Detecting whether the signal characteristics are close enough to in-spec or not requires a speed test, perhaps, but that also doesn't necessarily mean the cable is the problem if such a test failed.
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:
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.
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
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!
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.
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.
The terminating device(s) are the ones that do the flipping, not the cable. You can take a cable that works either way between two high-end device, and then connect it to at least one low-end device and it will fail to connect for one of the two orientations.
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.
For your last point, you're probably looking for something like `ioreg -raw0 -c AppleSmartBattery | plutil -extract 0.PowerTelemetryData.SystemPowerIn raw -` (The source for that last command is from the above gist: https://gist.github.com/nhecker/8e850773ff229724ce361967cc22... ) Or maybe `pmset -g ac | head -n3` is helpful, too. HTH.
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.
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
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
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.
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.
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...
To save me 10 mins and $2, is this posted to GitHub somewhere?
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.
I am happy to package it and port it for Gtk/GNOME today.
I feel like this is so lazy bothering maintainers for it is not great.
No need to bother maintainers, just package it up and upload it to the KDE store as a Plasma extension. Then it can appear for download in "Get New Widgets" in Plasma edit mode. Plenty of "lazy" widgets in there.
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.
> It's 1st of May here
Is that date significant somewhere? It was an nice sunny Friday for me.
It's May Day, which is a labour holiday everywhere except North America commemorating the Haymarket Affair when American police brutally repressed striking workers .
In North America we have Labor Day in September to distance it from the historical associations with actual organizing and police brutality.
May Day - like labour day in Canada/USA... but on the first of May
Props to @sleepingNomad here, who has done 16 releases in the last 7 hours, incorporating feedback from HN on the fly!
* Don't like menubar apps? you you can run it as a normal app
* Don't like GUIs? Now you can run it on the command line
Just look at that Changelog:
https://github.com/darrylmorley/whatcable/releases?page=2
Thanks! HN gave me great bug reports and feature requests. Claude helped me ship fast. 16 releases in 7 hours is a lot easier with a decent pair programmer.
Quite impressive, indeed. OP/sleepingNomad, can I have this on MacPorts, please? Thank you.
Added to the list!
This is pretty nice, but why do a lot of Mac apps insist on living in the menu bar?
Agreed, especially for something like this that might get used a handful of times (I’m assuming most people don’t have myriad cables or want to check them regularly?)
The problem of course is that on my 14” screen the area to the right of the notch is already close to full and I don’t even have that many things there…
It works for me, but I understand for others it might not. So, there's now a "Show in menu bar" toggle in Settings. Turn it off and WhatCable runs as a regular Dock app with a normal window instead.
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.
And ‘every’ Mac developer thinks people will want to run their tool all the time.
For this kind of read-only tool, I doubt that’s the case. A regular application probably serves most users better.
Also, if you want users to have the option of permanently displaying this kind of info, a desktop widget (https://developer.apple.com/documentation/widgetkit) may be a better option than a menu bar item.
Exactly, this should just be a regular app with an optional menu bar option for those who want to switch it on.
I like this idea.
> Dock is usually full
My menu bar is also full and, unlike the Dock, I can’t resize it to fit more.
You can put it in a secondary onclick taskbar with Ice (similarly to Windows)
Just a heads up Ice is abandoned and broken on upcoming versions of MacOS. I still need to look into an alternative
https://www.macrumors.com/2024/06/06/alternatives-bartender-...
OK, thanks. We understand what a menu bar is.
How is this conducive to the typical usage pattern of an app like this?
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
> removing human cognitive friction is resulting in needless software complexity
This is kind of a hilarious statement just on the surface. Isn't removing burden from humans the whole purpose of software? How can you call the complexity "needless"?!
(the actual tweet seems to go into a bit more detail around being incentivized to find good abstractions)
Making it trivial to generate software is making people turn their brains off. They don't think through the details and accept the "default" from an LLM which has no concern for the user experience.
I think you're conflating the burden of creation with the burden of relevance, suitability, usability and usefulness of the created artifact. The more the person in charge is disengaged, the sloppier the output is likely to be.
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.
Why is it "combative"? Seems like a needlessly hyperbolic description of launching a desktop app.
oh no you're right, my menu bar is full already.
I tried to contribute back adapter current Wattage display to stats, but I got my PR closed without comment. It is similar to this:
https://github.com/exelban/stats/pull/3024
I love that this is a native mac app. Thanks for building this, and thanks for sharing.
Thanks for taking a look, just pleased other people find it useful.
Thanks for creating this. I'm blind so the $16 USB tester off amazon to sort through my drawer of cables is not an option. This will stop me from needing to buy a sbc just so I have something running Linux to test cables.
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.
See:
https://news.ycombinator.com/item?id=47973621
thanks!
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.
There's an issue on Github for this now: https://github.com/darrylmorley/whatcable/issues/2
Wontfix for Intel Macbooks: https://github.com/darrylmorley/whatcable/issues/12
Seems the Intel southbridge isn't known to expose the needed info.
Hi, should be fixed now.
Not for me! Intel Mac Pro 7,1, Sequoia 15.7.3, running v0.4.7
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?
The tool can only tell you what the cable says. Detecting the gauge and composition of the wires in the cable is either destructive or requires temperature probes.
Detecting whether the signal characteristics are close enough to in-spec or not requires a speed test, perhaps, but that also doesn't necessarily mean the cable is the problem if such a test failed.
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
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.
Could it be just a console utility?
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
> I don't like the idea of it taking up menu bar space
You know you can close it? :-)
I will 100% ADHD it left open and it will sit there making it more cluttered than it needs to be
You might like Ice: https://github.com/jordanbaird/Ice
I'll look into this.
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!
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.
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...
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.
The terminating device(s) are the ones that do the flipping, not the cable. You can take a cable that works either way between two high-end device, and then connect it to at least one low-end device and it will fail to connect for one of the two orientations.
What does it mean to be ‘upside down’ if the connector handles both orientations?
USB2 wires are only on one side https://en.wikipedia.org/wiki/USB-C#cite_note-dp2.0-receptac...
This has been fixed now, apologies.
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.
There's an issue on Github for this now: https://github.com/darrylmorley/whatcable/issues/2
...And claude fixed it already https://github.com/darrylmorley/whatcable/commit/7a3ad1363ae...
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.
Python script that Claude Code wrote and I tweaked for peeking at marked USB-C cables: https://github.com/nhecker/usb-e-marker
Gist of random (human-written) power-related commands to peek at random power info: https://gist.github.com/nhecker/8e850773ff229724ce361967cc22...
For your last point, you're probably looking for something like `ioreg -raw0 -c AppleSmartBattery | plutil -extract 0.PowerTelemetryData.SystemPowerIn raw -` (The source for that last command is from the above gist: https://gist.github.com/nhecker/8e850773ff229724ce361967cc22... ) Or maybe `pmset -g ac | head -n3` is helpful, too. HTH.
_nick
(edit1: formatting)
(edit2: there's also https://news.ycombinator.com/item?id=47677607 which seems pretty cool but is quite complex, and might be overkill)
(edit3: different method for printing adapter wattage)
`system_profiler SPPowerDataType | grep "Wattage"`?
Yes, something like this. Thanks!
Clean execution. The "tiny menu bar app" framing is exactly where I'm trying to land my own scope right now.
What was the hardest thing you cut to keep it tiny? I keep adding "one more useful thing" and have to talk myself down.
I am definitely gonna contribute or fork to create an open leaderboard of cable brands and quality :D
It won't tell you the _quality_
It just tell you want the e-marker said.
Yep, the e-marker can effectively report whatever.
You'd need proper hardware capable of testing bandwidth, power, noise, etc, which is prohibitively expensive.
> It just tell you want the e-marker said.
Which isn't helpful if the cable has no e-marker.
That's a great idea.
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.
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-...
You mean LTT ?
We type two capital LLs a lot these days.
LoL
yes thx
I'll only buy them if they have gold connectors, those are the fastest. /s
Cool ! Would love a brew installation as well
Added
Any plans to support installations through Homebrew?
That's added.
oh my god, this is going to change my life if it works.
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
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.
This isn't an air traffic control system though.
Shipping early is an entirely valid dev strategy.
Just because it got pushed 2h ago it doesn't mean they didn't test it on their end.
I did indeed test it. Had the idea, and wanted to get it going.
Great project. It would be even better if it supported platforms other than Mac.
I'm working on a Windows version.
Looking forward to seeing this one in action
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
Everyone knows you have to flip the USB cable twice before it’s no longer upside down.
Nice!
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.
How do you define "thick" or "short" to a non-engineer/tech person? Relative to what exactly?
Are you talking about cables?
Thunderbolt 4 passive (over usb) is 0.8m in length, longer cables are active, up to two meters I think, so they do exist.
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.