Live terminal preview
Watch your statusline render in real time, byte-for-byte identical to the script you will install.
A visual builder for Claude Code statuslines. Drag elements into place, watch a live terminal preview react to your session, and export a clean, readable script for bash, python or node.
\||/ ~/dev/pimp-my-statusline main(!||!) ──────────────────────────────────────────────────────────────────────────/||\ Opus high 96% Session █░░░░ 23% (2h0m) Week ██░░░ 41%
A focused toolkit for Claude Code statuslines: live preview, full color control, reactive pets, readable exports.
Watch your statusline render in real time, byte-for-byte identical to the script you will install.
Compose multi-row layouts by dragging elements between rows, and drag whole rows to reorder them.
Six little companions that change mood as your context, session or weekly usage climbs toward the limit.
Generate a clean, readable, hand-editable script in your shell of choice. Export it and run it wherever you want.
Pick from the full 256-color palette, or color metrics by percentage with editable threshold breakpoints.
Your work is saved locally as you go, and any exported script can be pasted back in to resume editing.
Three steps. No build tooling, no account, no copy-pasting from a wiki.
Drag elements from the library into rows. Mix directory, git, model, context and rate-limit metrics, separators and static text, arranged however you like.
The preview renders the exact bytes your script will print. As context or rate limits climb, threshold colors shift and your pet changes mood — here, the panic state with the reset imminent.
~/dev/pimp-my-statusline hotfix/prod-down──────────────────────────────────────────────────────────────────────────Opus max 96% Session ████░ 92% (8m) Week ████░ 98%
Generate a clean, readable script in bash, python or node. Drop it in ~/.claude/, point your settings at it, and you are done. The script carries a marker so you can re-import and keep editing.
#!/usr/bin/env bash
# Generated by pimp-my-statusline. Hand-editable; the marker line above is
# the source of truth for re-import (edits to the body are not round-tripped).
#
# Output uses real ESC bytes (via $\047...\047 ANSI-C quoting) printed with
# the %s format. We deliberately avoid the escape-interpreting echo and printf
# formats, which would reinterpret backslashes in runtime data (branch names etc.).
command -v jq >/dev/null 2>&1 || { echo "statusline: jq not found (brew install jq / apt-get install jq)"; exit 0; }
input=$(cat)
# Injectable clock (PMSL_NOW) so output is reproducible/testable.
NOW="${PMSL_NOW:-$(date +%s)}"
No. The builder runs entirely in your browser and your work saves locally as you go. The only thing that ever leaves the page is the script you choose to export.
Read it before you install it: the export is a short, commented script that reads the session JSON Claude Code pipes in and prints your statusline. No network calls, no telemetry, nothing else.
The bash export needs jq; the python and node exports use the standard library only. All three run on macOS and Linux.
Save it in ~/.claude/, then point the statusLine command in ~/.claude/settings.json at it. The export modal shows the exact snippet for your language.
Yes. Your config persists in the browser, and every exported script embeds a re-import marker: paste the script back into the builder to resume editing exactly where you left off.
ccstatusline is a terminal UI you run with npx. Pimp My Statusline is a web page: you build with live visual feedback, watch the preview react to a simulated session, adopt an ASCII pet, and export a script you can read and edit by hand.
free · no account · runs entirely in your browser