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+ · one file, profile included
Already installed, or using Stream Deck Mobile? Get just the profile

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.

Your deck lays itself out

ClaudeButtons ships a ready-made profile, so the app installs it and switches to it automatically: approvals in the top corners, the live Status, Activity and Question indicators down the center, workflow keys around them. Nothing to drag, and the plugin wires its Claude Code hooks in for you. Prefer your own layout? The profile is fully editable.

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…

Your deck lays itself out from the bundled ClaudeButtons profile, no dragging required. Want a custom setup? Every button is also there to drag onto any profile.

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. The Elgato Stream Deck app installs the ClaudeButtons profile and switches to it, your deck is laid out automatically. (Or drag individual buttons from the ClaudeButtons category onto any profile you like.)
  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, the Elgato Stream Deck app lays out the ClaudeButtons profile automatically. 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.

No Stream Deck? Use your phone

You don't need the hardware. Stream Deck Mobile turns your iPhone or Android into a Stream Deck, and ClaudeButtons works there exactly the same. The free version gives you a small grid of buttons, plenty for the essentials like Allow, Deny, and Status.

ClaudeButtons running on Stream Deck Mobile, held horizontally

How it works: the plugin runs in the Stream Deck app on your Mac, right where Claude Code already lives, and your phone connects over Wi-Fi to become the button surface. Install ClaudeButtons on the Mac the normal way, then either drag the buttons from the ClaudeButtons category onto your phone's grid, or grab the ready-made profile below, import it, and switch your phone to it.

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.