A native macOS app that controls Bluetooth LED strips (duoCo Strip / ELK-BLEDOM) from your Mac, with Philips Hue Sync–style screen and music sync.
Most inexpensive Bluetooth LED strips only work with the duoCo Strip phone app. LED Strip connects to them directly over your Mac's Bluetooth, so you don't need your phone.
- Multiple strips: Connects to any number of strips at once, and every command goes to all of them. It remembers your strips and reconnects automatically at launch or if a connection drops.
- Basic control: Power on/off, color, brightness, 22 built-in effects (jump, crossfade, blink) and effect speed.
- Screen sync (like Hue Sync): Finds the dominant color on screen and eases the strips toward it with smooth transitions.
- Front window or full screen source. Switching windows makes the lights follow the new window.
- Left / right: Splits the screen in two, and each strip takes the color of its own side.
- Video profile: Smooth transitions, with quick changes on scene cuts.
- Game profile: Faster response, and the strips flash briefly on sudden bright moments such as explosions and muzzle flashes.
- Music sync: Listens directly to the audio playing on your Mac (Spotify, YouTube, games). It doesn't use the microphone.
- Flashes and color jumps on bass beats, sparkle on highs.
- Automatic gain, so quiet and loud tracks are equally lively.
- Stereo: The left strip follows the left channel and the right strip follows the right channel.
- Palettes: Rainbow, Warm, Cool, Party.
- Intensity levels: Subtle, Moderate, High, Extreme. Like Hue, these set how fast and how strongly the lights react.
- Liquid Glass interface: macOS 26 glass design, with a backdrop that glows live in the strips' current colors.
The interface is in Turkish.
LED strip controllers that work with the duoCo Strip app and whose Bluetooth name contains ELK-BLEDOM, ELK-BLEDOB or MELK. The app was tested with two ELK-BLEDOB strips; other controllers that use the same protocol are expected to work too.
- macOS 26 (Tahoe) or later
- A Mac with Apple silicon (M series)
- Bluetooth
- Download the latest
LEDStrip-x.y.dmgfrom the Releases page. - Open the DMG and drag LEDStrip into the Applications folder.
- Open the app. On first launch macOS asks for Bluetooth permission; allow it.
- The first time you turn on screen or music sync, macOS asks for Screen & System Audio Recording permission. Enable LEDStrip in System Settings › Privacy & Security › Screen & System Audio Recording, then restart the app. Music sync reads system audio through this same permission.
The app is signed with a Developer ID and notarized by Apple.
- Close the duoCo Strip app on your phone. A strip can only connect to one device at a time, and your Mac can't see it while it's connected to the phone.
- Click a strip in the Şeritler (Strips) list on the left to connect it. Click it again to disconnect.
- Right-click a strip for these options:
- Yeniden adlandır (Rename)
- Yanıp söndür (Blink): Shows which physical strip a row belongs to.
- Ekran tarafı (Screen side): Left, right or all.
- In the Işık senkronu (Light sync) card, choose the mode (Screen / Music), the intensity and the other settings, then turn on the switch.
Sync keeps running as long as the app is open, even if you close the window.
There is no Xcode project; a single script builds the app with swiftc. You need Xcode or the Command Line Tools with the macOS 26 SDK.
./build.sh # ~/Applications/LEDStrip.app
NOTARY_PROFILE=<profile> ./make_dmg.sh # dist/LEDStrip-<version>.dmg (signed + notarized)If your keychain has an Apple Development certificate, build.sh signs with it; otherwise it uses an ad-hoc signature. With ad-hoc signing, macOS asks for Bluetooth and screen recording permission again after every build. make_dmg.sh requires a Developer ID Application certificate. If NOTARY_PROFILE is set, it submits the DMG to Apple for notarization and staples the ticket to it.
The app icon is drawn in code by Icon/make_icon.swift; regenerate it with swift Icon/make_icon.swift Icon/AppIcon.icns.
- Bluetooth: CoreBluetooth writes 9-byte commands (
7E 00 <command> … EF) to theFFF3characteristic of theFFF0service: color05 03 R G B, brightness01, effect03, speed02, power04. - Screen: ScreenCaptureKit reads the screen or window at 64×36, 12–24 times per second. Pixels are grouped by hue, with vivid and bright colors weighted more heavily, and the color of the heaviest group wins.
- Music: ScreenCaptureKit captures system audio. Accelerate (vDSP) runs an FFT that splits it into bass, mid and treble bands, and beats are detected from sudden rises in the bass.
- Source code:
Sources/LEDStrip.swift: Bluetooth and strip managementSources/Ambient.swift: Screen syncSources/Music.swift: Music analysisSources/UI.swift: Interface
The protocol details were worked out with the help of these open-source projects:
This project is not affiliated with duoCo, Philips Hue or Signify.
