Dashboard
VibeMonVibeMon Docs

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 VibeMon

Your 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_token

The 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 | python3

Claude 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": ""
}
FieldDescriptionExample
debugEnable debug loggingtrue
cache_pathCache file for project metadata~/.vibemon/cache/statusline.json
auto_launchAuto-launch Desktop App on session starttrue
http_urlsHTTP targets (Desktop App, ESP32 WiFi)["http://127.0.0.1:19280"]
serial_portESP32 USB serial port (wildcard supported)/dev/cu.usbmodem*
vibemon_urlVibeMon cloud API URLhttps://vibemon.io
vibemon_tokenYour 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

EventStateDescription
SessionStartstartSession begins
UserPromptSubmitthinkingProcessing prompt
PreToolUseworkingTool executing
PreCompactpackingContext compacting
NotificationnotificationUser input needed
StopdoneAgent 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