statusLine.command is not executed or rendered when footer.showCustom=true
- Dominant language
- Shell
- Stars
- 11.2k
- Forks
- 1.9k
- Avg merge
- 14h 16m
- Merged PRs (30d)
- 6
Description
### Describe the bug
With `footer.showCustom=true` and `statusLine.command` set to a valid executable, Copilot CLI 1.0.43 on macOS reads `settings.json` for built-in footer items, but never executes the custom status line command and never renders custom output.
There is no visible error in the TUI.
### Affected version
GitHub Copilot CLI 1.0.43
### Steps to reproduce
1. Put this in `~/.copilot/settings.json`:
```json
{
"statusLine": {
"type": "command",
"command": "/bin/date",
"padding": 1
},
"footer": {
"showCustom": true,
"showBranch": true,
"showAgent": true
}
}
```
2. Start a fresh `copilot` session in a new terminal.
3. Verify that built-in footer settings are applied (for example, `showBranch` affects the footer, which shows `settings.json` is being read).
4. Run `/statusline` and verify that `custom` is enabled.
5. Observe that the custom output never appears in the status line.
### Additional verification
I also replaced `/bin/date` with a trivial local shell script that:
- writes a timestamp to a file
- reads stdin
- prints a short string to stdout
That script also never ran: no file was created and no custom output was rendered.
### Expected behavior
When `footer.showCustom=true`, the configured `statusLine.command` should execute, receive the current session status JSON on stdin, and render its stdout in the custom status line area.
### Actual behavior
Built-in footer/status line settings are applied, but the custom `statusLine.command` appears not to execute at all and nothing is rendered for the custom status line item.
### Environment
- OS: macOS
- Copilot CLI: 1.0.43
Contributor guide
Research direction
Start by reproducing the issue with the shown settings.json and /bin/date command, then inspect the /statusline path and the footer handling for showCustom. Verify whether the configured command is invoked with session status JSON on stdin. Done means the command runs and its stdout appears in the custom status line when footer.showCustom=true.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- shell
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100