Warning
This project is vibe-coded. Don't expect anything stable.
Real-time dashboard for your Claude Code & OpenCode sessions.
- Installation or run locally with
bun run serve - Hook Configuration (for Claude Code)
- Start server with
ccmon serve - Open http://localhost:8080 in your browser
- View all your active Claude Code or OpenCode sessions, including their status, context usage, task
progress, and sub-agents
- Status reporting is semi-real-time for Claude Code, via hooks, but polled every 5s for OpenCode
- Visual notifications when user attention is required (permission requests, stopped sessions, etc.)
ccmon serve [--port N] # HTTP + WebSocket server (default port 8080)
ccmon status # Hook handler: reads event from stdin, writes status file
ccmon dump # Print all project states as JSON
ccmon dump --watch # Stream project states on change
dump and dump --watch are primarily for debugging/scripting.
# Add flake input:
inputs.ccmon.url = "github:appaquet/ccmon";
# Add to packages:
inputs.ccmon.packages.${system}.defaultConfigure Claude Code hooks in ~/.claude/settings.json (or project-level .claude/settings.json).
The project use them to track real-time signals that aren't available through watching session
files.
{
"hooks": {
"UserPromptSubmit": [
{
"matcher": "",
"hooks": [
{ "type": "command", "command": "ccmon status" }
]
}
],
"PostToolUse": [
{
"matcher": "",
"hooks": [
{ "type": "command", "command": "ccmon status" }
]
}
],
"PermissionRequest": [
{
"matcher": "",
"hooks": [
{ "type": "command", "command": "ccmon status" }
]
}
],
"Stop": [
{
"matcher": "",
"hooks": [
{ "type": "command", "command": "ccmon status" }
]
}
],
"SessionEnd": [
{
"matcher": "",
"hooks": [
{ "type": "command", "command": "ccmon status" }
]
}
],
"Notification": [
{
"matcher": "",
"hooks": [
{ "type": "command", "command": "ccmon status" }
]
}
],
"SessionStart": [
{
"matcher": "",
"hooks": [
{ "type": "command", "command": "ccmon status" }
]
}
]
}
}bun install # Install dependencies
bun test # Run tests
bun run dump # Dump project states
bun run serve # Start server