statusline JSON should include terminal dimensions (columns/rows)

Resolved 💬 4 comments Opened Mar 31, 2026 by seanmartinsmith Closed Apr 1, 2026

the statusline command runs as a subprocess, so it has no access to the real terminal dimensions. tput cols, [Console]::WindowWidth, and mode con all return defaults (80 or 120) rather than the actual terminal size.

this makes it impossible to build responsive statuslines that shed optional segments when the terminal is narrow. the parent cc process has access to the real dimensions - passing them in the statusline JSON would solve this cleanly.

request

add terminal.columns and terminal.rows (or similar) to the JSON piped to the statusline command.

current workaround

none that work reliably. hardcoding a threshold is the only option, which breaks when users resize their terminal.

context

the statusline JSON already includes model, context window, rate limits, workspace, cost, session info, etc. terminal dimensions would be a small addition that enables responsive layouts.

View original on GitHub ↗

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