
Claude Beacon
- Updated April 11, 2026
- ARETI-GmbH/claude-beacon
claude-beacon is a visual status signal that makes the terminal background light up as soon as Claude Code is waiting for input, then automatically resets once tools start running again. The color is freely configurable through the /terminal-color command. (Description originally in German.)
Key points
- Terminal lights on input wait
- Auto-reset on tool run
- Configurable color via /terminal-color
- Visual status signal
Claude Beacon by the numbers
- Data as of Jul 7, 2026 (Skillselion catalog sync)
/plugin marketplace add ARETI-GmbH/claude-beacon/plugin install claude-beacon@areti-claude-pluginsAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Last updated | April 11, 2026 |
|---|---|
| Repository | ARETI-GmbH/claude-beacon ↗ |
What it does
Visual status signal: the terminal background lights up when Claude Code is waiting for input and resets when tools run again; color is configurable.
README.md
claude-beacon
🇬🇧 English · 🇩🇪 Deutsch
A beacon for your Claude Code sessions. The entire terminal background turns green when Claude is waiting for you, red while Claude is working — visible at a glance, even in your peripheral vision.
Maintained by ARETI GmbH · MIT License
Installation
In any Claude Code session:
/plugin marketplace add ARETI-GmbH/claude-beacon
/plugin install claude-beacon@areti-claude-plugins
/reload-plugins
That's it. From now on every waiting session automatically turns green, every working session turns red. Zero config, zero dependencies.
The problem
Multiple parallel Claude Code sessions = you lose track. Which one is waiting for input? Which one is still running? Which one has a permission prompt open? Clicking through tabs is inefficient.
The solution
The entire terminal background signals the state:
| State | Color | When |
|---|---|---|
| 🟩 Idle (green) | #1a4d1a |
Claude is waiting for your input |
| 🟥 Active (red) | #4d1a1a |
Claude is working (tool calls, streaming, …) |
It works via OSC-11 escape sequences — a standard terminal API supported natively by macOS Terminal.app, iTerm2, Ghostty, Alacritty, WezTerm, and Kitty. No extensions, no window manager hacks, no background service in the default mode — just bash and standard escape codes.
Commands
The plugin registers two slash commands:
/terminal-color — pick the idle color
Changes the color displayed while Claude is waiting. Your choice is stored in ~/.config/claude-beacon/color and survives plugin updates.
Interactive (open the picker):
/terminal-color
You get 6 presets plus a custom-hex option:
| Symbol | Color | Hex |
|---|---|---|
| 🟢 | Green (default) | #1a4d1a |
| 🔴 | Red | #4d1a1a |
| 🔵 | Blue | #1a1a4d |
| 🟡 | Olive yellow | #4d4d1a |
| 🟣 | Purple | #3d1a4d |
| 🟠 | Orange | #4d2e1a |
| ✏️ | Custom hex | your choice |
Direct (skip the picker):
/terminal-color blue
/terminal-color #2d4a8a
/beacon-focus — toggle focus mode
Focus mode for parallel sessions: unfocused windows glow dimmed, the clicked window glows in the full color and gets a ● Claude marker in its window title. You see at a glance which session you're currently in — without losing sight of the waiting ones.
/beacon-focus on # enable
/beacon-focus off # disable
/beacon-focus status # show current state
⚠️ macOS permission required: Focus mode needs to detect which Terminal.app window is frontmost. On first start, macOS asks once for automation permission for Terminal.app (Apple Events via
osascript). Click "Allow". The regular beacon mode works without any permission — focus mode is opt-in.
The four states in focus mode
With /beacon-focus on enabled you get four visually distinct states per session:
| Focused (clicked) | Unfocused | |
|---|---|---|
| Idle (waiting) | bright green #1a4d1a |
dim green #113211 |
| Active (working) | bright red #4d1a1a |
dim red #321111 |
The focused window additionally gets the ● Claude title marker.
Fine-tuning via env vars
CLAUDE_BEACON_DIM_FACTOR— brightness of the dimmed variant (default0.65, range0.0–1.0)CLAUDE_BEACON_TITLE_MARKER— text of the title marker (default● Claude)CLAUDE_BEACON_POLL— daemon poll interval in seconds (default0.6)
The focus daemon is a lightweight background process (~600ms poll) that exits automatically once no Claude sessions are registered anymore.
How it works under the hood
The plugin registers hooks on six Claude Code events. idle.sh sends the green OSC-11 sequence; active.sh sends the red one.
| Hook event | When | Color |
|---|---|---|
Notification |
Claude needs attention (permission prompt, idle warning) | 🟩 green |
Stop |
Claude is done → waiting for user | 🟩 green |
StopFailure |
Claude stopped with an error | 🟩 green |
PreToolUse |
Claude is calling a tool (= working) | 🟥 red |
UserPromptSubmit |
User just submitted input | 🟥 red |
SessionStart |
New session starting | 🟥 red |
Why no SubagentStop?
SubagentStop fires when a subagent (Explore, code-reviewer, …) finishes — even if the main agent is still working. If we switched to green there, the screen would be wrongly colored while Claude keeps running tools.
Instead, PreToolUse acts as a continuous heartbeat: as long as Claude keeps calling any tool, red is held. Only when nothing happens at all (Stop / Notification) does the color switch back to green.
Testing terminal compatibility
To check whether your terminal supports OSC-11:
printf '\033]11;#1a4d1a\007' # set green
printf '\033]111\007' # reset to default
Should work in all modern terminals (see list above).
Updating
Pull plugin updates via the marketplace:
/plugin marketplace update areti-claude-plugins
/plugin uninstall claude-beacon@areti-claude-plugins
/plugin install claude-beacon@areti-claude-plugins
/reload-plugins
Since 1.4.1 the focus daemon restarts itself automatically when the plugin version changes — no manual kill needed anymore.
Uninstalling
/plugin uninstall claude-beacon@areti-claude-plugins
Optionally remove the config too:
rm -rf ~/.config/claude-beacon
Repo structure
claude-beacon/
├── .claude-plugin/
│ └── marketplace.json # marketplace definition
├── plugins/claude-beacon/
│ ├── .claude-plugin/plugin.json # plugin metadata (v1.4.1)
│ ├── hooks/hooks.json # hook registration
│ ├── scripts/
│ │ ├── common.sh # shared helpers (config, daemon mgmt, dim_color)
│ │ ├── idle.sh # sets idle color (green)
│ │ ├── active.sh # sets active color (red)
│ │ └── focus-daemon.sh # focus mode background daemon
│ └── commands/
│ ├── terminal-color.md # /terminal-color slash command
│ └── beacon-focus.md # /beacon-focus slash command
├── README.md # English (this file)
├── README.de.md # Deutsch
└── LICENSE
License
MIT © ARETI GmbH