wende

Usage Dashboard — AI skill for Claude Code

AI community

Self-hostable AI quota / usage dashboard (Kimi, Claude, Cursor, ChatGPT, MiniMax).

How to install Usage Dashboard

This entry records only its repository, not the path inside it, so there is no exact command to give. Open wende/usage-dashboard and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Usage Dashboard does

Self-hostable AI quota / usage dashboard (Kimi, Claude, Cursor, ChatGPT, MiniMax).

Alternatives in AI

  • Multica — Make humans and AI agents work as one team — open-source and self-hostable 47.8k ★
  • WindsurfAPI — Turn Windsurf / Devin Desktop's 100+ AI models (Claude, GPT, Gemini, DeepSeek, Kimi, GLM, SWE) into OpenAI-, A 3k ★
  • Proxypal — A desktop app that lets you use your AI subscriptions (Claude, ChatGPT, Gemini, GitHub Copilot) with any codin 1.2k ★

README

Usage Dashboard

Self-hostable quota dashboard for Kimi, Claude, Cursor, ChatGPT, Grok, MiniMax, GLM, and Devin. A zero-dependency Node server polls each provider and serves a single-page app plus a macOS [Übersicht](https://tracesof.net/uebersicht/) widget from the same cache.

![AI Quota Watch dashboard](docs/usage_widget.png)

Cards are **draggable** and **resizable** (12-column grid, saved in `localStorage`). Below 900 px the board drops to a CSS grid. **Reset layout** restores the default arrangement.

Cards

Each card is titled with the bare provider name. Hero and sub-row labels:

Provider Hero Sub-rows
Kimi Monthly usage 5-hour usage, 7-day usage, Gift usage (when the API returns gifts)
Claude 5-hour usage 7-day usage, Model limits · weekly (when scoped limits exist)
Cursor Monthly usage API usage
ChatGPT 5-hour usage Weekly usage
Grok Weekly usage
MiniMax 5-hour usage Weekly usage
GLM 5-hour usage Weekly usage
Devin Daily usage Weekly usage

Pixel rails fill amber at ≥70 % and red at ≥90 %. Percents display to one decimal. A live-dot in the header shows last refresh time, or `refreshing` / `stale` / `error`. The circular button next to it POSTs `/api/refresh/:provider`.

Status meanings:

  • stale — credential or token rejected (HTTP 401/403, expired JWT, bad file). Last values stay on screen; re-harvest credentials.
  • error — network, timeout, HTTP 5xx, parse. Last values stay; retry.
  • ChatGPT tokenExpired and Grok tokenExpired also show a red banner pointing at the matching credential file.

A Claude `503` on the dashboard is usually an Anthropic outage, not a bad cookie. Check the browser-side banner before re-harvesting.

Quick start

Requires **Node.js 18+**. No npm dependencies.

  1. Copy templates from `credentials/` into ~/.quota-watch/ (preferred) or leave filled files in ./credentials/:
~/.quota-watch