7 ms·
Show HN: WhatCable, a tiny menu bar app for inspecting USB-C cables
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 https://github.com/darrylmorley/whatcable
- Alifatisk 5mo agoAny plans to support installations through Homebrew?
- sleepingNomad 5mo agoThat's added.
- n3storm 5mo agocan something like this be done for linux? maybe a wrapper for lsusb. I just found https://github.com/doug-gilbert/lsucpd https://github.com/doug-gilbert/lsucpd which adds PD and more.
- emaro 5mo agoPretty 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.
- bkummel 5mo agoDoesn'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.
- bkummel 5mo agoThere's an issue on Github for this now: https://github.com/darrylmorley/whatcable/issues/2 https://github.com/darrylmorley/whatcable/issues/2
- avidiax 5mo agoWontfix for Intel Macbooks: https://github.com/darrylmorley/whatcable/issues/12 https://github.com/darrylmorley/whatcable/issues/12 Seems the Intel southbridge isn't known to expose the needed info.
- sleepingNomad 5mo agoHi, should be fixed now.
- codepoet80 5mo agoNot for me! Intel Mac Pro 7,1, Sequoia 15.7.3, running v0.4.7
- aquir 5mo agoGood 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!
- justusthane 5mo agoI 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.
- regularfry 5mo agoIt'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...
- justusthane 5mo agoIt'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.
- nhecker 5mo agoThe 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.
- jrmg 5mo agoWhat does it mean to be ‘upside down’ if the connector handles both orientations?
- kmmbvnr_ 5mo agoCould it be just a console utility?
- captainbland 5mo agoYeah 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
- piskov 5mo ago> I don't like the idea of it taking up menu bar space You know you can close it? :-)
- captainbland 5mo agoI will 100% ADHD it left open and it will sit there making it more cluttered than it needs to be
- bichiliad 5mo agoYou might like Ice: https://github.com/jordanbaird/Ice https://github.com/jordanbaird/Ice
- wlonkly 5mo agoSadly Ice is no longer maintained, but the fork Thaw[1] is active: https://github.com/stonerl/Thaw https://github.com/stonerl/Thaw
- sleepingNomad 5mo agoI'll look into this.
- hallegbg 5mo agoNice!
- brk 5mo ago14 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.
- bkummel 5mo agoThere's an issue on Github for this now: https://github.com/darrylmorley/whatcable/issues/2 https://github.com/darrylmorley/whatcable/issues/2
- wallst07 5mo ago...And claude fixed it already https://github.com/darrylmorley/whatcable/commit/7a3ad1363aea1adbd9b6b21f679edce18a2098bf https://github.com/darrylmorley/whatcable/commit/7a3ad1363ae...
- suyavuz 5mo ago[dead]
- ulfw 5mo agoThe '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
- AndroTux 5mo agoEveryone knows you have to flip the USB cable twice before it’s no longer upside down.
- fuzzylightbulb 5mo agousb superposition. my favorite of the classic phenomena
- BiteCode_dev 5mo agoTangential, 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.
- deleted 5mo ago[deleted]
- aphroz 5mo agoYou mean LTT ?
- smusamashah 5mo agoWe type two capital LLs a lot these days.
- xandrius 5mo agoLoL
- BiteCode_dev 5mo agoyes thx
- pzmarzly 5mo agoTIL, 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-type-c-to-c https://global.lttstore.com/products/ltt-truespec-cable-usb-...
- barbazoo 5mo agoI'll only buy them if they have gold connectors, those are the fastest. /s
- ricardobeat 5mo agoI 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?
- Neywiny 5mo agoI 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
- avidiax 5mo agoThe 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.
- thenthenthen 5mo agoThis would be super to have! I do a lot of software defined radio work and the quality of USB (C) cables is pretty much a wild west. I needed some for a workshop and it was almost impossible to find a cable that didnt have crazy reflections and interference at all frequencies. I went through 6 different brands and vendors. In the end the cleanest signal came from an original Apple Type C cable (around 20usd). I am not sure if its because their shielding, differential pairs or signal integrity computation (iirc there is like a pretty beefy soc in the connector), or that I used it with an Apple Macbook. Some of the cables I found to perform badly were cut open, revealing missing shielding and none of them had twisted pairs.
- sagacity 5mo agoThis is pretty nice, but why do a lot of Mac apps insist on living in the menu bar?
- poisonborz 5mo agoMaking 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.
- UqWBcuFx6NV4r 5mo agoOK, thanks. We understand what a menu bar is. How is this conducive to the typical usage pattern of an app like this?
- awakeasleep 5mo agoAre 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.
- teh_klev 5mo agoWhy is it "combative"? Seems like a needlessly hyperbolic description of launching a desktop app.
- kranner 5mo agoFor 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/WhatCable/App.swift https://github.com/darrylmorley/whatcable/blob/main/Sources/... [1] https://x.com/fchollet/status/2045929951539707957 https://x.com/fchollet/status/2045929951539707957
- denkmoon 5mo agoI 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.
- consp 5mo agoThunderbolt 4 passive (over usb) is 0.8m in length, longer cables are active, up to two meters I think, so they do exist.
- deleted 5mo ago[deleted]
- wallst07 5mo agoHow do you define "thick" or "short" to a non-engineer/tech person? Relative to what exactly?
- zimpenfish 5mo agoGreat, 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.
- gedy 5mo agoI 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
- xandrius 5mo agoJust because it got pushed 2h ago it doesn't mean they didn't test it on their end.
- sleepingNomad 5mo agoI did indeed test it. Had the idea, and wanted to get it going.
- LordGrey 5mo agoAnd 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.
- literalAardvark 5mo agoThis isn't an air traffic control system though. Shipping early is an entirely valid dev strategy.
- sleepingNomad 5mo ago[dead]
- ziml77 5mo agoIt's so weird seeing comments praising that there's been so many releases in such a short time. That's not a good thing!
- theanonymousone 5mo agoI 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.
- krelas 5mo ago`system_profiler SPPowerDataType | grep "Wattage"`?
- theanonymousone 5mo agoYes, something like this. Thanks!
- nhecker 5mo agoPython script that Claude Code wrote and I tweaked for peeking at marked USB-C cables: https://github.com/nhecker/usb-e-marker 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/8e850773ff229724ce361967cc227d27 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/8e850773ff229724ce361967cc227d27#print-power-from-the-power-adapter-in-mw 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 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)
- thiagoperes 5mo agoI am definitely gonna contribute or fork to create an open leaderboard of cable brands and quality :D
- j16sdiz 5mo agoIt won't tell you the _quality_ It just tell you want the e-marker said.
- zimpenfish 5mo ago> It just tell you want the e-marker said. Which isn't helpful if the cable has no e-marker.
- rupx 5mo agoYep, the e-marker can effectively report whatever. You'd need proper hardware capable of testing bandwidth, power, noise, etc, which is prohibitively expensive.
- sleepingNomad 5mo agoThat's a great idea.
- thenthenthen 5mo agoI dont know how they do it, but the original Apple Type C cable is GREAT. I use it for software defined radio stuff, where your usb cable can start to act as an antenna and causing interference and reflections. I tested about 6 different brands and vendors and these gave the cleanest signal. Theyre also pretty pricy sadly. Not sure about the speeds and pd, but suspect it should be fine…
- mp0rta 5mo agoGreat project. It would be even better if it supported platforms other than Mac.
- sleepingNomad 5mo agoI'm working on a Windows version.
- mwexler 5mo agoLooking forward to seeing this one in action
- pimeys 5mo agoCool. 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...
- geordieboozer 5mo agoTo save me 10 mins and $2, is this posted to GitHub somewhere?
- rustyhancock 5mo agoAbsolutely 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.
- pimeys 5mo agoI feel like this is so lazy bothering maintainers for it is not great.
- marmarama 5mo agoNo 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.
- techwizrd 5mo agoI am happy to package it and port it for Gtk/GNOME today.
- darnir 5mo agoIf you end up doing that, please post it here. I'd be a very happy user of that extension
- bichiliad 5mo agoI love that this is a native mac app. Thanks for building this, and thanks for sharing.
- sleepingNomad 5mo agoThanks for taking a look, just pleased other people find it useful.
- randomeel 5mo agoCool ! Would love a brew installation as well
- sleepingNomad 5mo agoAdded
- jareds 5mo agoThanks 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.
- thomas_viaelo 5mo agoCurious whether you've tested the popover with VoiceOver yet. Menu bar SwiftUI apps usually nail the status item by default, but the popover content tends to be hit-or-miss depending on row layout. A stack of Text views walks cleanly, but custom-drawn rows often read as one blob. Worth confirming for jareds' use case.
- wffurr 5mo agoHow did Claude do at conforming to accessibility standards on macOS?
- jrochkind1 5mo agooh my god, this is going to change my life if it works.
- bhouston 5mo agoI 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 https://github.com/exelban/stats/pull/3024
- billyhoffman 5mo agoProps 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 https://github.com/darrylmorley/whatcable/releases?page=2
- AnonC 5mo agoQuite impressive, indeed. OP/sleepingNomad, can I have this on MacPorts, please? Thank you.
- sleepingNomad 5mo agoAdded to the list!
- sleepingNomad 5mo agoThanks! 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.
- fredcallagan 5mo agoSoftware development will never be as it was 3 years ago :D and that is great :D
- 9dev 5mo agoUsername doesn’t check out, that guy is anything but not sleeping
- khat_th 5mo agoClean 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.
- tonymet 5mo agoawesome utility . I purchased a $50 usb cable inspector on Ali express because usb-c compatibility is atrocious. there are dozens of protocols, (data, multiple PD, EPR, various wire gauges, various pinouts connected etc). USB c is really just a connector standard, but vendors sell the cables as if it’s a cable standard. It’s a failure of the USB standards group to establish conduductor, pinout, shielding and protocol standards for consumers to understand. There should be color and markings on USB C cables similar to resistors so you can immediately tell WTF the cable is capable of before and during use.
- archagon 5mo agoI'm curious how the SPI to do this (e.g. `IOPortTransportComponentCCUSBPDSOP`) was discovered. There was nary a mention of it anywhere prior to release. Even Claude has to latch on to something. Always wondered if there was some way to read emarker data through some buried framework, but wasn't sure how to find it. I don't think I can abide running vibe-coded software, but maybe I'll make a hand-coded fork now that the SPI is exposed. (Assuming it works correctly.)
- dhosek 5mo agoThis is something that I’ve wanted for quite a while. I have lots of mystery USB-C cables that it would be nice to be able to label with their capabilities. Now I can.
- gigatexal 5mo agovery, very cool thanks for making this.
- NelsonMinar 5mo agoThis reminds me ChromeOS has some USB-C cable identification superpowers: https://www.reddit.com/r/UsbCHardware/comments/1pyojjd/comment/nwknhii/ https://www.reddit.com/r/UsbCHardware/comments/1pyojjd/comme... Not sure if it's using the same thing this MacOS thing is doing. In the link the author explains that the cable e-Marker contains a "Discover Identity" message that you can read and display in ChromeOS. Most ordinary Windows hardware can't read it because of BIOS limitations, but Chromebooks can. I'm guessing Macs can too.
- andix 5mo agoIs it also possible to read the e-marker on non-Apple devices? Linux or windows? This would be so useful...
- thatxliner 5mo agois there a CLI?
- tuzemec 5mo agoAwesome! It handles my kinda complicated setup with docking station, USB and DisplayPort switches pretty well.
- thih9 5mo ago> Not on the App Store. App Sandbox blocks the IOKit reads we depend on. Interesting - do we know why that api is not allowed? I see no reason, especially if it would also require runtime permission from user.
- vladsiu 5mo ago[dead]
- deleted 5mo ago[deleted]
- thenakulchawla 5mo agoThis is a great app. I have a device for it that I bought maybe a year ago, but having it right on my laptop makes things a lot easier. Great work!!!
- repoinsider 5mo agoNice! This solves a real problem. I have a drawer full of identical USB-C cables and no idea which ones support Thunderbolt. The menu bar approach is perfect for this :) You don't need a full app, just a glance when you plug something in.
- patrickhener 5mo agoThis is really cool stuff. It is a pain to categorize cables and this really helps. Thanks for showing.
- WeatherClock 5mo ago[dead]
- sleepingNomad 5mo ago[flagged]