endpoint-probe — Claude Code skill: what it does, how to install
Smoke-tests Agent Monitor API routes on localhost, measures latency, and confirms returned JSON shapes.
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill endpoint-probe -a claude-codeWhat endpoint-probe does
The skill issues single GET requests to main Agent Monitor routes at http://localhost:4820. It covers /api/stats, /api/analytics, /api/sessions, /api/pricing/cost, /api/workflows/runs, and /api/cc-config/overview. For every route, it records the HTTP status code, round-trip latency, and top-level response shape.
If port 4820 is unreachable, testing halts immediately at /api/stats. The skill stops because a down stats route means the server is off, and it prompts running npm start or npm run dev from the project root.
Results arrive as a compact Markdown table. You can pass a substring argument like pricing to target specific paths instead of running the full suite. Currency values are reported to 4 decimal places.
What it helps with
- verify that local Agent Monitor API routes are reachable
- measure round-trip latency across dashboard endpoints
- inspect returned JSON body shapes for sessions and costs
- spot disconnected or misconfigured monitoring routes
Example prompts for the agent
- Run endpoint-probe to test all dashboard API routes
- Probe only the pricing endpoints using endpoint-probe
- Check if the Agent Monitor API is running on localhost:4820
How to install endpoint-probe
1Skills CLI (Vercel)
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill endpoint-probe -a claude-code2Manually: put the files in place
~/.claude/skills/endpoint-probe/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/endpoint-probe/
1Skills CLI (Vercel)
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill endpoint-probe -a codex2Manually: put the files in place
.agents/skills/endpoint-probe/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill endpoint-probe -a cursor2Manually: put the files in place
.cursor/skills/endpoint-probe/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install hoangsonww/Claude-Code-Agent-Monitor endpoint-probe2Manually: put the files in place
.github/skills/endpoint-probe/SKILL.md1Skills CLI (Vercel)
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill endpoint-probe -a gemini-cli2Platform CLI
gemini skills install https://github.com/hoangsonww/Claude-Code-Agent-Monitor --path plugins/ccam-dashboard/skills/endpoint-probeManually: put the files in place
.devin/skills/endpoint-probe/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill endpoint-probe -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 endpoint-probe
How to install endpoint-probe in Claude Code?
Run npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill endpoint-probe -a claude-code. This writes the skill to ~/.claude/skills/endpoint-probe/SKILL.md.
What does endpoint-probe do?
It sends GET requests to Agent Monitor routes, checks for 2xx responses with valid JSON, and measures latency. It presents the findings in a summary Markdown table.
What happens when /api/stats fails to connect?
The probe stops execution immediately because the dashboard is not running. It instructs you to start the server using npm start or npm run dev from the repository root.
Source text
SKILL.md · MIT
---
name: endpoint-probe
description: >
Probes each major Agent Monitor API route — /api/stats, /api/analytics,
/api/sessions, /api/pricing/cost, /api/workflows/runs, /api/cc-config/overview
— and reports each one's HTTP status, latency, and response shape, flagging
which are reachable. Use to verify a dashboard install is wired up correctly.
---
# Endpoint Probe
Smoke-test the dashboard's main API surface by hitting each major route once and
reporting whether it responds and what shape it returns.
## Input
The user provides: **$ARGUMENTS**
Options: empty (default: probe all routes below), or a substring to filter which
routes are probed (e.g. `pricing` probes only matching routes).
## Data Sources
| Endpoint | Returns |
|----------|---------|
| `GET /api/stats` | `{ total_sessions, active_sessions, active_agents, total_agents, total_events, events_today, ws_connections, agents_by_status, sessions_by_status }` |
| `GET /api/analytics` | `{ overview, tokens, tool_usage, daily_events, daily_sessions, agent_types, event_types, avg_events_per_session, total_subagents, sessions_by_status, agents_by_status }` |
| `GET /api/sessions` | Session list; each: `id, status, model, cwd, started_at, ended_at, cost, metadata` |
| `GET /api/pricing/cost` | `{ total_cost, breakdown:[{ model, input_tokens, output_tokens, cache_read_tokens, cache_write_tokens, cost, matched_rule }] }` |
| `GET /api/workflows/runs` | Workflow-tool run journals (fleets) |
| `GET /api/cc-config/overview` | Claude Code config explorer overview (skills, agents, commands, plugins, mcp, hooks, etc.) |
## Method
For each route, issue a single `GET` against `http://localhost:4820<path>` with a
short timeout, capturing the HTTP status code, round-trip latency, and the
top-level shape of the JSON body (object keys, or array length). A route counts
as reachable when it returns a 2xx with parseable JSON.
If `/api/stats` itself fails to connect, the dashboard is not running — stop and
tell the user to start it with `npm start` (or `npm run dev`) from the repo root.
## Report Sections
### 1. Probe Matrix
A Markdown table — one row per route — with columns:
`endpoint`, `status` (HTTP code), `latency`, `reachable` (✅/❌), `shape`
(e.g. `object: {total_cost, breakdown[…]}` or `array[N]`).
### 2. Reachability Summary
Count of reachable vs total. Name any unreachable or non-2xx routes explicitly.
### 3. Verdict
One line: install looks healthy (all reachable) or partially wired (list the
gaps and the most likely cause — server not running, route disabled, or empty data).
## Output
- Compact Markdown; the probe matrix is the centerpiece.
- Cite the real status code, latency, and observed shape per route — never assume.
- Report shape from what actually came back; if a route returns an empty array or
object, say so rather than inferring fields.
- Keep currency, where shown, to 4 decimals (e.g. `total_cost: $0.0000`).
© hoangsonww · MIT · hoangsonww/Claude-Code-Agent-Monitor