Your Sony WH-1000XM4 and WH-1000XM5, one click from the Mac menu bar.
Noise cancelling, EQ, Speak-to-Chat and more, without reaching for your phone.
Free and open source · macOS 14+ · 2.4 MB download · no account; the only network call is the update check
Recorded live on a WH-1000XM4. Every change is read back from the headphones.
|
Noise control in one click Noise cancelling, Ambient or Off, a 20-step ambient fader, Focus on Voice, and Office / Aware scenes. ⌥⌘A switches from anywhere.
|
EQ on real faders Sony's presets, Clear Bass and a five-band curve. Save your own curves on the Mac.
|
|
Every setting, one level down Speak-to-Chat, NC Optimizer with air pressure, DSEE Extreme, multipoint, touch controls, auto power off and more.
|
Your mode, in the menu bar The icon's band lights up to show Off, Ambient or Noise cancelling, next to your battery level.
|
Cans also shows what's playing in any app (Spotify, Music, browsers…) with play/pause/skip, plus battery, codec and DSEE status.
It follows your Mac's appearance.
With Homebrew
brew install --cask unhingedpanda/tap/cansOr by hand: download Cans.zip from the latest release, unzip it, and move Cans.app to /Applications. You can verify the download with shasum -a 256 -c Cans.zip.sha256.
First launch. Cans isn't notarized yet (that needs a paid Apple developer account), so macOS blocks it the first time you open it:
- macOS 15 and later: open Cans once, then go to System Settings → Privacy & Security, click Open Anyway next to Cans, and confirm.
- macOS 14: right-click Cans.app → Open.
Then allow Bluetooth access when asked.
- Updates. From 1.0.2, Cans checks GitHub once a day and marks Inserts with an amber dot when a new version is ready; install it from Inserts → App. Turn Automatic updates off there if you'd rather not. Coming from 1.0.1 or earlier? Update once by hand or with
brew upgrade --cask cans. - One app at a time. Only one device can hold Sony's control channel. If Cans says Busy, close Sound Connect on your phone; Cans retries on its own.
- Keyboard. ⌥⌘A toggles NC and Ambient from anywhere. While the panel is open, keys 1/2/3 pick Off/NC/Ambient.
- Light footprint. About 8–18 MB of memory, 0% CPU when idle, and about 0.2% while the animated panel is open.
- Out of scope. Phone-only Sound Connect features: adaptive sound control, 360 Reality Audio setup, and the activity log. Volume stays with your Mac's volume keys, because the headphones ignore volume changes while nothing is playing.
- Easter eggs. The headphone illustration reacts to your listening mode, and it hides a couple of surprises.
Full compatibility
| WH-1000XM4 | WH-1000XM5 | |
|---|---|---|
| Noise cancelling / Ambient / Off, ambient level, Focus on Voice | ✓ | ✓ |
| Battery, EQ presets, Clear Bass + 5-band custom EQ, saved Mac presets | ✓ | ✓ |
| Codec and DSEE status | ✓ | – |
| Now playing from any app, play/pause/skip | ✓ | ✓ |
| Speak-to-Chat (on/off, sensitivity, timeout, voice focus) | ✓ | – |
| NC Optimizer with air-pressure readout | ✓ | – |
| DSEE Extreme, sound quality vs. stable connection | ✓ | – |
| Touch panel, custom button, pause when taken off, auto power off | ✓ | – |
| Multipoint, voice guidance, power off | ✓ | – |
Every XM4 command was verified on a real WH-1000XM4 (firmware 3.0.1). XM5 support covers what the original XM5 Control app implemented; XM5 bug reports are very welcome.
Building, the protocol, how Now Playing works, and the end-to-end tests that run against real headphones are all in docs/DEVELOPMENT.md.
Cans started as a fork of XM5 Control by Maadlou (MIT). The protocol work draws on Gadgetbridge and mos9527/SonyHeadphonesClient. The headphone illustration is original artwork made for Cans; see CREDITS.md.
Cans is not affiliated with or endorsed by Sony. Sony, WH-1000XM4 and WH-1000XM5 are trademarks of Sony Group Corporation, used here only to identify compatible products.
Cans is free and open source. If it saves you reaching for your phone, you can buy me a coffee.
MIT. See LICENSE; the original copyright notice is kept.
