api-error-report — Claude Code skill: API error breakdown
Turns Agent Monitor data into a report on APIError events: how many, in which sessions and models, and what likely caused them.
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill api-error-report -a claude-codeWhat api-error-report does
The skill pulls Agent Monitor data over its local API and writes up APIError events. It reports the share of total events they make up, charts them per day, and flags days that run above the window average.
Then it groups errors by session and by model, so you can see where they pile up. Each event gets bucketed by cause: rate limit, overload (529), or context-window pressure. When the summary and data don't support a cause, the event lands in “Other”. Output is Markdown tables per section, percentages to 2 decimals and USD amounts to 4.
Read-only by design. If curl can't reach http://localhost:4820, the dashboard isn't running — start it with npm start from the repo root. The skill won't name a cause the payload doesn't back up.
What it helps with
- figure out why API requests started failing
- find the session with the most errors
- tell a rate limit apart from overload or context pressure
- chart error volume over a chosen window
- report errors for one specific model
Example prompts for the agent
- Report every API error from the last 7 days
- Break down API errors in session
abc123and tell me what fails most - Give me an API error report filtered to the “context” cause
How to install api-error-report
1Skills CLI (Vercel)
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill api-error-report -a claude-code2Manually: put the files in place
~/.claude/skills/api-error-report/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/api-error-report/
1Skills CLI (Vercel)
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill api-error-report -a codex2Manually: put the files in place
.agents/skills/api-error-report/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill api-error-report -a cursor2Manually: put the files in place
.cursor/skills/api-error-report/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install hoangsonww/Claude-Code-Agent-Monitor api-error-report2Manually: put the files in place
.github/skills/api-error-report/SKILL.md1Skills CLI (Vercel)
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill api-error-report -a gemini-cli2Platform CLI
gemini skills install https://github.com/hoangsonww/Claude-Code-Agent-Monitor --path plugins/ccam-quality/skills/api-error-reportManually: put the files in place
.devin/skills/api-error-report/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill api-error-report -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 api-error-report
How do I install api-error-report in Claude Code?
Run npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill api-error-report -a claude-code; the skill then sits at ~/.claude/skills/api-error-report/SKILL.md.
What does api-error-report do?
It builds a report on APIError events: volume and trend, affected sessions and models, a likely cause per event, and a timeline of the most recent failures.
What does the skill need to run?
A running Agent Monitor dashboard, which serves data at http://localhost:4820. If curl can't get there, start it with npm start from the repo root.
Source text
SKILL.md · MIT
--- name: api-error-report description: > Produce a detailed report on APIError events from Agent Monitor data — counts over time, which sessions and models are affected, and the likely root cause (rate limits, overload/529, or context-window pressure) inferred from each event's summary and data payload. Use when API errors spike or when you need to explain why requests are failing. --- # API Error Report Drill into `APIError` events: how many, when, where, and most likely why. ## Input The user provides: **$ARGUMENTS** This may be: - empty or "all" — report on every APIError in the recent window (default) - a session ID — report APIErrors for that one session only - a window like "today" or "last 7d" — restrict the time range - a cause filter: "rate-limit", "overload", or "context" ## Data Sources | Endpoint | Returns | |----------|---------| | `GET /api/analytics` | `event_types` (total `APIError` count), `daily_events` (365d) — APIError volume and trend over time | | `GET /api/events?session_id=X` | Per-session event stream — each `APIError` carries `summary`, `data`, and `timestamp` used to classify the cause | | `GET /api/sessions?limit=N` | Sessions with `id`, `model`, `started_at` — attribute each error to a model and place it on the timeline | ## Report Sections ### 1. Volume & Trend From `GET /api/analytics`: total `APIError` count and its share of `total_events`. Use `daily_events` to chart APIErrors over the requested window and flag any day that spikes above the window mean. ### 2. Affected Sessions & Models For each session in scope, pull `GET /api/events?session_id=X` and collect `APIError` events. Group by `session_id` and, via `GET /api/sessions`, by `model`. Report the top affected sessions and which model accounts for the most errors. ### 3. Likely Cause Classification Inspect each error's `summary`/`data` and bucket it: - **Rate limit** — mentions 429, "rate limit", "quota", or retry-after. - **Overload** — mentions 529, "overloaded", or capacity. - **Context** — mentions context length, token limit, or "too long" (correlate with nearby `Compaction` events). - **Other** — anything else; quote the `summary`. Report the count and percentage in each bucket. ### 4. Timeline List the most recent APIErrors with `timestamp`, `session_id`, `model`, classified cause, and a one-line `summary` excerpt. ## Output - A Markdown table per section (volume, by model, by cause). - Rates as percentages to 2 decimals; any currency in USD to 4 decimals. - Cite exact `session_id`, `model`, `timestamp`, and `summary` values — never invent a cause not supported by the payload; bucket as "Other" when unclear. - End with the dominant cause and a concrete mitigation (e.g., back off and retry on 529, reduce context to cut context errors, slow request rate on 429). - Read-only: only report what the API returns. If `curl` cannot reach `http://localhost:4820`, tell the user to start the dashboard with `npm start` from the repo root.
© hoangsonww · MIT · hoangsonww/Claude-Code-Agent-Monitor