Show HN: Status lines in the Claude desktop app Developer NathanAB released statusline-anywhere, a free MIT-licensed Claude Code plugin that renders custom status lines inside the Claude Desktop app, which does not natively draw them (issue #41456). The plugin requires Claude Code 2.1.286 or later, runs the user's existing statusLine command with the same JSON Claude Code sends on stdin, refreshes at session start, after each reply, and every 60 seconds (or a user-set refreshInterval), and is not yet available on Windows. Your Claude Code status line, in the desktop app too. Catppuccin Frappé https://statuslin.es/c/catppuccin-frapp-88ba1499 from statuslin.es, running in Claude Desktop with statusline-anywhere. Claude Desktop doesn't draw custom status lines 41456 https://github.com/anthropics/claude-code/issues/41456 . This plugin does. It runs the statusLine command you already have and shows the output above the prompt, in color. 1. Paste this into a terminal: claude plugin marketplace add NathanAB/statusline-anywhere && claude plugin install statusline-anywhere@statusline-anywhere 2. Open a new Code session in Claude Desktop. Your status line is above the prompt. That's it. You need Claude Code 2.1.286 or later and a status line. No status line yet? Pick one from statuslin.es https://statuslin.es . Install from inside Claude Code instead /plugin marketplace add NathanAB/statusline-anywhere /plugin install statusline-anywhere@statusline-anywhere /reload-plugins To remove it: claude plugin uninstall statusline-anywhere@statusline-anywhere - It runs your statusLine command with the same kind of JSON Claude Code sends, so the script you already use works as it is. - It only draws outside the terminal. In a terminal, Claude Code already shows your status line, so the plugin stays out of the way. - It refreshes when a session starts, after each reply, and every 60 seconds, or every refreshInterval seconds if you set one. Claude Code sends status line scripts a JSON object on stdin. statusline-anywhere builds the same object from what a plugin can see: - session id - transcript path - cwd - model id , display name - workspace current dir , project dir - version - cost total cost usd , total duration ms - context window total input tokens , context window size , used percentage , remaining percentage - exceeds 200k tokens - rate limits five hour , seven day , spend limit A plugin can't see everything Claude Code can. These fields are missing: lines changed, PR, vim mode, prompt cache, effort and output style. If your status line shows one of them, that part stays blank in Desktop. Claude Code also leaves out fields it has no value for, so scripts that follow its docs already handle a missing field. It runs your status line command as you, which is what Claude Code does with it in a terminal. Beyond that, it only reads your settings and session info, and draws. The plugin itself makes no network requests and writes no files. claude plugin validate lists its full footprint: $.settings.read , $.session. reads, $.env.get for HOME and CLAUDE CONFIG DIR , $.process.run , $.clock , and drawing. - Not on Windows yet. It runs your command through sh . - Links aren't clickable. Links in your status line show as plain text. - Another plugin can take the spot. If a second plugin also draws above the prompt, only one of them shows. statusline-anywhere is a Claude Code mod https://code.claude.com/docs/en/plugins/mods/overview . Use Claude Code 2.1.286 or later. claude plugin validate . claude plugin test To try a change in a session, run claude --plugin-dir . . To type-check, load the plugin once with --plugin-dir so Claude Code writes its types to .claude-plugin/types/ . Then run npx tsc -p .claude-plugin/types/tsconfig.json . MIT. Made by statuslin.es https://statuslin.es , the gallery of Claude Code status lines.