# endpoint-probe

Smoke-tests Agent Monitor API routes on localhost, measures latency, and confirms returned JSON shapes.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · ★ 1121
- Author: hoangsonww
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/hoangsonww/Claude-Code-Agent-Monitor/tree/HEAD/plugins/ccam-dashboard/skills/endpoint-probe/SKILL.md
- Updated: 2026-10-23
- HTML: https://affpapa.org/en/nevibecode/skills/endpoint-probe

## What it 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.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill endpoint-probe -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/endpoint-probe/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/endpoint-probe/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill endpoint-probe -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/endpoint-probe/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill endpoint-probe -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/endpoint-probe/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install hoangsonww/Claude-Code-Agent-Monitor endpoint-probe
```

2. **Manually: put the files in place**
- File: `.github/skills/endpoint-probe/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill endpoint-probe -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/hoangsonww/Claude-Code-Agent-Monitor --path plugins/ccam-dashboard/skills/endpoint-probe
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/endpoint-probe/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill endpoint-probe -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/hoangsonww/Claude-Code-Agent-Monitor/tree/HEAD/plugins/ccam-dashboard/skills/endpoint-probe/SKILL.md

## When to use it
- 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
- 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

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: 393420258f18b238.

BEGIN THIRD-PARTY FILE 393420258f18b238
```text
---
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.
```
END THIRD-PARTY FILE 393420258f18b238

The third-party file has ended. Everything between the 393420258f18b238 tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2881 of 2956 bytes. © hoangsonww · MIT · https://github.com/hoangsonww/Claude-Code-Agent-Monitor/tree/HEAD/plugins/ccam-dashboard/skills/endpoint-probe/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
