Skip to content

TUI - single-line paste moves cursor to the end of input #7210

Closed

Description

@Nindaleth

Description

When pasting into the TUI, the cursor is always moved to the end of the input box. This applies to both the initial input box that leads to creation of a new session, and its equivalent during conversation.

I guess the issue is somewhere in OpenTUI, but I don't have any other OpenTUI app to confirm.

Doesn't seem terminal-specific.

Plugins

obra/superpowers, @franlol/opencode-md-table-formatter@0.0.3

OpenCode version

1.1.4

Steps to reproduce

  1. Store a word in OS clipboard, for example "terminal". Anything will work as long as it's not multiline (which would trigger the "pasted N lines" block feature instead of pasting text directly).
  2. Manually enter multiple lines into the input so that it looks like this:
<cursor>line1
line2
line3
  1. Paste (both Shift+Insert and Ctrl+Shift+V do the same thing on my env)
  2. Observe unwanted cursor movement:
terminalline1
line2
line3<cursor>

Screenshot and/or share link

No response

Operating System

Linux Fedora 43

Terminal

Ghostty, Terminator

Activity

  1. added
    opentuiThis relates to changes in v1.0, now that opencode uses opentui
    on Jan 7, 2026
  2. github-actions commented on Jan 7, 2026

    @github-actions
    Contributor

    This issue might be a duplicate of existing issues. Please check:

    Feel free to ignore if none of these address your specific case.

  3. kostrse commented on Jan 8, 2026

    @kostrse

    I consistently reproduce this on MacOS Ghostty

  4. Octane0411 commented on Jan 8, 2026

    @Octane0411
    Contributor

    I've opened PR #7277 to fix this.

    Root Cause:
    The issue was introduced in PR #6070 (commit 2806f24). That PR added input.gotoBufferEnd() to the onPaste handler to ensure the textarea resized correctly, but it inadvertently forces the cursor to the end of the buffer even for single-line pastes.

    My fix removes the unnecessary gotoBufferEnd() call while keeping the layout update logic (markDirty / requestRender), which solves the cursor jumping issue without breaking the resize behavior.

    I also noticed @kostrse mentioned this happens on Ghostty as well — this fix should resolve it for all terminals.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingopentuiThis relates to changes in v1.0, now that opencode uses opentui

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions