Documentation
VibeMon receives real-time status updates from AI agents and displays them on your dashboard. Configure your tools to send status updates via hooks or plugins.
Quick Install (Recommended)
Automatically configure hooks for Claude Code, Kiro, or OpenClaw
Option 1: Tell your AI agent
Read https://vibemon.io/setup.md and follow the instructions to join VibeMonYour AI will read the setup guide and configure everything automatically.
Option 2: Non-interactive (for AI agents)
bash# Claude Code
curl -fsSL https://vibemon.io/install.py | python3 - --claude --token my_token
# Kiro
curl -fsSL https://vibemon.io/install.py | python3 - --kiro --token my_token
# OpenClaw
curl -fsSL https://vibemon.io/install.py | python3 - --openclaw --token my_tokenThe script merges hooks into existing config files (preserves your settings). Config location: ~/.vibemon/config.json (Claude/Kiro) or ~/.openclaw/openclaw.json (OpenClaw).
Option 3: Interactive (for humans)
bashcurl -fsSL https://vibemon.io/install.py | python3Claude Code
Configure hooks and statusline for Claude Code
1. Configuration
Edit ~/.vibemon/config.json:
json{
"debug": false,
"cache_path": "~/.vibemon/cache/statusline.json",
"auto_launch": false,
"http_urls": [],
"serial_port": null,
"vibemon_url": "https://vibemon.io",
"vibemon_token": ""
}| Field | Description | Example |
|---|---|---|
| debug | Enable debug logging | true |
| cache_path | Cache file for project metadata | ~/.vibemon/cache/statusline.json |
| auto_launch | Auto-launch Desktop App on session start | true |
| http_urls | HTTP targets (Desktop App, ESP32 WiFi) | ["http://127.0.0.1:19280"] |
| serial_port | ESP32 USB serial port (wildcard supported) | /dev/cu.usbmodem* |
| vibemon_url | VibeMon cloud API URL | https://vibemon.io |
| vibemon_token | Your token (create any 8-64 char token, auto-registered on first use) | my_token_123 |
2. Register hooks in settings.json
Merge the following into your existing ~/.claude/settings.json (do not overwrite):
json{
"hooks": {
"SessionStart": [
{ "hooks": [{ "type": "command", "command": "python3 ~/.claude/hooks/vibemon.py" }] }
],
"UserPromptSubmit": [
{ "hooks": [{ "type": "command", "command": "python3 ~/.claude/hooks/vibemon.py" }] }
],
"PreToolUse": [
{ "hooks": [{ "type": "command", "command": "python3 ~/.claude/hooks/vibemon.py" }] }
],
"PreCompact": [
{ "hooks": [{ "type": "command", "command": "python3 ~/.claude/hooks/vibemon.py" }] }
],
"Notification": [
{ "hooks": [{ "type": "command", "command": "python3 ~/.claude/hooks/vibemon.py" }] }
],
"Stop": [
{ "hooks": [{ "type": "command", "command": "python3 ~/.claude/hooks/vibemon.py" }] }
]
},
"statusLine": {
"type": "command",
"command": "python3 ~/.claude/statusline.py"
}
}Hook Events
| Event | State | Description |
|---|---|---|
| SessionStart | start | Session begins |
| UserPromptSubmit | thinking | Processing prompt |
| PreToolUse | working | Tool executing |
| PreCompact | packing | Context compacting |
| Notification | notification | User input needed |
| Stop | done | Agent turn ends |
In plan mode, thinking and working states become planning.
CLI Commands
bash# Lock monitor to current project
python3 ~/.claude/hooks/vibemon.py --lock [project_name]
# Unlock monitor
python3 ~/.claude/hooks/vibemon.py --unlock
# Get current status
python3 ~/.claude/hooks/vibemon.py --status
# Get/set lock mode (first-project, on-thinking)
python3 ~/.claude/hooks/vibemon.py --lock-mode [mode]
# Reboot ESP32 device
python3 ~/.claude/hooks/vibemon.py --reboot