[FEATURE] Configurable input position — side-by-side layout for reviewing output while typing

Resolved 💬 3 comments Opened Mar 20, 2026 by jotasugiyama Closed Mar 23, 2026

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Problem Statement

When Claude Code produces long output (plans, code reviews, diffs, explanations), the input prompt scrolls far below the content. To compose the next instruction, users must either:

  1. Scroll all the way down to the input, losing sight of the output they want to reference
  2. Use terminal copy mode to read output, exit, then type — constantly switching contexts

This back-and-forth is especially painful during iterative workflows where you need to read Claude's plan or code suggestion and respond with corrections or follow-up instructions referencing specific parts of the output.

Related issues

This problem has been reported multiple times, indicating strong demand:

  • #13591 — Sticky/Fixed Input Mode (Dec 2025)
  • #18593 — Static/pinned input field while scrolling (Jan 2026, marked duplicate)
  • #26101 — Keep input prompt pinned/visible while scrolling (Feb 2026)

Those issues propose pinning the input to the bottom. This issue proposes a more flexible solution that also addresses a use case bottom-pinning alone cannot: reviewing long output side-by-side with the input area.

Proposed Solution

Add a configurable input position via /config (or settings.json), allowing users to choose where the input area is rendered relative to the output:

Input position: bottom (default) | right | left

bottom (default, current behavior)

No change. Output and input flow top-to-bottom in a single stream.

right / left

The TUI splits into two independent panes:

  • Output pane: scrollable conversation history (takes ~60-70% width)
  • Input pane: fixed on the right or left side (~30-40% width), always visible

This enables a workflow where users can scroll through Claude's output on one side while composing the next message on the other — similar to how an IDE separates the editor from the terminal.

Configuration

// ~/.claude/settings.json
{
  "tui": {
    "inputPosition": "right"  // "bottom" | "right" | "left"
  }
}

Or via the /config command interactively.

Why not just bottom-pinning?

Bottom-pinning (as proposed in #13591) solves the "input disappears" problem, but the input area would still be very narrow vertically — just a few lines at the bottom. For complex follow-up instructions that reference specific parts of Claude's output, a side-by-side layout provides significantly more screen real estate for both reading and writing simultaneously.

Ideally, both approaches could coexist: bottom (current), bottom-pinned, right, and left.

Alternative Solutions

Current workarounds all have significant friction:

  • tmux/terminal split panes: Requires manually syncing output between panes; no native integration with Claude Code's TUI
  • Copy mode (prefix + [): Constant context switching between reading and typing
  • /compact: Reduces output volume but doesn't solve the layout problem

Priority

Critical - Blocking my work

Feature Category

CLI commands and flags

Use Case Example

  1. Claude Code outputs a 200-line plan for refactoring a module
  2. I need to approve some steps, reject others, and add specific instructions referencing line numbers or function names in the plan
  3. Currently: I scroll up to read the plan, try to memorize the relevant parts, scroll back down, and type from memory
  4. With side-by-side layout: I scroll through the plan on the left while typing my detailed response on the right, referencing specific parts as I go

Additional Context

  • Claude Code version: latest
  • Platform: macOS (iTerm2, Terminal.app)
  • Terminal multiplexer: tmux (via cmux)
  • This is a common pain point for power users running long iterative sessions

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗