Repository navigation
Closed as not planned
Closed as not planned
Copy link
Description
Summary
Add visual markers to the TUI scrollbar at each message boundary so users can navigate long conversations quickly without scrolling through entire message bodies.
Problem
When conversations exceed ~50 messages, navigating back to a specific user input becomes painful:
- Scrolling with
PageUp/PageDownshows the message body but you have to read each one to find what you want. - No overview — the scrollbar is a single position indicator; it doesn't communicate how many turns exist or where they break.
- Existing keybinds help (
messages_next/messages_previous/messages_last_userintui.json) but require the user to know the keybinds exist and press them repeatedly.
This is a common UX pattern in:
- Code editors (minimap markers for search results, breakpoints, git diffs)
- Chat apps (Slack, Discord: small avatars/dots on the scrollbar)
- IDEs (IntelliJ: navigation bar showing file structure)
Proposed Behavior
Render a small visual marker on the scrollbar at each message boundary:
| Marker style | Meaning |
|---|---|
| Larger notch | User input |
| Smaller notch | Assistant message |
| Distinct color | Tool call / error message |
Visually something like:
│ │
│ █ │ <- message #1 (user)
│ █ │ <- message #2 (assistant)
│ █ │ <- message #3 (user)
│ █ │ <- message #4 (assistant, has tool call)
│ █ │ <- message #5 (user)
│ │
│ █ ← you are here │
Why a Plugin Can't Solve This
I tried. Built conversation-nav (https://gist...) that tracks user inputs to a JSON file and exposes /inputs + /jump N commands. This works as a workaround but:
- The TUI renderer is not exposed via the plugin API (
PluginInputhasclient,project,directory,$— notui/scrollbar/viewport). - Themes can change colors but the scrollbar widget itself is hardcoded in the TUI binary.
- The JSON workaround requires reading a file + remembering keybinds + manual
Ctrl+Uppresses — still friction.
The feature needs to live in the TUI layer.
Acceptance Criteria
- Visible marker on the right-edge scrollbar at each message boundary
- Different visual treatment for user vs assistant messages
- Works with the existing
messages_next/messages_previouskeybinds - No measurable perf impact in conversations with 200+ messages
- Optional: configurable via
tui.json(enable/disable, colors)
Alternatives Considered
- Plugin-based workaround (what I built) — works but doesn't solve the visual problem.
- Theme-only — can't distinguish messages by role in current theme schema.
- External sidebar — splits attention, breaks the single-pane UX.
Related
messages_next/messages_previous/messages_last_userkeybinds intui.json(already exist, currently bound tonone)scrollbar_togglekeybind (already exists, currently bound tonone)
cc @anomalyco
Posted from opencode CLI via gh issue create.
Reacted by Armin Vieweg and nrkimv6
Metadata
Metadata
Assignees
Labels
No labels
Activity
github-actions commentedon Jul 19, 2026
This issue might be a duplicate of existing issues. Please check:
For keybind-related notes in this issue (e.g.
messages_next,messages_previous,messages_last_user,scrollbar_toggle), please also check our pinned keybinds documentation: #4997github-actions commentedon Sep 18, 2026
To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.