You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have verified this feature I'm about to request hasn't been suggested before.
Describe the enhancement you want to request
It's very frustating to never be able to comfortably and fully read what the agent is generating until after they're completely finished, which can take many minutes in some cases. This wastes a lot of the user's time by forcing the user to wait for long periods of time until the agent has finished generating their entire response. Collectively during a given day, this can waste an hour or more of our time.
For example, I tell the agent to perform a task. The agent starts working. The task might be a complex, multi-step implementation plan that takes 10 minutes or more. During that period, I'm constantly trying to fight against the auto-scroll behavior of the OC window to read what the agent is doing.
In this context, "fight against the auto-scroll" means this: Start reading new agent output, then agent generates more output, window scrolls automatically to latest agent output, now I need to scroll back up and find my previous place in the chat stream, agent generates more output and window scrolls even farther away from where I was previously reading, now I need to scroll back up even farther again, etc.......
This is very frustrating because agents often do stupid or undesirable things, but if I can't read and observe what they are doing quickly, there's no opportunity to stop them and give them corrective guidance. This also wastes a huge amount of time during a day because I can't prevent the agents from making time-wasting mistakes and going off on rabbit trails that would be much easier to prevent or correct if I could simply read and observe their output sooner.
So there should be a way to disable the auto-scroll behavior so that the user can read what the agents are generating sooner.
Reacted by Centimo, Will Ernst, Tarik Lafi, Juan David Merchan Torres, Adam Spiers, Alexey, Daemon, javioverflow, Steven E. Harris, ConvoCortex and 18 more
This issue is really frustrating to deal with. The auto-scrolling behavior breaks the user experience significantly. Please prioritize fixing this as soon as possible!
still relevant - how am i to review the changes, when i have to wait until its completely done, scroll up, and then read downwards. unless i am scrolled all the way to the bottom, more text streaming in shouldn't move my view
I have a big problem in my chat window while the Model is still working. If I try to read the former text or thinking parts, every ~~30 seconds my reading area scrolls somewhere else so that I need to scroll down to that position where I was reading again. As finding the position takes around twenty seconds, I only have ten seconds to read until it jumps again.
why was it closed as not planned? This is a real existing issue which impacts user experience.
Reacted by Alexey, Daemon, Yuri Bochkarev, Mateusz Kurowski, Martial Garchery, danielreis, Kevin Cojean, Finn Lehmann, Robin Bially, piknockyou and 2 more
opencode's chat works like a live news ticker: when the agent generates text, the window slides down to show the latest line. That's good when you're at the bottom. The problem (issue #7659): when you scroll up to read, the window keeps yanking you back down — like a book someone keeps turning pages on.
The chat's auto-scroll is hardcoded via the <scrollbox>'s sticky scroll — stickyScroll={true} + stickyStart="bottom" in packages/tui/src/routes/session/index.tsx, powered by @opentui/core's ScrollBox (ScrollBox.ts). The TUI config only exposes scroll_speed / scroll_acceleration, so users can't turn the follow behavior off.
Clamp-based re-stick — syncManualScrollState() reset _hasManualScroll = false during content updates (_isApplyingStickyScroll). Whenever streamed content momentarily shrank (collapsing tool output, snapshot churn), the scroll position got clamped to the (new) bottom and the view silently re-stuck.
Aggressive re-engage — recalculateBarProps() re-engaged sticky when the user was within 1 line of the bottom (scrollTop >= maxScrollTop - 1), pulling the view past where they were reading.
The patch (local build 1.xx.xx-localscroll)
In @opentui/coreScrollBox:
syncManualScrollState(): early-return inside _isApplyingStickyScroll — no more _hasManualScroll reset from content-size clamps.
recalculateBarProps(): removed the isAtStickyReengagePoint auto-re-engage branch. Follow now resumes only when the user actually scrolls back to the bottom (syncManualScrollState on real input handles that).
Kept the existing streaming markdown fix. Built from the v1.xx.xx tag (bun run build --single in packages/opencode, OPENCODE_VERSION=1.xx.xx-localscroll).
Resulting behavior
At the bottom → viewport follows the latest output.
Scroll up (even a couple of lines) → scroll stays put; no yanking, even when content temporarily shrinks and clamps the position.
Scroll back to the very bottom → follow resumes.
Scrollbar visible by default.
Suggested upstream change (proper PR)
Same idea in source:
@opentui/coreScrollBox.ts: apply the two fixes above (remove clamp re-stick + auto re-engage), then add a config flag to opencode's TUI config (e.g. scroll_sticky: boolean, default true) wired to stickyScroll in session/index.tsx.
Activity
github-actions commentedon Jan 10, 2026
This issue might be a duplicate of existing issues. Please check:
Feel free to ignore if none of these address your specific case.
github-actions commentedon Mar 25, 2026
To stay organized issues are automatically closed after 90 days of no activity. If the issue is still relevant please open a new one.
JuliaBonita commentedon Mar 25, 2026
This has not been fixed yet. Please don't close it.
alexzoo commentedon Mar 26, 2026
This issue is really frustrating to deal with. The auto-scrolling behavior breaks the user experience significantly. Please prioritize fixing this as soon as possible!
kreasteve commentedon Apr 18, 2026
A workaround that works for me on opencode 1.4.11 (macOS, iTerm2): #7648 (comment)
x4dr commentedon Apr 29, 2026
still relevant - how am i to review the changes, when i have to wait until its completely done, scroll up, and then read downwards. unless i am scrolled all the way to the bottom, more text streaming in shouldn't move my view
JaviOverflow commentedon Apr 30, 2026
please give more priority to this, workaround #7659 (comment) doesn't work for me either
DavidKirschey commentedon May 16, 2026
Super annoying! Please solve this!
I have a big problem in my chat window while the Model is still working. If I try to read the former text or thinking parts, every ~~30 seconds my reading area scrolls somewhere else so that I need to scroll down to that position where I was reading again. As finding the position takes around twenty seconds, I only have ten seconds to read until it jumps again.
Plugins
No response
OpenCode version
newest
Steps to reproduce
Fire a prompt to the model And let it work.
Scroll up with your mouse wheel and read something from the former output.
After less than three sentences you cannot read anymore and you are somewhere else in the long conversation.
Scroll down to find the reading position again.
Continue reading until the next time.
Screenshot and/or share link
https://github.com/user-attachments/assets/076b0708-408b-49a2-987c-a23d8a2380ac
https://github.com/user-attachments/assets/d83fbc82-5c9a-4311-884a-03e1a58d8f80
danxtshake commentedon Jun 8, 2026
To scroll to the bottom of the conversation in the OpenCode CLI, press the End key
Lauri-Nomme commentedon Jun 8, 2026
@danxtshake did you read the issue description?
mengmann commentedon Jul 2, 2026
why was it closed as not planned? This is a real existing issue which impacts user experience.
pisze-programy commentedon Aug 14, 2026
Hey, just give it to your agent; ll handle it
opencode's chat works like a live news ticker: when the agent generates text, the window slides down to show the latest line. That's good when you're at the bottom. The problem (issue #7659): when you scroll up to read, the window keeps yanking you back down — like a book someone keeps turning pages on.
The chat's auto-scroll is hardcoded via the
<scrollbox>'s sticky scroll —stickyScroll={true}+stickyStart="bottom"inpackages/tui/src/routes/session/index.tsx, powered by@opentui/core'sScrollBox(ScrollBox.ts). The TUI config only exposesscroll_speed/scroll_acceleration, so users can't turn the follow behavior off.syncManualScrollState()reset_hasManualScroll = falseduring content updates (_isApplyingStickyScroll). Whenever streamed content momentarily shrank (collapsing tool output, snapshot churn), the scroll position got clamped to the (new) bottom and the view silently re-stuck.recalculateBarProps()re-engaged sticky when the user was within 1 line of the bottom (scrollTop >= maxScrollTop - 1), pulling the view past where they were reading.The patch (local build
1.xx.xx-localscroll)In
@opentui/coreScrollBox:syncManualScrollState(): early-return inside_isApplyingStickyScroll— no more_hasManualScrollreset from content-size clamps.recalculateBarProps(): removed theisAtStickyReengagePointauto-re-engage branch. Follow now resumes only when the user actually scrolls back to the bottom (syncManualScrollStateon real input handles that).In opencode TUI:
packages/tui/src/routes/session/index.tsx:scrollbar_visibledefaultfalse → true(visible scrollbar = position indicator).Kept the existing streaming markdown fix. Built from the
v1.xx.xxtag (bun run build --singleinpackages/opencode,OPENCODE_VERSION=1.xx.xx-localscroll).Resulting behavior
Suggested upstream change (proper PR)
Same idea in source:
@opentui/coreScrollBox.ts: apply the two fixes above (remove clamp re-stick + auto re-engage), then add a config flag to opencode's TUI config (e.g.scroll_sticky: boolean, defaulttrue) wired tostickyScrollinsession/index.tsx.Links
@opentui/core): https://github.com/anomalyco/opentui/blob/main/packages/core/src/renderables/ScrollBox.tsPixClix commentedon Sep 22, 2026
Please add a way to stop the auto scroll. Its annoying as hell.