6 reactive ASCII pets included

Your statusline, pimped.

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.

~ — statusline
\||/ ~/dev/pimp-my-statusline main
(!||!) ──────────────────────────────────────────────────────────────────────────
/||\ Opus high 96% Session █░░░░ 23% (2h0m) Week ██░░░ 41%
\||/ ~/dev/pimp-my-statusline main (!||!) ────────────────────────────────────────────────────────────────────────── /||\ Opus high 96% Session █░░░░ 23% (2h0m) Week ██░░░ 41%
20
statusline elements
6
reactive ASCII pets
3
export languages
1:1
preview = installed script
Features

Build it visually. Install it anywhere.

A focused toolkit for Claude Code statuslines: live preview, full color control, reactive pets, readable exports.

Live terminal preview

Watch your statusline render in real time, byte-for-byte identical to the script you will install.

Drag & drop rows

Compose multi-row layouts by dragging elements between rows, and drag whole rows to reorder them.

Reactive ASCII pets

Six little companions that change mood as your context, session or weekly usage climbs toward the limit.

Export bash · python · node

Generate a clean, readable, hand-editable script in your shell of choice. Export it and run it wherever you want.

xterm-256 + threshold colors

Pick from the full 256-color palette, or color metrics by percentage with editable threshold breakpoints.

Re-import & autosave

Your work is saved locally as you go, and any exported script can be pasted back in to resume editing.

How it works

From blank canvas to installed script

Three steps. No build tooling, no account, no copy-pasting from a wiki.

1

Compose your layout

Drag elements from the library into rows. Mix directory, git, model, context and rate-limit metrics, separators and static text, arranged however you like.

~/dev/projectmain
────────────
Opushigh34%Session ███░░ 23%Week ██░░░ 41%
2

Watch it react

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.

  • Real ANSI rendering, not a mock-up
  • Threshold coloring by percentage
  • Pets react to the metric you choose
~ — panic
~/dev/pimp-my-statusline hotfix/prod-down
──────────────────────────────────────────────────────────────────────────
Opus max 96% Session ████░ 92% (8m) Week ████░ 98%
~/dev/pimp-my-statusline hotfix/prod-down ────────────────────────────────────────────────────────────────────────── Opus max 96% Session ████░ 92% (8m) Week ████░ 98%
3

Export & install

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.

statusline.sh
#!/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)}"
FAQ

Common questions

Do I need an account or an install?

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.

Can I trust the generated script?

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.

What does the script need to run?

The bash export needs jq; the python and node exports use the standard library only. All three run on macOS and Linux.

How do I install the exported script?

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.

Can I change my statusline later?

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.

How is this different from ccstatusline?

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.

Ready to pimp your statusline?

free · no account · runs entirely in your browser