ClaudeButtons

Claude Code on your Elgato Stream Deck. Approve permission prompts, see what Claude is doing, and drive your workflow, from physical buttons.

macOS · Stream Deck 7.1+ · Free & open

The ClaudeButtons layout, live on a 15-key Stream Deck.

Install in three steps

↓ Download the plugin
macOS · Stream Deck 7.1+

Download & double-click

Grab the download above and double-click it. The Elgato Stream Deck app installs it (you'll need that app running) and a ClaudeButtons category appears in its actions list.

Drag the buttons onto your deck

In the Stream Deck app, drag the buttons you want from the ClaudeButtons category onto your keys. The approval & status ones work immediately. The plugin wires its Claude Code hooks in for you.

Restart Claude Code

Start a fresh Claude Code session so it picks up the hooks. That’s it.

Permissions: the approval & status buttons need nothing. The buttons that type into Claude or capture the screen will trigger a macOS permission prompt the first time you press them. Approve under System Settings › Privacy & Security.

Stop reaching for the keyboard to say “yes”

When Claude Code needs permission to run a command, edit a file, or fetch a URL, ClaudeButtons lights up a key on your Stream Deck. Tap Allow, Deny, or Always, and glance at a live Status key to see whether Claude is working, waiting on you, or done.

Status key showing what Claude is doing

The Status key reads out what Claude’s doing: Editing, Running, Waiting…, Your turn.

Workflow keys

Workflow keys: Commit & Push, Update Docs, Screenshot, Fix Last Error.

What’s on the deck

Some of the buttons available with the ClaudeButtons profile.

Annotated Stream Deck showing what each ClaudeButtons button does

Using it with…

Drag the buttons you want onto your deck. The approval & status ones work the moment you drop them.

Dragging ClaudeButtons onto a Stream Deck

Works with the full Elgato Stream Deck lineup: Mini, MK.2, XL, Neo, and Stream Deck +.

Claude desktop app
Claude terminal (CLI)
  1. Install the plugin (double-click it) and restart the Claude app.
  2. In the Elgato Stream Deck app, open the ClaudeButtons category and drag Allow, Deny, Status (and whatever else you like) onto your deck.
  3. When Claude asks permission, the buttons light up, tap to answer.
  4. For Commit & Push / Screenshot / Fix Last Error, approve the one-time macOS permission prompt on first use.
  1. Install the plugin, then drag the buttons onto your deck in the Elgato Stream Deck app. The same hooks drive the claude CLI, so Allow / Deny / Status work with no changes.
  2. Start a new claude session after installing.
  3. For the buttons that send text (Commit & Push, Update Docs, Fix Last Error), open each button’s settings in the Stream Deck app and set App to your terminal: Terminal, iTerm2, Ghostty, …
  4. For Screenshot, set Attach as → “Saved file + typed path” so the CLI can read the image.

The deck lights up only when Claude actually stops to ask. Anything already on your allow-list is auto-approved and never reaches the deck.

Small and safe to try

A transparent plugin that touches as little as possible. Here's exactly what it does.

Only adds its own hooks. It merges its entries into ~/.claude/settings.json and touches nothing else. Your existing config and allow-rules stay exactly as they are.
Backed up & reversible. A timestamped backup before its first change, symlink-safe for synced dotfiles, and removing the plugin leaves harmless no-op lines.
Never auto-approves. A decision only happens when you tap the deck. No deck running? It quietly falls back to Claude's normal prompt.
No extra tooling. No Homebrew, npm, or Node to install. The Stream Deck app runs it, using only built-in macOS tools.