scapectl, the headset app Fractal should have made

2026-10-12

Risograph card of a pair of headphones plugged into a USB dongle

I bought a pair of Fractal Design Scape wireless headphones, couldn’t get my Mac to switch its audio over when I put them on, and returned them. My friend Charlie Tran was more determined than me. He reverse-engineered the headset’s USB HID protocol and built scapectl, a menu-bar app and CLI that does what Fractal’s own app does, plus the thing I wanted. So I bought another pair, and here we are.

Fractal’s official app is a browser-based web app, and it looks like this a lot:

Fractal's Adjust Pro app showing "Hm, something went wrong"

scapectl puts battery, firmware, EQ slot, mic mute and more in your menu bar, and runs your own scripts on 12 headset events, with the headset’s state in environment variables. The killer use: switch your Mac’s audio output to the headset the moment it powers on.

brew tap charlietran/scapectl https://github.com/charlietran/scapectl
brew install --cask scapectl

Since then I’ve sent Charlie a handful of patches:

My favorite is the EQ one. Change EQ presets on the headset and you get a notification with the curve drawn in it:

A macOS notification reading "EQ slot 2: Bass-heavy" with a small drawing of the EQ curve

That’s a rinky-dink renderer in my gist, along with my config and a few other ways to do notifications. scapectl hands your scripts the data and stays out of the drawing business, which I think is right.

The scapectl app icon in light and dark versions

The tray icon PR changes the menu-bar icon with the headset: no dongle, off, connected and muted. There’s a temporary menu to try three designs, so go vote for your favorite:

A grid of headphone tray icons in ghost, outline and dim styles, in light and dark mode, for no dongle, off, connected and muted

Caveats: it isn’t notarized (the Homebrew cask handles that for you), it needs Input Monitoring permission, and it can’t run at the same time as Fractal’s app, since they fight over the same USB stream.

Thanks Charlie, for building the app I gave up on.