VibeDeck Start 7-day trial

Put a build, test, or deploy state on its own key.

A Signal ID is the address assigned to a Custom Signal action. Send a state to that address from a hook or script and the matching key updates.

workingdoneneeds_youerroridle
your script sendssignalId: "tests"
TESTStests
DEPLOYdeploy

An ID updates every matching key. Reuse release on two actions when both should update together.

  1. 01

    Add Custom Signal

    Drag the action to any free Stream Deck key.

  2. 02

    Set the Signal ID

    Use a memorable address such as agent-progress.

  3. 03

    Send a state

    Call the installed VibeDeck helper. Delivery is silent and does not change your script's exit status.

Choose an agent and operating system.

Add these non-blocking calls beside the matching native lifecycle hooks. Keep VibeDeck's installed hooks and every existing setting.

Configuration~/.claude/settings.json

Merge these event groups into the matching arrays in hooks. Keep every existing setting and hook, including VibeDeck-installed entries.

Claude Code · native JSON
{
  "hooks": {
    "UserPromptSubmit": [{
      "hooks": [{
        "type": "command",
        "command": "$HOME/.vibedeck/vibedeck-signal.sh agent-progress working 'Agent working'"
      }]
    }]
  }
}

Coverage: Claude exposes working, needs-you, done, error, and session-end events.

The installed helper discovers VibeDeck's current loopback port and per-process token automatically.