Real-time status monitor for AI assistants with pixel art character display.
See at a glance what your AI assistant is doing — thinking, working, or waiting for input. A cute pixel art character visually represents the current state.
| Tool | Description |
|---|---|
| Claude Code | Anthropic’s official AI coding assistant |
| Kiro | AWS’s AI coding assistant |
| OpenClaw | Open-source computer use agent |
| Field | Description | Example |
|---|---|---|
| State | Current activity state | working, idle, notification |
| Project | Active project directory | vibemon-app |
| Tool | Currently executing tool | Bash, Read, Edit |
| Model | Active model | Opus 4.5, Sonnet |
| Memory | Context window usage | 45% |
| Platform | Description | Best For |
|---|---|---|
| ESP32 Hardware | Dedicated LCD display (172×320 or 170×320, selected via BOARD_TYPE) |
Primary, always-on desk companion |
| Desktop App | Electron app with system tray | Alternative for non-hardware users |
BOARD_TYPE in credentials.h and flash firmware (ESP32-C6-LCD-1.47 or 1.9)VibeMon-Setup (password: vibemon123)See ESP32 Setup Guide for detailed instructions.

Setup & Configuration:
Reference:
For detailed installation instructions, visit vibemon.io/docs.
| State | Color | Description |
|---|---|---|
start |
Cyan | Session begins |
idle |
Green | Waiting for input |
thinking |
Purple | Processing prompt |
planning |
Teal | Plan mode active |
working |
Blue | Tool executing |
packing |
Gray | Context compacting |
notification |
Yellow | User input needed |
done |
Green | Tool completed |
sleep |
Navy | 5min inactivity |
alert |
Red | Critical error/failure |
See Features for animations, working state text, and more.
| Character | Color | Auto-selected for |
|---|---|---|
apto |
Gray-Purple | Apto |
clawd |
Orange | Claude Code |
kiro |
White | Kiro |
claw |
Red | OpenClaw |
Default port: 19280
Update monitor status:
curl -X POST http://127.0.0.1:19280/status \
-H "Content-Type: application/json" \
-d '{"state":"working","tool":"Bash","project":"my-project"}'
Get all windows’ status:
curl http://127.0.0.1:19280/status
Stop the application:
curl -X POST http://127.0.0.1:19280/quit
See API Reference for all endpoints.
| Mode | Description |
|---|---|
multi |
One window per project (max 5) - Default |
single |
One window with project lock support |
Switch via system tray menu or API:
curl -X POST http://127.0.0.1:19280/window-mode \
-H "Content-Type: application/json" \
-d '{"mode":"single"}'
Lock the monitor to a specific project (single-window mode only):
# Lock
python3 ~/.claude/hooks/vibemon.py --lock
# Unlock
python3 ~/.claude/hooks/vibemon.py --unlock
See Features for lock modes and CLI commands.
| Issue | Solution |
|---|---|
| Window not appearing | Check system tray, or run curl -X POST http://127.0.0.1:19280/show |
| Port already in use | Check with lsof -i :19280 |
| Hook not working | Verify Python 3: python3 --version |
| Issue | Solution |
|---|---|
| Captive portal doesn’t open | Navigate to http://192.168.4.1 manually |
| WiFi connection fails | Check password, ensure 2.4GHz network |
| Device won’t enter setup mode | Send POST /wifi-reset to clear credentials |
See ESP32 Setup Guide for detailed troubleshooting.
MIT