{"slug": "show-hn-status-lines-in-the-claude-desktop-app", "title": "Show HN: Status lines in the Claude desktop app", "summary": "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.", "body_md": "Your Claude Code status line, in the desktop app too.\n\n[Catppuccin Frappé](https://statuslin.es/c/catppuccin-frapp-88ba1499) from statuslin.es, running\nin Claude Desktop with statusline-anywhere.\n\nClaude Desktop doesn't draw custom status lines\n([#41456](https://github.com/anthropics/claude-code/issues/41456)). This plugin does. It runs the\n`statusLine` command you already have and shows the output above the prompt, in color.\n\n1. \nPaste this into a terminal: \n\n```\nclaude plugin marketplace add NathanAB/statusline-anywhere && claude plugin install statusline-anywhere@statusline-anywhere\n```\n\n2. \nOpen a new Code session in Claude Desktop. Your status line is above the prompt.\n\nThat's it. You need Claude Code 2.1.286 or later and a status line. No status line yet? Pick one\nfrom [statuslin.es](https://statuslin.es).\n\n## Install from inside Claude Code instead\n\n```\n/plugin marketplace add NathanAB/statusline-anywhere\n/plugin install statusline-anywhere@statusline-anywhere\n/reload-plugins\n```\n\nTo remove it: `claude plugin uninstall statusline-anywhere@statusline-anywhere`\n\n- It runs your `statusLine` command with the same kind of JSON Claude Code sends, so the script you\nalready use works as it is.\n- It only draws outside the terminal. In a terminal, Claude Code already shows your status line, so the plugin stays out of the way.\n- It refreshes when a session starts, after each reply, and every 60 seconds, or every\n`refreshInterval` seconds if you set one.\n\nClaude Code sends status line scripts a JSON object on stdin. statusline-anywhere builds the same object from what a plugin can see:\n\n- `session_id`\n- `transcript_path`\n- `cwd`\n- `model` (`id` ,`display_name` )\n- `workspace` (`current_dir` ,`project_dir` )\n- `version`\n- `cost` (`total_cost_usd` ,`total_duration_ms` )\n- `context_window` (`total_input_tokens` ,`context_window_size` ,`used_percentage` ,`remaining_percentage` )\n- `exceeds_200k_tokens`\n- `rate_limits` (`five_hour` ,`seven_day` ,`spend_limit` )\n\nA 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.\n\nIt 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.\n\n`claude plugin validate` lists its full footprint: `$.settings.read`, `$.session.*` reads,\n`$.env.get` for `HOME` and `CLAUDE_CONFIG_DIR`, `$.process.run`, `$.clock`, and drawing.\n\n- **Not on Windows yet.** It runs your command through`sh` .\n- **Links aren't clickable.** Links in your status line show as plain text.\n- **Another plugin can take the spot.** If a second plugin also draws above the prompt, only one of\nthem shows.\n\nstatusline-anywhere is a [Claude Code mod](https://code.claude.com/docs/en/plugins/mods/overview).\nUse Claude Code 2.1.286 or later.\n\n```\nclaude plugin validate .\nclaude plugin test\n```\n\nTo try a change in a session, run `claude --plugin-dir .`.\n\nTo type-check, load the plugin once with `--plugin-dir` so Claude Code writes its types to\n`.claude-plugin/types/`. Then run `npx tsc -p .claude-plugin/types/tsconfig.json`.\n\nMIT. Made by [statuslin.es](https://statuslin.es), the gallery of Claude Code status lines.", "url": "https://wpnews.pro/news/show-hn-status-lines-in-the-claude-desktop-app", "canonical_source": "https://github.com/NathanAB/statusline-anywhere", "published_at": "2026-10-02 15:28:22+00:00", "updated_at": "2026-10-02 15:37:04.313462+00:00", "lang": "en", "topics": ["ai-tools", "developer-tools", "ai-products"], "entities": ["Claude Desktop", "Claude Code", "statusline-anywhere", "NathanAB", "statuslin.es", "Anthropic"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/show-hn-status-lines-in-the-claude-desktop-app", "markdown": "https://wpnews.pro/news/show-hn-status-lines-in-the-claude-desktop-app.md", "text": "https://wpnews.pro/news/show-hn-status-lines-in-the-claude-desktop-app.txt", "jsonld": "https://wpnews.pro/news/show-hn-status-lines-in-the-claude-desktop-app.jsonld"}}