agents
Break down AI coding spend by sub-agent type: run counts, dominant model, average cost, read-only tool-call share, errored results, and requested-vs-actual model mismatches.
Instructions
Spend per sub-agent type: runs, the model it mostly used, average cost per run, the share of runs whose tool calls were all read-only, errored tool results, and runs where the requested model differed from the one actually used.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "agents"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | window: 7d, 30d, 90d, all, or a YYYY-MM-DD start date; default 30d | |
| source | No | restrict to one tool: "claude-code" or "codex"; default both | |
| project | No | restrict to one project directory, exact match, or a prefix if it ends with a path separator | |
| currency | No | override the detected plan: "usd" reports as charged, "share" reports as a subscription's list-price equivalent |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| plan | Yes | "api" or "subscription", re-detected on every scan | |
| agents | Yes | ||
| currency | Yes | "usd" when the figures were charged, "list_price_equivalent" when a subscription covered them and the figures are what the usage would have cost on the API | |
| scan_error | No | why the most recent scan attempt failed, in which case the figures are from the last successful scan | |
| age_seconds | Yes | seconds since that scan; the server rescans when a tool is called more than 60 seconds after the last attempt, or on refresh | |
| ingested_at | Yes | RFC 3339 time of the last successful transcript scan; empty if none has succeeded yet | |
| plan_reason | Yes | why that plan was chosen |