Stream Deck
Control WolfWave from your Elgato Stream Deck. Play, pause, skip, run the song-request queue, and toggle your overlay, Discord, and music sync from physical keys.
The WolfWave Stream Deck plugin puts playback, your song-request queue, and your integrations on physical keys. Keys aren't just buttons: they show live state, so a glance tells you what's playing and how many requests are waiting.
The plugin is not on the Elgato Marketplace yet. Until it is, you install it by hand from the repo.
What you get
| Key | Does |
|---|---|
| Play / Pause | Plays or pauses Apple Music. Shows the current track. |
| Skip | Skips to the next track. |
| Hold Queue | Holds or resumes the request queue. Shows the queue size as a big number. |
| Approve Next | Approves the first request waiting for review. Turns amber with the pending count when requests are waiting. |
| Clear Queue | Empties the request queue. Shows the queue size. Hold it — see below. |
| Block Song | Adds the current song to your blocklist. |
| Overlay | Turns the stream overlay on or off. |
| Announce Song | Posts what's playing to your Twitch chat, same wording as !song. |
| Reject Request | Drops the request that's playing and tells chat it went, so the requester isn't left wondering. Different from Skip, which says nothing. |
| Block Requester | Bars the person who requested the current song from requesting again. Hold it. |
| Request Access | Cycles who may request: Everyone → Subscribers → VIPs & Subs → Mods, then back to Everyone. Shows the current setting on the key. |
| Now Playing | The current track over its album art. Display only, pressing it does nothing. |
A key you can press turns solid blue while it's on, so playing, held, and the overlay read from across the room. Clear Queue and Block Song are red because they throw something away.
Hold Queue, Approve Next, and Clear Queue draw their own numbers, so they leave the key title free — set your own label on them and it stays.
Clear Queue and Block Requester only fire if you hold them for about a second. Tapping does nothing and flashes an alert. One deletes every request with no undo, the other shuts a viewer out of your queue, and a deck is a grid of identical squares under your hand mid-stream.
Block Requester targets whoever requested the song that's playing, not whoever spoke last, so a busy chat can't shift the target between you deciding and the key landing. Remove them again in Settings → Song Requests → Blocklist, which now takes people as well as songs and artists.
Announce Song needs Twitch connected. Reject Request and Block Requester need a request actually playing — pressing them otherwise flashes an alert.
Three keys were removed in WolfWave 2.1.1: Discord Presence, Music Sync, and
Cycle Theme. All three flipped a setting you set once, and a deck slot is worth
more than that. Change them in Settings instead. Update the plugin and WolfWave
together — a mismatch shows Update on every key.
Approve Next only matters if you've turned on Require My Approval in Settings → Song Requests → Access. See Song Requests.
Install
-
Package the plugin from the repo:
bun run --filter streamdeck pack -
Double-click
apps/streamdeck/dist/com.mrdemonwolf.wolfwave.streamDeckPlugin. The Stream Deck app installs it and asks you to confirm.
Prefer to work on the plugin itself? Run bun run --filter streamdeck build and
copy (or symlink) apps/streamdeck/com.mrdemonwolf.wolfwave.sdPlugin into
~/Library/Application Support/com.elgato.StreamDeck/Plugins/, then restart the
Stream Deck app.
Connect it to WolfWave
Drag any WolfWave key onto a page and open its settings panel.
- In WolfWave, go to Settings → Stream Deck and reveal Stream Deck Control Token.
- Paste it into the Control token field.
- Leave Port alone unless you changed the WebSocket port in WolfWave. The plugin always connects to WolfWave on this Mac.
The Stream Deck pane also has an Allow Stream Deck commands switch. It is on by default. Turning it off makes WolfWave refuse every key press while leaving your overlay on the air, which is the switch to reach for if you want the now-playing box on stream but nothing able to drive playback.
You only do this once. Every WolfWave key shares the same connection.
Stream Deck and your overlay share one connection, so Stream Widgets has to be on for keys to reach WolfWave. The Stream Deck pane says so, with a button that takes you there, when it is off. If you used protocol v1, copy the new control token once after updating. The old shared access token is now the read-only overlay token and cannot run commands.
The plugin talks directly to WolfWave over a loopback-only control role, gated by its own control token. The overlay token is read-only. No third-party service is involved, no key press goes through the internet, and the plugin cannot be pointed at another Mac.
What the keys tell you
| Key reads | Means |
|---|---|
| Offline | WolfWave isn't running, or the overlay server is off. The plugin keeps retrying. |
| Token? | The control token is missing, or isn't exactly 64 hexadecimal characters (0–9, a–f, A–F; case-insensitive). Re-copy Stream Deck Control Token from Settings → Stream Deck. |
| Update | WolfWave and the plugin disagree on the control-protocol version — either one can be the older side. Update both to matching versions. |
A key flashes a checkmark when a press worked and an alert when it didn't — pressing Approve Next with nothing pending, for example.
Streamer Mode
Streamer Mode masks both tokens in WolfWave's own windows. It doesn't change what the plugin does, but you'll need to turn it off (or use the reveal control) to copy the control token in the first place.
Listening History & Stats
WolfWave can keep an opt-in, on-device log of what you play, with top artists, listening time, a weekly trend, a Monthly Wrap, and the !stats chat command.
Streamer Mode
Streamer Mode masks WolfWave's sensitive values like your Twitch channel, overlay URLs, and WebSocket tokens, so the app is safe to show on camera. It only changes the screen.