Everything I learned writing and rewriting a Claude Code status line: the full shape of the JSON you get on stdin, the seven bugs that quietly make a status line wrong, and a finished one you can install in a single line.
The bugs are the interesting part. Every one of these was in my own status line, shipped, for weeks. None of them are in the docs.
How it looks schematically:
✻ O5 H ┃ 📁 my-repo 🌿 main ●3 ↑1 ┃ 💰 $0.42 · 4m +1.2k/-340 ┃ 🧠 36% 357k/1.0M ⏱5h 63% ↻1h07m ┃ ☕ 52m break
session place change budget rest