RemoteBar puts every Apple TV, HomePod and Sonos player on your network into one menu-bar list. Pure Swift — it speaks Companion, AirPlay/MRP and Sonos UPnP directly, no Python bridge. Plus an MCP server and 16 App Intents, so Claude, Siri and Shortcuts can drive it.
Hi Product Hunt 👋
RemoteBar started because I was tired of the remote being wherever the remote wasn't. It's a menu-bar app: click for a quick device list, select a device for a full on-screen remote. Every Apple TV, HomePod and Sonos player on your network shows up in one list, with what's playing and a volume you can drag.
The hard part isn't the UI — it's the protocols.
Most desktop Apple TV remotes shell out to pyatv, which means bundling a Python runtime and shipping a subprocess. RemoteBar implements the protocols natively in Swift instead. The only third-party dependency in the whole app is a big-integer library, and it's there for exactly one reason: SRP.
Apple TV — Bonjour discovery over _companion-link._tcp, then Companion pair-setup: TLV8 framing, SRP-6a, Curve25519/Ed25519 via CryptoKit. After pair-verify you get an encrypted session carrying OPACK messages over ChaCha20-Poly1305. That one session does control and Now Playing.
HomePod — doesn't speak Companion at all. It's an AirPlay-2 speaker, so RemoteBar pairs over AirPlay and tunnels MediaRemote through it for transport and metadata. A stereo pair advertises as two Bonjour endpoints; the app folds them into one row the way Music does.
Sonos — UPnP/SOAP on port 1400, no pairing. GENA event subscriptions layer real-time updates on top of polling, so if you regroup speakers in the Sonos app, RemoteBar's list moves too. Grouping, sleep timers, queue browsing, favourites, crossfade, bass/treble/loudness, and Night Sound / Speech Enhancement on the home-theatre models — capability is probed, not assumed, so a Move doesn't show settings it doesn't have.
Being pure Swift is also what makes a sandboxed Mac App Store build possible. Nothing leaves your LAN. Pairing credentials live in the Keychain, and there's no account, no telemetry, no server.
It's also scriptable.
RemoteBar runs an MCP server — Streamable HTTP, JSON-RPC 2.0, bound to 127.0.0.1:47821, off by default. 19 tools: list_devices, now_playing, send_key (including key sequences — ["down","down","select"]), type_text for Apple TV search fields, launch_app by name or bundle id, play_favorite, group_speaker, sleep_timer, and pair/submit_pin so an agent can even walk you through pairing.
So "pause whatever's playing in the lounge and start my Sunday playlist on the kitchen Sonos" is one sentence to Claude, not four clicks.
There are also 16 App Intents, which means Shortcuts and Siri work with no MCP client at all — play/pause, volume, remote keys, typing, grouping, sleep timers, shuffle and repeat, each addressing devices by name.
Free for up to 3 devices; one-time unlock for unlimited. No subscription.
Report
Reviews
No reviews yetBe the first to leave a review for RemoteBar
Redbubble iOS App