[FEATURE]

Resolved 💬 3 comments Opened Feb 20, 2026 by larryseyer Closed Feb 24, 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

Feature Request: Dual-Pane Message Interface

Problem
Claude Code currently uses a single shared input/output area. When Claude writes to this area while the user is composing a message, it overwrites or disrupts the user's input — creating a race condition on shared mutable state. This is a fundamental UX flaw in the interleaved chat model as applied to an agentic coding tool.

Proposed Solution
Split the interface into two dedicated, independently owned message areas:

  • IncomingPane (Claude → User): A scrollable, searchable read-only stream of Claude Code's output, responses, status updates, and logs. Claude owns this buffer entirely.
  • Outgoing Pane (User → Claude): A persistent, dedicated input area for composing and queuing user instructions. The user owns this buffer entirely. Previous prompts remain accessible for recall and editing.

Why This Works

  • Eliminates the write collision by giving each party exclusive ownership of their buffer
  • Accurately reflects the actual asymmetry of agentic interaction (task queue + status feed) rather than implying false turn-taking equality
  • Maps to proven UX patterns: IRC clients, serial terminals (minicom), and mainframe 3270 terminals all use this model successfully
  • Allows the user to review Claude's ongoing work in the incoming pane while simultaneously composing the next instruction in the outgoing pane

Expected Benefit
No lost user input. No disrupted composition flow. Cleaner mental model for agentic coding sessions.

Environment
Cross-platform (observed on macOS)

Proposed Solution

see above

Alternative Solutions

see above

Priority

Medium - Would be very helpful

Feature Category

Performance and speed

Use Case Example

see above

Additional Context

see above

View original on GitHub ↗

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