| Character | Color | Description | Auto-selected for |
|---|---|---|---|
clawd |
Orange | Default character with arms and legs | Claude Code |
kiro |
White | Ghost character with wavy tail | Kiro |
Character is auto-detected based on the IDE hook events. You can also manually change it via the system tray menu.
| State | Background | Eyes | Text | Trigger |
|---|---|---|---|---|
start |
Cyan | ■ ■ + ✦ | Hello! | Session begins |
idle |
Green | ■ ■ | Ready | Waiting for input |
thinking |
Purple | ▀ ▀ + 💭 | Thinking | User submits prompt |
planning |
Teal | ▀ ▀ + 💭 | Planning | Plan mode active |
working |
Blue | 🕶️ (sunglasses) | (tool-based) | Tool executing |
notification |
Yellow | ● ● + ? | Input? | User input needed |
done |
Green | > < | Done! | Tool completed |
sleep |
Navy | ─ ─ + Z | Zzz… | 5min inactivity |
The working state displays context-aware text based on the active tool:
| Tool | Possible Text |
|---|---|
| Bash | Running, Executing, Processing |
| Read | Reading, Scanning, Checking |
| Edit | Editing, Modifying, Fixing |
| Write | Writing, Creating, Saving |
| Grep | Searching, Finding, Looking |
| Glob | Scanning, Browsing, Finding |
| Task | Thinking, Working, Planning |
| WebFetch | Fetching, Loading, Getting |
| WebSearch | Searching, Googling, Looking |
| Default | Working, Busy, Coding |
| From State | Timeout | To State |
|---|---|---|
start, done |
1 minute | idle |
idle, notification |
5 minutes | sleep |
Desktop only: After 10 minutes in sleep state, the window automatically closes.
The Desktop App supports two window modes:
| Mode | Description |
|---|---|
multi |
One window per project (max 5) - Default |
single |
One window with project lock support |
Use the 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 to prevent display updates from other projects.
Note: Project lock is only available in single-window mode.
| Mode | Description |
|---|---|
first-project |
First incoming project is automatically locked |
on-thinking |
Lock when entering thinking state (default) |
# Lock current project
python3 ~/.claude/hooks/vibe-monitor.py --lock
# Lock specific project
python3 ~/.claude/hooks/vibe-monitor.py --lock my-project
# Unlock
python3 ~/.claude/hooks/vibe-monitor.py --unlock
# Get current status
python3 ~/.claude/hooks/vibe-monitor.py --status
# Get/Set lock mode
python3 ~/.claude/hooks/vibe-monitor.py --lock-mode
python3 ~/.claude/hooks/vibe-monitor.py --lock-mode on-thinking
| Mode | Description |
|---|---|
active-only |
Only active states (thinking, planning, working, notification) stay on top - Default |
all |
All windows stay on top regardless of state |
disabled |
No windows stay on top |
When active-only is selected:
Change via system tray menu: Always on Top → Select mode
When running Claude Code in multiple terminal tabs, clicking a Vibe Monitor window automatically switches to the corresponding terminal tab.
Supported Terminals:
Requirements:
cd desktop
npm run build:mac # macOS (DMG, ZIP)
npm run build:win # Windows (NSIS, Portable)
npm run build:linux # Linux (AppImage, DEB)
npm run build:all # All platforms