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.

Updated Aug 26, 2026

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