[BUG] Fullscreen renderer hides slash-command output until the next repaint (2.1.251, macOS)
Preflight Checklist
- [x] I have searched existing open and closed issues and did not find this exact failure mode
- [x] This is a single bug report
- [x] I am using the latest published Claude Code version (
2.1.251)
What's Wrong?
In the default fullscreen/alternate-screen renderer, built-in slash commands execute but their result is sometimes not painted. The command therefore looks completely broken even though it has already completed internally.
This is deterministic with /btw in the affected session:
- Enter
/btw. - Nothing new appears on screen.
- Enter
/model. - The next repaint suddenly reveals the previously hidden
/btwresult (Usage: /btw <your question>) and opens the model picker.
The same behavior occurs in both Terminal.app and Ghostty 1.3.1 on macOS, so it is not isolated to one terminal emulator.
No model/API request is involved; these are local Claude Code slash commands. Debug logging reports no corresponding error.
What Should Happen?
Each slash command should paint its result immediately. /btw should immediately display its usage message, and /model should immediately display the model picker without requiring another input or terminal repaint.
Error Messages/Logs
No error is emitted. The command result is silently withheld from the terminal until a later repaint.
Steps to Reproduce
- On macOS, start Claude Code 2.1.251 normally with the default fullscreen renderer:
``sh``
claude
- Enter
/btwand press Return. - Observe that no usage message is rendered.
- Enter
/modeland press Return. - Observe that the missing
/btwusage output now appears together with the/modelpicker. - Exit Claude Code.
- Start it with the supported classic-renderer fallback:
``sh``
CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 claude
- Repeat
/btwand/model. - Both commands now render immediately.
This A/B test isolates the problem to the fullscreen/alternate-screen rendering path.
Claude Model
Other — the selected model is irrelevant because both commands execute locally without a model turn.
Is this a regression?
I don't know. It was noticed after updating, but I do not have a trustworthy last-known-good version.
Last Working Version
Unknown
Claude Code Version
2.1.251 (Claude Code)
Platform
Other — local slash-command UI; no API call is involved in the reproduction.
Operating System
macOS 26.7 (25G224)
Terminal/Shell
Reproduced independently in Terminal.app and Ghostty 1.3.1, using zsh.
Additional Information
The workaround is reliable:
CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 claude
With that environment variable set, the exact same commands render immediately. Without it, the command result remains invisible until a subsequent repaint. This makes commands such as /model appear nonfunctional and can significantly disrupt interactive workflows.