{"id":"7e2e17f2-e811-4bf5-ba8e-7e05d440a524","entityType":"agent","slug":"clawhub-space-cadet-token-usage","name":"Token Usage Tracker","canonicalUrl":"https://www.xpersona.co/agent/clawhub-space-cadet-token-usage","canonicalPath":"/agent/clawhub-space-cadet-token-usage","generatedAt":"2026-10-10T13:39:56.640Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T11:23:47.203Z","emptyReason":null},"description":"Track, aggregate, and report OpenClaw token usage and costs across sessions.","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.5K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s17dfmfy79et7b7hb5944pm7qd8a031j:token-usage","sourceUrl":"https://clawhub.ai/space-cadet/token-usage","homepage":"https://clawhub.ai/space-cadet/skills/token-usage","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/space-cadet/token-usage","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/space-cadet/skills/token-usage","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":63,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Token Usage Tracker technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T11:23:47.203Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T11:23:47.203Z","emptyReason":null},"stars":null,"forks":null,"downloads":1467,"packageName":null,"latestVersion":"2.5.1","tractionLabel":"1.5K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T11:23:47.203Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T11:23:47.203Z","lastCrawledAt":"2026-10-10T11:23:47.203Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T11:23:47.203Z","lastVerifiedAt":null,"highlights":[{"version":"2.5.1","createdAt":"2026-09-18T17:35:23.119Z","changelog":"Fix T16 regressions: IST timezone conversion restored, removed CLI flags restored, per-model cron pricing, version-gate tuple compare, SQLite double-count guard, real cache costs. Includes v2.5.0 9.x SQLite backend.","fileCount":11,"zipByteSize":41713},{"version":"2.4.1","createdAt":"2026-08-21T07:58:05.733Z","changelog":"Fix pricing for bare model names. Update DEFAULT_PRICING with correct Kimi prices. Add model aliases in common.py.","fileCount":8,"zipByteSize":36859},{"version":"2.4.0","createdAt":"2026-08-14T12:44:04.182Z","changelog":"Add Codex, OpenAI, Claude, shared parsing, cache-aware reports, and local timezone handling.","fileCount":8,"zipByteSize":35815},{"version":"2.3.0","createdAt":"2026-07-26T23:03:27.942Z","changelog":"Timezone-aware daily reports (--today/--yesterday use local IST instead of UTC). Model alias support (k3 -> kimi/k3 pricing lookup). Added k3 to pricing.json. Resilient to missing session files.","fileCount":7,"zipByteSize":22841},{"version":"2.2.4","createdAt":"2026-07-23T06:09:30.132Z","changelog":"Multi-source pricing: OpenRouter API + Moonshot direct. Added update-pricing.py, registry.json. Fixed parse.py None cache pricing bug.","fileCount":9,"zipByteSize":30324},{"version":"2.2.3","createdAt":"2026-07-23T06:06:57.923Z","changelog":"Multi-source pricing: OpenRouter API + Moonshot direct. Added update-pricing.py, registry.json. Fixed parse.py None cache pricing bug.","fileCount":9,"zipByteSize":30285},{"version":"2.2.2","createdAt":"2026-07-23T06:04:56.590Z","changelog":"Multi-source pricing: OpenRouter API + Moonshot direct. Added update-pricing.py, registry.json. Fixed parse.py None cache pricing bug.","fileCount":7,"zipByteSize":22691},{"version":"2.2.1","createdAt":"2026-07-23T06:03:02.240Z","changelog":"Multi-source pricing: OpenRouter API + Moonshot direct. Added update-pricing.py, registry.json. Fixed parse.py None cache pricing bug.","fileCount":7,"zipByteSize":22807}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17dfmfy79et7b7hb5944pm7qd8a031j:token-usage","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17dfmfy79et7b7hb5944pm7qd8a031j:token-usage` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/space-cadet/token-usage before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-space-cadet-token-usage/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-space-cadet-token-usage/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-space-cadet-token-usage/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-space-cadet-token-usage/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-space-cadet-token-usage/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-space-cadet-token-usage/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T13:39:56.637Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-space-cadet-token-usage/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-space-cadet-token-usage/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-space-cadet-token-usage/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-space-cadet-token-usage/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T11:23:47.203Z","emptyReason":null},"readme":"Skill: Token Usage Tracker\n\nOwner: space-cadet\n\nSummary: Track, aggregate, and report OpenClaw token usage and costs across sessions.\n\nTags: latest:2.5.1\n\nVersion history:\n\nv2.5.1 | 2026-09-18T17:35:23.119Z | user\n\nFix T16 regressions: IST timezone conversion restored, removed CLI flags restored, per-model cron pricing, version-gate tuple compare, SQLite double-count guard, real cache costs. Includes v2.5.0 9.x SQLite backend.\n\nv2.4.1 | 2026-08-21T07:58:05.733Z | user\n\nFix pricing for bare model names. Update DEFAULT_PRICING with correct Kimi prices. Add model aliases in common.py.\n\nv2.4.0 | 2026-08-14T12:44:04.182Z | user\n\nAdd Codex, OpenAI, Claude, shared parsing, cache-aware reports, and local timezone handling.\n\nv2.3.0 | 2026-07-26T23:03:27.942Z | user\n\nTimezone-aware daily reports (--today/--yesterday use local IST instead of UTC). Model alias support (k3 -> kimi/k3 pricing lookup). Added k3 to pricing.json. Resilient to missing session files.\n\nv2.2.4 | 2026-07-23T06:09:30.132Z | user\n\nMulti-source pricing: OpenRouter API + Moonshot direct. Added update-pricing.py, registry.json. Fixed parse.py None cache pricing bug.\n\nv2.2.3 | 2026-07-23T06:06:57.923Z | user\n\nMulti-source pricing: OpenRouter API + Moonshot direct. Added update-pricing.py, registry.json. Fixed parse.py None cache pricing bug.\n\nv2.2.2 | 2026-07-23T06:04:56.590Z | user\n\nMulti-source pricing: OpenRouter API + Moonshot direct. Added update-pricing.py, registry.json. Fixed parse.py None cache pricing bug.\n\nv2.2.1 | 2026-07-23T06:03:02.240Z | user\n\nMulti-source pricing: OpenRouter API + Moonshot direct. Added update-pricing.py, registry.json. Fixed parse.py None cache pricing bug.\n\nv2.2.0 | 2026-07-23T05:55:53.344Z | user\n\nMulti-source pricing: OpenRouter API + Moonshot direct. Added update-pricing.py, registry.json. Fixed parse.py None cache pricing bug.\n\nv2.1.1 | 2026-07-23T05:52:04.652Z | auto\n\n**Changelog for token-usage v2.1.1**\n\n- Added scripts/registry.json and scripts/update-pricing.py for improved pricing and registry data management.\n- Updated documentation with simplified usage instructions and streamlined command examples.\n- Enhanced cost reporting: pricing structure and estimation clarified and centralized.\n- Minor code and documentation cleanup; archiving/session management instructions removed for brevity.\n- Removed obsolete skill-card.md file.\n\nv2.1.0 | 2026-07-21T10:41:46.943Z | user\n\nAdded rolling time windows (--hours, --since, --until), relative time parsing, mtime filtering for performance, --cache and --session-detail flags, session file management docs\n\nv1.2.1 | 2026-07-21T10:33:22.504Z | auto\n\n- Expanded time period selection flags for more flexible reporting (--hours, --days, --since, --until, etc.).\n- Added table summarizing available time period arguments and relative time shorthand.\n- Documented new advanced examples for date-based and hour-based reports.\n- Improved documentation of output flags and per-session/model breakdown options.\n- Introduced a new section on session file management, including tips for size monitoring and archiving.\n- Clarified limitations and added notes about high file counts and performance.\n\nv1.2.0 | 2026-07-16T06:37:54.456Z | user\n\nAdd --yesterday flag to parse.py. Update SKILL.md and skill-card to document both direct parser (recommended) and SQLite (optional) approaches.\n\nv1.1.0 | 2026-07-15T06:37:34.585Z | user\n\nSQLite persistence, incremental ingestion, cron automation (daily/weekly/monthly), data retention with 90-day daily + forever monthly rollup, job type classification (user/cron/background), updated pricing config.\n\nv1.0.1 | 2026-07-06T07:58:33.525Z | auto\n\n- Clarified how the \"totalTokens\" field is handled: the script now only sums input and output tokens, avoiding inflation from cache reads.\n- Added a new section (\"Important: What 'Total' Means\") to SKILL.md explaining token counting logic and preventing overcounting.\n- Documentation improvements; no changes to core script behavior.\n\nv1.0.0 | 2026-07-06T07:29:21.701Z | auto\n\nInitial release of the Token Usage Tracker for OpenClaw.\n\n- Tracks and aggregates token usage and estimated costs from OpenClaw session JSONL files.\n- Supports reporting by date, model, and session, with commands for daily, weekly, and all-time summaries.\n- Outputs markdown reports, JSON exports, and model-level breakdowns for budget monitoring and optimization analysis.\n- Utilizes editable model pricing for flexible cost estimates.\n- Only compatible with OpenClaw sessions in JSONL format (2026.5+).\n\nArchive index:\n\nArchive v2.5.1: 11 files, 41713 bytes\n\nFiles: README.md (5794b), scripts/common.py (5852b), scripts/ingest.py (9641b), scripts/parse.py (38060b), scripts/pricing.json (82695b), scripts/registry.json (142166b), scripts/report.py (7085b), scripts/update-pricing.py (7796b), skill-card.md (2330b), SKILL.md (6887b), _meta.json (130b)\n\nFile v2.5.1:SKILL.md\n\n---\nname: token-usage\ndescription: \"Track, aggregate, and report OpenClaw token usage and costs across sessions.\"\nhomepage: https://github.com/space-cadet/openclaw-tools/tree/main/skills/token-usage\nlicense: MIT\nversion: \"2.5.1\"\n---\n\n# Token Usage Tracker\n\nParse OpenClaw and Codex session files to extract token usage, aggregate by date/model/session, and generate provider-aware cost reports. Works across OpenClaw storage eras — pre-9.x JSONL, 9.x SQLite, and transitional mixed storage.\n\n## When to Use\n\n- User asks \"how many tokens did I use today/this week\"\n- User wants to know session costs or model breakdown\n- Budget monitoring and anomaly detection\n- Before/after optimization comparisons\n\n## Workflow\n\n1. **Locate sessions** — Find `.jsonl` files in OpenClaw agent sessions and nested Codex rollout sessions\n2. **Parse usage** — Extract OpenClaw message usage or Codex `token_count` per-turn usage\n3. **Aggregate** — Group by date, model, session ID\n4. **Report** — Output summaries, trends, cost estimates\n\n## Commands\n\n### Time Period Selection\n\n| Flag | Description | Example |\n|------|-------------|---------|\n| `--today` | Current calendar day (local timezone) | `--today` |\n| `--yesterday` | Previous calendar day (local timezone) | `--yesterday` |\n| `--week` | Last 7 calendar days | `--week` |\n| `--days N` | Last N calendar days | `--days 3` |\n| `--hours N` | Rolling window: last N hours | `--hours 24` |\n| `--since TIME` | Start time (ISO, date, or relative) | `--since 24h`, `--since 2d`, `--since \"2026-07-20T09:00:00\"` |\n| `--until TIME` | End time (ISO, date, or relative) | `--until 1h` |\n| `--all` | All time | `--all` |\n\n**Relative time shorthand:** `1h` = 1 hour ago, `2d` = 2 days ago, `30m` = 30 minutes ago.\n\n### Report by Model (with costs)\n```bash\n# Past 24 hours, model breakdown with cost estimates\npython3 ~/.openclaw/skills/token-usage/scripts/parse.py --hours 24 --by-model --costs\n\n# Today so far\npython3 ~/.openclaw/skills/token-usage/scripts/parse.py --today --by-model --costs\n\n# Yesterday\npython3 ~/.openclaw/skills/token-usage/scripts/parse.py --yesterday --by-model --costs\n\n# Since a specific time\npython3 ~/.openclaw/skills/token-usage/scripts/parse.py --since \"2026-07-20T09:00:00\" --by-model --costs\n\n# Last 2 hours\npython3 ~/.openclaw/skills/token-usage/scripts/parse.py --since 2h --by-model --costs\n```\n\n### Report by Cron Job (daily breakdown per job)\n```bash\npython3 ~/.openclaw/skills/token-usage/scripts/parse.py --week --by-cron\n```\n\n### All-time summary by model\n```bash\npython3 ~/.openclaw/skills/token-usage/scripts/parse.py --all --by-model\n```\n\n### Export to JSON for external dashboards\n```bash\npython3 ~/.openclaw/skills/token-usage/scripts/parse.py --week --json > /tmp/token-report.json\n```\n\n### Additional Output Options\n\n| Flag | Description |\n|------|-------------|\n| `--cache` | Include cache read/write columns in report |\n| `--session-detail` | Show per-session breakdown with models used |\n| `--json` | Output machine-readable JSON |\n| `--costs` | Add cost estimates (requires pricing data) |\n\n## Timezone Behavior\n\n`--today` and `--yesterday` use the **local system timezone** (Asia/Calcutta / IST by default). This ensures daily reports align with your local day even when cron jobs run at off-UTC hours (e.g., 04:00 IST = 22:30 UTC previous day).\n\n## Model Aliases\n\nSession files may store model names in short form (`k3`, `k2.7`) or long form (`kimi/k3`). The parser normalizes these for pricing lookup:\n- Short form (`k3`) → tries `k3` then `kimi/k3`\n- Full form (`kimi/k3`) → direct lookup\n\nSessions are stored as JSONL with lines like:\n```json\n{\"type\":\"message\",\"message\":{\"role\":\"assistant\",...},\"usage\":{\"input\":1000,\"output\":500,\"totalTokens\":1500},...}\n```\n\n## Cost Estimation\n\nUses model pricing from `scripts/pricing.json` (user-editable). Default prices:\n- Kimi k2.7: $0.90/1M input, $3.75/1M output\n- Kimi k3: $2.78/1M input, $13.89/1M output\n- Kimi k2.7-code: $0.90/1M input, $3.75/1M output\n- Claude Sonnet 4: $3.00/1M input, $15.00/1M output\n- GPT-4o: $2.50/1M input, $10.00/1M output\n\nCosts are approximate. Cache read/write pricing applied when available. Unprefixed model names (e.g. `k3`) are automatically mapped to their full form (`kimi/k3`) for pricing lookup.\n\n## Session File Management\n\nSession files accumulate over time. The `~/.openclaw/agents/main/sessions/` directory can grow to several GB with thousands of files, slowing down reports.\n\n**Current usage check:**\n```bash\n# Total size and file count\ndu -sh ~/.openclaw/agents/main/sessions/\nls ~/.openclaw/agents/main/sessions/*.jsonl | wc -l\n\n# Size by month (to identify heavy periods)\nls -l ~/.openclaw/agents/main/sessions/*.jsonl | awk '\n  {month = substr($6, 1, 3); year = $8; size += $5; count++}\n  END {printf \"Total: %.2f MB across %d files\\n\", size/1024/1024, count}'\n```\n\n**Archiving old sessions:**\n```bash\n# Compress sessions older than 30 days (preserves access, saves ~80% space)\nfind ~/.openclaw/agents/main/sessions/*.jsonl -mtime +30 -exec gzip {} \\;\n\n# Move very old sessions to archive (after verifying no longer needed)\nmkdir -p ~/.openclaw/agents/main/sessions/archive\nfind ~/.openclaw/agents/main/sessions/*.jsonl -mtime +90 -exec mv {} ~/.openclaw/agents/main/sessions/archive/ \\;\n```\n\n**Note:** The parser already skips `.trajectory.jsonl` and temp files, and uses mtime filtering to skip unmodified files when `--since` is specified.\n\n## Important: What \"Total\" Means\n\nThe script reports **input + output tokens** as the usage metric. This is the actual new token consumption per turn.\n\nThe `totalTokens` field in session files includes `cacheRead` (cached context window), which gets re-counted at every turn. Summing `totalTokens` across messages would massively overcount — a 10K context used for 100 turns would appear as 1M tokens. The script avoids this by only summing `input` and `output`.\n\n## Output Locations\n\n- Daily summaries: `~/.openclaw/skills/token-usage/logs/YYYY-MM-DD.md`\n- Weekly reports: `~/.openclaw/skills/token-usage/logs/week-YYYY-Www.md`\n- Raw JSON exports: user-specified or `/tmp/token-usage-*.json`\n\n## Supported formats and providers\n\n- OpenClaw assistant message records (`message.usage` or top-level `usage`)\n- Codex rollout records (`event_msg` → `token_count` → `last_token_usage`)\n- Kimi, OpenAI/GPT, Anthropic/Claude, and OpenRouter model pricing from `scripts/pricing.json`\n- Unknown models are reported without silently using Kimi pricing\n- New usage is `input + output`; cached input is reported separately\n\n## Limitations\n\n- Provider-specific logs not matching the supported JSONL schemas are not parsed\n- Historical sessions before JSONL format not supported\n- Costs are estimates; actual billing may differ\n- With many session files (7000+), first run may take 10-30 seconds; subsequent runs with `--since` are fast due to mtime filtering\n\nFile v2.5.1:README.md\n\n# Token Usage Tracker\n\nParse OpenClaw and Codex session files to extract token usage, aggregate by date/model/session type, and generate cost reports across providers. Works across OpenClaw storage eras — pre-9.x JSONL, 9.x SQLite, and transitional mixed storage.\n\n## When to Use\n\n- User asks \"how many tokens did I use today/this week\"\n- Budget monitoring and anomaly detection\n- Before/after optimization comparisons\n- Cron job: daily token report to Telegram\n\n## Version-Aware Storage Detection\n\nThe parser detects the installed OpenClaw version and storage backend automatically:\n\n```\nOpenClaw version : 2026.9.4\nStorage backend  : mixed  (jsonl=5581, sqlite=1, zst_archives=22)\n⚠️  Mixed storage: SQLite (9.x live) + loose JSONL files detected.\n```\n\n| OpenClaw Version | Storage | Behavior |\n|------------------|---------|----------|\n| pre-9.x (≤2026.6.x) | JSONL only | Reads `.jsonl` / `.jsonl.gz`; warns if SQLite DB found |\n| 9.x (≥2026.9.x) | SQLite primary | Reads `transcript_events`; merges with any JSONL |\n| transitional | mixed | Reads both; warns so you know to consolidate |\n| unknown | auto-detect | Reads whatever is present; warns |\n\nVersion is detected by scanning all NVM node trees for `openclaw/package.json` and picking the newest — never shells out to `openclaw --version` (which can block on a live gateway lock).\n\n## Architecture\n\n```\nscripts/\n  parse.py     — Direct parser (primary; auto-detects version + storage)\n  common.py    — Session discovery, parsing, model normalization, cost estimation\n  ingest.py    — Incremental ingestion into SQLite (usage.db)\n  report.py    — Report generation from SQLite\n  pricing.json — Model pricing table (user-editable)\n  registry.json — Model metadata: availability, provider, context windows\n```\n\n`parse.py` is the primary tool. `ingest.py` + `report.py` remain available for advanced SQL querying and long-term retention.\n\n## Data Sources\n\n| Source | Pattern | Classification |\n|--------|---------|----------------|\n| 9.x live transcripts | `openclaw-agent.sqlite → transcript_events` | `user` or `cron:<name>` |\n| Interactive sessions | `*.jsonl`, `*.jsonl.gz` | `user` or `cron:<name>` |\n| Zstd-compressed archives | `*.jsonl.deleted.*.zst` | `user` or `cron:<name>` |\n| Codex app-server rollouts | `codex-home/sessions/**/*.jsonl` | `background:codex` |\n\n## Key Behaviors\n\n- **9.x SQLite backend** (T16): Live session transcripts moved into `openclaw-agent.sqlite`. The parser reads `transcript_events.event_json` via a snapshot-to-`/tmp` pattern (the live DB is in OpenClaw's protected state directory). macOS requires plain `sqlite3.connect()` — URI read-only mode (`file:...?mode=ro`) fails on temp files.\n- **Timestamp normalization** (T16): SQLite stores UTC timestamps with `Z` suffix; `--since` / `--until` boundaries are local IST. `_normalise_ts()` strips `Z` so string comparison works across both formats.\n- **Mtime pre-filter** (T16): `find_sessions(since=...)` only opens files modified within the time window. Critical with 5,600+ historical JSONL files — `--today` no longer scans everything.\n- **Session type separation**: Codex rollout logs (background agent jobs using GPT-5.6-Luna etc.) are classified as `background:codex`, NOT merged into user-facing reports. Prevents false \"you used 12M Luna tokens\" reports when the user was actually on Kimi.\n- **Zstd support**: Archived sessions are decompressed transparently via the `zstd` CLI.\n- **Defensive parsing**: Records with `\"info\": null` are handled gracefully (Cloudy's fix — prevents `AttributeError` crash).\n- **Incremental ingestion**: Only new/modified session files are processed. State tracked in `ingestion_log` table.\n\n## Commands\n\n```bash\n# Direct parser (recommended — auto-detects version + storage)\npython3 scripts/parse.py --today\npython3 scripts/parse.py --yesterday\npython3 scripts/parse.py --week\npython3 scripts/parse.py --hours 24\npython3 scripts/parse.py --days 7\npython3 scripts/parse.py --since 2026-09-11 --until 2026-09-18\npython3 scripts/parse.py --yesterday --costs --compact   # Telegram-friendly\npython3 scripts/parse.py --session-detail              # Per-session breakdown\npython3 scripts/parse.py --cache                       # Include cache columns\n\n# Ingest new sessions into SQLite (optional, for advanced use)\npython3 scripts/ingest.py\n\n# Generate reports from SQLite\npython3 scripts/report.py --today\npython3 scripts/report.py --yesterday\npython3 scripts/report.py --week\npython3 scripts/report.py --month\n```\n\n## Pricing\n\nEdit `scripts/pricing.json` to add/update model pricing. Format:\n```json\n{\n  \"kimi/k2.7\": {\"input\": 0.50, \"output\": 2.00, \"cache_read\": 0.10, \"cache_write\": 0.50},\n  \"openai/gpt-5.6-luna\": {\"input\": 0.20, \"output\": 1.20, \"cache_read\": 0.02, \"cache_write\": 0}\n}\n```\n\nCosts are estimates in USD per 1M tokens. Unknown models report without cost. Run `update-pricing.py` to fetch current rates from OpenRouter + Moonshot direct.\n\n## Known Issues / History\n\n| Date | Issue | Fix |\n|------|-------|-----|\n| 2026-09-18 | Nightly report returned 0 tokens after 9.x upgrade | T16: version detection + SQLite backend + macOS connect fix + timestamp normalisation + mtime pre-filter |\n| 2026-09-16 | Parser missed zstd-compressed sessions (`.jsonl.deleted.*.zst`) → false \"no activity since Aug 16\" | Added `*.jsonl.*.zst` glob + `_zstd_open()` in `common.py` |\n| 2026-09-16 | Codex rollout usage merged into user reports → false \"12M Luna tokens\" | Added `background:codex` classification in `ingest.py` |\n| 2026-09-16 | `\"info\": null` in Codex records caused `AttributeError` | Defensive `(payload.get(\"info\") or {})` pattern (Cloudy's fix) |\n\n## Dependencies\n\n- `zstd` CLI (for `.zst` decompression)\n- Python 3.10+ (stdlib only — no pip installs needed)\n\nFile v2.5.1:_meta.json\n\n{\n  \"ownerId\": \"kn7655yrj27ngj2xpjkvhjm8kx8a1k4j\",\n  \"slug\": \"token-usage\",\n  \"version\": \"2.5.1\",\n  \"publishedAt\": 1789752923119\n}\n\nFile v2.5.1:scripts/pricing.json\n\n{\n  \"kimi/k2.6\": {\n    \"input\": 0.9,\n    \"output\": 3.75,\n    \"cache_read\": 0.15,\n    \"cache_write\": null,\n    \"source\": \"moonshot-direct\",\n    \"updated\": \"2026-08-21T10:38:28.959886\",\n    \"openrouter_input\": 0.95,\n    \"openrouter_output\": 4.0\n  },\n  \"kimi/k2.7\": {\n    \"input\": 0.9,\n    \"output\": 3.75,\n    \"cache_read\": 0.15,\n    \"cache_write\": null,\n    \"source\": \"moonshot-direct\",\n    \"updated\": \"2026-08-21T10:38:28.959890\"\n  },\n  \"kimi/k2.7-code\": {\n    \"input\": 0.9,\n    \"output\": 3.75,\n    \"cache_read\": 0.18,\n    \"cache_write\": null,\n    \"source\": \"moonshot-direct\",\n    \"updated\": \"2026-08-21T10:38:28.959893\",\n    \"openrouter_input\": 0.67,\n    \"openrouter_output\": 3.4\n  },\n  \"kimi/k3\": {\n    \"input\": 2.78,\n    \"output\": 13.89,\n    \"cache_read\": 0.28,\n    \"cache_write\": null,\n    \"source\": \"moonshot-direct\",\n    \"updated\": \"2026-08-21T10:38:28.959895\",\n    \"openrouter_input\": 3.0,\n    \"openrouter_output\": 15.0\n  },\n  \"anthropic/claude-sonnet-4-5\": {\n    \"input\": 3.0,\n    \"output\": 15.0,\n    \"cache_read\": 0.3,\n    \"cache_write\": 3.75,\n    \"source\": \"fallback\",\n    \"updated\": \"2026-08-21T10:38:28.959900\"\n  },\n  \"stealth/ox-alpha\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957371\"\n  },\n  \"tencent/hy-mt2-1.8b\": {\n    \"input\": 0.044,\n    \"output\": 0.177,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957466\"\n  },\n  \"tencent/hy-mt2-30b-a3b\": {\n    \"input\": 0.074,\n    \"output\": 0.295,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957471\"\n  },\n  \"~z-ai/glm-latest\": {\n    \"input\": 1.4,\n    \"output\": 4.4,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957476\"\n  },\n  \"z-ai/glm-5.3\": {\n    \"input\": 1.4,\n    \"output\": 4.4,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957480\"\n  },\n  \"qwen/qwen3.8-27b\": {\n    \"input\": 0.45,\n    \"output\": 3.2,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957486\"\n  },\n  \"dots-studio/dots-3-note-preview:free\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957490\"\n  },\n  \"google/gemini-3.7-flash\": {\n    \"input\": 0.375,\n    \"output\": 1.875,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957495\"\n  },\n  \"google/gemini-3.7-flash:batch\": {\n    \"input\": 0.1875,\n    \"output\": 0.9375,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957501\"\n  },\n  \"bytedance-seed/seed-2-1-turbo\": {\n    \"input\": 0.5,\n    \"output\": 2.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957507\"\n  },\n  \"qwen/qwen3.8-2.4t-a95b\": {\n    \"input\": 2.0,\n    \"output\": 6.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957511\"\n  },\n  \"bytedance-seed/seed-2.0-code\": {\n    \"input\": 0.5,\n    \"output\": 3.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957515\"\n  },\n  \"deepseek/deepseek-v4-pro-0813\": {\n    \"input\": 1.188,\n    \"output\": 3.564,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957521\"\n  },\n  \"x-ai/grok-4.6\": {\n    \"input\": 2.0,\n    \"output\": 6.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957525\"\n  },\n  \"liquid/lfm-2.5-2.6b:free\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957530\"\n  },\n  \"nvidia/nemotron-3.5-lightning\": {\n    \"input\": 0.08,\n    \"output\": 0.2,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957534\"\n  },\n  \"nvidia/nemotron-3.5-lightning:free\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957537\"\n  },\n  \"sakana/sakana-namazu\": {\n    \"input\": 0.95,\n    \"output\": 4.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957543\"\n  },\n  \"upstage/solar-pro4\": {\n    \"input\": 0.03,\n    \"output\": 0.12,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957547\"\n  },\n  \"meta/muse-glimmer-30b\": {\n    \"input\": 0.3,\n    \"output\": 1.1,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957550\"\n  },\n  \"meta/muse-spark-1.2\": {\n    \"input\": 1.25,\n    \"output\": 4.25,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957556\"\n  },\n  \"qwen/qwen3.8-max\": {\n    \"input\": 2.0,\n    \"output\": 6.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957562\"\n  },\n  \"~deepseek/deepseek-v4-flash-latest\": {\n    \"input\": 0.065,\n    \"output\": 0.14,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957570\"\n  },\n  \"deepseek/deepseek-v4-flash-0731\": {\n    \"input\": 0.14,\n    \"output\": 0.28,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957574\"\n  },\n  \"thinkingmachines/inkling-small\": {\n    \"input\": 0.45,\n    \"output\": 1.2,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957580\"\n  },\n  \"qwen/qwen3.7-flash\": {\n    \"input\": 0.03,\n    \"output\": 0.13,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957584\"\n  },\n  \"anthropic/claude-opus-5-fast\": {\n    \"input\": 10.0,\n    \"output\": 50.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957588\"\n  },\n  \"anthropic/claude-opus-5\": {\n    \"input\": 5.0,\n    \"output\": 25.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957595\"\n  },\n  \"anthropic/claude-opus-5:batch\": {\n    \"input\": 2.5,\n    \"output\": 12.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957601\"\n  },\n  \"inclusionai/ling-3.0-flash\": {\n    \"input\": 0.021,\n    \"output\": 0.063,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957605\"\n  },\n  \"poolside/laguna-s-2.1\": {\n    \"input\": 0.09,\n    \"output\": 0.18,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957611\"\n  },\n  \"poolside/laguna-s-2.1:free\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957614\"\n  },\n  \"google/gemini-3.6-flash\": {\n    \"input\": 0.75,\n    \"output\": 3.75,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957618\"\n  },\n  \"google/gemini-3.6-flash:batch\": {\n    \"input\": 0.375,\n    \"output\": 1.875,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957624\"\n  },\n  \"google/gemini-3.5-flash-lite\": {\n    \"input\": 0.3,\n    \"output\": 2.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957628\"\n  },\n  \"google/gemini-3.5-flash-lite:batch\": {\n    \"input\": 0.15,\n    \"output\": 1.25,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957634\"\n  },\n  \"meituan/longcat-2.0\": {\n    \"input\": 0.3,\n    \"output\": 1.2,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957638\"\n  },\n  \"thinkingmachines/inkling\": {\n    \"input\": 0.95,\n    \"output\": 4.05,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957642\"\n  },\n  \"thinkingmachines/inkling:batch\": {\n    \"input\": 1.0,\n    \"output\": 4.05,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957648\"\n  },\n  \"openrouter/auto-beta\": {\n    \"input\": -1000000.0,\n    \"output\": -1000000.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957656\"\n  },\n  \"meta/muse-spark-1.1\": {\n    \"input\": 1.25,\n    \"output\": 4.25,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957664\"\n  },\n  \"kwaipilot/kat-coder-air-v2.5\": {\n    \"input\": 0.15,\n    \"output\": 0.6,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957668\"\n  },\n  \"kwaipilot/kat-coder-pro-v2.5\": {\n    \"input\": 0.74,\n    \"output\": 2.96,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957674\"\n  },\n  \"openai/gpt-5.6-luna-pro\": {\n    \"input\": 0.2,\n    \"output\": 1.2,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957678\"\n  },\n  \"openai/gpt-5.6-luna-pro:batch\": {\n    \"input\": 0.1,\n    \"output\": 0.6,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957682\"\n  },\n  \"openai/gpt-5.6-luna\": {\n    \"input\": 0.2,\n    \"output\": 1.2,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957689\"\n  },\n  \"openai/gpt-5.6-luna:batch\": {\n    \"input\": 0.1,\n    \"output\": 0.6,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957693\"\n  },\n  \"openai/gpt-5.6-terra-pro\": {\n    \"input\": 2.0,\n    \"output\": 12.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957699\"\n  },\n  \"openai/gpt-5.6-terra-pro:batch\": {\n    \"input\": 1.0,\n    \"output\": 6.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957702\"\n  },\n  \"openai/gpt-5.6-terra\": {\n    \"input\": 2.0,\n    \"output\": 12.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957706\"\n  },\n  \"openai/gpt-5.6-terra:batch\": {\n    \"input\": 1.0,\n    \"output\": 6.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957711\"\n  },\n  \"openai/gpt-5.6-sol-pro\": {\n    \"input\": 2.5,\n    \"output\": 15.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957715\"\n  },\n  \"openai/gpt-5.6-sol-pro:batch\": {\n    \"input\": 1.25,\n    \"output\": 7.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957720\"\n  },\n  \"openai/gpt-5.6-sol\": {\n    \"input\": 2.5,\n    \"output\": 15.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957724\"\n  },\n  \"openai/gpt-5.6-sol:batch\": {\n    \"input\": 1.25,\n    \"output\": 7.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957730\"\n  },\n  \"x-ai/grok-4.5\": {\n    \"input\": 2.0,\n    \"output\": 6.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957737\"\n  },\n  \"~x-ai/grok-latest\": {\n    \"input\": 2.0,\n    \"output\": 6.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957742\"\n  },\n  \"aion-labs/aion-3.0-mini\": {\n    \"input\": 0.7,\n    \"output\": 1.4,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957746\"\n  },\n  \"aion-labs/aion-3.0\": {\n    \"input\": 3.0,\n    \"output\": 6.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957750\"\n  },\n  \"tencent/hy3\": {\n    \"input\": 0.132,\n    \"output\": 0.528,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957754\"\n  },\n  \"poolside/laguna-xs-2.1\": {\n    \"input\": 0.06,\n    \"output\": 0.12,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957760\"\n  },\n  \"poolside/laguna-xs-2.1:free\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957764\"\n  },\n  \"anthropic/claude-sonnet-5\": {\n    \"input\": 2.0,\n    \"output\": 10.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957768\"\n  },\n  \"anthropic/claude-sonnet-5:batch\": {\n    \"input\": 1.0,\n    \"output\": 5.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957773\"\n  },\n  \"google/gemini-3.1-flash-lite-image\": {\n    \"input\": 0.25,\n    \"output\": 1.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957778\"\n  },\n  \"nex-agi/nex-n2-mini\": {\n    \"input\": 0.025,\n    \"output\": 0.1,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957783\"\n  },\n  \"sakana/fugu-ultra\": {\n    \"input\": 5.0,\n    \"output\": 30.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957787\"\n  },\n  \"google/gemini-3.1-flash-image\": {\n    \"input\": 0.5,\n    \"output\": 3.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957791\"\n  },\n  \"google/gemini-3-pro-image\": {\n    \"input\": 2.0,\n    \"output\": 12.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957797\"\n  },\n  \"cohere/north-mini-code:free\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957802\"\n  },\n  \"z-ai/glm-5.2\": {\n    \"input\": 0.966,\n    \"output\": 3.036,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957808\"\n  },\n  \"z-ai/glm-5.2:batch\": {\n    \"input\": 1.4,\n    \"output\": 4.4,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957814\"\n  },\n  \"z-ai/glm-5.2:free\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957817\"\n  },\n  \"openrouter/fusion\": {\n    \"input\": -1000000.0,\n    \"output\": -1000000.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957824\"\n  },\n  \"kimi/k2.7-code:batch\": {\n    \"input\": 0.95,\n    \"output\": 4.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957834\"\n  },\n  \"~anthropic/claude-fable-latest\": {\n    \"input\": 10.0,\n    \"output\": 50.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957841\"\n  },\n  \"anthropic/claude-fable-5\": {\n    \"input\": 10.0,\n    \"output\": 50.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957845\"\n  },\n  \"anthropic/claude-fable-5:batch\": {\n    \"input\": 5.0,\n    \"output\": 25.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957864\"\n  },\n  \"nex-agi/nex-n2-pro\": {\n    \"input\": 0.25,\n    \"output\": 1.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957870\"\n  },\n  \"nvidia/nemotron-3.5-content-safety:free\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957874\"\n  },\n  \"nvidia/nemotron-3-ultra-550b-a55b\": {\n    \"input\": 0.6,\n    \"output\": 3.6,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957881\"\n  },\n  \"nvidia/nemotron-3-ultra-550b-a55b:batch\": {\n    \"input\": 0.6,\n    \"output\": 3.6,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957887\"\n  },\n  \"nvidia/nemotron-3-ultra-550b-a55b:free\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957891\"\n  },\n  \"qwen/qwen3.7-plus\": {\n    \"input\": 0.32,\n    \"output\": 1.28,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957897\"\n  },\n  \"minimax/minimax-m3\": {\n    \"input\": 0.3,\n    \"output\": 1.2,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957904\"\n  },\n  \"minimax/minimax-m3:batch\": {\n    \"input\": 0.3,\n    \"output\": 1.2,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957910\"\n  },\n  \"stepfun/step-3.7-flash\": {\n    \"input\": 0.2,\n    \"output\": 1.15,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957914\"\n  },\n  \"anthropic/claude-opus-4.8-fast\": {\n    \"input\": 10.0,\n    \"output\": 50.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957919\"\n  },\n  \"anthropic/claude-opus-4.8\": {\n    \"input\": 5.0,\n    \"output\": 25.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957925\"\n  },\n  \"anthropic/claude-opus-4.8:batch\": {\n    \"input\": 2.5,\n    \"output\": 12.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957929\"\n  },\n  \"qwen/qwen3.7-max\": {\n    \"input\": 1.475,\n    \"output\": 4.425,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957935\"\n  },\n  \"x-ai/grok-build-0.1\": {\n    \"input\": 1.0,\n    \"output\": 2.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957940\"\n  },\n  \"google/gemini-3.5-flash\": {\n    \"input\": 1.5,\n    \"output\": 9.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957945\"\n  },\n  \"google/gemini-3.5-flash:batch\": {\n    \"input\": 0.75,\n    \"output\": 4.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957951\"\n  },\n  \"anthropic/claude-opus-4.7-fast\": {\n    \"input\": 30.0,\n    \"output\": 150.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957956\"\n  },\n  \"perceptron/perceptron-mk1\": {\n    \"input\": 0.15,\n    \"output\": 1.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957960\"\n  },\n  \"inclusionai/ring-2.6-1t\": {\n    \"input\": 0.075,\n    \"output\": 0.625,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957965\"\n  },\n  \"google/gemini-3.1-flash-lite\": {\n    \"input\": 0.25,\n    \"output\": 1.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957969\"\n  },\n  \"google/gemini-3.1-flash-lite:batch\": {\n    \"input\": 0.125,\n    \"output\": 0.75,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957974\"\n  },\n  \"openai/gpt-chat-latest\": {\n    \"input\": 5.0,\n    \"output\": 30.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957978\"\n  },\n  \"x-ai/grok-4.3\": {\n    \"input\": 1.25,\n    \"output\": 2.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957982\"\n  },\n  \"ibm-granite/granite-4.1-8b\": {\n    \"input\": 0.05,\n    \"output\": 0.1,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957988\"\n  },\n  \"mistralai/mistral-medium-3-5\": {\n    \"input\": 1.5,\n    \"output\": 7.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957992\"\n  },\n  \"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957997\"\n  },\n  \"~anthropic/claude-haiku-latest\": {\n    \"input\": 1.0,\n    \"output\": 5.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958001\"\n  },\n  \"~openai/gpt-mini-latest\": {\n    \"input\": 0.75,\n    \"output\": 4.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958007\"\n  },\n  \"~google/gemini-pro-latest\": {\n    \"input\": 2.0,\n    \"output\": 12.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958011\"\n  },\n  \"~moonshotai/kimi-latest\": {\n    \"input\": 2.6,\n    \"output\": 13.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958014\"\n  },\n  \"~google/gemini-flash-latest\": {\n    \"input\": 0.375,\n    \"output\": 1.875,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958018\"\n  },\n  \"~anthropic/claude-sonnet-latest\": {\n    \"input\": 2.0,\n    \"output\": 10.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958022\"\n  },\n  \"~openai/gpt-latest\": {\n    \"input\": 2.5,\n    \"output\": 15.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958026\"\n  },\n  \"qwen/qwen3.5-plus-20260420\": {\n    \"input\": 0.3,\n    \"output\": 1.8,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958029\"\n  },\n  \"qwen/qwen3.6-flash\": {\n    \"input\": 0.1875,\n    \"output\": 1.125,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958034\"\n  },\n  \"qwen/qwen3.6-35b-a3b\": {\n    \"input\": 0.14,\n    \"output\": 1.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958037\"\n  },\n  \"qwen/qwen3.6-max-preview\": {\n    \"input\": 1.027,\n    \"output\": 6.162,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958041\"\n  },\n  \"qwen/qwen3.6-27b\": {\n    \"input\": 0.6,\n    \"output\": 3.6,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958046\"\n  },\n  \"openai/gpt-5.5-pro\": {\n    \"input\": 30.0,\n    \"output\": 180.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958049\"\n  },\n  \"openai/gpt-5.5-pro:batch\": {\n    \"input\": 15.0,\n    \"output\": 90.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958053\"\n  },\n  \"openai/gpt-5.5\": {\n    \"input\": 5.0,\n    \"output\": 30.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958056\"\n  },\n  \"openai/gpt-5.5:batch\": {\n    \"input\": 2.5,\n    \"output\": 15.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958063\"\n  },\n  \"deepseek/deepseek-v4-pro\": {\n    \"input\": 1.6,\n    \"output\": 3.2,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958067\"\n  },\n  \"deepseek/deepseek-v4-flash\": {\n    \"input\": 0.0826,\n    \"output\": 0.1652,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958071\"\n  },\n  \"inclusionai/ling-2.6-1t\": {\n    \"input\": 0.075,\n    \"output\": 0.625,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958075\"\n  },\n  \"tencent/hy3-preview\": {\n    \"input\": 0.18,\n    \"output\": 0.6,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958078\"\n  },\n  \"xiaomi/mimo-v2.5-pro\": {\n    \"input\": 0.435,\n    \"output\": 0.87,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958082\"\n  },\n  \"xiaomi/mimo-v2.5\": {\n    \"input\": 0.14,\n    \"output\": 0.28,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958086\"\n  },\n  \"openai/gpt-5.4-image-2\": {\n    \"input\": 8.0,\n    \"output\": 15.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958090\"\n  },\n  \"inclusionai/ling-2.6-flash\": {\n    \"input\": 0.01,\n    \"output\": 0.03,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958094\"\n  },\n  \"~anthropic/claude-opus-latest\": {\n    \"input\": 5.0,\n    \"output\": 25.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958097\"\n  },\n  \"openrouter/pareto-code\": {\n    \"input\": -1000000.0,\n    \"output\": -1000000.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958101\"\n  },\n  \"anthropic/claude-opus-4.7\": {\n    \"input\": 5.0,\n    \"output\": 25.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958108\"\n  },\n  \"anthropic/claude-opus-4.7:batch\": {\n    \"input\": 2.5,\n    \"output\": 12.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958112\"\n  },\n  \"z-ai/glm-5.1\": {\n    \"input\": 0.966,\n    \"output\": 3.036,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958116\"\n  },\n  \"google/gemma-4-26b-a4b-it\": {\n    \"input\": 0.07,\n    \"output\": 0.34,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958120\"\n  },\n  \"google/gemma-4-26b-a4b-it:free\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958123\"\n  },\n  \"google/gemma-4-31b-it\": {\n    \"input\": 0.1,\n    \"output\": 0.34,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958128\"\n  },\n  \"google/gemma-4-31b-it:free\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958131\"\n  },\n  \"qwen/qwen3.6-plus\": {\n    \"input\": 0.325,\n    \"output\": 1.95,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958136\"\n  },\n  \"z-ai/glm-5v-turbo\": {\n    \"input\": 1.2,\n    \"output\": 4.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958140\"\n  },\n  \"arcee-ai/trinity-large-thinking\": {\n    \"input\": 0.22,\n    \"output\": 0.85,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958143\"\n  },\n  \"x-ai/grok-4.20-multi-agent\": {\n    \"input\": 1.25,\n    \"output\": 2.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958147\"\n  },\n  \"x-ai/grok-4.20\": {\n    \"input\": 1.25,\n    \"output\": 2.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958151\"\n  },\n  \"google/lyria-3-pro-preview\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958154\"\n  },\n  \"google/lyria-3-clip-preview\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958158\"\n  },\n  \"kwaipilot/kat-coder-pro-v2\": {\n    \"input\": 0.3,\n    \"output\": 1.2,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958165\"\n  },\n  \"rekaai/reka-edge\": {\n    \"input\": 0.1,\n    \"output\": 0.1,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958169\"\n  },\n  \"minimax/minimax-m2.7\": {\n    \"input\": 0.3,\n    \"output\": 1.2,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958173\"\n  },\n  \"openai/gpt-5.4-nano\": {\n    \"input\": 0.2,\n    \"output\": 1.25,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958177\"\n  },\n  \"openai/gpt-5.4-nano:batch\": {\n    \"input\": 0.1,\n    \"output\": 0.625,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958180\"\n  },\n  \"openai/gpt-5.4-mini\": {\n    \"input\": 0.75,\n    \"output\": 4.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958184\"\n  },\n  \"openai/gpt-5.4-mini:batch\": {\n    \"input\": 0.375,\n    \"output\": 2.25,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958188\"\n  },\n  \"mistralai/mistral-small-2603\": {\n    \"input\": 0.15,\n    \"output\": 0.6,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958192\"\n  },\n  \"z-ai/glm-5-turbo\": {\n    \"input\": 1.2,\n    \"output\": 4.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958196\"\n  },\n  \"nvidia/nemotron-3-super-120b-a12b\": {\n    \"input\": 0.085,\n    \"output\": 0.4,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958199\"\n  },\n  \"nvidia/nemotron-3-super-120b-a12b:free\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958203\"\n  },\n  \"bytedance-seed/seed-2.0-lite\": {\n    \"input\": 0.25,\n    \"output\": 2.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958207\"\n  },\n  \"qwen/qwen3.5-9b\": {\n    \"input\": 0.1,\n    \"output\": 0.15,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958211\"\n  },\n  \"openai/gpt-5.4-pro\": {\n    \"input\": 30.0,\n    \"output\": 180.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958215\"\n  },\n  \"openai/gpt-5.4-pro:batch\": {\n    \"input\": 15.0,\n    \"output\": 90.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958219\"\n  },\n  \"openai/gpt-5.4\": {\n    \"input\": 2.5,\n    \"output\": 15.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958222\"\n  },\n  \"openai/gpt-5.4:batch\": {\n    \"input\": 1.25,\n    \"output\": 7.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958226\"\n  },\n  \"inception/mercury-2\": {\n    \"input\": 0.25,\n    \"output\": 0.75,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958230\"\n  },\n  \"google/gemini-3.1-flash-lite-preview\": {\n    \"input\": 0.25,\n    \"output\": 1.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958234\"\n  },\n  \"bytedance-seed/seed-2.0-mini\": {\n    \"input\": 0.1,\n    \"output\": 0.4,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958238\"\n  },\n  \"google/gemini-3.1-flash-image-preview\": {\n    \"input\": 0.5,\n    \"output\": 3.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958242\"\n  },\n  \"qwen/qwen3.5-35b-a3b\": {\n    \"input\": 0.25,\n    \"output\": 1.25,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958246\"\n  },\n  \"qwen/qwen3.5-27b\": {\n    \"input\": 0.195,\n    \"output\": 1.56,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958250\"\n  },\n  \"qwen/qwen3.5-122b-a10b\": {\n    \"input\": 0.26,\n    \"output\": 2.08,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958253\"\n  },\n  \"qwen/qwen3.5-flash-02-23\": {\n    \"input\": 0.065,\n    \"output\": 0.26,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958262\"\n  },\n  \"google/gemini-3.1-pro-preview-customtools\": {\n    \"input\": 2.0,\n    \"output\": 12.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958265\"\n  },\n  \"openai/gpt-5.3-codex\": {\n    \"input\": 1.75,\n    \"output\": 14.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958270\"\n  },\n  \"aion-labs/aion-2.0\": {\n    \"input\": 0.8,\n    \"output\": 1.6,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958274\"\n  },\n  \"google/gemini-3.1-pro-preview\": {\n    \"input\": 2.0,\n    \"output\": 12.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958277\"\n  },\n  \"google/gemini-3.1-pro-preview:batch\": {\n    \"input\": 1.0,\n    \"output\": 6.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958281\"\n  },\n  \"anthropic/claude-sonnet-4.6\": {\n    \"input\": 3.0,\n    \"output\": 15.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958291\"\n  },\n  \"anthropic/claude-sonnet-4.6:batch\": {\n    \"input\": 1.5,\n    \"output\": 7.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958295\"\n  },\n  \"qwen/qwen3.5-plus-02-15\": {\n    \"input\": 0.26,\n    \"output\": 1.56,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958299\"\n  },\n  \"qwen/qwen3.5-397b-a17b\": {\n    \"input\": 0.39,\n    \"output\": 2.34,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958303\"\n  },\n  \"minimax/minimax-m2.5\": {\n    \"input\": 0.27,\n    \"output\": 0.95,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958307\"\n  },\n  \"z-ai/glm-5\": {\n    \"input\": 0.6,\n    \"output\": 1.92,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958312\"\n  },\n  \"qwen/qwen3-max-thinking\": {\n    \"input\": 0.78,\n    \"output\": 3.9,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958318\"\n  },\n  \"anthropic/claude-opus-4.6\": {\n    \"input\": 5.0,\n    \"output\": 25.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958322\"\n  },\n  \"anthropic/claude-opus-4.6:batch\": {\n    \"input\": 2.5,\n    \"output\": 12.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958329\"\n  },\n  \"qwen/qwen3-coder-next\": {\n    \"input\": 0.12,\n    \"output\": 0.8,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958337\"\n  },\n  \"openrouter/free\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958341\"\n  },\n  \"stepfun/step-3.5-flash\": {\n    \"input\": 0.1,\n    \"output\": 0.3,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958345\"\n  },\n  \"kimi/k2.5\": {\n    \"input\": 0.45,\n    \"output\": 2.25,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958348\"\n  },\n  \"upstage/solar-pro-3\": {\n    \"input\": 0.15,\n    \"output\": 0.6,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958354\"\n  },\n  \"minimax/minimax-m2-her\": {\n    \"input\": 0.3,\n    \"output\": 1.2,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958358\"\n  },\n  \"writer/palmyra-x5\": {\n    \"input\": 0.6,\n    \"output\": 6.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958361\"\n  },\n  \"openai/gpt-audio\": {\n    \"input\": 2.5,\n    \"output\": 10.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958367\"\n  },\n  \"openai/gpt-audio-mini\": {\n    \"input\": 0.6,\n    \"output\": 2.4,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958371\"\n  },\n  \"z-ai/glm-4.7-flash\": {\n    \"input\": 0.06,\n    \"output\": 0.4,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958374\"\n  },\n  \"openai/gpt-5.2-codex\": {\n    \"input\": 1.75,\n    \"output\": 14.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958379\"\n  },\n  \"bytedance-seed/seed-1.6-flash\": {\n    \"input\": 0.075,\n    \"output\": 0.3,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958383\"\n  },\n  \"bytedance-seed/seed-1.6\": {\n    \"input\": 0.25,\n    \"output\": 2.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958387\"\n  },\n  \"minimax/minimax-m2.1\": {\n    \"input\": 0.3,\n    \"output\": 1.2,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958390\"\n  },\n  \"z-ai/glm-4.7\": {\n    \"input\": 0.4,\n    \"output\": 1.75,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958396\"\n  },\n  \"google/gemini-3-flash-preview\": {\n    \"input\": 0.5,\n    \"output\": 3.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958400\"\n  },\n  \"google/gemini-3-flash-preview:batch\": {\n    \"input\": 0.25,\n    \"output\": 1.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958406\"\n  },\n  \"nvidia/nemotron-3-nano-30b-a3b\": {\n    \"input\": 0.05,\n    \"output\": 0.2,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958409\"\n  },\n  \"nvidia/nemotron-3-nano-30b-a3b:free\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958418\"\n  },\n  \"openai/gpt-5.2-chat\": {\n    \"input\": 1.75,\n    \"output\": 14.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958422\"\n  },\n  \"openai/gpt-5.2-pro\": {\n    \"input\": 21.0,\n    \"output\": 168.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958426\"\n  },\n  \"openai/gpt-5.2-pro:batch\": {\n    \"input\": 10.5,\n    \"output\": 84.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958430\"\n  },\n  \"openai/gpt-5.2\": {\n    \"input\": 1.75,\n    \"output\": 14.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958433\"\n  },\n  \"openai/gpt-5.2:batch\": {\n    \"input\": 0.875,\n    \"output\": 7.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958441\"\n  },\n  \"relace/relace-search\": {\n    \"input\": 1.0,\n    \"output\": 3.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958447\"\n  },\n  \"z-ai/glm-4.6v\": {\n    \"input\": 0.3,\n    \"output\": 0.9,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958450\"\n  },\n  \"openrouter/bodybuilder\": {\n    \"input\": -1000000.0,\n    \"output\": -1000000.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958456\"\n  },\n  \"openai/gpt-5.1-codex-max\": {\n    \"input\": 1.25,\n    \"output\": 10.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958460\"\n  },\n  \"amazon/nova-2-lite-v1\": {\n    \"input\": 0.3,\n    \"output\": 2.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958465\"\n  },\n  \"mistralai/ministral-14b-2512\": {\n    \"input\": 0.2,\n    \"output\": 0.2,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958469\"\n  },\n  \"mistralai/ministral-8b-2512\": {\n    \"input\": 0.15,\n    \"output\": 0.15,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958473\"\n  },\n  \"mistralai/ministral-3b-2512\": {\n    \"input\": 0.1,\n    \"output\": 0.1,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958477\"\n  },\n  \"mistralai/mistral-large-2512\": {\n    \"input\": 0.5,\n    \"output\": 1.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958483\"\n  },\n  \"deepseek/deepseek-v3.2\": {\n    \"input\": 0.269,\n    \"output\": 0.4,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958486\"\n  },\n  \"anthropic/claude-opus-4.5\": {\n    \"input\": 5.0,\n    \"output\": 25.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958490\"\n  },\n  \"anthropic/claude-opus-4.5:batch\": {\n    \"input\": 2.5,\n    \"output\": 12.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958494\"\n  },\n  \"allenai/olmo-3-32b-think\": {\n    \"input\": 0.15,\n    \"output\": 0.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958497\"\n  },\n  \"google/gemini-3-pro-image-preview\": {\n    \"input\": 2.0,\n    \"output\": 12.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958501\"\n  },\n  \"deepcogito/cogito-v2.1-671b\": {\n    \"input\": 1.25,\n    \"output\": 1.25,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958504\"\n  },\n  \"openai/gpt-5.1\": {\n    \"input\": 1.25,\n    \"output\": 10.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958508\"\n  },\n  \"openai/gpt-5.1:batch\": {\n    \"input\": 0.625,\n    \"output\": 5.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958512\"\n  },\n  \"openai/gpt-5.1-codex\": {\n    \"input\": 1.25,\n    \"output\": 10.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958516\"\n  },\n  \"openai/gpt-5.1-codex-mini\": {\n    \"input\": 0.25,\n    \"output\": 2.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958519\"\n  },\n  \"kimi/k2-thinking\": {\n    \"input\": 0.6,\n    \"output\": 2.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958523\"\n  },\n  \"amazon/nova-premier-v1\": {\n    \"input\": 2.5,\n    \"output\": 12.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958527\"\n  },\n  \"perplexity/sonar-pro-search\": {\n    \"input\": 3.0,\n    \"output\": 15.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958530\"\n  },\n  \"mistralai/voxtral-small-24b-2507\": {\n    \"input\": 0.1,\n    \"output\": 0.3,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958534\"\n  },\n  \"openai/gpt-oss-safeguard-20b\": {\n    \"input\": 0.075,\n    \"output\": 0.3,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958538\"\n  },\n  \"nvidia/nemotron-nano-12b-v2-vl:free\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958541\"\n  },\n  \"minimax/minimax-m2\": {\n    \"input\": 0.255,\n    \"output\": 1.02,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958545\"\n  },\n  \"qwen/qwen3-vl-32b-instruct\": {\n    \"input\": 0.104,\n    \"output\": 0.416,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958549\"\n  },\n  \"ibm-granite/granite-4.0-h-micro\": {\n    \"input\": 0.017,\n    \"output\": 0.112,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958552\"\n  },\n  \"openai/gpt-5-image-mini\": {\n    \"input\": 2.5,\n    \"output\": 2.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958558\"\n  },\n  \"anthropic/claude-haiku-4.5\": {\n    \"input\": 1.0,\n    \"output\": 5.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958562\"\n  },\n  \"anthropic/claude-haiku-4.5:batch\": {\n    \"input\": 0.5,\n    \"output\": 2.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958566\"\n  },\n  \"qwen/qwen3-vl-8b-thinking\": {\n    \"input\": 0.18,\n    \"output\": 2.1,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958569\"\n  },\n  \"qwen/qwen3-vl-8b-instruct\": {\n    \"input\": 0.117,\n    \"output\": 0.455,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958573\"\n  },\n  \"openai/gpt-5-image\": {\n    \"input\": 10.0,\n    \"output\": 10.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958577\"\n  },\n  \"google/gemini-2.5-flash-image\": {\n    \"input\": 0.3,\n    \"output\": 2.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958581\"\n  },\n  \"qwen/qwen3-vl-30b-a3b-thinking\": {\n    \"input\": 0.2,\n    \"output\": 2.4,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958584\"\n  },\n  \"qwen/qwen3-vl-30b-a3b-instruct\": {\n    \"input\": 0.13,\n    \"output\": 0.52,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958588\"\n  },\n  \"openai/gpt-5-pro\": {\n    \"input\": 15.0,\n    \"output\": 120.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958592\"\n  },\n  \"openai/gpt-5-pro:batch\": {\n    \"input\": 7.5,\n    \"output\": 60.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958595\"\n  },\n  \"z-ai/glm-4.6\": {\n    \"input\": 0.5,\n    \"output\": 2.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958599\"\n  },\n  \"anthropic/claude-sonnet-4.5\": {\n    \"input\": 3.0,\n    \"output\": 15.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958603\"\n  },\n  \"anthropic/claude-sonnet-4.5:batch\": {\n    \"input\": 1.5,\n    \"output\": 7.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.958607\"\n  },\n  \"deep\n\nFile v2.5.1:scripts/registry.json\n\n{\n  \"updated\": \"2026-07-23T10:25:36.469018\",\n  \"models\": {\n    \"kimi/k2.6\": {\n      \"pricing\": {\n        \"input_per_million\": 0.9,\n        \"output_per_million\": 3.75,\n        \"cache_read_per_million\": 0.15,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {\n        \"openrouter\": {\n          \"input_per_million\": 0.684,\n          \"output_per_million\": 3.42\n        }\n      },\n      \"availability\": \"available\",\n      \"provider\": \"kimi\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.462346\",\n      \"pricing_source\": \"moonshot-direct\"\n    },\n    \"kimi/k2.7\": {\n      \"pricing\": {\n        \"input_per_million\": 0.9,\n        \"output_per_million\": 3.75,\n        \"cache_read_per_million\": 0.15,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"kimi\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.462352\",\n      \"pricing_source\": \"moonshot-direct\"\n    },\n    \"kimi/k2.7-code\": {\n      \"pricing\": {\n        \"input_per_million\": 0.9,\n        \"output_per_million\": 3.75,\n        \"cache_read_per_million\": 0.18,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {\n        \"openrouter\": {\n          \"input_per_million\": 0.82,\n          \"output_per_million\": 3.75\n        }\n      },\n      \"availability\": \"available\",\n      \"provider\": \"kimi\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.462356\",\n      \"pricing_source\": \"moonshot-direct\"\n    },\n    \"kimi/k3\": {\n      \"pricing\": {\n        \"input_per_million\": 2.78,\n        \"output_per_million\": 13.89,\n        \"cache_read_per_million\": 0.28,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {\n        \"openrouter\": {\n          \"input_per_million\": 3.0,\n          \"output_per_million\": 15.0\n        }\n      },\n      \"availability\": \"available\",\n      \"provider\": \"kimi\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.462360\",\n      \"pricing_source\": \"moonshot-direct\"\n    },\n    \"anthropic/claude-sonnet-4-5\": {\n      \"pricing\": {\n        \"input_per_million\": 3.0,\n        \"output_per_million\": 15.0,\n        \"cache_read_per_million\": 0.3,\n        \"cache_write_per_million\": 3.75\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"anthropic\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.462363\",\n      \"pricing_source\": \"fallback\"\n    },\n    \"openai/gpt-4o\": {\n      \"pricing\": {\n        \"input_per_million\": 2.5,\n        \"output_per_million\": 10.0,\n        \"cache_read_per_million\": 1.25,\n        \"cache_write_per_million\": 0\n      },\n      \"alternative_pricing\": {\n        \"openrouter\": {\n          \"input_per_million\": 2.5,\n          \"output_per_million\": 10.0\n        }\n      },\n      \"availability\": \"available\",\n      \"provider\": \"openai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.462366\",\n      \"pricing_source\": \"fallback\"\n    },\n    \"openai/gpt-4o-mini\": {\n      \"pricing\": {\n        \"input_per_million\": 0.15,\n        \"output_per_million\": 0.6,\n        \"cache_read_per_million\": 0.075,\n        \"cache_write_per_million\": 0\n      },\n      \"alternative_pricing\": {\n        \"openrouter\": {\n          \"input_per_million\": 0.15,\n          \"output_per_million\": 0.6\n        }\n      },\n      \"availability\": \"available\",\n      \"provider\": \"openai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.462369\",\n      \"pricing_source\": \"fallback\"\n    },\n    \"poolside/laguna-s-2.1\": {\n      \"pricing\": {\n        \"input_per_million\": 0.1,\n        \"output_per_million\": 0.2,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"poolside\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.459885\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"poolside/laguna-s-2.1:free\": {\n      \"pricing\": {\n        \"input_per_million\": 0.0,\n        \"output_per_million\": 0.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"poolside\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.459903\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"google/gemini-3.6-flash\": {\n      \"pricing\": {\n        \"input_per_million\": 1.5,\n        \"output_per_million\": 7.5,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"google\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.459910\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"google/gemini-3.5-flash-lite\": {\n      \"pricing\": {\n        \"input_per_million\": 0.3,\n        \"output_per_million\": 2.5,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"google\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.459916\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"meituan/longcat-2.0\": {\n      \"pricing\": {\n        \"input_per_million\": 0.3,\n        \"output_per_million\": 1.2,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"meituan\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.459922\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"thinkingmachines/inkling\": {\n      \"pricing\": {\n        \"input_per_million\": 1.0,\n        \"output_per_million\": 4.05,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"thinkingmachines\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.459927\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"openrouter/auto-beta\": {\n      \"pricing\": {\n        \"input_per_million\": -1000000.0,\n        \"output_per_million\": -1000000.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"openrouter\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.459933\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"meta/muse-spark-1.1\": {\n      \"pricing\": {\n        \"input_per_million\": 1.25,\n        \"output_per_million\": 4.25,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"meta\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.459945\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"kwaipilot/kat-coder-air-v2.5\": {\n      \"pricing\": {\n        \"input_per_million\": 0.15,\n        \"output_per_million\": 0.6,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"kwaipilot\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.459950\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"kwaipilot/kat-coder-pro-v2.5\": {\n      \"pricing\": {\n        \"input_per_million\": 0.74,\n        \"output_per_million\": 2.96,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"kwaipilot\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.459956\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"openai/gpt-5.6-luna-pro\": {\n      \"pricing\": {\n        \"input_per_million\": 1.0,\n        \"output_per_million\": 6.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"openai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.459962\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"openai/gpt-5.6-luna\": {\n      \"pricing\": {\n        \"input_per_million\": 1.0,\n        \"output_per_million\": 6.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"openai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.459967\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"openai/gpt-5.6-terra-pro\": {\n      \"pricing\": {\n        \"input_per_million\": 2.5,\n        \"output_per_million\": 15.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"openai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.459972\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"openai/gpt-5.6-terra\": {\n      \"pricing\": {\n        \"input_per_million\": 2.5,\n        \"output_per_million\": 15.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"openai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.459977\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"openai/gpt-5.6-sol-pro\": {\n      \"pricing\": {\n        \"input_per_million\": 5.0,\n        \"output_per_million\": 30.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"openai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.459983\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"openai/gpt-5.6-sol\": {\n      \"pricing\": {\n        \"input_per_million\": 5.0,\n        \"output_per_million\": 30.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"openai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.459988\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"x-ai/grok-4.5\": {\n      \"pricing\": {\n        \"input_per_million\": 2.0,\n        \"output_per_million\": 6.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"x-ai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.459993\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"~x-ai/grok-latest\": {\n      \"pricing\": {\n        \"input_per_million\": 2.0,\n        \"output_per_million\": 6.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"~x-ai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.459998\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"aion-labs/aion-3.0-mini\": {\n      \"pricing\": {\n        \"input_per_million\": 0.7,\n        \"output_per_million\": 1.4,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"aion-labs\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460003\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"aion-labs/aion-3.0\": {\n      \"pricing\": {\n        \"input_per_million\": 3.0,\n        \"output_per_million\": 6.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"aion-labs\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460008\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"tencent/hy3\": {\n      \"pricing\": {\n        \"input_per_million\": 0.14,\n        \"output_per_million\": 0.58,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"tencent\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460013\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"poolside/laguna-xs-2.1\": {\n      \"pricing\": {\n        \"input_per_million\": 0.06,\n        \"output_per_million\": 0.12,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"poolside\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460019\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"poolside/laguna-xs-2.1:free\": {\n      \"pricing\": {\n        \"input_per_million\": 0.0,\n        \"output_per_million\": 0.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"poolside\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460025\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"anthropic/claude-sonnet-5\": {\n      \"pricing\": {\n        \"input_per_million\": 2.0,\n        \"output_per_million\": 10.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"anthropic\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460034\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"google/gemini-3.1-flash-lite-image\": {\n      \"pricing\": {\n        \"input_per_million\": 0.25,\n        \"output_per_million\": 1.5,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"google\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460039\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"nex-agi/nex-n2-mini\": {\n      \"pricing\": {\n        \"input_per_million\": 0.025,\n        \"output_per_million\": 0.1,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"nex-agi\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460045\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"sakana/fugu-ultra\": {\n      \"pricing\": {\n        \"input_per_million\": 5.0,\n        \"output_per_million\": 30.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"sakana\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460050\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"google/gemini-3.1-flash-image\": {\n      \"pricing\": {\n        \"input_per_million\": 0.5,\n        \"output_per_million\": 3.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"google\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460055\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"google/gemini-3-pro-image\": {\n      \"pricing\": {\n        \"input_per_million\": 2.0,\n        \"output_per_million\": 12.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"google\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460060\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"cohere/north-mini-code:free\": {\n      \"pricing\": {\n        \"input_per_million\": 0.0,\n        \"output_per_million\": 0.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"cohere\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460065\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"z-ai/glm-5.2\": {\n      \"pricing\": {\n        \"input_per_million\": 0.8218,\n        \"output_per_million\": 2.5828,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"z-ai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460071\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"openrouter/fusion\": {\n      \"pricing\": {\n        \"input_per_million\": -1000000.0,\n        \"output_per_million\": -1000000.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"openrouter\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460076\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"~anthropic/claude-fable-latest\": {\n      \"pricing\": {\n        \"input_per_million\": 10.0,\n        \"output_per_million\": 50.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"~anthropic\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460087\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"anthropic/claude-fable-5\": {\n      \"pricing\": {\n        \"input_per_million\": 10.0,\n        \"output_per_million\": 50.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"anthropic\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460092\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"nex-agi/nex-n2-pro\": {\n      \"pricing\": {\n        \"input_per_million\": 0.25,\n        \"output_per_million\": 1.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"nex-agi\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460098\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"nvidia/nemotron-3.5-content-safety:free\": {\n      \"pricing\": {\n        \"input_per_million\": 0.0,\n        \"output_per_million\": 0.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"nvidia\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460103\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"nvidia/nemotron-3-ultra-550b-a55b\": {\n      \"pricing\": {\n        \"input_per_million\": 0.5,\n        \"output_per_million\": 2.2,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"nvidia\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460108\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"nvidia/nemotron-3-ultra-550b-a55b:free\": {\n      \"pricing\": {\n        \"input_per_million\": 0.0,\n        \"output_per_million\": 0.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"nvidia\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460113\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"qwen/qwen3.7-plus\": {\n      \"pricing\": {\n        \"input_per_million\": 0.32,\n        \"output_per_million\": 1.28,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"qwen\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460119\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"minimax/minimax-m3\": {\n      \"pricing\": {\n        \"input_per_million\": 0.3,\n        \"output_per_million\": 1.2,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"minimax\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460124\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"stepfun/step-3.7-flash\": {\n      \"pricing\": {\n        \"input_per_million\": 0.2,\n        \"output_per_million\": 1.15,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"stepfun\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460130\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"anthropic/claude-opus-4.8-fast\": {\n      \"pricing\": {\n        \"input_per_million\": 10.0,\n        \"output_per_million\": 50.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"anthropic\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460136\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"anthropic/claude-opus-4.8\": {\n      \"pricing\": {\n        \"input_per_million\": 5.0,\n        \"output_per_million\": 25.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"anthropic\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460141\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"qwen/qwen3.7-max\": {\n      \"pricing\": {\n        \"input_per_million\": 1.475,\n        \"output_per_million\": 4.425,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"qwen\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460147\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"x-ai/grok-build-0.1\": {\n      \"pricing\": {\n        \"input_per_million\": 1.0,\n        \"output_per_million\": 2.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"x-ai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460152\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"google/gemini-3.5-flash\": {\n      \"pricing\": {\n        \"input_per_million\": 1.5,\n        \"output_per_million\": 9.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"google\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460158\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"anthropic/claude-opus-4.7-fast\": {\n      \"pricing\": {\n        \"input_per_million\": 30.0,\n        \"output_per_million\": 150.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"anthropic\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460163\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"perceptron/perceptron-mk1\": {\n      \"pricing\": {\n        \"input_per_million\": 0.15,\n        \"output_per_million\": 1.5,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"perceptron\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460169\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"inclusionai/ring-2.6-1t\": {\n      \"pricing\": {\n        \"input_per_million\": 0.075,\n        \"output_per_million\": 0.625,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"inclusionai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460174\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"google/gemini-3.1-flash-lite\": {\n      \"pricing\": {\n        \"input_per_million\": 0.25,\n        \"output_per_million\": 1.5,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"google\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460179\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"openai/gpt-chat-latest\": {\n      \"pricing\": {\n        \"input_per_million\": 5.0,\n        \"output_per_million\": 30.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"openai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460185\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"x-ai/grok-4.3\": {\n      \"pricing\": {\n        \"input_per_million\": 1.25,\n        \"output_per_million\": 2.5,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"x-ai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460190\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"ibm-granite/granite-4.1-8b\": {\n      \"pricing\": {\n        \"input_per_million\": 0.05,\n        \"output_per_million\": 0.1,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"ibm-granite\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460198\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"mistralai/mistral-medium-3-5\": {\n      \"pricing\": {\n        \"input_per_million\": 1.5,\n        \"output_per_million\": 7.5,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"mistralai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460203\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free\": {\n      \"pricing\": {\n        \"input_per_million\": 0.0,\n        \"output_per_million\": 0.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"nvidia\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460208\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"poolside/laguna-m.1\": {\n      \"pricing\": {\n        \"input_per_million\": 0.2,\n        \"output_per_million\": 0.4,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"poolside\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460214\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"poolside/laguna-m.1:free\": {\n      \"pricing\": {\n        \"input_per_million\": 0.0,\n        \"output_per_million\": 0.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"poolside\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460219\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"~anthropic/claude-haiku-latest\": {\n      \"pricing\": {\n        \"input_per_million\": 1.0,\n        \"output_per_million\": 5.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"~anthropic\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460224\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"~openai/gpt-mini-latest\": {\n      \"pricing\": {\n        \"input_per_million\": 0.75,\n        \"output_per_million\": 4.5,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"~openai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460229\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"~google/gemini-pro-latest\": {\n      \"pricing\": {\n        \"input_per_million\": 2.0,\n        \"output_per_million\": 12.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"~google\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460235\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"~moonshotai/kimi-latest\": {\n      \"pricing\": {\n        \"input_per_million\": 3.0,\n        \"output_per_million\": 15.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"~moonshotai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460240\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"~google/gemini-flash-latest\": {\n      \"pricing\": {\n        \"input_per_million\": 1.5,\n        \"output_per_million\": 7.5,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"~google\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460245\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"~anthropic/claude-sonnet-latest\": {\n      \"pricing\": {\n        \"input_per_million\": 2.0,\n        \"output_per_million\": 10.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"~anthropic\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460250\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"~openai/gpt-latest\": {\n      \"pricing\": {\n        \"input_per_million\": 5.0,\n        \"output_per_million\": 30.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"~openai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460255\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"qwen/qwen3.5-plus-20260420\": {\n      \"pricing\": {\n        \"input_per_million\": 0.3,\n        \"output_per_million\": 1.8,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"qwen\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460261\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"qwen/qwen3.6-flash\": {\n      \"pricing\": {\n        \"input_per_million\": 0.1875,\n        \"output_per_million\": 1.125,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"qwen\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460266\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"qwen/qwen3.6-35b-a3b\": {\n      \"pricing\": {\n        \"input_per_million\": 0.14,\n        \"output_per_million\": 1.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"qwen\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460271\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"qwen/qwen3.6-max-preview\": {\n      \"pricing\": {\n        \"input_per_million\": 1.04,\n        \"output_per_million\": 6.24,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"qwen\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460277\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"qwen/qwen3.6-27b\": {\n      \"pricing\": {\n        \"input_per_million\": 0.6,\n        \"output_per_million\": 3.6,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"qwen\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460282\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"openai/gpt-5.5-pro\": {\n      \"pricing\": {\n        \"input_per_million\": 30.0,\n        \"output_per_million\": 180.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"openai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460288\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"openai/gpt-5.5\": {\n      \"pricing\": {\n        \"input_per_million\": 5.0,\n        \"output_per_million\": 30.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"openai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460293\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"deepseek/deepseek-v4-pro\": {\n      \"pricing\": {\n        \"input_per_million\": 0.435,\n        \"output_per_million\": 0.87,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"deepseek\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460298\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"deepseek/deepseek-v4-flash\": {\n      \"pricing\": {\n        \"input_per_million\": 0.098,\n        \"output_per_million\": 0.196,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"deepseek\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460303\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"inclusionai/ling-2.6-1t\": {\n      \"pricing\": {\n        \"input_per_million\": 0.075,\n        \"output_per_million\": 0.625,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"inclusionai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460309\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"tencent/hy3-preview\": {\n      \"pricing\": {\n        \"input_per_million\": 0.063,\n        \"output_per_million\": 0.21,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"tencent\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460314\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"xiaomi/mimo-v2.5-pro\": {\n      \"pricing\": {\n        \"input_per_million\": 0.435,\n        \"output_per_million\": 0.87,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"xiaomi\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460320\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"xiaomi/mimo-v2.5\": {\n      \"pricing\": {\n        \"input_per_million\": 0.14,\n        \"output_per_million\": 0.28,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"xiaomi\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460325\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"openai/gpt-5.4-image-2\": {\n      \"pricing\": {\n        \"input_per_million\": 8.0,\n        \"output_per_million\": 15.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"openai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460330\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"inclusionai/ling-2.6-flash\": {\n      \"pricing\": {\n        \"input_per_million\": 0.01,\n        \"output_per_million\": 0.03,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"inclusionai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460336\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"~anthropic/claude-opus-latest\": {\n      \"pricing\": {\n        \"input_per_million\": 5.0,\n        \"output_per_million\": 25.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"~anthropic\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460341\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"openrouter/pareto-code\": {\n      \"pricing\": {\n        \"input_per_million\": -1000000.0,\n        \"output_per_million\": -1000000.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"openrouter\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460346\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"anthropic/claude-opus-4.7\": {\n      \"pricing\": {\n        \"input_per_million\": 5.0,\n        \"output_per_million\": 25.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"anthropic\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460358\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"z-ai/glm-5.1\": {\n      \"pricing\": {\n        \"input_per_million\": 0.966,\n        \"output_per_million\": 3.036,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"z-ai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460364\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"google/gemma-4-26b-a4b-it\": {\n      \"pricing\": {\n        \"input_per_million\": 0.12,\n        \"output_per_million\": 0.35,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"google\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460371\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"google/gemma-4-26b-a4b-it:free\": {\n      \"pricing\": {\n        \"input_per_million\": 0.0,\n        \"output_per_million\": 0.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"google\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460376\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"google/gemma-4-31b-it\": {\n      \"pricing\": {\n        \"input_per_million\": 0.12,\n        \"output_per_million\": 0.35,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"google\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460381\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"google/gemma-4-31b-it:free\": {\n      \"pricing\": {\n        \"input_per_million\": 0.0,\n        \"output_per_million\": 0.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"google\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460389\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"qwen/qwen3.6-plus\": {\n      \"pricing\": {\n        \"input_per_million\": 0.325,\n        \"output_per_million\": 1.95,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"qwen\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460395\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"z-ai/glm-5v-turbo\": {\n      \"pricing\": {\n        \"input_per_million\": 1.2,\n        \"output_per_million\": 4.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"z-ai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460400\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"arcee-ai/trinity-large-thinking\": {\n      \"pricing\": {\n        \"input_per_million\": 0.25,\n        \"output_per_million\": 0.8,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"arcee-ai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460406\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"x-ai/grok-4.20-multi-agent\": {\n      \"pricing\": {\n        \"input_per_million\": 1.25,\n        \"output_per_million\": 2.5,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"x-ai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460411\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"x-ai/grok-4.20\": {\n      \"pricing\": {\n        \"input_per_million\": 1.25,\n        \"output_per_million\": 2.5,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"x-ai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460417\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"google/lyria-3-pro-preview\": {\n      \"pricing\": {\n        \"input_per_million\": 0.0,\n        \"output_per_million\": 0.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"google\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460422\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"google/lyria-3-clip-preview\": {\n      \"pricing\": {\n        \"input_per_million\": 0.0,\n        \"output_per_million\": 0.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"google\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460427\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"kwaipilot/kat-coder-pro-v2\": {\n      \"pricing\": {\n        \"input_per_million\": 0.3,\n        \"output_per_million\": 1.2,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"kwaipilot\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460433\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"rekaai/reka-edge\": {\n      \"pricing\": {\n        \"input_per_million\": 0.1,\n        \"output_per_million\": 0.1,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"rekaai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460438\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"minimax/minimax-m2.7\": {\n      \"pricing\": {\n        \"input_per_million\": 0.25,\n        \"output_per_million\": 1.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"minimax\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460444\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"openai/gpt-5.4-nano\": {\n      \"pricing\": {\n        \"input_per_million\": 0.2,\n        \"output_per_million\": 1.25,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"openai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460449\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"openai/gpt-5.4-mini\": {\n      \"pricing\": {\n        \"input_per_million\": 0.75,\n        \"output_per_million\": 4.5,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"openai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460455\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"mistralai/mistral-small-2603\": {\n      \"pricing\": {\n        \"input_per_million\": 0.15,\n        \"output_per_million\": 0.6,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"mistralai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460460\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"z-ai/glm-5-turbo\": {\n      \"pricing\": {\n        \"input_per_million\": 1.2,\n        \"output_per_million\": 4.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"z-ai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460466\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"nvidia/nemotron-3-super-120b-a12b\": {\n      \"pricing\": {\n        \"input_per_million\": 0.08,\n        \"output_per_million\": 0.45,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"nvidia\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460471\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"nvidia/nemotron-3-super-120b-a12b:free\": {\n      \"pricing\": {\n        \"input_per_million\": 0.0,\n        \"output_per_million\": 0.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"nvidia\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460476\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"bytedance-seed/seed-2.0-lite\": {\n      \"pricing\": {\n        \"input_per_million\": 0.25,\n        \"output_per_million\": 2.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"bytedance-seed\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460481\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"qwen/qwen3.5-9b\": {\n      \"pricing\": {\n        \"input_per_million\": 0.1,\n        \"output_per_million\": 0.15,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"qwen\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460487\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"openai/gpt-5.4-pro\": {\n      \"pricing\": {\n        \"input_per_million\": 30.0,\n        \"output_per_million\": 180.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"openai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460492\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"openai/gpt-5.4\": {\n      \"pricing\": {\n        \"input_per_million\": 2.5,\n        \"output_per_million\": 15.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"openai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460497\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"inception/mercury-2\": {\n      \"pricing\": {\n        \"input_per_million\": 0.25,\n        \"output_per_million\": 0.75,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"inception\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460503\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"openai/gpt-5.3-chat\": {\n      \"pricing\": {\n        \"input_per_million\": 1.75,\n        \"output_per_million\": 14.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"openai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460508\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"google/gemini-3.1-flash-lite-preview\": {\n      \"pricing\": {\n        \"input_per_million\": 0.25,\n        \"output_per_million\": 1.5,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"google\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460514\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"bytedance-seed/seed-2.0-mini\": {\n      \"pricing\": {\n        \"input_per_million\": 0.1,\n        \"output_per_million\": 0.4,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"bytedance-seed\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460519\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"google/gemini-3.1-flash-image-preview\": {\n      \"pricing\": {\n        \"input_per_million\": 0.5,\n        \"output_per_million\": 3.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"google\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460524\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"qwen/qwen3.5-35b-a3b\": {\n      \"pricing\": {\n        \"input_per_million\": 0.14,\n        \"output_per_million\": 1.0,\n        \"cache_read_per_million\": null,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"qwen\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.460530\",\n      \"pricing_source\": \"openrouter\"\n    },\n    \"qwen/qwen3.5-27b\": {\n      \"\n\nFile v2.5.1:skill-card.md\n\n## Description:\n\nTrack, aggregate, and report OpenClaw token usage and costs across sessions.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[space-cadet](https://clawhub.ai/user/space-cadet)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and operators use this skill to inspect local OpenClaw and Codex session usage, estimate token costs, compare usage over time, and export reports for budget monitoring.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill reads local OpenClaw and Codex session logs and creates aggregate usage data.\n\nMitigation: Install and run it only where local session metadata may be inspected, and keep generated reports under the same access controls as the source logs.\n\nRisk: JSON exports and Telegram-ready reports may reveal sensitive usage metadata such as dates, models, session categories, and cost estimates.\n\nMitigation: Review exports before sharing and avoid sending reports to channels that are not approved for operational metadata.\n\nRisk: Documented maintenance commands can compress or move old session files.\n\nMitigation: Run archive commands only after explicit user approval and after confirming that older session files are no longer needed in place.\n\nRisk: Cost reports are estimates based on pricing data that can become stale.\n\nMitigation: Refresh or review pricing data before using reports for billing decisions.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/space-cadet/skills/token-usage)\n- [Project Homepage](https://github.com/space-cadet/openclaw-tools/tree/main/skills/token-usage)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, JSON, shell commands, guidance]\n\n**Output Format:** [Markdown and terminal reports with optional JSON exports]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Cost estimates depend on the bundled or user-edited pricing data and may differ from actual billing.]\n\n## Skill Version(s):\n\n2.5.1 (source: server release evidence and SKILL.md frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v2.4.1: 8 files, 36859 bytes\n\nFiles: scripts/__pycache__/parse.cpython-314.pyc (23089b), scripts/parse.py (16538b), scripts/pricing.json (82695b), scripts/registry.json (173786b), scripts/update-pricing.py (7924b), skill-card.md (2315b), SKILL.md (3496b), _meta.json (130b)\n\nFile v2.4.1:SKILL.md\n\n---\nname: token-usage\ndescription: \"Track, aggregate, and report OpenClaw token usage and costs across sessions.\"\nhomepage: https://github.com/space-cadet/openclaw-token-usage\nlicense: MIT\n---\n\n# Token Usage Tracker\n\nParse OpenClaw and Codex session JSONL files to extract token usage, aggregate by date/model/session, and generate cost reports across providers.\n\n## When to Use\n\n- User asks \"how many tokens did I use today/this week\"\n- User wants to know session costs or model breakdown\n- Budget monitoring and anomaly detection\n- Before/after optimization comparisons\n\n## Workflow\n\n1. **Locate sessions** — Find `.jsonl` files in OpenClaw agent sessions and nested Codex rollout sessions\n2. **Parse usage** — Extract OpenClaw message usage or Codex `event_msg`/`token_count` per-turn usage\n3. **Aggregate** — Group by date, model, session ID\n4. **Report** — Output summaries, trends, cost estimates\n\n## Commands\n\n### Parse and aggregate current sessions (OpenClaw + Codex)\n```bash\npython3 ~/.openclaw/skills/token-usage/scripts/parse.py --today\n```\n\n### Weekly report with cost estimates\n```bash\npython3 ~/.openclaw/skills/token-usage/scripts/parse.py --week --costs\n```\n\n### Report by cron job (daily breakdown per job)\n```bash\npython3 ~/.openclaw/skills/token-usage/scripts/parse.py --week --by-cron\n```\n\n### Weekly cron report with costs (JSON output)\n```bash\npython3 ~/.openclaw/skills/token-usage/scripts/parse.py --week --by-cron --costs --json\n```\n\n### All-time summary by model\n```bash\npython3 ~/.openclaw/skills/token-usage/scripts/parse.py --all --by-model\n```\n\n### Export to JSON for external dashboards\n```bash\npython3 ~/.openclaw/skills/token-usage/scripts/parse.py --week --json > /tmp/token-report.json\n```\n\n## Data Format\n\nSessions are stored as JSONL with lines like:\n```json\n{\"type\":\"message\",\"message\":{\"role\":\"assistant\",...},\"usage\":{\"input\":1000,\"output\":500,\"totalTokens\":1500},...}\n```\n\n## Cost Estimation\n\nUses model pricing from `scripts/pricing.json` (user-editable). The bundled table includes Kimi, OpenAI/GPT, Anthropic/Claude, and OpenRouter models. Unknown models are reported without a cost estimate rather than silently priced as Kimi.\n\nDefault examples (USD per 1M tokens):\n- Kimi k2.7: $0.50/1M input, $2.00/1M output\n- Claude Sonnet 4: $3.00/1M input, $15.00/1M output\n- GPT-4o: $2.50/1M input, $10.00/1M output\n\nCosts are approximate. Cache read/write pricing applied when available.\n\n## Important: What \"Total\" Means\n\nThe script reports **input + output tokens** as the usage metric. This is the actual new token consumption per turn.\n\nThe `totalTokens` field in session files includes `cacheRead` (cached context window), which gets re-counted at every turn. Summing `totalTokens` across messages would massively overcount — a 10K context used for 100 turns would appear as 1M tokens. The script avoids this by only summing `input` and `output`.\n\n## Output Locations\n\n- Daily summaries: `~/.openclaw/skills/token-usage/logs/YYYY-MM-DD.md`\n- Weekly reports: `~/.openclaw/skills/token-usage/logs/week-YYYY-Www.md`\n- Raw JSON exports: user-specified or `/tmp/token-usage-*.json`\n\n## Limitations\n\n- OpenClaw records are parsed from `message.usage`; Codex rollouts are parsed from `payload.info.last_token_usage` in `token_count` events\n- `input + output` is the new-usage metric; Codex cached input is reported separately as `cacheRead`\n- Historical sessions before JSONL format are not supported\n- Costs are estimates; actual billing may differ\n\nFile v2.4.1:_meta.json\n\n{\n  \"ownerId\": \"kn7655yrj27ngj2xpjkvhjm8kx8a1k4j\",\n  \"slug\": \"token-usage\",\n  \"version\": \"2.4.1\",\n  \"publishedAt\": 1787299085733\n}\n\nFile v2.4.1:scripts/pricing.json\n\n{\n  \"kimi/k2.6\": {\n    \"input\": 0.9,\n    \"output\": 3.75,\n    \"cache_read\": 0.15,\n    \"cache_write\": null,\n    \"source\": \"moonshot-direct\",\n    \"updated\": \"2026-08-21T10:38:28.959886\",\n    \"openrouter_input\": 0.95,\n    \"openrouter_output\": 4.0\n  },\n  \"kimi/k2.7\": {\n    \"input\": 0.9,\n    \"output\": 3.75,\n    \"cache_read\": 0.15,\n    \"cache_write\": null,\n    \"source\": \"moonshot-direct\",\n    \"updated\": \"2026-08-21T10:38:28.959890\"\n  },\n  \"kimi/k2.7-code\": {\n    \"input\": 0.9,\n    \"output\": 3.75,\n    \"cache_read\": 0.18,\n    \"cache_write\": null,\n    \"source\": \"moonshot-direct\",\n    \"updated\": \"2026-08-21T10:38:28.959893\",\n    \"openrouter_input\": 0.67,\n    \"openrouter_output\": 3.4\n  },\n  \"kimi/k3\": {\n    \"input\": 2.78,\n    \"output\": 13.89,\n    \"cache_read\": 0.28,\n    \"cache_write\": null,\n    \"source\": \"moonshot-direct\",\n    \"updated\": \"2026-08-21T10:38:28.959895\",\n    \"openrouter_input\": 3.0,\n    \"openrouter_output\": 15.0\n  },\n  \"anthropic/claude-sonnet-4-5\": {\n    \"input\": 3.0,\n    \"output\": 15.0,\n    \"cache_read\": 0.3,\n    \"cache_write\": 3.75,\n    \"source\": \"fallback\",\n    \"updated\": \"2026-08-21T10:38:28.959900\"\n  },\n  \"stealth/ox-alpha\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957371\"\n  },\n  \"tencent/hy-mt2-1.8b\": {\n    \"input\": 0.044,\n    \"output\": 0.177,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957466\"\n  },\n  \"tencent/hy-mt2-30b-a3b\": {\n    \"input\": 0.074,\n    \"output\": 0.295,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957471\"\n  },\n  \"~z-ai/glm-latest\": {\n    \"input\": 1.4,\n    \"output\": 4.4,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957476\"\n  },\n  \"z-ai/glm-5.3\": {\n    \"input\": 1.4,\n    \"output\": 4.4,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957480\"\n  },\n  \"qwen/qwen3.8-27b\": {\n    \"input\": 0.45,\n    \"output\": 3.2,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957486\"\n  },\n  \"dots-studio/dots-3-note-preview:free\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957490\"\n  },\n  \"google/gemini-3.7-flash\": {\n    \"input\": 0.375,\n    \"output\": 1.875,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957495\"\n  },\n  \"google/gemini-3.7-flash:batch\": {\n    \"input\": 0.1875,\n    \"output\": 0.9375,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957501\"\n  },\n  \"bytedance-seed/seed-2-1-turbo\": {\n    \"input\": 0.5,\n    \"output\": 2.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957507\"\n  },\n  \"qwen/qwen3.8-2.4t-a95b\": {\n    \"input\": 2.0,\n    \"output\": 6.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957511\"\n  },\n  \"bytedance-seed/seed-2.0-code\": {\n    \"input\": 0.5,\n    \"output\": 3.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957515\"\n  },\n  \"deepseek/deepseek-v4-pro-0813\": {\n    \"input\": 1.188,\n    \"output\": 3.564,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957521\"\n  },\n  \"x-ai/grok-4.6\": {\n    \"input\": 2.0,\n    \"output\": 6.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957525\"\n  },\n  \"liquid/lfm-2.5-2.6b:free\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957530\"\n  },\n  \"nvidia/nemotron-3.5-lightning\": {\n    \"input\": 0.08,\n    \"output\": 0.2,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957534\"\n  },\n  \"nvidia/nemotron-3.5-lightning:free\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957537\"\n  },\n  \"sakana/sakana-namazu\": {\n    \"input\": 0.95,\n    \"output\": 4.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957543\"\n  },\n  \"upstage/solar-pro4\": {\n    \"input\": 0.03,\n    \"output\": 0.12,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957547\"\n  },\n  \"meta/muse-glimmer-30b\": {\n    \"input\": 0.3,\n    \"output\": 1.1,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957550\"\n  },\n  \"meta/muse-spark-1.2\": {\n    \"input\": 1.25,\n    \"output\": 4.25,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957556\"\n  },\n  \"qwen/qwen3.8-max\": {\n    \"input\": 2.0,\n    \"output\": 6.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957562\"\n  },\n  \"~deepseek/deepseek-v4-flash-latest\": {\n    \"input\": 0.065,\n    \"output\": 0.14,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957570\"\n  },\n  \"deepseek/deepseek-v4-flash-0731\": {\n    \"input\": 0.14,\n    \"output\": 0.28,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957574\"\n  },\n  \"thinkingmachines/inkling-small\": {\n    \"input\": 0.45,\n    \"output\": 1.2,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957580\"\n  },\n  \"qwen/qwen3.7-flash\": {\n    \"input\": 0.03,\n    \"output\": 0.13,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957584\"\n  },\n  \"anthropic/claude-opus-5-fast\": {\n    \"input\": 10.0,\n    \"output\": 50.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957588\"\n  },\n  \"anthropic/claude-opus-5\": {\n    \"input\": 5.0,\n    \"output\": 25.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957595\"\n  },\n  \"anthropic/claude-opus-5:batch\": {\n    \"input\": 2.5,\n    \"output\": 12.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957601\"\n  },\n  \"inclusionai/ling-3.0-flash\": {\n    \"input\": 0.021,\n    \"output\": 0.063,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957605\"\n  },\n  \"poolside/laguna-s-2.1\": {\n    \"input\": 0.09,\n    \"output\": 0.18,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957611\"\n  },\n  \"poolside/laguna-s-2.1:free\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957614\"\n  },\n  \"google/gemini-3.6-flash\": {\n    \"input\": 0.75,\n    \"output\": 3.75,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957618\"\n  },\n  \"google/gemini-3.6-flash:batch\": {\n    \"input\": 0.375,\n    \"output\": 1.875,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957624\"\n  },\n  \"google/gemini-3.5-flash-lite\": {\n    \"input\": 0.3,\n    \"output\": 2.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957628\"\n  },\n  \"google/gemini-3.5-flash-lite:batch\": {\n    \"input\": 0.15,\n    \"output\": 1.25,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957634\"\n  },\n  \"meituan/longcat-2.0\": {\n    \"input\": 0.3,\n    \"output\": 1.2,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957638\"\n  },\n  \"thinkingmachines/inkling\": {\n    \"input\": 0.95,\n    \"output\": 4.05,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957642\"\n  },\n  \"thinkingmachines/inkling:batch\": {\n    \"input\": 1.0,\n    \"output\": 4.05,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957648\"\n  },\n  \"openrouter/auto-beta\": {\n    \"input\": -1000000.0,\n    \"output\": -1000000.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957656\"\n  },\n  \"meta/muse-spark-1.1\": {\n    \"input\": 1.25,\n    \"output\": 4.25,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957664\"\n  },\n  \"kwaipilot/kat-coder-air-v2.5\": {\n    \"input\": 0.15,\n    \"output\": 0.6,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957668\"\n  },\n  \"kwaipilot/kat-coder-pro-v2.5\": {\n    \"input\": 0.74,\n    \"output\": 2.96,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957674\"\n  },\n  \"openai/gpt-5.6-luna-pro\": {\n    \"input\": 0.2,\n    \"output\": 1.2,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957678\"\n  },\n  \"openai/gpt-5.6-luna-pro:batch\": {\n    \"input\": 0.1,\n    \"output\": 0.6,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957682\"\n  },\n  \"openai/gpt-5.6-luna\": {\n    \"input\": 0.2,\n    \"output\": 1.2,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957689\"\n  },\n  \"openai/gpt-5.6-luna:batch\": {\n    \"input\": 0.1,\n    \"output\": 0.6,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957693\"\n  },\n  \"openai/gpt-5.6-terra-pro\": {\n    \"input\": 2.0,\n    \"output\": 12.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957699\"\n  },\n  \"openai/gpt-5.6-terra-pro:batch\": {\n    \"input\": 1.0,\n    \"output\": 6.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957702\"\n  },\n  \"openai/gpt-5.6-terra\": {\n    \"input\": 2.0,\n    \"output\": 12.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957706\"\n  },\n  \"openai/gpt-5.6-terra:batch\": {\n    \"input\": 1.0,\n    \"output\": 6.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957711\"\n  },\n  \"openai/gpt-5.6-sol-pro\": {\n    \"input\": 2.5,\n    \"output\": 15.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957715\"\n  },\n  \"openai/gpt-5.6-sol-pro:batch\": {\n    \"input\": 1.25,\n    \"output\": 7.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957720\"\n  },\n  \"openai/gpt-5.6-sol\": {\n    \"input\": 2.5,\n    \"output\": 15.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957724\"\n  },\n  \"openai/gpt-5.6-sol:batch\": {\n    \"input\": 1.25,\n    \"output\": 7.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957730\"\n  },\n  \"x-ai/grok-4.5\": {\n    \"input\": 2.0,\n    \"output\": 6.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957737\"\n  },\n  \"~x-ai/grok-latest\": {\n    \"input\": 2.0,\n    \"output\": 6.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957742\"\n  },\n  \"aion-labs/aion-3.0-mini\": {\n    \"input\": 0.7,\n    \"output\": 1.4,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957746\"\n  },\n  \"aion-labs/aion-3.0\": {\n    \"input\": 3.0,\n    \"output\": 6.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957750\"\n  },\n  \"tencent/hy3\": {\n    \"input\": 0.132,\n    \"output\": 0.528,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957754\"\n  },\n  \"poolside/laguna-xs-2.1\": {\n    \"input\": 0.06,\n    \"output\": 0.12,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957760\"\n  },\n  \"poolside/laguna-xs-2.1:free\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957764\"\n  },\n  \"anthropic/claude-sonnet-5\": {\n    \"input\": 2.0,\n    \"output\": 10.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957768\"\n  },\n  \"anthropic/claude-sonnet-5:batch\": {\n    \"input\": 1.0,\n    \"output\": 5.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957773\"\n  },\n  \"google/gemini-3.1-flash-lite-image\": {\n    \"input\": 0.25,\n    \"output\": 1.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957778\"\n  },\n  \"nex-agi/nex-n2-mini\": {\n    \"input\": 0.025,\n    \"output\": 0.1,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957783\"\n  },\n  \"sakana/fugu-ultra\": {\n    \"input\": 5.0,\n    \"output\": 30.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957787\"\n  },\n  \"google/gemini-3.1-flash-image\": {\n    \"input\": 0.5,\n    \"output\": 3.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957791\"\n  },\n  \"google/gemini-3-pro-image\": {\n    \"input\": 2.0,\n    \"output\": 12.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957797\"\n  },\n  \"cohere/north-mini-code:free\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957802\"\n  },\n  \"z-ai/glm-5.2\": {\n    \"input\": 0.966,\n    \"output\": 3.036,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957808\"\n  },\n  \"z-ai/glm-5.2:batch\": {\n    \"input\": 1.4,\n    \"output\": 4.4,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957814\"\n  },\n  \"z-ai/glm-5.2:free\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957817\"\n  },\n  \"openrouter/fusion\": {\n    \"input\": -1000000.0,\n    \"output\": -1000000.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957824\"\n  },\n  \"kimi/k2.7-code:batch\": {\n    \"input\": 0.95,\n    \"output\": 4.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957834\"\n  },\n  \"~anthropic/claude-fable-latest\": {\n    \"input\": 10.0,\n    \"output\": 50.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957841\"\n  },\n  \"anthropic/claude-fable-5\": {\n    \"input\": 10.0,\n    \"output\": 50.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957845\"\n  },\n  \"anthropic/claude-fable-5:batch\": {\n    \"input\": 5.0,\n    \"output\": 25.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957864\"\n  },\n  \"nex-agi/nex-n2-pro\": {\n    \"input\": 0.25,\n    \"output\": 1.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957870\"\n  },\n  \"nvidia/nemotron-3.5-content-safety:free\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957874\"\n  },\n  \"nvidia/nemotron-3-ultra-550b-a55b\": {\n    \"input\": 0.6,\n    \"output\": 3.6,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957881\"\n  },\n  \"nvidia/nemotron-3-ultra-550b-a55b:batch\": {\n    \"input\": 0.6,\n    \"output\": 3.6,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957887\"\n  },\n  \"nvidia/nemotron-3-ultra-550b-a55b:free\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957891\"\n  },\n  \"qwen/qwen3.7-plus\": {\n    \"input\": 0.32,\n    \"output\": 1.28,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957897\"\n  },\n  \"minimax/minimax-m3\": {\n    \"input\": 0.3,\n    \"output\": 1.2,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957904\"\n  },\n  \"minimax/minimax-m3:batch\": {\n    \"input\": 0.3,\n    \"output\": 1.2,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957910\"\n  },\n  \"stepfun/step-3.7-flash\": {\n    \"input\": 0.2,\n    \"output\": 1.15,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957914\"\n  },\n  \"anthropic/claude-opus-4.8-fast\": {\n    \"input\": 10.0,\n    \"output\": 50.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957919\"\n  },\n  \"anthropic/claude-opus-4.8\": {\n    \"input\": 5.0,\n    \"output\": 25.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957925\"\n  },\n  \"anthropic/claude-opus-4.8:batch\": {\n    \"input\": 2.5,\n    \"output\": 12.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957929\"\n  },\n  \"qwen/qwen3.7-max\": {\n    \"input\": 1.475,\n    \"output\": 4.425,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957935\"\n  },\n  \"x-ai/grok-build-0.1\": {\n    \"input\": 1.0,\n    \"output\": 2.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957940\"\n  },\n  \"google/gemini-3.5-flash\": {\n    \"input\": 1.5,\n    \"output\": 9.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957945\"\n  },\n  \"google/gemini-3.5-flash:batch\": {\n    \"input\": 0.75,\n    \"output\": 4.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957951\"\n  },\n  \"anthropic/claude-opus-4.7-fast\": {\n    \"input\": 30.0,\n    \"output\": 150.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957956\"\n  },\n  \"perceptron/perceptron-mk1\": {\n    \"input\": 0.15,\n    \"output\": 1.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957960\"\n  },\n  \"inclusionai/ring-2.6-1t\": {\n    \"input\": 0.075,\n    \"output\": 0.625,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957965\"\n  },\n  \"google/gemini-3.1-flash-lite\": {\n    \"input\": 0.25,\n    \"output\": 1.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957969\"\n  },\n  \"google/gemini-3.1-flash-lite:batch\": {\n    \"input\": 0.125,\n    \"output\": 0.75,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957974\"\n  },\n  \"openai/gpt-chat-latest\": {\n    \"input\": 5.0,\n    \"output\": 30.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957978\"\n  },\n  \"x-ai/grok-4.3\": {\n    \"input\": 1.25,\n    \"output\": 2.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957982\"\n  },\n  \"ibm-granite/granite-4.1-8b\": {\n    \"input\": 0.05,\n    \"output\": 0.1,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957988\"\n  },\n  \"mistralai/mistral-medium-3-5\": {\n    \"input\": 1.5,\n    \"output\": 7.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \n\nArchive v2.4.0: 8 files, 35815 bytes\n\nFiles: scripts/__pycache__/parse.cpython-314.pyc (23089b), scripts/parse.py (15773b), scripts/pricing.json (79088b), scripts/registry.json (166188b), scripts/update-pricing.py (7796b), skill-card.md (2193b), SKILL.md (3496b), _meta.json (130b)\n\nArchive v2.3.0: 7 files, 22841 bytes\n\nFiles: scripts/parse.py (13709b), scripts/pricing.json (67827b), scripts/registry.json (142166b), scripts/update-pricing.py (7796b), skill-card.md (2485b), SKILL.md (3077b), _meta.json (130b)\n\nArchive v2.2.4: 9 files, 30324 bytes\n\nFiles: scripts/ingest.py (10297b), scripts/parse.py (18959b), scripts/pricing.json (67586b), scripts/registry.json (142166b), scripts/report.py (6922b), scripts/update-pricing.py (7796b), skill-card.md (2229b), SKILL.md (5700b), _meta.json (130b)\n\nArchive v2.2.3: 9 files, 30285 bytes\n\nFiles: scripts/ingest.py (10297b), scripts/parse.py (18959b), scripts/pricing.json (67586b), scripts/registry.json (142166b), scripts/report.py (6922b), scripts/update-pricing.py (7796b), skill-card.md (2124b), SKILL.md (5700b), _meta.json (130b)\n\nArchive v2.2.2: 7 files, 22691 bytes\n\nFiles: scripts/parse.py (13393b), scripts/pricing.json (67586b), scripts/registry.json (142166b), scripts/update-pricing.py (7796b), skill-card.md (2316b), SKILL.md (3077b), _meta.json (130b)\n\nArchive v2.2.1: 7 files, 22807 bytes\n\nFiles: scripts/parse.py (13393b), scripts/pricing.json (67586b), scripts/registry.json (142166b), scripts/update-pricing.py (7796b), skill-card.md (2564b), SKILL.md (3077b), _meta.json (130b)\n\nArchive v2.2.0: 7 files, 22700 bytes\n\nFiles: scripts/parse.py (13393b), scripts/pricing.json (67586b), scripts/registry.json (142166b), scripts/update-pricing.py (7796b), skill-card.md (2395b), SKILL.md (3077b), _meta.json (130b)\n\nArchive v2.1.1: 7 files, 22703 bytes\n\nFiles: scripts/parse.py (13393b), scripts/pricing.json (67586b), scripts/registry.json (142166b), scripts/update-pricing.py (7796b), skill-card.md (2355b), SKILL.md (3077b), _meta.json (130b)","readmeExcerpt":"Skill: Token Usage Tracker Owner: space-cadet Summary: Track, aggregate, and report OpenClaw token usage and costs across sessions. Tags: latest:2.5.1 Version history: v2.5.1 | 2026-09-18T17:35:23.119Z | user Fix T16 regressions: IST timezone conversion restored, removed CLI flags restored, per-model cron pricing, version-gate tuple compare, SQLite double-count guard, real cache costs. Includes v2.5.0 9.x SQLite back","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"# Past 24 hours, model breakdown with cost estimates\npython3 ~/.openclaw/skills/token-usage/scripts/parse.py --hours 24 --by-model --costs\n\n# Today so far\npython3 ~/.openclaw/skills/token-usage/scripts/parse.py --today --by-model --costs\n\n# Yesterday\npython3 ~/.openclaw/skills/token-usage/scripts/parse.py --yesterday --by-model --costs\n\n# Since a specific time\npython3 ~/.openclaw/skills/token-usage/scripts/parse.py --since \"2026-07-20T09:00:00\" --by-model --costs\n\n# Last 2 hours\npython3 ~/.openclaw/skills/token-usage/scripts/parse.py --since 2h --by-model --costs"},{"language":"bash","snippet":"python3 ~/.openclaw/skills/token-usage/scripts/parse.py --week --by-cron"},{"language":"bash","snippet":"python3 ~/.openclaw/skills/token-usage/scripts/parse.py --all --by-model"},{"language":"bash","snippet":"python3 ~/.openclaw/skills/token-usage/scripts/parse.py --week --json > /tmp/token-report.json"},{"language":"json","snippet":"{\"type\":\"message\",\"message\":{\"role\":\"assistant\",...},\"usage\":{\"input\":1000,\"output\":500,\"totalTokens\":1500},...}"},{"language":"bash","snippet":"# Total size and file count\ndu -sh ~/.openclaw/agents/main/sessions/\nls ~/.openclaw/agents/main/sessions/*.jsonl | wc -l\n\n# Size by month (to identify heavy periods)\nls -l ~/.openclaw/agents/main/sessions/*.jsonl | awk '\n  {month = substr($6, 1, 3); year = $8; size += $5; count++}\n  END {printf \"Total: %.2f MB across %d files\\n\", size/1024/1024, count}'"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: token-usage\ndescription: \"Track, aggregate, and report OpenClaw token usage and costs across sessions.\"\nhomepage: https://github.com/space-cadet/openclaw-tools/tree/main/skills/token-usage\nlicense: MIT\nversion: \"2.5.1\"\n---\n\n# Token Usage Tracker\n\nParse OpenClaw and Codex session files to extract token usage, aggregate by date/model/session, and generate provider-aware cost reports. Works across OpenClaw storage eras — pre-9.x JSONL, 9.x SQLite, and transitional mixed storage.\n\n## When to Use\n\n- User asks \"how many tokens did I use today/this week\"\n- User wants to know session costs or model breakdown\n- Budget monitoring and anomaly detection\n- Before/after optimization comparisons\n\n## Workflow\n\n1. **Locate sessions** — Find `.jsonl` files in OpenClaw agent sessions and nested Codex rollout sessions\n2. **Parse usage** — Extract OpenClaw message usage or Codex `token_count` per-turn usage\n3. **Aggregate** — Group by date, model, session ID\n4. **Report** — Output summaries, trends, cost estimates\n\n## Commands\n\n### Time Period Selection\n\n| Flag | Description | Example |\n|------|-------------|---------|\n| `--today` | Current calendar day (local timezone) | `--today` |\n| `--yesterday` | Previous calendar day (local timezone) | `--yesterday` |\n| `--week` | Last 7 calendar days | `--week` |\n| `--days N` | Last N calendar days | `--days 3` |\n| `--hours N` | Rolling window: last N hours | `--hours 24` |\n| `--since TIME` | Start time (ISO, date, or relative) | `--since 24h`, `--since 2d`, `--since \"2026-07-20T09:00:00\"` |\n| `--until TIME` | End time (ISO, date, or relative) | `--until 1h` |\n| `--all` | All time | `--all` |\n\n**Relative time shorthand:** `1h` = 1 hour ago, `2d` = 2 days ago, `30m` = 30 minutes ago.\n\n### Report by Model (with costs)\n```bash\n# Past 24 hours, model breakdown with cost estimates\npython3 ~/.openclaw/skills/token-usage/scripts/parse.py --hours 24 --by-model --costs\n\n# Today so far\npython3 ~/.openclaw/skills/token-usage/scripts/parse.py --today --by-model --costs\n\n# Yesterday\npython3 ~/.openclaw/skills/token-usage/scripts/parse.py --yesterday --by-model --costs\n\n# Since a specific time\npython3 ~/.openclaw/skills/token-usage/scripts/parse.py --since \"2026-07-20T09:00:00\" --by-model --costs\n\n# Last 2 hours\npython3 ~/.openclaw/skills/token-usage/scripts/parse.py --since 2h --by-model --costs\n```\n\n### Report by Cron Job (daily breakdown per job)\n```bash\npython3 ~/.openclaw/skills/token-usage/scripts/parse.py --week --by-cron\n```\n\n### All-time summary by model\n```bash\npython3 ~/.openclaw/skills/token-usage/scripts/parse.py --all --by-model\n```\n\n### Export to JSON for external dashboards\n```bash\npython3 ~/.openclaw/skills/token-usage/scripts/parse.py --week --json > /tmp/token-report.json\n```\n\n### Additional Output Options\n\n| Flag | Description |\n|------|-------------|\n| `--cache` | Include cache read/write columns in report |\n| `--session-detail` | Show per-session breakdown with models used |\n| `--json` | Output machine-readab"},{"path":"README.md","content":"# Token Usage Tracker\n\nParse OpenClaw and Codex session files to extract token usage, aggregate by date/model/session type, and generate cost reports across providers. Works across OpenClaw storage eras — pre-9.x JSONL, 9.x SQLite, and transitional mixed storage.\n\n## When to Use\n\n- User asks \"how many tokens did I use today/this week\"\n- Budget monitoring and anomaly detection\n- Before/after optimization comparisons\n- Cron job: daily token report to Telegram\n\n## Version-Aware Storage Detection\n\nThe parser detects the installed OpenClaw version and storage backend automatically:\n\n```\nOpenClaw version : 2026.9.4\nStorage backend  : mixed  (jsonl=5581, sqlite=1, zst_archives=22)\n⚠️  Mixed storage: SQLite (9.x live) + loose JSONL files detected.\n```\n\n| OpenClaw Version | Storage | Behavior |\n|------------------|---------|----------|\n| pre-9.x (≤2026.6.x) | JSONL only | Reads `.jsonl` / `.jsonl.gz`; warns if SQLite DB found |\n| 9.x (≥2026.9.x) | SQLite primary | Reads `transcript_events`; merges with any JSONL |\n| transitional | mixed | Reads both; warns so you know to consolidate |\n| unknown | auto-detect | Reads whatever is present; warns |\n\nVersion is detected by scanning all NVM node trees for `openclaw/package.json` and picking the newest — never shells out to `openclaw --version` (which can block on a live gateway lock).\n\n## Architecture\n\n```\nscripts/\n  parse.py     — Direct parser (primary; auto-detects version + storage)\n  common.py    — Session discovery, parsing, model normalization, cost estimation\n  ingest.py    — Incremental ingestion into SQLite (usage.db)\n  report.py    — Report generation from SQLite\n  pricing.json — Model pricing table (user-editable)\n  registry.json — Model metadata: availability, provider, context windows\n```\n\n`parse.py` is the primary tool. `ingest.py` + `report.py` remain available for advanced SQL querying and long-term retention.\n\n## Data Sources\n\n| Source | Pattern | Classification |\n|--------|---------|----------------|\n| 9.x live transcripts | `openclaw-agent.sqlite → transcript_events` | `user` or `cron:<name>` |\n| Interactive sessions | `*.jsonl`, `*.jsonl.gz` | `user` or `cron:<name>` |\n| Zstd-compressed archives | `*.jsonl.deleted.*.zst` | `user` or `cron:<name>` |\n| Codex app-server rollouts | `codex-home/sessions/**/*.jsonl` | `background:codex` |\n\n## Key Behaviors\n\n- **9.x SQLite backend** (T16): Live session transcripts moved into `openclaw-agent.sqlite`. The parser reads `transcript_events.event_json` via a snapshot-to-`/tmp` pattern (the live DB is in OpenClaw's protected state directory). macOS requires plain `sqlite3.connect()` — URI read-only mode (`file:...?mode=ro`) fails on temp files.\n- **Timestamp normalization** (T16): SQLite stores UTC timestamps with `Z` suffix; `--since` / `--until` boundaries are local IST. `_normalise_ts()` strips `Z` so string comparison works across both formats.\n- **Mtime pre-filter** (T16): `find_sessions(since=...)` only opens files modified within the time window. "},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7655yrj27ngj2xpjkvhjm8kx8a1k4j\",\n  \"slug\": \"token-usage\",\n  \"version\": \"2.5.1\",\n  \"publishedAt\": 1789752923119\n}"},{"path":"scripts/pricing.json","content":"{\n  \"kimi/k2.6\": {\n    \"input\": 0.9,\n    \"output\": 3.75,\n    \"cache_read\": 0.15,\n    \"cache_write\": null,\n    \"source\": \"moonshot-direct\",\n    \"updated\": \"2026-08-21T10:38:28.959886\",\n    \"openrouter_input\": 0.95,\n    \"openrouter_output\": 4.0\n  },\n  \"kimi/k2.7\": {\n    \"input\": 0.9,\n    \"output\": 3.75,\n    \"cache_read\": 0.15,\n    \"cache_write\": null,\n    \"source\": \"moonshot-direct\",\n    \"updated\": \"2026-08-21T10:38:28.959890\"\n  },\n  \"kimi/k2.7-code\": {\n    \"input\": 0.9,\n    \"output\": 3.75,\n    \"cache_read\": 0.18,\n    \"cache_write\": null,\n    \"source\": \"moonshot-direct\",\n    \"updated\": \"2026-08-21T10:38:28.959893\",\n    \"openrouter_input\": 0.67,\n    \"openrouter_output\": 3.4\n  },\n  \"kimi/k3\": {\n    \"input\": 2.78,\n    \"output\": 13.89,\n    \"cache_read\": 0.28,\n    \"cache_write\": null,\n    \"source\": \"moonshot-direct\",\n    \"updated\": \"2026-08-21T10:38:28.959895\",\n    \"openrouter_input\": 3.0,\n    \"openrouter_output\": 15.0\n  },\n  \"anthropic/claude-sonnet-4-5\": {\n    \"input\": 3.0,\n    \"output\": 15.0,\n    \"cache_read\": 0.3,\n    \"cache_write\": 3.75,\n    \"source\": \"fallback\",\n    \"updated\": \"2026-08-21T10:38:28.959900\"\n  },\n  \"stealth/ox-alpha\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957371\"\n  },\n  \"tencent/hy-mt2-1.8b\": {\n    \"input\": 0.044,\n    \"output\": 0.177,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957466\"\n  },\n  \"tencent/hy-mt2-30b-a3b\": {\n    \"input\": 0.074,\n    \"output\": 0.295,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957471\"\n  },\n  \"~z-ai/glm-latest\": {\n    \"input\": 1.4,\n    \"output\": 4.4,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957476\"\n  },\n  \"z-ai/glm-5.3\": {\n    \"input\": 1.4,\n    \"output\": 4.4,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957480\"\n  },\n  \"qwen/qwen3.8-27b\": {\n    \"input\": 0.45,\n    \"output\": 3.2,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957486\"\n  },\n  \"dots-studio/dots-3-note-preview:free\": {\n    \"input\": 0.0,\n    \"output\": 0.0,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957490\"\n  },\n  \"google/gemini-3.7-flash\": {\n    \"input\": 0.375,\n    \"output\": 1.875,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957495\"\n  },\n  \"google/gemini-3.7-flash:batch\": {\n    \"input\": 0.1875,\n    \"output\": 0.9375,\n    \"cache_read\": null,\n    \"cache_write\": null,\n    \"source\": \"openrouter\",\n    \"updated\": \"2026-08-21T10:38:28.957501\"\n  },\n  \"bytedance-seed/seed-2-1-turbo\": {\n    \"input\": 0.5,\n    \"output\": 2.5,\n    \"cache_read\": null,\n    \"cache_write\": null,\n   "},{"path":"scripts/registry.json","content":"{\n  \"updated\": \"2026-07-23T10:25:36.469018\",\n  \"models\": {\n    \"kimi/k2.6\": {\n      \"pricing\": {\n        \"input_per_million\": 0.9,\n        \"output_per_million\": 3.75,\n        \"cache_read_per_million\": 0.15,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {\n        \"openrouter\": {\n          \"input_per_million\": 0.684,\n          \"output_per_million\": 3.42\n        }\n      },\n      \"availability\": \"available\",\n      \"provider\": \"kimi\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.462346\",\n      \"pricing_source\": \"moonshot-direct\"\n    },\n    \"kimi/k2.7\": {\n      \"pricing\": {\n        \"input_per_million\": 0.9,\n        \"output_per_million\": 3.75,\n        \"cache_read_per_million\": 0.15,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"kimi\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.462352\",\n      \"pricing_source\": \"moonshot-direct\"\n    },\n    \"kimi/k2.7-code\": {\n      \"pricing\": {\n        \"input_per_million\": 0.9,\n        \"output_per_million\": 3.75,\n        \"cache_read_per_million\": 0.18,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {\n        \"openrouter\": {\n          \"input_per_million\": 0.82,\n          \"output_per_million\": 3.75\n        }\n      },\n      \"availability\": \"available\",\n      \"provider\": \"kimi\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.462356\",\n      \"pricing_source\": \"moonshot-direct\"\n    },\n    \"kimi/k3\": {\n      \"pricing\": {\n        \"input_per_million\": 2.78,\n        \"output_per_million\": 13.89,\n        \"cache_read_per_million\": 0.28,\n        \"cache_write_per_million\": null\n      },\n      \"alternative_pricing\": {\n        \"openrouter\": {\n          \"input_per_million\": 3.0,\n          \"output_per_million\": 15.0\n        }\n      },\n      \"availability\": \"available\",\n      \"provider\": \"kimi\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.462360\",\n      \"pricing_source\": \"moonshot-direct\"\n    },\n    \"anthropic/claude-sonnet-4-5\": {\n      \"pricing\": {\n        \"input_per_million\": 3.0,\n        \"output_per_million\": 15.0,\n        \"cache_read_per_million\": 0.3,\n        \"cache_write_per_million\": 3.75\n      },\n      \"alternative_pricing\": {},\n      \"availability\": \"available\",\n      \"provider\": \"anthropic\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.462363\",\n      \"pricing_source\": \"fallback\"\n    },\n    \"openai/gpt-4o\": {\n      \"pricing\": {\n        \"input_per_million\": 2.5,\n        \"output_per_million\": 10.0,\n        \"cache_read_per_million\": 1.25,\n        \"cache_write_per_million\": 0\n      },\n      \"alternative_pricing\": {\n        \"openrouter\": {\n          \"input_per_million\": 2.5,\n          \"output_per_million\": 10.0\n        }\n      },\n      \"availability\": \"available\",\n      \"provider\": \"openai\",\n      \"last_pricing_update\": \"2026-07-23T10:25:36.462366\",\n      \"pricing_source\": \"fallback\"\n    },\n    \"openai/gpt-4o-mini\": {\n      \"pricing\": {\n        \"input_per_millio"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1773,"uniquenessScore":38,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T11:23:47.203Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T11:23:47.203Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T13:39:56.640Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}