[BUG] VSCode extension: viewport auto-scrolls to bottom on AskUserQuestion / permission prompt, interrupting scrollback
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Environment
- Claude Code: VSCode native extension
- OS: macOS (Darwin 25.4.0)
- Model: Opus 4.7 (1M)
- Setting tested:
claude-code.useTerminal: true— does NOT mitigate
Repro
- Assistant emits a long response.
- User scrolls up in the panel to re-read earlier content.
- Assistant finishes streaming and emits an interactive prompt (AskUserQuestion or tool permission request).
- Viewport jumps to the bottom of the conversation, taking the user away from their reading position.
Expected
Viewport stays at the user's current scroll position. New prompts surface via an unread/"jump to bottom" affordance (Slack/Discord style) instead of forcing scroll.
Notes
useTerminal: truedoes not help because interactive prompts render in the extension UI layer, not inside the integrated terminal.- No setting under
claude-code.*exposes scroll behavior as of today.
Asks
- Expose a setting like
claude-code.followOutput: false(or equivalent) to opt out of auto-scroll. - Or: only auto-scroll when the user was already pinned to the bottom before the new message.
What Should Happen?
Viewport stays at the user's current scroll position. New prompts surface via an unread/"jump to bottom" affordance (Slack/Discord style) instead of forcing scroll.
Error Messages/Logs
Steps to Reproduce
Environment
- Claude Code: VSCode native extension
- OS: macOS (Darwin 25.4.0)
- Model: Opus 4.7 (1M)
- Setting tested:
claude-code.useTerminal: true— does NOT mitigate
Repro
- Assistant emits a long response.
- User scrolls up in the panel to re-read earlier content.
- Assistant finishes streaming and emits an interactive prompt (AskUserQuestion or tool permission request).
- Viewport jumps to the bottom of the conversation, taking the user away from their reading position.
Expected
Viewport stays at the user's current scroll position. New prompts surface via an unread/"jump to bottom" affordance (Slack/Discord style) instead of forcing scroll.
Notes
useTerminal: truedoes not help because interactive prompts render in the extension UI layer, not inside the integrated terminal.- No setting under
claude-code.*exposes scroll behavior as of today.
Asks
- Expose a setting like
claude-code.followOutput: false(or equivalent) to opt out of auto-scroll. - Or: only auto-scroll when the user was already pinned to the bottom before the new message.
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
2.1.126
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
Environment
- Claude Code: VSCode native extension
- OS: macOS (Darwin 25.4.0)
- Model: Opus 4.7 (1M)
- Setting tested:
claude-code.useTerminal: true— does NOT mitigate
Repro
- Assistant emits a long response.
- User scrolls up in the panel to re-read earlier content.
- Assistant finishes streaming and emits an interactive prompt (AskUserQuestion or tool permission request).
- Viewport jumps to the bottom of the conversation, taking the user away from their reading position.
Expected
Viewport stays at the user's current scroll position. New prompts surface via an unread/"jump to bottom" affordance (Slack/Discord style) instead of forcing scroll.
Notes
useTerminal: truedoes not help because interactive prompts render in the extension UI layer, not inside the integrated terminal.- No setting under
claude-code.*exposes scroll behavior as of today.
Asks
- Expose a setting like
claude-code.followOutput: false(or equivalent) to opt out of auto-scroll. - Or: only auto-scroll when the user was already pinned to the bottom before the new message.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗