Technology

A Free Mac App Reads USB-C E-Marker Data Straight From IOKit

Martin HollowayPublished 3w ago5 min readBased on 3 sources
Reading level
A Free Mac App Reads USB-C E-Marker Data Straight From IOKit

A free macOS app called WhatCable identifies what a USB-C cable actually supports by pulling e-marker data directly out of the IOKit registry, no dongle or third-party hardware required The Verge. The tool was built by developer Darryl Morley, runs on Apple Silicon Macs, and lives as a menu bar widget rather than a standalone application window The Verge.

The premise addresses a problem familiar to anyone who has dug through a drawer of visually identical USB-C cables trying to find the one rated for 100W or 40Gbps Thunderbolt. WhatCable surfaces vendor ID, speed rating, current rating, voltage limits, and whether a cable is active or passive, using Apple's public APIs without root access or private entitlements The Verge. Alongside the static e-marker profile, it reports live connection state: negotiated link speed, Thunderbolt speed, and the voltage and current actually flowing at each port The Verge.

The mechanism behind this is a quirk of how Apple Silicon Macs handle USB Power Delivery. Each machine has a dedicated port controller chip that negotiates PD contracts with whatever is plugged in, and macOS writes the e-marker responses it receives into the IOKit registry as part of that process The Verge. IOKit is Apple's kernel-level driver framework, and its registry is normally the domain of low-level system utilities rather than consumer apps. WhatCable's contribution is essentially a well-designed read of data macOS was already collecting for its own PD negotiation, exposed through Apple's public API surface rather than a private or undocumented one.

According to the project's GitHub documentation, the app cross-references three separate data sources: the Mac's own USB-C port, whatever device or charger sits at the other end, and the cable connecting them GitHub. Cross-checking all three matters because a cable's rated capability is only ever as useful as the weakest link in the chain: a 240W-rated cable plugged into a 65W charger still negotiates at 65W, and WhatCable's design is built to make that kind of mismatch visible rather than assumed.

The source code is public on GitHub at github.com/darrylmorley/whatcable, and the official project site is hosted at whatcable.uk The Verge. Morley is also developing an experimental Windows port, tracked in a separate repository at github.com/darrylmorley/whatcable-windows, though no release timeline has been published GitHub.

The software approach stands in contrast to how this problem has historically been solved. The Verge's Sean Hollister previously covered an $8 hardware USB-C cable tester roughly three years ago; that product has since been discontinued The Verge. Hardware testers of that generation typically relied on physical pass-through dongles with LED indicators or small displays, adequate for spot-checking a cable's e-marker chip but blind to what a live connection was actually negotiating in practice.

Reading system-level power and cable telemetry without private entitlements is a narrower engineering feat than it might first appear. Apple has tightened entitlement requirements steadily across recent macOS releases, and utilities that depend on undocumented registry access have a history of breaking silently across OS updates. Whether WhatCable's public-API approach proves more durable than that pattern remains to be demonstrated over successive macOS versions, though building on documented interfaces rather than private hooks is generally the more defensible long-term strategy for third-party developers.

The USB-C cable identification problem itself is a byproduct of the connector's own success. USB-C was standardized as a single physical connector spanning USB 2.0 up through USB4 and Thunderbolt 4/5, plus Power Delivery up to 240W under the latest EPR (Extended Power Range) spec. That universality is precisely what makes visual identification impossible: two cables can look identical and differ by an order of magnitude in bandwidth or wattage. Free, native tooling that surfaces this information without extra hardware fits a broader pattern of software absorbing functions that briefly supported standalone gadget categories, something recognizable from how phone diagnostic apps, network analyzers, and battery health tools have each displaced a prior generation of purpose-built hardware testers.

For IT departments and support desks managing fleets of Apple Silicon machines, a free, entitlement-light diagnostic tool of this kind could reduce reliance on physical cable testers for troubleshooting charging and display-output complaints, though The Verge's coverage does not report any enterprise deployment or endorsement to date.