Cursor CLI custom statusLine replaces native footer and cannot preserve Auto-review state

Where does the bug appear (feature/product)?

Cursor CLI

Describe the Bug

Configuring a custom statusLine command replaces both native Cursor CLI footer rows instead of adding a custom row. The model/context, Auto-review, working-directory, branch, and PR indicators disappear. The status-line payload also omits live approval mode, so a custom script cannot faithfully reconstruct the native footer.

Steps to Reproduce

  1. On Linux, configure statusLine in the active global cli-config.json:

{
“statusLine”: {
“type”: “command”,
“command”: “jq -r ‘(.context_window.total_input_tokens)/(.context_window.context_window_size)’”,
“padding”: 2
}
}

  1. Restart Cursor CLI.
  2. Observe that only the command output is shown; the native footer rows are gone.
  3. Toggle between Allowlist and Auto-review. The command payload contains only autorun, not approvalMode or the computed Auto-review label, so the missing native state cannot be reconstructed reliably.

Expected Behavior

Render custom status-line output in its own row while preserving Cursor’s native footer, matching current Claude Code behavior. Alternatively, support an explicit append/prepend mode. If replacement is intentional, document it prominently and expose live approvalMode/native badge state in the payload.

Operating System

Linux

Version Information

CLI Version: 2026.07.20-8cc9c0b

For AI issues: which model did you use?

N/A - CLI footer rendering issue

For AI issues: add Request ID with privacy disabled

N/A - no model request involved

Additional Information

The shipped CLI implementation routes status-line output to prompt-footer customContent. prompt-footer.tsx renders either customContent or the native rows, and the location row is conditioned on customContent being undefined. No append/prepend composition mode exists. Cursor’s built-in statusline skill says the spec is aligned with Claude Code, but current Claude Code documentation says its custom row does not replace built-in footer badges. Cursor’s public changelog only says output is rendered ‘in the prompt footer’ and does not disclose replacement behavior. The skill also assumes ~/.cursor/cli-config.json, although Linux may use XDG_CONFIG_HOME/cursor/cli-config.json.

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hi @Lukas_Wysocki Thanks for the detailed forum post. All three points check out.

Footer replacement is currently intended, and there’s no append or prepend mode today, but it isn’t documented, and our own guidance pointing at Claude Code’s spec sets the opposite expectation. We reproduced it on macOS, too, so it isn’t Linux-specific. I raised a backlog item to clarify the replacement behavior, including cases where a command produces no output and the footer goes blank.

The approval mode gap is real: the payload only carries autorun, so Allowlist and Auto-review are indistinguishable, and your config file won’t help since in session changes aren’t persisted there.

In the meantime, multiline stdout renders as separate rows, so you can rebuild most of the footer from the payload plus a git branch --show-current call. One tip while testing: edit cli-config.json with no CLI session running, since an active session can overwrite it on exit.