Vibeleaderboard
Index / tool
Visit github.com
Category
Developer Tools
Rank
No. 1513Tools index
Pricing
Open Source
Type
TOOL
Use case
Productivity & Collaboration
Interfaces
CLI
GitHub
296 stars
Date

About

Integrates Claude Code with Moonside LED lamps via Bluetooth to provide visual status indicators. Your lamp displays different colors and animations based on Claude's state - animated themes while working, green when idle, and purple when input is needed.

What it does

Claude Lamp turns Claude Code lifecycle events into a small physical state machine. Hooks record one of four states, while a background Python process maintains a Bluetooth Low Energy connection and sends lamp commands. A separate command-line controller can scan devices, set colors and brightness, select themes, send raw commands, or run interactively.

Why it's ranked here

This is a focused, understandable hardware integration with sensible latency and failure choices. The persistent connection avoids repeated Bluetooth setup, hooks always aim to leave Claude unblocked, and reconnect retries handle interruptions. Its narrow macOS and Moonside scope, manual installation, and explicit hardware warning keep the verdict measured.

What's good

The architecture separates fast event capture from slower Bluetooth work. A lock prevents duplicate daemons, state polling is lightweight, reconnect attempts back off, and shutdown turns the lamp off. Automatic name-based discovery reduces initial configuration. Debouncing also guards against internal tool events incorrectly changing an idle lamp back to working.

Tradeoffs

Setup requires Python, a separately installed Bluetooth library, copied scripts, and manual merging of hook configuration. Bluetooth support is macOS-only through CoreBluetooth. Only the Halo model was tested; compatibility with other Moonside models is presented as an expectation. The author explicitly disclaims responsibility for possible hardware issues, and initial connection can take several seconds.

How to use it well

It suits macOS developers who already use Claude Code at a desk and own a compatible Moonside lamp. Install it globally when an ambient cue helps you notice approvals or completed work without watching the terminal. Use the standalone controller for lamp experiments. It does not provide general application notifications or support lamps outside the documented Moonside protocol.

Technical notes+

claude_hooks/settings.json maps Claude Code events and selected tool matchers to claude_hooks/moonside_hook.sh, which writes /tmp/moonside_state and starts claude_hooks/moonside_daemon.py when needed. The daemon polls every 200 ms, holds an fcntl lock, maintains a Bleak connection, writes ASCII commands through the Nordic UART Service TX characteristic, retries connections with increasing delays, and exits on the off state or after 30 minutes idle. moonside_ble.py is documented as a standalone CLI, although its source was not included in the supplied text. The README documents MOONSIDE_MAC pinning, but the supplied daemon source only performs name-prefix discovery and does not read that environment variable.

Observed

License
MIT
Languages
Python daemon and controller, Bash hook, and JSON configuration
Install surface
Manual script copy and Claude Code settings merge; Bleak installed with pip
Interfaces
Claude Code command hooks and a standalone command-line controller with interactive mode
Platform support
macOS with CoreBluetooth and Python 3.10 or newer
Hardware support
Moonside lamps over Bluetooth Low Energy; tested with Halo
Protocol
Nordic UART Service carrying ASCII commands for power, color, brightness, and themes

Read from README.md, claude_hooks/moonside_daemon.py, LICENSE, claude_hooks/settings.json, claude_hooks/moonside_hook.sh.

What it can do

  • Connect to Moonside LED lamps wirelessly

    Bluetooth-enabled Moonside LED lamp → Established Bluetooth connection

  • Display animated visual themes when Claude is processing

    Claude Code working state → Animated light patterns on lamp

  • Show green indicator when Claude is idle

    Claude Code idle state → Green light display on lamp

  • Display purple indicator when Claude needs input

    Claude Code input-needed state → Purple light display on lamp

  • Monitor Claude Code's current operational state

    Claude Code application status → Real-time state information

  • Control lamp colors and animations remotely

    Color and animation commands → Visual light changes on Moonside lamp

Tags

claudemoonsideledbluetoothstatus-indicatorhooksintegrationble

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.