[BUG] Fullscreen renderer hides slash-command output until the next repaint (2.1.251, macOS)

Status Open
Reported on v2.1.251
Maintainer reply None cached
Activity 0 comments · opened Aug 30, 2026

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:

  1. Enter /btw.
  2. Nothing new appears on screen.
  3. Enter /model.
  4. The next repaint suddenly reveals the previously hidden /btw result (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

  1. On macOS, start Claude Code 2.1.251 normally with the default fullscreen renderer:

``sh
claude
``

  1. Enter /btw and press Return.
  2. Observe that no usage message is rendered.
  3. Enter /model and press Return.
  4. Observe that the missing /btw usage output now appears together with the /model picker.
  5. Exit Claude Code.
  6. Start it with the supported classic-renderer fallback:

``sh
CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 claude
``

  1. Repeat /btw and /model.
  2. 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.

View original on GitHub ↗