[FEATURE] Multi-position statusLine (top + bottom) for power users hitting the single-line width ceiling

Resolved 💬 3 comments Opened Apr 17, 2026 by mjmirza Closed May 25, 2026

Preflight Checklist

  • [x] I have searched existing requests and this specific feature has not been requested
  • [x] This is a single feature request

Related but different

  • #40780 asks for a sticky header (pinning the existing banner). This request is about a second programmable statusLine position.
  • #49861 asks for a plan label in the status bar. This is one use case that a second line would solve.
  • #32490 asks for more data IN the existing statusLine JSON. Complementary, not overlapping.

Problem Statement (with numbers)

I run 67 registered hooks, produce 11 MUST-priority statusline segments, and my rendered line hits 155 of 160 visible characters at a typical terminal width. At 120 columns, HIGH-priority segments (lines changed, burn rate, cache efficiency) are already being dropped by my priority-based assembly system because MUST segments consume all available space.

This is a scaling ceiling. Every new field Anthropic adds to the statusLine JSON input (rate limits, quota, model switching, agent orchestration metadata) means an existing segment gets pushed off the single line. Power users cannot show both session-health data (model, context bar, cost, rate limits) AND project-state data (git, files changed, disk, version) simultaneously at normal terminal widths.

The single-line constraint forces a false tradeoff between seeing your spend and seeing your code state. Both matter at all times.

Quantified waste from the current constraint

In a typical 2-hour session, a power user checks context (where am I, how deep is this session, what is my spend, is the machine healthy) roughly 50+ times via mental recall, /status, or git status because the statusline dropped that data. At 3-5 seconds per check, that is 2.5 to 4 minutes of pure orientation waste per session. A second statusline position eliminates every one of those checks.

Proposed Solution

Add a second statusLine configuration slot that renders at the top of the terminal (below the initial banner, above the conversation).

// settings.json
{
  "statusLine": {
    "command": "bash ~/.claude/scripts/statusline.sh",
    "refreshInterval": 10
  },
  "statusLineTop": {
    "command": "bash ~/.claude/scripts/statusline-top.sh",
    "refreshInterval": 30
  }
}

Alternatively, support multi-line output from the existing statusLine command. If the script outputs two lines instead of one, render both (bottom two lines of the terminal).

{
  "statusLine": {
    "command": "bash ~/.claude/scripts/statusline.sh",
    "refreshInterval": 10,
    "lines": 2  // allow 1 or 2
  }
}

Why this matters for Anthropic (not just power users)

  1. Width ceiling does not scale. As Claude Code ships more statusLine JSON fields (you already added rate_limits, context_window, cost, git, workspace, session_id), the single line forces users to choose which data to show. A second position means every new field has a home without displacing existing ones.
  1. Power users are your distribution. The users who max out the statusline are the same users who write hooks, build skills, file detailed issues, and recommend Claude Code to their teams. Losing them on ergonomics means losing your best advocates.
  1. Information architecture is wrong at one line. Session-health data (model, context, cost, rate limits) and project-state data (git branch, files changed, disk, version) serve different cognitive purposes. Mixing them in one line creates visual noise. Two positions create two clean zones with distinct scan patterns.
  1. The alternative is worse. Without a second line, power users resort to cramming abbreviated data into one line (e.g., "DAY $93 WK $485 MO $2730 ALL $3355" compressed to 40 chars), making each segment harder to read. Or they run separate terminal panes with watch commands, fragmenting their workspace.

Information architecture proposal

Bottom line (session-scoped, changes every turn)
Model, context bar, NOW cost, burn rate, rate limits (5h + 7d), lines changed, clock

Top line (project-scoped, changes every few minutes)
Folder name, git branch + dirty, git remote, CC version, DAY/WK/MO/ALL cost, disk free, Node version

Alternative Solutions

  • Wider single line (requires users to resize terminals, not a real fix)
  • Dashboard TUI mode (too heavy, breaks the inline workflow)
  • /status command (requires active invocation, not passive awareness)

Priority

Medium. This is a quality-of-life multiplier for power users who already push Claude Code to its limits. Not blocking, but the ceiling is real and will get tighter as more statusLine fields ship.

Feature Category

Configuration and settings, Terminal UI

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗