{"id":35878250,"url":"https://github.com/uppinote20/claude-dashboard","last_synced_at":"2026-07-05T00:01:37.338Z","repository":{"id":332416658,"uuid":"1128426409","full_name":"uppinote20/claude-dashboard","owner":"uppinote20","description":"Comprehensive status line plugin for Claude Code with context usage, API rate limits, and cost tracking","archived":false,"fork":false,"pushed_at":"2026-07-04T08:01:39.000Z","size":3908,"stargazers_count":520,"open_issues_count":3,"forks_count":53,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-07-04T10:07:31.981Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://claude-dashboard.uppinote.dev","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/uppinote20.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-05T16:09:29.000Z","updated_at":"2026-07-01T08:01:01.000Z","dependencies_parsed_at":"2026-07-04T10:02:53.003Z","dependency_job_id":null,"html_url":"https://github.com/uppinote20/claude-dashboard","commit_stats":null,"previous_names":["uppinote20/claude-dashboard"],"tags_count":48,"template":false,"template_full_name":null,"purl":"pkg:github/uppinote20/claude-dashboard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uppinote20%2Fclaude-dashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uppinote20%2Fclaude-dashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uppinote20%2Fclaude-dashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uppinote20%2Fclaude-dashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uppinote20","download_url":"https://codeload.github.com/uppinote20/claude-dashboard/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uppinote20%2Fclaude-dashboard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35139194,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-04T02:00:05.987Z","response_time":113,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-08T17:17:35.524Z","updated_at":"2026-07-05T00:01:37.328Z","avatar_url":"https://github.com/uppinote20.png","language":"TypeScript","funding_links":["https://ko-fi.com/uppinote","https://www.buymeacoffee.com/uppinote"],"categories":["🔌 Claude Plugins","Monitoring and Cost Tracking"],"sub_categories":["MCP Frameworks and Tooling"],"readme":"# claude-dashboard\n\n![License](https://img.shields.io/github/license/uppinote20/claude-dashboard)\n![Stars](https://img.shields.io/github/stars/uppinote20/claude-dashboard)\n\nComprehensive status line plugin for Claude Code — unified usage monitoring across Claude, Codex, Gemini, and z.ai CLIs, with context, rate limits, cost tracking, and a modular widget system.\n\n## Demo\n\n![Demo](demo.gif)\n\n## Installation\n\n**Requirements:** Claude Code v1.0.80+ / Node.js 18+\n\n### From Plugin Marketplace\n\n```\n/plugin marketplace add uppinote20/claude-dashboard\n/plugin install claude-dashboard\n/claude-dashboard:setup\n```\n\n### Manual Installation\n\n```bash\ngit clone https://github.com/uppinote20/claude-dashboard.git ~/.claude/plugins/claude-dashboard\n/claude-dashboard:setup\n```\n\n## Display Modes\n\n**Compact (1 line) - Default:**\n\n![Compact](images/compact.png)\n\n\u003e Model, context progress bar, cost, rate limits (5h/7d) or z.ai usage (mutually exclusive by provider)\n\n**Normal (2 lines):**\n\n![Normal](images/normal.png)\n\n\u003e Adds project info, session ID, session duration, burn rate, todo progress\n\n**Detailed (6 lines):**\n\n![Detailed](images/detailed.png)\n\n\u003e Adds depletion time, config counts, tool/agent status, cache hit, performance badge, token breakdown, forecast, budget, Codex/Gemini usage\n\nMulti-provider support: z.ai/ZHIPU, Codex, Gemini auto-detected when installed.\n\n\n## Widgets\n\n| Category | Widget | Description |\n|----------|--------|-------------|\n| **Core** | `model` | Model name with emoji, effort level for Opus/Sonnet/Fable (MAX/X/H/M/L), fast mode for Opus (↯) |\n| | `context` | Progress bar, percentage, tokens (🟢 0-50% / 🟡 51-80% / 🔴 81-100%) |\n| | `contextBar` | Progress bar only (sub-widget of `context`) |\n| | `contextPercentage` | Percentage only (sub-widget of `context`) |\n| | `contextUsage` | Token count only, e.g. `42K/200K` (sub-widget of `context`) |\n| | `cost` | Session cost in USD |\n| | `projectInfo` | Directory + git branch (clickable OSC8 link) + ahead/behind (↑↓), subpath from project_dir, worktree indicator (🌳) |\n| **Rate Limits** | `rateLimit5h` | 5-hour rate limit with reset countdown |\n| | `rateLimit7d` | 7-day rate limit (Pro and Max) |\n| | `rateLimit7dSonnet` | 7-day Sonnet limit (Max only) — deprecated ~2026-06: Anthropic merged it into the unified weekly bucket at the Sonnet 5 launch, so the API returns `null` and the widget stays hidden until/unless the field returns |\n| | `rateLimit7dFable` | 7-day Fable limit (Max only) |\n| **Session** | `sessionId` | Session ID (short 8-char) |\n| | `sessionIdFull` | Session ID (full UUID) |\n| | `sessionName` | Session name from /rename command |\n| | `sessionDuration` | Session duration |\n| | `lastPrompt` | Last user prompt with timestamp |\n| | `configCounts` | CLAUDE.md, AGENTS.md, rules, MCPs, hooks, +Dirs |\n| **Activity** | `toolActivity` | Running/completed tools with targets (e.g., `Read(app.ts)`) |\n| | `agentStatus` | Subagent progress |\n| | `todoProgress` | Todo completion rate |\n| **Analytics** | `burnRate` | Token consumption per minute |\n| | `cacheHit` | Cache hit rate percentage |\n| | `depletionTime` | Estimated time to rate limit (approx)¹ |\n| **Multi-CLI** | `codexUsage` | OpenAI Codex CLI usage (auto-hide if not installed)² |\n| | `geminiUsage` | Google Gemini CLI - current model (auto-hide if not installed)³ |\n| | `geminiUsageAll` | Google Gemini CLI - all models (auto-hide if not installed)³ |\n| | `zaiUsage` | z.ai/ZHIPU usage (auto-hide if not using z.ai)⁴ |\n| **Insights** | `tokenBreakdown` | Input/output/cache write/read token breakdown |\n| | `performance` | Composite efficiency badge (cache hit + output ratio) |\n| | `forecast` | Estimated hourly cost based on session rate |\n| | `budget` | Daily spending vs configured budget limit⁵ |\n| | `tokenSpeed` | Output token generation speed (tok/s) |\n| | `todayCost` | Total spending across all sessions today |\n| **Status** | `peakHours` | Peak hours indicator with countdown ([based on PeakClaude](https://github.com/pforret/PeakClaude))⁶ |\n| | `tagStatus` | Commits ahead of matched git tags (default pattern `v*`, customize via `tagPatterns`)⁷ |\n| | `slashCommand` | Active slash command for the current turn (🎯), cleared by next plain-text message |\n| | `agentMode` | Session agent identity: 👤 custom agent (via `/agent \u003cname\u003e`) or 🤖 subagent type |\n| **Info** | `linesChanged` | Uncommitted lines added/removed, including untracked files (+N -N) |\n| | `outputStyle` | Current output style (hidden when \"default\") |\n| | `version` | Claude Code version display |\n| | `vimMode` | Vim mode (NORMAL/INSERT), auto-hides when vim disabled |\n| | `apiDuration` | API time as % of total session time |\n\n\u003e ¹ Assumes all utilization came from this session; improves as session runs longer.\n\u003e ² Auto-hides if `~/.codex/auth.json` not found. ³ Auto-hides if `~/.gemini/oauth_creds.json` not found. ⁴ Auto-hides if not detected via `ANTHROPIC_BASE_URL`. ⁵ Requires `\"dailyBudget\"` in config. ⁶ Peak = weekdays 5-11 AM PT; shows countdown to next transition. ⁷ Uses `tagPatterns` config (default `[\"v*\"]`); auto-hides when no pattern matches a reachable tag.\n\ni18n: English and Korean supported (auto-detect or set via setup).\n\n## Configuration\n\n```bash\n# Preset modes\n/claude-dashboard:setup compact             # 1 line (default)\n/claude-dashboard:setup normal en pro       # 2 lines, English, Pro plan\n/claude-dashboard:setup detailed ko max     # 6 lines, Korean, Max plan\n\n# Custom mode: control widget order and line composition\n# Format: \"widget1,widget2,...|widget3,widget4,...\" (| separates lines)\n/claude-dashboard:setup custom auto max \"model,context,cost|projectInfo,todoProgress\"\n```\n\n**Plan differences:**\n\n| Feature | Max | Pro |\n|---------|-----|-----|\n| 5h rate limit + countdown | ✅ | ✅ |\n| 7d all models | ✅ | ❌ |\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eAdvanced Configuration\u003c/strong\u003e\u003c/summary\u003e\n\n**Interactive Mode:** Run `/claude-dashboard:setup` without arguments. Best for preset selection; for full widget control, use Direct Mode or edit the JSON file directly.\n\n**Display Mode Presets** (`zaiUsage` and `rateLimit*` are mutually exclusive based on provider):\n\n| Mode | Lines | Widgets |\n|------|-------|---------|\n| `compact` | 1 | model, context, cost, rateLimit5h/7d/7dSonnet, zaiUsage |\n| `normal` | 2 | + projectInfo, sessionId, sessionDuration, burnRate, todoProgress |\n| `detailed` | 6 | + depletionTime, configCounts, toolActivity, agentStatus, cacheHit, performance, tokenBreakdown, forecast, budget, codexUsage, geminiUsage, linesChanged, outputStyle, version, peakHours, lastPrompt, vimMode, apiDuration, tagStatus |\n\n**Configuration file** (`~/.claude/claude-dashboard.local.json`):\n\n```json\n{\n  \"language\": \"auto\",\n  \"plan\": \"max\",\n  \"displayMode\": \"custom\",\n  \"lines\": [\n    [\"model\", \"context\", \"cost\", \"rateLimit5h\"],\n    [\"projectInfo\", \"todoProgress\"]\n  ],\n  \"theme\": \"default\",\n  \"separator\": \"pipe\",\n  \"dailyBudget\": 15,\n  \"disabledWidgets\": [],\n  \"cache\": { \"ttlSeconds\": 60 }\n}\n```\n\nOr use preset shorthand for quick configuration:\n```json\n{\n  \"preset\": \"MC$R|BDO\",\n  \"theme\": \"tokyoNight\",\n  \"separator\": \"dot\"\n}\n```\n\n**Themes:** `default` (pastel) / `minimal` (monochrome) / `catppuccin` / `catppuccinLatte` (light-mode) / `dracula` / `gruvbox` / `nord` / `tokyoNight` / `solarized`\n\n**Separators:** `pipe` (│, default) / `space` / `dot` (·) / `arrow` (›)\n\n**Preset Shortcuts:** Quick layout with single characters — `\"preset\": \"MC$R|BDO\"` (M=model, C=context, $=cost, R=rateLimit5h, etc.)\n\n**Budget Tracking:** Set `\"dailyBudget\": 15` to track daily spending. Shows ⚠️ at 80% and 🚨 at 95%.\n\n**Tag Status:** Customize `tagStatus` patterns via `\"tagPatterns\": [\"v*\", \"release-*\"]`. Default is `[\"v*\"]`. The widget auto-hides when no pattern matches a reachable tag.\n\n**Widget Toggle:** Add widget IDs to `disabledWidgets` to hide them from any display mode.\n\n**Color Legend:** 🟢 0-50% Safe / 🟡 51-80% Warning / 🔴 81-100% Critical\n\n\u003c/details\u003e\n\n## Commands\n\n### `/claude-dashboard:setup`\n\nConfigure the status line display mode, language, and plan. See [Configuration](#configuration).\n\n### `/claude-dashboard:check-usage`\n\nCheck usage limits for all AI CLIs (Claude, Codex, Gemini, z.ai) at once and get a recommendation for which CLI has the most available capacity.\n\n```bash\n/claude-dashboard:check-usage              # Interactive output with colors\n/claude-dashboard:check-usage --json       # JSON output for scripting\n/claude-dashboard:check-usage --lang ko    # Specify language\n```\n\n![check-usage](images/check-usage.png)\n\n### `/claude-dashboard:setup-alias`\n\nAdd a `check-ai` shell alias to quickly check all AI CLI usage from your terminal. Supports macOS/Linux (zsh/bash) and Windows (PowerShell).\n\n```bash\n/claude-dashboard:setup-alias\n```\n\nAfter setup:\n```bash\ncheck-ai          # Pretty output\ncheck-ai --json   # JSON output for scripting\n```\n\n### `/claude-dashboard:update`\n\nUpdate the plugin and refresh the statusLine path in settings. Run after updating via git pull or marketplace.\n\n```bash\n/claude-dashboard:update\n```\n\n## Troubleshooting\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eStatus line not showing\u003c/strong\u003e\u003c/summary\u003e\n\n1. Check if plugin is installed: `/plugin list`\n2. Verify settings.json has statusLine config\n3. Restart Claude Code\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eRate limits showing ⚠️\u003c/strong\u003e\u003c/summary\u003e\n\n- API token may be expired - re-login to Claude Code\n- Network issue - check internet connection\n- API rate limited - wait 60 seconds for cache refresh\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eWrong language\u003c/strong\u003e\u003c/summary\u003e\n\nRun setup with explicit language:\n\n```\n/claude-dashboard:setup normal ko  # Korean\n/claude-dashboard:setup normal en  # English\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eCache issues\u003c/strong\u003e\u003c/summary\u003e\n\nAPI response cache is stored in `~/.cache/claude-dashboard/`. To clear:\n\n```bash\nrm -rf ~/.cache/claude-dashboard/\n```\n\nCache files are automatically cleaned up after 1 hour.\n\n\u003c/details\u003e\n\n## Development\n\n```bash\nnpm install \u0026\u0026 npm run build\n```\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for details.\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=uppinote20/claude-dashboard\u0026type=Date)](https://star-history.com/#uppinote20/claude-dashboard\u0026Date)\n\n## ☕ Support\n\nIf you find this plugin useful, support development:\n\n\u003cdiv style=\"display: flex; gap: 20px; align-items: center;\"\u003e\n  \u003ca href=\"https://ko-fi.com/uppinote\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://storage.ko-fi.com/cdn/kofi5.png\" alt=\"Buy Me a Coffee at ko-fi.com\" style=\"height:60px; width:217px;\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.buymeacoffee.com/uppinote\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png\" alt=\"Buy Me A Coffee\" style=\"height:60px; width:217px;\"\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuppinote20%2Fclaude-dashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuppinote20%2Fclaude-dashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuppinote20%2Fclaude-dashboard/lists"}