AI
Claude Code status line builder
Compose a Claude Code status line by dragging segments into place, then copy a prompt that describes it. Claude Code writes the script itself — the tool never generates one, so there's nothing that can quietly go stale.
Presets
Compose
Drag to place or reorder · click to add or remove
✳ Claude Code
Claude Code v2.1.246
Opus 5 with high effort · Claude Max
~/Developer/Projects/statuslines
❯ try "refactor <filepath>"
▶▶ bypass permissions on · ← for agentsClaude Code draws this row, not your script
Without a mouse: tab to a segment, move it with the arrow keys, remove it with Backspace.
Tray
5 unused · click one to add
Style
Shape
Glyphs
Colour
Prompt for Claude Code
7 segments · 3 rows · 47 lines
Write me a Claude Code status line script and install it.
LAYOUT — 3 rows, printed top to bottom.
Row 1 left: directory, git branch
right: clock (pad to $COLUMNS so it sits flush right)
Row 2 left: model · effort
right: context window (pad to $COLUMNS so it sits flush right)
Row 3 left: 5h rate limit
right: 7d rate limit (pad to $COLUMNS so it sits flush right)
Order within a row is exact — keep the segments in the order listed.
DATA — read from the stdin JSON. Every access must tolerate absence:
workspace.current_dir
git + workspace.git_worktree
no input — needs refreshInterval
model.display_name, effort.level
context_window.used_percentage
rate_limits.five_hour.used_percentage + .resets_at
rate_limits.seven_day.used_percentage + .resets_at
STYLE
Palette: Catppuccin Mocha, 24-bit ANSI (\x1b[38;2;R;G;Bm)
Segments: filled pills — background colour, base-coloured text, one space of
padding
Glyphs: Nerd Font icons, with an ASCII fallback if the font is missing
Bars: 10 cells, green under 70%, yellow 70–89, red at 90+
REQUIREMENTS
- Node, zero dependencies, reads the JSON from stdin.
- rate_limits is Pro/Max only and context_window.current_usage is null
before the first API call — degrade quietly, never crash.
- Read $COLUMNS for width; truncate the longest segment first.
- Give each rate-limit gauge a pace tick. resets_at is a unix
timestamp, so the window opened at resets_at − 18000 (5h) or
resets_at − 604800 (7d); put the tick at elapsed ÷ window
across the ten cells, drawn over that cell's own colour so
fill and empty still read through it. Usage behind the tick
means I am pacing under; ahead of it means I am burning the
window early.
- Work out where my Claude Code settings actually live before
writing anything — a project .claude/settings.json takes
precedence over ~/.claude/settings.json — then install the
script next to the one you pick and point statusLine at it by
absolute path.
- Set "refreshInterval": 60 in that same settings.json so the clock
ticks.The prompt stays in English in every language — that's what Claude Code works from best. Paste it into a session and it writes the script, points settings.json at it and is still there for “now make the bar wider”.
This tool runs entirely in your browser. Nothing you enter is uploaded, stored or logged — close the tab and it's gone.
All tools