Now available · macOS 26+

Your music.
Everywhere you stream.

WolfWave is a tiny menu bar app for Mac. Play something in Apple Music — Twitch chat, your Discord profile, and your stream overlay all update on their own.

Free and open source · 3.7 MB · No account needed

Kbps Plz

DevBowzer · Album Vol. 2

2:073:20
Twitch Discord Overlay

Made for everyone

Three people. One app.

Whether you stream, listen, or build, WolfWave fits the way you already work.

For streamers

Viewers always know the track. !song, song requests, and a live overlay are ready the moment you finish setup.

Streaming guide

For listeners

Show friends what you're playing in Discord — album art, real progress, your full Apple Music library.

What's included

For developers

A local WebSocket exposes every play, pause, and skip. Build a custom overlay in roughly 20 lines.

Read the architecture

Twitch integration

Chat that knows the song.

When viewers type !song, WolfWave answers in under a second. Title, artist, album — straight from Apple Music. No bots to set up. No browser tabs to babysit.

Bot commands reference
viewer_42!song
WolfWaveNow playing: Kbps Plz by DevBowzer · Album Vol. 2
streamer_devthis slaps 🔥

LISTENING TO APPLE MUSIC

Kbps Plz

DevBowzer

Discord Rich Presence

Show what you're listening to.

Real Rich Presence — album art, live progress, and a click-through to your library. Like Spotify, but for everything you actually own in Apple Music.

See every feature

Stream overlay

Drop it in OBS.

Add a browser source pointing at your Mac's local server. Pick a theme or write your own — every track update streams in real time over WebSocket.

Set up the overlay
localhost:8080/now-playing

Kbps Plz

DevBowzer

For developers

Native Swift. Open source.

Zero external dependencies. The WebSocket feed is fully documented — wire it into your overlay, your Home Assistant dashboard, or a Stream Deck plugin.

// Subscribe to every track change in real time.
const ws = new WebSocket("ws://localhost:8080/now-playing");

ws.onmessage = (event) => {
  const { title, artist, artwork } = JSON.parse(event.data);
  document.querySelector("#title").textContent = title;
};

Private by default.

Your music never leaves your Mac. Tokens live in macOS Keychain. The app runs sandboxed. There's no telemetry — there's nothing to send.

SandboxedKeychainNo telemetryMIT licensed

Press play.
We'll handle the rest.

Free forever · macOS 26+ · Built native