Claude Code Can't Scroll Up? How to Fix It

If you can’t scroll up in Claude Code, press PgUp to scroll the conversation.

On a MacBook, press Fn+↑. In fullscreen rendering, Claude Code handles scrolling itself, so your terminal’s scrollbar and scrollback don’t work the way they normally do.

Fullscreen rendering draws the interface like vim or htop. The conversation isn’t in your terminal’s scrollback, which is why dragging the scrollbar may do nothing.

This article shows the scroll shortcuts, how to fix the mouse wheel, and how to go back to normal terminal scrolling.

Keyboard shortcuts for scrolling

Here are the shortcuts in fullscreen rendering:

ShortcutAction
PgUp / PgDnScroll up or down by half a screen
Ctrl+HomeJump to the start of the conversation
Ctrl+EndJump to the latest message
Mouse wheelScroll a few lines at a time

Keyboards without those keys, like on a MacBook, use Fn with the arrow keys:

ShortcutSends
Fn+↑PgUp
Fn+↓PgDn
Fn+←Home
Fn+→End

Ctrl+Fn+→ doesn’t reach Claude Code on macOS, so use another way to get back to the bottom. You can click the Jump to bottom button or scroll down with the mouse wheel.

Check which renderer you’re using

Run this command inside Claude Code:

/tui

It prints which renderer is active. The fix depends on the answer:

  • Fullscreen: use the shortcuts above
  • Classic: the conversation is in your terminal’s normal scrollback, so scroll the way you do in any terminal

How to go back to normal terminal scrolling

To use your terminal’s native scrollback, switch to the classic renderer:

/tui default

Your conversation stays intact when you switch. To return to fullscreen rendering, run /tui fullscreen.

The mouse wheel doesn’t scroll

Mouse wheel scrolling only works if your terminal forwards mouse events to Claude Code. Most terminals do this automatically.

iTerm2 has a setting for it. If the wheel does nothing but PgUp and PgDn work, open Settings > Profiles > Terminal and turn on Enable mouse reporting.

Also check that you haven’t set CLAUDE_CODE_DISABLE_MOUSE=1, because that turns off wheel scrolling inside Claude Code.

The mouse wheel scrolls too slowly

If each notch of the wheel only moves one line, raise the scroll speed:

/scroll-speed

Scroll while the dialog is open to feel the change, press ← and → to adjust it, then press Enter to save.

You can also set the speed with an environment variable. A value of 3 matches the default in vim:

export CLAUDE_CODE_SCROLL_SPEED=3

This doesn’t apply in the JetBrains IDE terminal, where Claude Code uses its own scroll handling.

The view jumps while Claude is working

In fullscreen rendering, scrolling up pauses auto-follow, so new output won’t pull you back to the bottom. A Jump to bottom button appears while you’re scrolled up.

To stop the view from ever jumping on its own, open /config and set Auto-scroll to off.

If you’re in the classic renderer and your terminal keeps jumping to the top or flashing while Claude works, try fullscreen rendering. It was designed to fix that problem:

/tui fullscreen

Scrolling stops at “Conversation compacted”

If you close a compacted session and resume it, scrolling up stops at the Conversation compacted row. Your earlier messages still exist in the session’s transcript file on your computer.

To get a detail from those messages, ask Claude to look it up in that file. See where Claude Code sessions are stored to find it yourself.

How to search the conversation

Cmd+F can’t see the conversation in fullscreen rendering. Press Ctrl+O to open transcript mode, then press / to search.

In transcript mode, press [ to write the full conversation into your terminal’s scrollback. After that, Cmd+F and normal selection work on it.

Conclusion

Press PgUp or Fn+↑ to scroll up in fullscreen rendering, and /scroll-speed if the wheel feels slow. If you prefer how your terminal normally scrolls, run /tui default.

If you can’t select text either, read how to copy from Claude Code.