DEV Community

Cover image for I Almost Filed a Bug Report. Then I Pressed Ctrl+P
cynthia
cynthia

Posted on

I Almost Filed a Bug Report. Then I Pressed Ctrl+P

I was using Kilo CLI v7.0.33 and something felt off. I could scroll fine — but there was no scrollbar indicator. No sense of where I was in a long session. Other CLIs had it. Mine didn't.

My immediate take: the scrollbar is broken.

So I went digging.


The GitHub Rabbit Hole

I went through OpenCode issues, Kilo issues, anything mentioning scroll + Warp + iTerm. Left a couple of comments piecing together what I thought was happening:

scrollbars missing #2500

I can't seem to scroll up to read what opencode is outputting. I don't have this problem with gemini-cli and any other cli so its not terminal related. The opencode scrollbar is just a sold bar for some reason

Image

--

Cannot scroll on opencode when using iterm #6209

Description

When trying to scroll the opencode TUI on iterm, it scrolls the input box but not the output of the previous command

OpenCode version

1.0.203

Steps to reproduce

  1. Install iTerm2
  2. opencode
  3. !ls # to see basic output - should be long enough to overflow from view
  4. scroll

Screenshot and/or share link

https://github.com/user-attachments/assets/eea1ae7e-6401-4ef8-b30d-d5265fee28ca

Operating System

26.2

Terminal

iTerm2

The threads were noisy but a pattern emerged — people were actually describing two different problems and conflating them:

Problem 1 — Mouse scroll not working at all (terminal layer)
Warp and iTerm need Mouse Reporting enabled before they'll forward scroll events to a full-screen TUI. Without it, your scroll wheel just doesn't reach the app. Fix is in terminal settings.

Problem 2 — Scrollbar not visible (app layer)
Completely separate. Scroll events arriving fine, but the indicator is just... off.

I had Problem 2. But the GitHub threads mostly discussed Problem 1.


Here’s what it looked like in my terminal — no visible scrollbar, long output, no sense of position and it was consistent in all the themes!

At this point, I was convinced it was broken.

Wait, What Am I Even Running?

Before assuming anything, I needed to understand the actual architecture. Kilo isn't just OpenCode — it's a fork:

Kilo Architecture


So I went to the source.

Buried in the session route, I found it. The scrollbar wasn’t missing at all — it was disabled by default. A KV-backed feature flag, persistent across sessions, but initialized to false.

I was one tab away from opening an enhancement issue.

Inside:

opencode/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx

const [showScrollbar, setShowScrollbar] = kv.signal("scrollbar_visible", false)
Enter fullscreen mode Exit fullscreen mode

And later:

verticalScrollbarOptions={{
  visible: showScrollbar(),
}}
Enter fullscreen mode Exit fullscreen mode

That was the moment everything clicked.

  1. The scrollbar existed.
  2. It was toggleable.
  3. And by default — it was off.

Then I Pressed Ctrl+P

Command Palette. I typed "scroll."

Toggle session scrollbar

I pressed it. The scrollbar appeared.

It had been there the whole time.


What This Actually Was

Not a bug. Not a missing feature. A discoverability gap.

The scrollbar is implemented, toggleable, persistent — just hidden behind a keybind nobody thinks to try when they're confused about scroll behavior. That's a UX conversation worth having with maintainers, not a bug report.

After piecing everything together, I went back to the GitHub threads.

Instead of filing a new issue, I left a couple of comments clarifying what I’d found — separating the terminal mouse-reporting problem from the scrollbar visibility toggle. A small thing, but hopefully useful signal in a noisy thread.

Opencode Issue 2500

--

Opencode Issue 6209

Sometimes contributing isn’t about opening something new.
It’s about tightening what already exists.


The Real Takeaways

Separate layers before blaming. Terminal config and app state are different things. Conflating them sends you in circles.

Read source before filing. That false default was right there. Five minutes of reading saved a maintainer from triaging noise.

Forks are their own thing. Upstream behavior isn't a reliable guide. Check what the fork actually exposes.

Discoverability is a real problem. If multiple users independently can't find a feature, that's signal — even if the feature works perfectly.


Quick Fix if You're Here for the Answer

  • Scroll not working at all → enable Mouse Reporting in your terminal settings
  • Scroll works but no scrollbar → Ctrl+P → search "scrollbar" → toggle on

It'll persist across sessions once set.


Top comments (0)