A modern, native macOS app (with cross-platform roots) to control Sony headphones over Bluetooth: Noise Cancelling, Ambient Sound, Equalizer, and Battery β including newer models like the WH-CH720N and WH-1000XM4/XM5 that speak Sony's second-generation protocol.
Sony locks headphone settings behind their mobile-only Sound Connect app. If you live on a laptop, you're stuck. SonyBridge talks to the headphones directly over Bluetooth RFCOMM using Sony's reverse-engineered binary protocol β no phone required.
The original SonyHeadphonesClient only spoke Sony's first-generation protocol, so newer headsets (WH-CH720N, XM4/XM5, WF-series, LinkBudsβ¦) just timed out on connect. SonyBridge adds full second-generation ("v2") protocol support and a clean SwiftUI interface built for those devices.
- ποΈ Ambient Sound Control β Noise Cancelling Β· Ambient Sound (0β20 levels) Β· Off
- π£οΈ Focus on Voice passthrough
- ποΈ Equalizer β presets and a full Manual mode with 5 bands + Clear Bass sliders
- β¨ DSEE β toggle Sony's audio upscaling for compressed sources
- π Battery level β live percentage, right in the header
- πΌοΈ Device banner β your headphones' official Sony product image
- π Auto-connect β finds your already-paired Sony headset, no fiddly device picker
- π Native SwiftUI β dark, minimal, and shaped after Sony's own app
- π§© Dual-protocol β automatically detects and speaks either protocol generation
| Status | Devices |
|---|---|
| β Verified | WH-CH720N |
| π’ Expected (v2, over-ear β NC/Ambient/battery/EQ) | WH-1000XM5, WH-1000XM6, WH-XB910N, WH-CH520 |
| π‘ v2 earbuds (controls work; battery format differs) | WF-1000XM4, WF-1000XM5, WF-C700N, LinkBuds S |
| π΅ Legacy (v1 protocol β NC/Ambient only) | WH-1000XM4, WH-1000XM3, WH-1000XM2, WH-XB900N, MDR-XB950BT |
Only the WH-CH720N is hardware-verified. Others share the same protocol family, so the basics should work β per-model quirks are untested. Each supported model shows its official product image in the app. Reports and PRs for other devices are very welcome.
brew tap AmitRajput-Dev/tap
brew install --cask sonybridgeHomebrew asks you to trust the tap the first time (brew trust AmitRajput-Dev/tap) β it's a third-party
tap. The cask clears the Gatekeeper quarantine flag for you on install.
Grab SonyBridge-macOS.zip from the latest release,
unzip, and move SonyBridge.app to /Applications. The app is ad-hoc signed (not notarized β no paid
Apple Developer account), so allow it once:
xattr -dr com.apple.quarantine /Applications/SonyBridge.appβ¦or right-click the app β Open β Open.
Then: connect your headphones in macOS Bluetooth settings first, open SonyBridge, and hit Connect.
π‘ Keep audio playing while you use the app β Sony headsets drop the Bluetooth control link when idle to save power.
Requires Xcode 14+.
git clone --recurse-submodules https://github.com/AmitRajput-Dev/SonyBridge.git
open SonyBridge/Client/macos/SonyHeadphonesClient.xcodeprojThen βR.
Build instructions
Windows (CMake + MSVC, from a Developer Command Prompt):
cd Client && mkdir build && cd build
cmake .. && cmake --build .Linux (sudo apt install libbluetooth-dev libglew-dev libglfw3-dev libdbus-1-dev):
cd Client && mkdir build && cd build
cmake .. && cmake --build .The macOS SwiftUI interface is macOS-only; Windows/Linux use the original Dear ImGui GUI.
Sony headphones expose a vendor RFCOMM/SPP service. Commands are framed as:
<START 0x3e> ESCAPE( <TYPE> <SEQ> <4-byte BE length> <PAYLOAD> <checksum> ) <END 0x3c>
Two protocol generations exist, distinguished by their SDP service UUID:
- v1 β
96CC203E-β¦β WH-1000XM3 and older - v2 β
956C7B26-β¦β WH-CH720N, XM4/XM5, WF-series, LinkBudsβ¦
SonyBridge tries v1 first, falls back to v2, and remembers which succeeded. The v2 path adds the mandatory init handshake and per-frame host-ACK the newer devices require, plus battery and equalizer inquiry/response commands.
Protocol details were reverse-engineered by the community. Battery and EQ byte layouts in particular were cross-referenced against GadgetBridge's excellent Sony implementation.
SonyBridge builds directly on the work of:
- SonyHeadphonesClient by Plutoberth, Mr-M33533K5, and contributors β the original cross-platform client and protocol foundation
- semvis123 β the original macOS port
- GadgetBridge β reverse-engineered v2 protocol reference (battery, EQ)
This project is not affiliated with, endorsed by, or connected to Sony. It talks to your headphones using a reverse-engineered protocol, for interoperability. Use at your own risk.
MIT β see the LICENSE file. Original copyright retained; see Credits.
