Claude Code spending intelligence — track tokens, compare costs, discover patterns
claude-intel has 8 well-named tools with consistent verb_noun patterns (get_*). All tools include descriptions (avg ~150 chars, within baseline 34-392 range) and input schemas with date-range parameters. However, output schemas are NOT documented, responses are JSON-stringified text blobs with no declared structure. Parameter descriptions are present but minimal (10-15 chars typical). Error handling wraps all tools but provides generic 'Error: {message}' responses without recovery guidance or error classification. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all tools being read-only. Missing pagination support for tools that could return large result sets (e.g., get_daily_breakdown, get_project_costs).
Compare actual Anthropic costs with hypothetical costs from OpenAI, Google, and other providers. Use this when the user asks to compare providers or wants to know if they'd save money switching.
Get cache hit rate and cost savings from prompt caching. Use this when the user asks about caching performance or wants to know how much caching saves them.
Get daily cost and token breakdown over time. Use this when the user wants to see spending trends, daily usage patterns, or track costs day-by-day.
Get personalized Claude Code hook recommendations based on your projects and usage patterns. Returns ready-to-use bash scripts for guardrails like secret detection, RLS reminders, and cost alerts.
Get behavioral patterns and usage insights like peak hours, marathon sessions, and model mismatch alerts. Use this when the user wants tips or patterns about their usage habits.
Get per-model cost and token split. Use this when the user asks which models they use most, or wants to understand their Opus vs Sonnet vs Haiku mix.
Output schemas not documented. All tools return JSON-stringified text responses with no declared structure. LLMs cannot plan downstream operations or extract fields reliably.
No pagination support. Tools like get_daily_breakdown and get_project_costs could return unbounded result sets, risking context window exhaustion. Missing limit/offset parameters and total_count in responses.
Error responses lack recovery guidance. Generic 'Error: {message}' format provides no actionable next steps. No error classification (retryable vs user-fixable vs fatal).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Get per-project cost breakdown, optionally limited to top N. Use this when the user asks which project costs the most or wants a project-level spending report.
Get total spend and token counts for a date range. Use this when the user asks how much they've spent or wants a spending overview.
No tool annotations despite all tools being read-only. Missing readOnlyHint declarations that would signal to agents these are safe to call without side effects.
Parameter descriptions are minimal (10-15 chars). Baseline for A+ tools is 72 chars avg. Descriptions like 'Start date (YYYY-MM-DD)' lack context on when/why to use date ranges or what happens if omitted.