{
  "markdown": "# Claude Pace\n\nA lightweight Claude Code status line and rate limit tracker that shows your 5-hour and 7-day quota usage in real time. Pure Bash + jq, single file, zero npm.\n\nIf you are searching for a Claude Code statusline, a Claude Code quota monitor, or a Claude Code usage tracker, claude-pace is built for that narrow job. It shows not only how much quota you have used, but whether your current burn rate is sustainable before the window resets.\n\n![claude-pace statusline demo](.github/claude-pace-demo.gif)\n\n## TL;DR\n\n- Claude Code status line with `5h` and `7d` quota usage, reset countdowns, and pace delta\n- Pace-aware rate limit tracking, `⇡15%` means overspending, `⇣15%` means headroom\n- Pure Bash + jq, single file, no Node.js runtime and no lockfile churn\n- Install as a Claude Code plugin, with `npx`, or as a single script\n\nMost statuslines show \"you used 60%.\" That number means nothing without context. 60% with 30 minutes left? Fine, the window resets soon. 60% with 4 hours left? You are about to hit the wall. claude-pace compares your burn rate to the time remaining and shows the delta.\n\n- **⇣15%** green = you've used 15% less than expected. Headroom. Keep going.\n- **⇡15%** red = you're burning 15% faster than sustainable. Slow down.\n- **15%** / **20%** = used in the 5h and 7d windows. **3h** = resets in 3 hours.\n- Top line: model, effort, project `(branch)`, `3f +24 -7` = git diff stats\n\nClaude Code supports custom status lines through its `statusLine` setting and `/statusline` workflow in the official docs:\n\n- [Customize your status line](https://code.claude.com/docs/en/statusline)\n- [Claude Code settings](https://docs.anthropic.com/en/docs/claude-code/settings)\n\n## Table of Contents\n\n- [Install This Claude Code Statusline](#install-this-claude-code-statusline)\n- [Upgrade](#upgrade)\n- [Claude Code Statusline Comparison](#claude-code-statusline-comparison)\n- [How Claude Pace Tracks Quota](#how-claude-pace-tracks-quota)\n- [Claude Code Statusline FAQ](#claude-code-statusline-faq)\n\n## Install This Claude Code Statusline\n\nRequires `jq`.\n\n**Plugin (recommended):**\n\nInside Claude Code:\n\n```\n/plugin marketplace add Astro-Han/claude-pace\n/plugin install claude-pace\n/reload-plugins\n/claude-pace:setup\n```\n\n**npx:**\n\n```bash\nnpx claude-pace\n```\n\nRestart Claude Code. Done.\n\n**Manual:**\n\n```bash\nmkdir -p ~/.claude\ncurl -fsSL -o ~/.claude/statusline.sh.new \\\n  https://github.com/Astro-Han/claude-pace/releases/latest/download/claude-pace.sh\nmv ~/.claude/statusline.sh.new ~/.claude/statusline.sh\nchmod +x ~/.claude/statusline.sh\n```\n\nThis installs the latest release, not the current state of `main`. To pin an exact\nversion, swap `latest/download` for `download/v0.9.4` (or any other tag).\n\nAdd to `~/.claude/settings.json`:\n\n```json\n{\n  \"statusLine\": {\n    \"type\": \"command\",\n    \"command\": \"~/.claude/statusline.sh\"\n  }\n}\n```\n\nRestart Claude Code. Done.\n\nTo remove: delete the `statusLine` block from `~/.claude/settings.json`.\n\n## Upgrade\n\n- **Plugin:**\n\n  ```\n  /plugin marketplace update claude-pace-marketplace\n  /plugin update claude-pace\n  /reload-plugins\n  /claude-pace:setup\n  ```\n\n- **npx:** `npx claude-pace@latest`\n- **Manual:** Re-run the `curl` command above.\n\nEvery channel installs a tagged release. `/claude-pace:setup` copies the script the\nplugin ships rather than downloading one, so the plugin version you have is the\nversion you run. Nothing installs from `main`.\n\nRelease notifications: Watch this repo → Custom → Releases.\n\n## Claude Code Statusline Comparison\n\n|  | claude-pace | [claude-hud](https://github.com/jarrodwatts/claude-hud) | [CCometixLine](https://github.com/Haleclipse/CCometixLine) | [ccstatusline](https://github.com/sirmalloc/ccstatusline) |\n|---|---|---|---|---|\n| Runtime | `jq` | Node.js 18+ / npm | Compiled (Rust) | Node.js / npm |\n| Codebase | Single Bash file | 1000+ lines + node_modules | Compiled binary | 1000+ lines + node_modules |\n| Rate limit tracking | 5h + 7d usage %, pace delta, reset countdown | Usage % | Usage % (planned) | None (formatting only) |\n| Execution | ~10ms | ~90ms | ~5ms | ~90ms |\n| Memory | ~2 MB | ~57 MB | ~3 MB | ~57 MB |\n\nExecution and memory measured on Apple Silicon, 300 runs, same stdin JSON.\n\nNeed themes, powerline aesthetics, or TUI config? Try [ccstatusline](https://github.com/sirmalloc/ccstatusline). The entire source of claude-pace is [one file](claude-pace.sh). Read it.\n\n## How Claude Pace Tracks Quota\n\nClaude Code polls the statusline every ~300ms:\n\n| Data | Source | Cache |\n|------|--------|-------|\n| Model, context, cost | stdin JSON (single `jq` call) | None needed |\n| Quota (5h, 7d, pace) | stdin `rate_limits` (live, no fallback) | None |\n| Git branch + diff | `git` commands | Private cache dir, 5s TTL |\n\nRequires Claude Code `2.1.80+`, where `rate_limits` is available in statusline stdin. When stdin omits `rate_limits` (older Claude Code, or providers that do not surface the field), claude-pace shows `--` for 5h/7d quota and the session cost if available. No cached or stale quota is ever shown, because a cached account-level snapshot cannot be proven to belong to the current provider/account.\n\nGit cache files live in a private per-user directory (`$XDG_RUNTIME_DIR/claude-pace` or `~/.cache/claude-pace`, mode 700). All cache reads are validated before use. No files are ever written to shared `/tmp`.\n\n## Claude Code Statusline FAQ\n\n**Does it need Node.js?**\nNo. Only `jq` (available via `brew install jq` or your package manager). No npm, no node_modules, no lock files.\n\n**How does pace tracking work?**\nclaude-pace compares your current usage percentage to the fraction of time elapsed in each window (5-hour and 7-day). If you've used 40% of your quota but only 30% of the time has passed, the pace delta shows ⇡10% (red, burning too fast). If you've used 30% with 40% of time elapsed, it shows ⇣10% (green, headroom).\n\n**Does it make network calls?**\nNo. Quota data comes from stdin `rate_limits` on Claude Code `2.1.80+`. If `rate_limits` is absent (older Claude Code, or providers that omit it), claude-pace shows `--` for 5h/7d and the local session cost when present. No stale quota fallback — see [the removal decision](docs/decisions/2026-05-20-quota-cache-removal.md).\n\n**Can I inspect the source?**\nThe entire tool is [one Bash file](claude-pace.sh). Read it before you install it.\n\n## Also by the Author\n\n[**diffpane**](https://github.com/Astro-Han/diffpane) - Real-time TUI diff viewer for AI coding agents. See what Claude Code changes as it happens.\n\n## License\n\nMIT\n\n*Last updated: 2026-07-28 · v0.9.4*\n",
  "bytes": 6579,
  "sha": "8076da48f77094d07bb63aedfe718675f5e7619629c6ed96b228723b4a72b480",
  "repo_slug": "astro-han/claude-lens",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_astro_han_claude_lens_claude_lens_2fb992c1/readme"
}