OpenClaw Cost Tracker
Parse OpenClaw session files to compute per-model token usage, costs, and daily spend trends. Works with any OpenClaw installation — no API keys or external services needed.
Usage
# All-time cost report
python3 scripts/cost_tracker.py
# Last 7 days
python3 scripts/cost_tracker.py --days 7
# Today only
python3 scripts/cost_tracker.py --days 1
# Since a specific date
python3 scripts/cost_tracker.py --since 2026-02-01
# JSON output for dashboards/integrations
python3 scripts/cost_tracker.py --days 30 --format json
# Custom agents directory
python3 scripts/cost_tracker.py --agents-dir /path/to/agents
What It Reports
Per-model breakdown:
- Total cost, tokens, and request count
- Input/output/cache token split
- Visual percentage bar
Daily spend: Bar chart of cost per day (text) or structured array (JSON).
Grand totals: Combined cost, tokens, and requests across all models.
How It Works
- Auto-discovers the OpenClaw agents directory (
~/.openclaw/agents) - Scans all agent session JSONL files (filtered by mtime for speed)
- Extracts
message.usageandmessage.modelfrom each entry - Aggregates by model and by day
- Outputs formatted report or JSON
JSON Output Schema
{
"models": [
{
"model": "claude-opus-4-6",
"totalTokens": 220800000,
"inputTokens": 3200,
"outputTokens": 390800,
"cacheReadTokens": 149400000,
"cacheWriteTokens": 1200000,
"totalCost": 528.55,
"requestCount": 2088
}
],
"daily": [
{ "date": "2026-02-20", "cost": 37.14, "byModel": { "opus-4-6": 35.0, "sonnet-4": 2.14 } }
],
"grandTotal": { "totalCost": 580.11, "totalTokens": 269800000, "totalRequests": 3122 },
"meta": { "agentsDir": "...", "filesScanned": 65, "entriesParsed": 3122, "range": "7d" }
}
Integration
Feed JSON output into dashboards, alerting, or budgeting tools. The daily array is ready for charting. Set up a cron to track spend over time:
# Daily cost snapshot to file
0 0 * * * python3 /path/to/cost_tracker.py --days 1 --format json >> ~/cost-log.jsonl
Requirements
- Python 3.8+
- OpenClaw installed with session data in
~/.openclaw/agents/ - No external dependencies (stdlib only)