Verified against Claude Code · 2026-08-09
Build a custom Claude Code output style and statusline instead of living with the defaults
A prompt that produces both a custom output-style definition and a statusLine script, tuned to how a specific developer actually wants Claude Code to communicate and what they need visible at a glance in the terminal.
The prompt
Ready to copy — highlighted parts are example details you can swap.
Produce two related but distinct artifacts: a custom Claude Code output style, and a statusLine script for settings.json. Do not blend their concerns — the output style changes how Claude Code phrases its responses; the statusline changes what information is always visible at the bottom of the terminal regardless of what Claude Code is currently saying. HOW RESPONSES SHOULD ACTUALLY BE PHRASED Skip the recap of what was already asked for at the start of a response; lead with the answer or the diff first, and only explain reasoning if asked or if a decision was genuinely ambiguous enough to need one. WHAT MUST BE VISIBLE AT A GLANCE, EVEN MID-TASK current git branch, session cost so far to the nearest cent, and whether there are uncommitted changes in the working directory PART ONE — OUTPUT STYLE Write the output style as a markdown file with frontmatter naming it and describing when it should be used, and a body instructing Claude Code how to phrase and structure its responses under this style — verbosity, whether to explain reasoning inline or only when asked, how much to narrate tool use versus just doing it, and how to handle a response that would otherwise run long. Base this on the preference stated above, not on a generic 'be more concise' instruction that does not actually specify what to cut first when a tradeoff arises. PART TWO — STATUSLINE Write the statusLine command as a small script that reads the JSON payload Claude Code provides on stdin, which includes the current model, session cost so far, and working directory among other fields, and prints one line of plain text with no ANSI color codes assumed unless Yes, this runs inside Windows Terminal with full ANSI color support. confirms the terminal renders them. The line must include, in this priority order if space is limited: current git branch, session cost so far to the nearest cent, and whether there are uncommitted changes in the working directory. If a field the script wants is missing from the payload in some session, such as cost being unavailable early on, the script must degrade gracefully and omit that segment rather than printing an error or a blank placeholder that looks broken. Write the script so it runs correctly under PowerShell on Windows, so the script must run correctly invoked from PowerShell, not assume a POSIX shell is available., not assuming a POSIX shell is available unless that is what was specified. CONSTRAINTS - The output style must not attempt to also surface status information; that is the statusline's job, and blending them means neither one is reliably readable at a glance while the other is doing an unrelated job. - The statusline script must run fast, since it is invoked frequently as the terminal redraws — anything that could block, such as a network call, must not be in this script. - State clearly which file goes where: the output style file's path, and the settings.json fragment enabling the statusline and pointing at the script's path. OUTPUT Both files in full, plus the settings.json fragment, in that order.
Customize
Optional — swap in your own details for the highlighted parts above.
Why this works
Output style and statusline are genuinely separate mechanisms in Claude Code with separate lifecycles — output style governs the content and phrasing of the model's own generated response, re-applied every turn, while the statusline is an externally-invoked script whose stdout is redrawn independently of any particular response, so conflating their jobs in one artifact produces something unreliable at both: a status fact rendered inside a chat response scrolls away the moment the next message starts, while a communication-style rule stuffed into a status script has nowhere to actually take effect, since the script never generates conversational text at all. The statusline script receiving structured JSON on stdin, including model, cost, and working directory among other fields, is a real, documented input contract — treating 'what needs to be visible' as a formatting problem over that payload, rather than something to ask the model to volunteer conversationally, is what makes the information actually persistent and glanceable rather than dependent on the model remembering to mention it in a given reply. Requiring graceful degradation when a field is absent, such as cost being unavailable very early in a session, matters because a statusline script is invoked on effectively every redraw — a script that errors or prints a broken-looking placeholder on a payload shape it did not anticipate does not fail once, it fails every single redraw for the rest of that session, which is a categorically worse failure mode than a single malformed chat response would be. The fast, non-blocking constraint is specific to how often this script runs — a status line invoked on every terminal redraw cannot afford the latency budget a normal tool call can, and a network call inside it would visibly stutter the terminal on every keystroke rather than just delaying one response. Tying the script's shell syntax explicitly to the actual invoking shell rather than assuming a POSIX default matters on Windows specifically, since a script written assuming bash-style conditionals and path separators will fail silently or print garbled output the moment settings.json actually invokes it through PowerShell, and a statusline that only works in the environment it was tested in is not a fix, it is a bug waiting for the next machine it runs on.
Verified against
Claude Code Sonnet 4.6 · 2026-08-09
Changelog
- 2026-08-09 — Initial publish, verified against Claude Code output styles and statusLine (Sonnet 4.6).
Building this for real?
This is a free starting point. If you'd rather have custom software built and running for your business, that's Scult's day job.
EXPLORE CUSTOM SOFTWARE
