live-watch — Claude Code skill: watch dashboard counters move
Polls the Agent Monitor /api/stats endpoint a few times in a row and reports how the counters shift across that window. Useful when you want motion, not a single snapshot.
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill live-watch -a claude-codeWhat live-watch does
Each poll hits GET /api/stats and records the timestamp plus four counters: active_sessions, active_agents, events_today, ws_connections. The window stays short — seconds, not minutes — so the run feels interactive.
You shape the watch with an argument. 5x3s means five samples three seconds apart. Leave it empty and you get five samples at roughly three-second gaps, about a 15-second window. A bare number sets the sample count at the usual interval; a bare duration sets the interval at the usual sample count.
The report has four parts: the watch window, a Markdown table with one row per poll, deltas for each counter marked ▲, ▼ or =, and a one-line verdict on whether the dashboard is taking traffic or sitting idle. Should the very first request fail, the dashboard is down — the skill stops and asks you to start it with npm start or npm run dev from the repo root.
What it helps with
- check whether active sessions are climbing right now
- catch a burst of events inside a short window
- tell a live dashboard from a stalled one
- line up several counters in one sample table
- get a WebSocket connection delta without firing requests by hand
Example prompts for the agent
- Watch the dashboard for
5x3s - Take 10 samples two seconds apart and show the deltas
- Check whether the counters move over the last 15 seconds
How to install live-watch
1Skills CLI (Vercel)
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill live-watch -a claude-code2Manually: put the files in place
~/.claude/skills/live-watch/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/live-watch/
1Skills CLI (Vercel)
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill live-watch -a codex2Manually: put the files in place
.agents/skills/live-watch/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill live-watch -a cursor2Manually: put the files in place
.cursor/skills/live-watch/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install hoangsonww/Claude-Code-Agent-Monitor live-watch2Manually: put the files in place
.github/skills/live-watch/SKILL.md1Skills CLI (Vercel)
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill live-watch -a gemini-cli2Platform CLI
gemini skills install https://github.com/hoangsonww/Claude-Code-Agent-Monitor --path plugins/ccam-dashboard/skills/live-watchManually: put the files in place
.devin/skills/live-watch/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill live-watch -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about live-watch
How do I install live-watch in Claude Code?
Run npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill live-watch -a claude-code. The skill file lands at ~/.claude/skills/live-watch/SKILL.md.
What does live-watch do?
It polls the Agent Monitor /api/stats endpoint several times and shows how active_sessions, active_agents, events_today and ws_connections changed over that span.
What has to be running for the skill to work?
The Agent Monitor dashboard. If the first poll cannot connect, the skill halts and tells you to bring it up with npm start or npm run dev from the repo root.
Source text
SKILL.md · MIT
---
name: live-watch
description: >
Polls the Agent Monitor /api/stats endpoint several times over a short window
and reports the live deltas in active_sessions, active_agents, events_today,
and ws_connections so you can see activity moving in real time. Use when
watching the dashboard for live changes rather than a one-time snapshot.
---
# Live Watch
Watch the dashboard's live counters change over a short window by polling
`/api/stats` a few times and reporting the deltas.
## Input
The user provides: **$ARGUMENTS**
Interpreted as the watch shape: number of polls and/or interval (e.g. `5x3s` =
5 samples 3 seconds apart). Defaults when empty: **5 samples, ~3 seconds apart**
(a ~15-second window). A bare number means that many samples at the default
interval; a bare duration means the default sample count at that interval.
## Data Sources
| Endpoint | Returns |
|----------|---------|
| `GET /api/stats` (polled) | `{ total_sessions, active_sessions, active_agents, total_agents, total_events, events_today, ws_connections, agents_by_status, sessions_by_status }` |
## Method
Poll `GET /api/stats` once per interval for the configured number of samples,
recording the timestamp and the four watched counters each time. Pace the polls
with a short wait between requests; keep the total window short (seconds, not
minutes) so it stays interactive.
If the very first poll fails to connect, the dashboard is down — stop and tell
the user to start it with `npm start` (or `npm run dev`) from the repo root,
then retry.
## Report Sections
### 1. Watch Window
State the sample count, interval, and total elapsed window.
### 2. Sample Timeline
A Markdown table — one row per poll — with columns:
`#`, `time`, `active_sessions`, `active_agents`, `events_today`, `ws_connections`.
### 3. Deltas
For each of the four watched counters, report the net change from the first to
the last sample using ▲ (increase), ▼ (decrease), or `=` (no change). Note any
mid-window spikes or dips visible in the timeline.
### 4. Verdict
One line: is the dashboard actively receiving traffic (counters moving) or idle
(flat) over the window?
## Output
- Compact Markdown. The timeline table is the centerpiece.
- Cite real values from each poll — never interpolate or invent samples.
- Deltas use ▲/▼/= with the signed numeric change, e.g. `events_today: ▲ +7`.
- Keep it scannable in a terminal — no padding beyond the table.
© hoangsonww · MIT · hoangsonww/Claude-Code-Agent-Monitor