Stream Deck & Hammerspoon

Stream Deck and Hammerspoon connects customizable Stream Deck buttons to Hammerspoon scripts. The Stream Deck app still owns the hardware so I can hack together scripts alongside official Stream Deck plugins. Alternatively, the official Hammerspoon Stream Deck plugin requires the official Elgato Stream Deck app not to be running.
flowchart LR
S[Stream Deck button] --> P[Plugin]
P -->|authenticated local WebSocket| H[Hammerspoon action]
H -->|title, icon, state, progress| P
P --> S
The plugin supports buttons, toggles, and multi-state keys. Actions can also update their title, color, icon, progress, badge, and transient success or error state while they are visible.
The repository has a library of productivity actions to show off some of the capabilities: start or stop a timer, control audio, run a script, launch an app workflow, keep the Mac awake, display system resource graph, or build a button around any other Hammerspoon action.
The default connection is authenticated and local-only. LAN use is an explicit opt-in with separate per-client keys.
brettinternet/stream-deck-hammerspoon
A Stream Deck plugin bridge for Hammerspoon actions