{
  "id": 7390439,
  "title": "I co-engineered a macOS Soundcore headphone controller with Claude over a weekend",
  "url": "https://urgent.news/2026/09/14/i-co-engineered-a-macos-soundcore-headphone-controller-with-claude",
  "topic": "ai",
  "section": "AI",
  "published": "2026-09-14T19:54:11.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/dmj_jones_8ec54a3564709a8/i-co-engineered-a-macos-soundcore-headphone-controller-with-claude-over-a-weekend-216g"
  },
  "original_language": "en",
  "account": "During a weekend project, I collaborated with Claude to co-engineer a Soundcore headphone controller for macOS. The goal was to reverse-engineer the protocol and create a native macOS menu bar app and CLI that spoke the same protocol as the Soundcore headphones. Over the course of the weekend, we managed to achieve this goal.\n\nThe headphones pair with a MacBook, but controlling the noise cancelling or bass requires opening the Soundcore app on a separate device. To streamline this process, I decided to develop SoundcoreBridge, which would allow direct control from macOS. Our initial implementation of the codec was successful, as it reproduced byte-for-byte against six packets documented for other models.\n\nHowever, when attempting to open the Bluetooth channel on macOS, the process proved challenging. The `openRFCOMMChannelAsync` function returned success, but the delegate callback never fired. The same issue occurred with the synchronous variant, as well as when attempting to connect to a different device, such as an Android phone. Despite ruling out the encoder as a problem, the issue persisted.\n\nClaude suggested looking into SonyBridge, an open-source project that already addressed this issue on macOS. After reviewing SonyBridge's implementation and reproducing its approach, we successfully opened the channel. We identified three key factors contributing to the issue:\n\n1. The `openRFCOMMChannelAsync` function always fails on the first attempt, requiring a retry to succeed.\n2. `IOBluetooth` delivers delegate callbacks on the run loop of the thread that opened the channel, not on a dispatch queue. To handle callbacks, a custom run loop pump function was necessary.\n3. The write attempt was never acknowledged, as the device discarded every write silently. The correct handshake sequence needed to be captured and replicated for the writes to be recognized.\n\nBy capturing the Android app's traffic using the Bluetooth HCI snoop log, we discovered a handshake sequence that the app performed on connection. This handshake included a series of frames, which we were able to replicate successfully. Additionally, we learned that the sound-mode write required a specific payload format that we had not initially understood.\n\nWith these insights, we were able to successfully control the Soundcore headphones on macOS, overcoming the initial challenges and limitations.",
  "summary": "My Soundcore Space 2 pairs with my MacBook and sounds exactly as it should. But the moment I want to turn noise cancelling off, or pull the bass back, I have to pick up my phone and open the Soundcore app — because Anker only ships that app for Android and iOS. The headphones are right there. The Mac is right there. The controls are on a third device. So over a single weekend, I decided to…",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}