Releases: darrylmorley/whatcable
v0.10.13: Power Monitor: clearer behaviour on ports without live metering
Power Monitor: clearer behaviour on ports without live metering
What's fixed
-
Power Monitor no longer estimates a voltage it cannot measure. On Macs where macOS does not expose live per-port power metering (notably the MagSafe port), the Power Monitor previously fell back to deriving a voltage from the port controller's contracted data and plotting it on the live graph. That derived figure could be inaccurate. It now shows the port's maximum with a clear "Live per-port metering is not available on this hardware" note instead of charting a value it cannot actually measure, and the
whatcable monitorCLI shows--for these ports instead of a derived figure. Thanks to @NaiveTomcat for the report (#146). -
Pro badge contrast. The Pro badge now meets WCAG AA contrast; it was orange on grey and hard to read. (#142)
What's new
-
More cables in the database. Around 20 newly reported cables added to the bundled known-cables database, so more cables resolve to a known brand and model.
-
Website refresh. The whatcable.uk pages got a content and mobile-responsiveness pass.
Install
brew upgrade --cask whatcable, or download WhatCable.zip from this release page and drag the new .app into /Applications.
v0.10.12: Cable reports now include Thunderbolt controller data
Cable reports now include Thunderbolt controller data
What's new
-
CIO data in cable reports. When you report a cable that has an active Thunderbolt link, the report now includes a "Thunderbolt link context" section with CableGeneration, CableSpeed, Generation, AsymmetricModeSupported, LegacyAdapter, and LinkTrainingMode from the TB controller. This helps us map the CIO value tables faster without needing separate ioreg follow-ups. USB-only cable reports are unaffected.
-
Privacy-conscious. The downstream device identity (dock/monitor name, vendor ID, device ID) is deliberately excluded from the report.
Install
brew upgrade --cask whatcable, or download WhatCable.zip from this release page and drag the new .app into /Applications.
v0.10.11: Fix USB3 speed misreporting on some Apple Silicon Macs
Fix USB3 speed misreporting on some Apple Silicon Macs
What's fixed
-
Correct USB3 speed for direct-attach devices. WhatCable was reading the port controller's SuperSpeedSignaling value, which on some Apple Silicon Macs reports Gen 1 (5 Gbps) even when the device actually negotiated Gen 2 (10 Gbps). Now uses the USB host controller's Device Speed, matching what macOS System Information shows. Thanks to @janngobble for the detailed report (#140).
-
Hub topology handled correctly. When a USB hub is on the port, WhatCable now reads the hub's upstream link speed (the root device) instead of the fastest downstream device. This prevents overstating the port's bandwidth when a fast device sits behind a slower hub.
Install
brew upgrade --cask whatcable, or download WhatCable.zip from this release page and drag the new .app into /Applications.
v0.10.10: Fix charging wattage for Thunderbolt dock setups
Fix charging wattage for Thunderbolt dock setups
OSS
- Correct wattage shown for Thunderbolt dock charging. Macs powered through a Thunderbolt dock (e.g. CalDigit TS3 Plus, ASUS PA32QCV display) previously showed "3W charger" because the dock bypasses per-port USB-PD negotiation. WhatCable now falls back to the system-wide adapter reading when no USB-PD source is registered. Displays as "System reports charger at 96W" with a note that per-port data is not available. (#141)
Internal
- Charging diagnostic logging. Structured
os.logoutput at debug level logs port count, active ports, adapter watts, and per-port source breakdown at each snapshot. Visible withlog stream --predicate 'subsystem == "uk.whatcable.whatcable"' --level debug.
v0.10.9: Licence entry in settings and CIO cable labels
Licence entry in settings and CIO cable labels
Pro
- Enter your licence key from Settings. The Pro section in Settings now has an "Enter Licence Key..." button that opens the licence window. No more hunting through the right-click menu.
OSS
- CIO cable capability shown for passive and Thunderbolt cables. Ports with a passive or Thunderbolt cable now surface the CIO transport data (cable generation, speed, link width) in the UI, not just in JSON output.
- Pro upgrade links in settings and licence screen. Free users see a direct link to the Pro purchase page from both the Settings panel and the licence window.
Internal
- Windows CI workflow. Cross-platform Swift build now runs on Windows (non-blocking while a Swift 6.0.3 toolchain issue is resolved).
- Pro boundary check in CI. Automated check ensures Pro-only code stays inside the plugins module.
- Ad-hoc signing fix. The CLI helper binary is now signed in the ad-hoc path, fixing
codesign --verify --deepfailures in local smoke tests.
v0.10.8: Layout fix, CIO cable data, and Pro licence hardening
Layout fix, CIO cable data, and Pro licence hardening
OSS
- Wider label column in advanced details. The label column is now 160pt (was 120pt) so longer translated strings like Italian "Elettronica attiva via cavo" no longer wrap onto a second line. Thanks to @bovirus for the report in #130.
- CIO cable capability in JSON output.
whatcable --jsonnow includes a"cio"object per port with Thunderbolt cable capability data from the controller's CIO transport. Fields include cable generation, cable speed, and asymmetric mode support. Values are not yet surfaced in the UI while we collect more data points. - RefreshSignal moved to WhatCableAppKit. Internal cleanup so tests can import it without pulling in the full SwiftUI app target.
- Updated contributor credits. Added 8 missing contributors, credited @abrauchli for the usbeehive Linux port, and synced @NoFr1ends.
- Website SEO. Added canonical URLs, updated OG tags to use www subdomain, added Pro and Support pages to the sitemap, bumped schema version.
Pro
- More forgiving licence validation. The offline grace window is now 30 days (was 7). Network errors during revalidation no longer lock you out; only an explicit server rejection revokes a licence.
- Better activation error messages. The settings UI now shows "Could not reach the licence server" for network failures instead of the generic "Invalid licence key" message.
- Localised Pro UI. All Pro plugin views (diagnostics, power monitor, licence settings, pin diagrams) now use the shared translation bundle. Translators maintain one set of files across both OSS and Pro.
v0.10.7: Better Thunderbolt cable labels
Better Thunderbolt cable labels
Improvements
-
Cable speed labels now mention Thunderbolt class. USB4 Gen 3 cables show "Thunderbolt 4 class" and Gen 4 cables show "Thunderbolt 5 class" so you can tell at a glance whether your cable supports TB5 signalling. Thanks to @applefarmer for the report in #131.
-
Passive e-marker on Thunderbolt cables gets a clarifying note. Some TB4 cables (CalDigit, Cable Matters) report as passive in USB-PD because their active components condition the Thunderbolt signal path, not the USB path. When the Thunderbolt link is live, WhatCable now explains that Thunderbolt is negotiated separately by the controller. Thanks to @pandoratactful for the report in #111.
v0.10.6: Fix untranslated strings and merge community translations
Fix untranslated strings and merge community translations
Bug fix
- Five strings no longer show in English on translated systems. "Language", "System Default", the desktop Mac charger banner, the USB device count in the status bar, and the "No e-marker detected" bullet were all missing from one or more translation files. Fixed across all shipped languages. Thanks to @bovirus for the detailed screenshots in the report.
Translation improvements
- Italian: improved wording for several strings, plus proper plural forms for device counts (from @bovirus).
- Armenian: 112 new Core translations (from @Vardan933).
v0.10.5: Fix localisation support and expand website docs
Fix localisation support and expand website docs
Bug fix
- Non-English localisations now work. macOS uses the main bundle's
CFBundleLocalizationsarray to decide which languages the process can resolve. Without entries for shipped languages,String(localized:bundle:)fell back to English even when the inner SPM resource bundle had the correct.lproj. All five shipped localisations (English, Armenian, Italian, Polish, Simplified Chinese) are now listed inInfo.plist. Thanks to @bovirus for the report.
Website
- New Pro page at whatcable.uk/pro with feature showcase, pricing, and checkout.
- New post-purchase success page with activation instructions.
- New support form (licence-gated) with FAQ.
- Expanded docs page with jump-to navigation, inline screenshots, full Pro feature reference, and troubleshooting FAQ.
- Standardised nav and footer across all pages.
v0.10.4: Charger wattage fix, port fixes, and WhatCable Pro
Charger wattage fix, port fixes, and WhatCable Pro
WhatCable Pro
WhatCable Pro is here. If you find the free app useful, you can now support the project and unlock a set of deep diagnostic features: whatcable.uk/pro
- Live power metering (watts, voltage, current per port, updated every 2 seconds)
- PD contract inspector with decoded PDOs and capability mismatch detection
- Cable resistance estimation via multi-point regression
- Port health counters (attach/detach, hard resets, shorts, FET failures)
- PD event trace (decoded protocol-level history per port)
- DP Alt Mode details (lane count, link rate, EDID with monitor model)
- Pin diagrams and CC advertisement level
- Liquid detection sensor status
- Raw VDO identity from SOP and SOP'
- Power monitor window with live charts
- CLI monitor mode (
whatcable --monitor) - Widget power sparkline
One-time purchase, works on up to 2 Macs. The free app stays free and open source with no features removed.
Bug fixes
-
Charger wattage now shows on all ports. A long-standing bug meant charger power was never displayed in the main view. The underlying IOKit data was a CF set, not an array, and the silent cast failure hid all power source options. Fixed for both USB-C and MagSafe chargers.
-
USB-C and MagSafe port data no longer mix. Both port types can have the same port number (e.g. port 1). All watchers now filter on port type as well as port number, so MagSafe and USB-C data stay separate.