brett

Stream Deck & Hammerspoon

Stream Deck displaying system details on buttons

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