# WhatCable: Reading a USB-C Cable's Real Capabilities from the macOS Menu Bar

> WhatCable is a macOS menu bar app that decodes the e-marker and PD negotiation data macOS already exposes through IOKit, then explains in plain English why a cable or charger is holding you back. It is macOS only, and the README says nothing about Windows, Android or Linux.

**darrylmorley/whatcable** — macOS menu bar app that tells you, in plain English, what each USB-C cable plugged into your Mac can actually do

- Repository: https://github.com/darrylmorley/whatcable
- Website: https://whatcable.uk
- Stars: 8,790 · Forks: 268
- Language: Swift
- License: NOASSERTION
- Published: 2026-09-17 · Updated: 2026-09-17 · Language: en
- Canonical page: https://hysenlabs.com/projects/darrylmorley-whatcable

## The drawer full of identical USB-C cables problem

A USB-C cable is a shape, not a specification. The same connector covers a charge-only USB 2.0 lead and a 240W, 40 Gbps Thunderbolt 4 cable, and nothing on the outside tells you which one you picked up. macOS already knows the answer: the e-marker chip inside the cable reports its speed and current rating, the charger advertises its voltage profiles, and the port's own counters record faults. None of that reaches a normal user.

WhatCable is a menu bar app that puts that data in a popover and writes a sentence about it. The README frames the audience around one question people actually ask: why is my Mac charging slowly. That is a narrower and more useful target than a general system-information tool. It is for people who swap cables between a dock, a charger and a monitor and want to know which part of the chain is the weak link, not for people who want a full hardware inventory.

## How WhatCable reads a cable: e-marker, PDOs and the port's fault counters

The mechanism is IOKit. macOS exposes USB-C port state, and the README states plainly that the relevant information is already available there; WhatCable reads it and renders it. Three data sources feed the verdict.

The first is the cable's e-marker, which reports the cable's rated speed (USB 2.0, 5, 10, 20, 40 or 80 Gbps), its current rating (3 A, or 5 A covering 60W, 100W and 240W), and the chip vendor. The second is the charger's PDO list: every voltage profile the charger advertises, with the currently negotiated profile highlighted live. The third is the port's own fault counters, which is what makes the mid-session warnings possible. The README notes those counters catch faults that only appear once a cable is under load, such as a power overcurrent or a connection that drops and returns.

The app then compares the three and names a bottleneck. Charging verdicts include a cable rated below the charger, a Mac asking for less than the charger can supply, and a battery that is full so no power is drawn. The data-speed side gets an equivalent verdict, and the README is careful to distinguish a cable limit from a device that simply tops out at 10 Gbps. That distinction is the whole point: a slow link is not automatically a bad cable.

## Installing WhatCable and reading your first port

The README points to whatcable.uk for the overview, screenshots and CLI docs, and the repository ships a Homebrew cask bump script (scripts/bump-cask.sh) that updates a tap named homebrew-whatcable, so a cask exists. The README does not print the install command itself, so check the site or the tap before typing anything. The platform badge in the README states macOS 14 or later.

The build path in the repository is Xcode and Swift Package Manager. The .env.example file is the clearest description of what a local build requires, since it is sourced by the build scripts:

```bash
security find-identity -v -p codesigning
xcrun notarytool store-credentials "WhatCable-notary" \
  --apple-id "you@example.com" \
  --team-id "ABCDE12345" \
  --password "<app-specific-password>"
```

Those two commands come from the comments in .env.example. The first lists your Developer ID Application certificate so you can copy its exact string into DEVELOPER_ID. The second creates the notarytool keychain profile that NOTARY_PROFILE defaults to, named WhatCable-notary. You only need either of them if you are building and notarising the app yourself; a downloaded release does not require them.

The repository also carries a separate Eleventy site under src/ and docs/, built with bun via package.json scripts. That is the website, not the app:

```bash
bun run site:serve
```

The script runs eleventy --serve and builds src/ into docs/. If you only want the app, ignore it. Once running, the first real use is clicking the menu bar icon with a cable plugged in, reading the headline for each port, and then holding Option while clicking to reveal the raw IOKit properties behind the plain-English verdict.

## Where the plain-English verdict stops being reliable

The trust signals are the most hedged part of the app, and the README says so. An orange card appears when the e-marker reports values that look unusual against the USB-PD spec: a zero vendor ID, a reserved bit pattern in the speed, current or cable-latency fields, or a VID that is not in USB-IF's published list. The wording is deliberately soft because a flag means the values look unusual, not that the cable is counterfeit. Anyone reading that card as a verdict is misusing it.

The USB-IF certification line has the same shape. The certificate ID is read off the cable and matched against a list bundled with the app, with no network lookup. A cable advertising an ID USB-IF does not publish gets a neutral "certified but unlisted" line. Apple's own cables land in that bucket, because certification is voluntary. So a missing certification line tells you nothing about quality.

There is also a compatibility switch worth knowing about before you blame the app. Settings offers a skip deep USB probing option, described as a compatibility switch for the few KVM switches and hubs that misbehave when WhatCable reads capability info from the devices behind them. That is an admission that probing can disturb some hardware. If a dock acts strangely after install, that toggle is the first thing to try.

Finally, hubs are hidden by default. The README calls them plumbing and says they make up about half of a typical list. Devices behind a hidden hub are labelled "via N hubs" so nothing vanishes silently, and a Show N hubs control restores them per port. The CLI prints everything regardless. That is a reasonable default, but it means the popover and the CLI do not show the same picture.

## WhatCable Pro and the free build

The README's badge lists WhatCable Pro at £9.99, and the Pro screens are Power Monitor, Negotiation Diagnostics, Display Diagnostics and Saved Cables. They sit behind the right-click menu alongside Licence. Everything described in the What it shows list, including the charging diagnostic, the data-speed verdict, e-marker details, the charger PDO list, Thunderbolt fabric and the desktop widgets, is written as part of the app rather than the Pro tier. So the free build answers the original question; Pro adds monitoring over time and saved cable records.

Whether that is worth £9.99 depends on whether you want history. A single popover answers what is happening now. Power Monitor and Saved Cables are about what happened before and which cable is which, which is a different job.

## Alternatives: system_profiler, WhatPort, and the platforms WhatCable does not cover

The closest free alternative is already on your Mac. system_profiler SPUSBDataType and the Thunderbolt section of System Information show the connected tree, and the README's Option-click behaviour exists precisely because engineers want that raw IOKit view. WhatCable's difference is interpretation: it compares cable rating against charger capability against negotiated profile and writes a sentence about which one is limiting. system_profiler gives you the numbers and leaves the comparison to you.

The README names a sibling, WhatPort, for every port at once, and WhatBattery for battery health and charging. WhatPort is the broader view; WhatCable is the per-cable diagnosis. If your question is which port on the machine is free, WhatPort is the better fit.

On other platforms there is no answer here. The related searches include what cable windows, what cable android, what cable linux and WhatCable PC, and the repository contains a macOS menu bar app written in Swift with SwiftUI, IOKit and WidgetKit. There is no Windows, Android or Linux build in the repository, and the README does not promise one. Anyone searching for a Windows or Android equivalent is looking for something this project does not ship.

## Maintenance, licensing and the cost of staying current

The last push to the repository was on 2026-09-17, and the repository is not archived. The most recent releases are betas on the 1.5.0 line, with v1.5.0-beta.8 published on 2026-08-31. Beta releases at that cadence mean the 1.5.0 line is still moving, and the beta.6 release notes mention notifications, card settling and e-marker wording, which are UI and wording fixes rather than new data sources.

The licence situation needs care. The README badge says MIT, but the repository metadata reports NOASSERTION, which means the licence could not be identified automatically. Those two disagree, and the LICENSE file is the place to resolve it. If you plan to redistribute the app or reuse its code, read that file rather than the badge. There is also a THIRD_PARTY_NOTICES.md and a TRANSLATIONS.md at the top level, which suggests bundled third-party data and community translation work; both affect what you can reuse.

Upgrade cost is mostly the beta channel. If you install a 1.5.0 beta, expect to track releases rather than sit on one build. The Settings screen includes a notification for available updates and a Check for Updates item in the right-click menu, so the app does tell you when something newer exists.

## Conclusion

Adopt WhatCable if you work on a Mac with several USB-C cables in rotation and you want the cable's own e-marker data, the charger's PDO list and the link verdict in one popover, without writing IOKit code. Do not adopt it if you need the same answer on Windows, Android or Linux: the README describes a macOS menu bar app and nothing else, and every related search for those platforms is unanswered by this repository. Before installing, confirm your Mac runs macOS 14 or later, decide whether the £9.99 Pro screens matter to you, and check the release page for the current build rather than trusting a version number quoted anywhere else.

## FAQ

### Is there a WhatCable app for Windows?

No. The repository is a macOS menu bar app written in Swift, and the README describes IOKit as the data source, which is a macOS framework. There is no Windows build in the repository.

### What cable app is there for Android?

WhatCable itself is not available for Android. The README describes a macOS menu bar app with WidgetKit widgets and IOKit property inspection, and it names no Android counterpart.

### How do I install WhatCable?

The README points to whatcable.uk for the overview and CLI docs, and the repository includes a Homebrew cask bump script for a tap called homebrew-whatcable. The README does not print an install command, so check the site or the tap. The platform badge states macOS 14 or later.

### How do I use the WhatCable app?

Click the menu bar icon to open the popover and read the per-port headline and the charging or data-speed verdict. Hold Option while clicking to reveal the underlying IOKit properties, or turn on Show technical details in Settings. The gear icon in the popover header opens Settings.

### Is WhatCable legitimate?

The README states that e-marker certificate IDs are matched against a list bundled with the app and that nothing is looked up over the network. It also describes an opt-in, manual contribution of anonymised port and power diagnostics. The repository metadata reports the licence as NOASSERTION while the README badge says MIT, so check the LICENSE file.

### What is a WhatCable alternative for Windows?

The README names no Windows alternative. WhatCable reads IOKit, a macOS framework, and the README describes only a macOS app; on Windows you would need a different tool, and this repository does not point to one.

## Sources

- [darrylmorley/whatcable on GitHub](https://github.com/darrylmorley/whatcable)
- [Issues](https://github.com/darrylmorley/whatcable/issues)
- [Project website](https://whatcable.uk)
- [README](https://github.com/darrylmorley/whatcable/blob/main/README.md)
- [Releases](https://github.com/darrylmorley/whatcable/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/darrylmorley-whatcable
