Languages: English · Français · 日本語
A curated catalog of statuslines for Claude Code, OpenCode, Gemini CLI, and Codex CLI — plus an in-repo reference flavor (
pup/) wired to Datadog.
One pattern, four agent CLIs, dozens of statuslines.
- Quick start
- Catalog
- Catalog CLI
- In-repo flavors
- Support matrix
- Layout
- Contributing
- Related
- Roadmap
- Changelog
- License
Requires Node ≥ 20 and jq.
# browse the catalog
node bin/statuslines.js list
node bin/statuslines.js list --cli=claude --redistributable
node bin/statuslines.js show ccstatusline
# install the in-repo pup flavor
./install/install-pup.sh --all --seed-configCodex CLI has no native command-statusline yet — start the HUD under tmux:
tmux new-session -d -s codex 'node ./pup/codex/hud.js watch'Indexed by host CLI. Entries with OSI-permissive licenses ship a
runnable install/configure recipe via bin/statuslines.js configure;
entries marked (ref) are listed for reference only — install per
upstream.
The exhaustive table (status, install type, language) lives in
catalog/README.md, generated from the JSON
entries — that file is the source of truth. The block below is
auto-rendered by node bin/statuslines.js render-top-readme.
| Preview | Name | License | Description |
|---|---|---|---|
![]() |
CCometixLine | MIT | Fast Rust-based Claude Code statusline with an interactive TUI configurator, git integration, and usage tracking. |
| ccstatusline | MIT | Customizable Claude Code statusline with an interactive TUI configurator, powerline rendering, themes, and widgets for tokens, git, session timers, and clickable links. | |
![]() |
ccusage | MIT | Token-usage and cost analyzer that parses local Claude Code and Codex session JSONL files; not a statusline itself, but a useful data source to compose into one. |
![]() |
claude-hud | MIT | Claude Code plugin/statusline that surfaces context usage, active tools, running subagents, todo progress, and rate-limit windows using the native statusline API. |
![]() |
ClaudeCodeStatusLine (Daniel Graczer) | MIT (ref) |
Bash + PowerShell statusline for Claude Code showing model, tokens, rate limits, and git status. |
![]() |
claude-statusline (dwillitzer) | MIT (ref) |
Bash statusline for Claude Code with optional Node.js + tiktoken token counting and multi-provider model coloring (Claude, OpenAI, Gemini, Grok). |
![]() |
claude-statusline (Felipe Elias) | MIT | Go binary statusline for Claude Code with module-based config, OSC 8 hyperlinks, and theme presets (catppuccin, tokyo-night, gruvbox-rainbow, and others). |
![]() |
claudeline (Fredrik Averpil) | MIT | Minimalistic Go statusline for Claude Code distributed as a Claude Code plugin; the plugin's /claudeline:setup slash command downloads the binary and patches settings.json. |
![]() |
claudia-statusline | MIT | Rust statusline for Claude Code with persistent stats tracking, prebuilt binaries for Linux/macOS/Windows, and 11 themes; referenced by the official Claude Code docs. |
| claudeline (Luca Silverentand) | MIT | Claude Code statusline shipped as the npm package claudeline with built-in themes; can self-install into settings.json via its --install flag. |
|
![]() |
claude-code-status-line (ndave92) | MIT | Rust statusline for Claude Code with workspace info, git status, model name, context usage, worktree hints, quota timers, and optional API costs. |
| claude-powerline | MIT | Vim-style powerline statusline for Claude Code with real-time usage tracking, git integration, and theme presets. | |
![]() |
claude-code-statusline (Sam Yamashita) | MIT | Rust statusline for Claude Code with starship-like configuration and module-based composition. |
| @this-dot/claude-code-context-status-line | MIT | Claude Code statusline that parses session JSONL transcripts to compute input + cache-creation + cache-read tokens for an accurate context-window display. | |
![]() |
claude-code-statusline (AsafSaar) | MIT | Segment-based, fully configurable Claude Code statusline composed from toggleable parts (cwd, git branch, dirty, ahead/behind, model, node, context, cost, duration, lines, last commit, stash, effort, rate limits, ts errors) with per-segment icons and color thresholds. |
![]() |
cc-pulseline | MIT | High-performance multi-line Claude Code statusline written in Rust with deep observability — incremental seek-based JSONL parsing, live context, cost burn rate, active tools with targets, running agents, todo progress, and per-session tracking. |
| claude-code-statusline (RaiconY) | MIT | Feature-rich, dependency-free single-file Node.js statusline for Claude Code showing model, active task, git state, context usage, prompt-cache state with TTL, and 5h + 7d Anthropic rate-limit countdowns. | |
![]() |
simple-claude-code-statusline | MIT | Minimal, hackable two-line Claude Code statusline written in Go: row one shows model, directory, git branch with file counts and worktree, plus session lines changed; row two shows context bar, 5h/7d rate limits, cost, and duration. |
![]() |
prism-hud | MIT | Fork of claude-hud that swaps the progress bars for a per-position gradient palette — each dot has a fixed color from green through yellow to red, so fill level reads at a glance across context and rate-limit windows. |
![]() |
tokscale | MIT | Cross-CLI token-usage tracker that reads local session data from many AI coding tools (Claude Code, OpenCode, Codex, Gemini, Cursor, Amp, Kimi, and more) with LiteLLM-fed pricing. |
| Preview | Name | License | Description |
|---|---|---|---|
![]() |
opencode-token-monitor | MIT | OpenCode plugin (not a statusline) that registers token_stats / token_history / token_export tools and emits toast notifications with input, output, reasoning, and cache token breakdowns. |
![]() |
opencode-subagent-statusline | MIT | OpenCode TUI sidebar plugin (not a statusLine.command line) that shows subagent activity, elapsed time, and token/context usage. |
![]() |
opencode-status-line | MIT | Lightweight, fast status line for OpenCode CLI. |
![]() |
opencode-quota | MIT | OpenCode quota and token-usage display with zero context-window pollution; supports providers including OpenCode Go, Cursor, GitHub Copilot, and others. |
![]() |
opencode-tokenscope | MIT | OpenCode plugin (not a statusline) providing token usage and cost analysis for sessions with detailed breakdowns. |
![]() |
tokscale | MIT | Cross-CLI token-usage tracker that reads local session data from many AI coding tools (Claude Code, OpenCode, Codex, Gemini, Cursor, Amp, Kimi, and more) with LiteLLM-fed pricing. |
| Preview | Name | License | Description |
|---|---|---|---|
![]() |
gemini-statusline | Unspecified (ref) |
Two-line shell-prompt helper for Gemini CLI showing model, workspace context, git branch, GitHub issue counts, and inbox depth — Gemini CLI has no native statusLine hook so this runs from the user's shell prompt. |
![]() |
tokscale | MIT | Cross-CLI token-usage tracker that reads local session data from many AI coding tools (Claude Code, OpenCode, Codex, Gemini, Cursor, Amp, Kimi, and more) with LiteLLM-fed pricing. |
| Preview | Name | License | Description |
|---|---|---|---|
![]() |
codex-hud (Capedbitmap) | PolyForm-Noncommercial-1.0.0 (ref) |
macOS menu-bar app that ingests local Codex session data and recommends the next account to use based on weekly reset timing and remaining capacity. |
![]() |
ccusage | MIT | Token-usage and cost analyzer that parses local Claude Code and Codex session JSONL files; not a statusline itself, but a useful data source to compose into one. |
![]() |
codex-hud (fwyc0573) | MIT | Real-time tmux statusline HUD for OpenAI Codex CLI with session/context usage, git status, and tool-activity monitoring; includes --kill / --list / --attach / --self-check subcommands. |
![]() |
tokscale | MIT | Cross-CLI token-usage tracker that reads local session data from many AI coding tools (Claude Code, OpenCode, Codex, Gemini, Cursor, Amp, Kimi, and more) with LiteLLM-fed pricing. |
node bin/statuslines.js list # all entries
node bin/statuslines.js list --cli=claude --redistributable
node bin/statuslines.js show ccstatusline # full metadata
node bin/statuslines.js configure ccstatusline --cli=claude --dry-run
node bin/statuslines.js configure ccstatusline --cli=claude
node bin/statuslines.js doctor # validate every entry
node bin/statuslines.js render-readme # refresh catalog/README.md
node bin/statuslines.js render-top-readme # refresh this fileconfigure skips entries whose license isn't redistributable; those
remain listed for reference only.
One reference statusline lives alongside the catalog: pup/, which
surfaces Datadog event health into the bar.
Surfaces recent events from
datadog-labs/pup (last 5 min by
default), grouped by alert_type.
The pup statuslines never call pup from the render path. They read a
TTL-gated cache:
- Render reads
${TMPDIR}/statuslines-pup-events.json. - If the cache is fresher than
ttl_seconds(default 60s), it's used as-is. - If stale, the render acquires a lockfile (
O_EXCL); if another render holds the lock, it waits ≤250ms, then falls back to the stale cache rather than queueing more API calls. - The lock holder shells out to
pup events list --duration 5m --output jsononce, atomically writes the result, releases the lock. - Errors (auth, rate-limit, ENOENT) are written into the cache and
surfaced in the bar (
pup:auth?,pup:rate-limited,pup:not installed) — no retry storms. - Every fetch is logged to
${TMPDIR}/statuslines-pup.log.
Cache age is shown in the bar (e.g. pup:✓3 ⚠1 ✗0 (45s)); past 5min
it's marked (stale) and dimmed.
~/.config/statuslines/pup.json (or STATUSLINES_PUP_* env vars):
| key | default | meaning |
|---|---|---|
ttl_seconds |
60 |
min seconds between pup calls |
duration |
"5m" |
window passed to pup events list --duration |
tags |
null |
passed as --tags |
priority |
null |
normal / low |
alert_type |
null |
error / warning / info / success / user_update |
sources |
null |
passed as --sources |
max_events |
50 |
passed as --limit |
pup_bin |
"pup" |
override binary path |
A starter file lives at examples/pup.config.json. Seed it with
./install/install-pup.sh --seed-config.
brew tap datadog-labs/pack && brew install datadog-labs/pack/pup
pup auth login
./install/install-pup.sh --all --seed-config
node ./pup/cli.js fetch # warm cache
node ./pup/cli.js show # preview segment
tmux new-session -d -s codex 'node ./pup/codex/hud.js watch'| CLI | Custom statusline | After-tool hook | Approach |
|---|---|---|---|
| Claude Code | yes (statusLine.command) |
yes (PostToolUse) |
pup/claude/statusline.js + context-monitor.js |
| OpenCode | yes (statusLine.command) |
yes (plugin tool.execute.after) |
pup/opencode/statusline.js + context-monitor.js |
| Gemini CLI | no (#8191) | yes (AfterTool) |
not shipped in-repo (see catalog for third-party options) |
| Codex CLI | only built-in items (#14043, #17827) | yes (~/.codex/hooks/) |
external HUD daemon — pup/codex/hud.js |
lib/ shared helpers (bar, colors, git, bridge file, stdin guard)
catalog/ third-party entries — one JSON per slug, per CLI
claude/ Claude Code targets
opencode/ OpenCode targets
gemini/ Gemini CLI targets
codex/ Codex CLI targets
multi/ entries that target more than one CLI
pup/ Datadog observability flavor
examples/ paste-in config snippets per CLI
install/ installer scripts
bin/ catalog CLI (list/show/configure/doctor/render-{readme,top-readme})
To add an entry to the catalog:
- Verify the upstream license at the repo (look at
LICENSE, not the README badge). If the repo has no LICENSE file, setredistributable: falseand treat as listed-for-reference. - Confirm the install path actually works (npm package exists, brew formula resolves, etc.). Independent verification beats trusting a README's claim.
- Write a one-sentence description in your own words — don't paste from upstream.
- Drop the JSON at
catalog/<cli>/<slug>.json(orcatalog/multi/for multi-CLI entries). - Run
node bin/statuslines.js doctorto validate, thennode bin/statuslines.js render-readmeandnode bin/statuslines.js render-top-readmeto refresh the generated tables. - Run the test suite —
node --test tests/statuslines.test.js(orsh tests/run.sh) — and confirm it passes. The CI job runs these automatically and blocks merging on failure. - Open a PR.
The full schema and field-by-field rules are in
catalog/SCHEMA.md. Copyleft (AGPL, GPL) and
source-available (PolyForm-NC, BSL) entries are welcome — they're
listed with the (ref) tag and skipped by configure.
Curated lists worth knowing about — link only, no copying:
- hesreallyhim/awesome-claude-code — skills, hooks, slash-commands, agents, and statuslines for Claude Code.
- awesome-opencode/awesome-opencode — plugins, themes, agents, and projects for OpenCode.
Shipped:
- Context-health pattern across all four supported CLIs.
- Example configs and installer scripts.
pup/Datadog flavor with TTL-gated cache and lockfile-coordinated fetches.- Catalog of third-party statuslines with
list/show/configure/doctor/auditcommands. - Schema-level supply-chain hardening: pinned versions and integrity hashes,
refusal of
curl|sh/eval(/@latestpatterns,--ignore-scriptsby default onnpx/npm-globalrecipes. - OpenBSD-style quarantine: flagged entries vanish from
list/show/configureand the rendered READMEs; the forensic record lives incatalog/QUARANTINE.md. - Daily liveness probe (repo + npm registry version match + license drift) and weekly Socket.dev malicious-package feed.
- Datadog SAST / SCA / SAIST workflows, secret-gated so the repo is safe to fork before keys land.
- Per-entry capability declarations (
network,child_process,filesystem_write,env_read) with sandbox verification under firejail + strace. - SLSA build-provenance probe and weekly transitive-dependency lockfile re-verification on every redistributable npm-backed entry.
Next:
- Tarball diff bot on every version-bump PR.
- Hybrid Ed25519 + SLH-DSA signing on catalog entries.
- Richer
pup/segments (monitors, incidents) behind opt-in flags.
|
| aifuel | MIT | Go-based multi-provider AI usage monitor (Claude, Codex, Gemini, Copilot, Antigravity) that surfaces rate limits, cost, and peak-hour analytics across a waybar module, Chrome extension, Bubble Tea TUI, Admin API dashboard, and a compact Claude Code statusline. |
|
| statusmon | MIT (quarantined) | Pokemon companion statusline for Claude Code that displays a sprite which gains experience and levels up as you complete coding sessions; bundled Pokémon sprite/font assets are likely Nintendo IP — listed for reference, not redistributed. |
|
| horologium | MIT | Unified Rust binary that combines a sub-millisecond Claude Code statusline with ccusage-style JSONL log analytics; one tool renders tokens, cost, git, and 5h/7d rate limits while also producing daily/session/block usage reports. |
|
| claude-subagent-statusline | MIT | Claude Code statusline focused on real-time sub-agent delegation tracking — surfaces running, completed, and failed Task counters alongside model, cost, context window, elapsed time, and 5h/7d rate limits. |
|
| claude-code-usage-bar | MIT | Python statusline (cs) for Claude Code that renders token usage, cost, and rate-limit windows across three styles and nine themes, backed by a background daemon and configurable via slash commands. |
|
| claude-code-statusline (haunchen) | MIT | Cross-platform Claude Code statusline that surfaces Anthropic peak/off-peak rate-limit windows alongside context usage, session cost, and 5h/7d rate limits, so you can plan sessions around faster-burning peak hours. |
|
| cc-tempo | MIT | Claude Code statusline that measures real wall-clock work time parsed from transcripts, surfaces SubAgent parallel-speedup ratios, and tracks code-churn velocity via a sparkline rather than tokens or cost. |
|
| aifuel | MIT | Go-based multi-provider AI usage monitor (Claude, Codex, Gemini, Copilot, Antigravity) that surfaces rate limits, cost, and peak-hour analytics across a waybar module, Chrome extension, Bubble Tea TUI, Admin API dashboard, and a compact Claude Code statusline. |
|
| aifuel | MIT | Go-based multi-provider AI usage monitor (Claude, Codex, Gemini, Copilot, Antigravity) that surfaces rate limits, cost, and peak-hour analytics across a waybar module, Chrome extension, Bubble Tea TUI, Admin API dashboard, and a compact Claude Code statusline. |
MIT






















