[BUG] Mods: a pane's Input hides the end of its text, so you can't see what you type past its width

Status Open
Reported on v2.1.293
Maintainer reply None cached
Activity 0 comments · opened Oct 7, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report
  • [x] I am using the latest version of Claude Code

What's Wrong?

In a terminal pane, a mod's Input is one line high and shows only the start of its text. Once the text is wider than the field, the end of the text, where the cursor is, is cut off. The field doesn't scroll to the cursor or wrap, so the person can't see what they are typing.

After typing a long sentence into the field in a 150-column terminal, the field's row reads:

This sentence is long enough to run past the width of the ⏎ send

The rest of the sentence was typed but isn't shown.

This makes the field hard to use for anything longer than its width, such as a free-text answer in a pane. #99616 asks for a multi-line element. This report is about the existing one-line field hiding the text being typed.

What Should Happen?

The field keeps the cursor in view, scrolling sideways as the text grows. Wrapping onto more lines would also work.

Error Messages/Logs

None.

Steps to Reproduce

  1. Save this mod in a folder and start claude --plugin-dir <folder>:

.claude-plugin/plugin.json
``json
{ "name": "input-repro", "description": "One Input in a pane" }
``

hooks/hooks.json
``json
{ "modules": ["./register.tsx"] }
``

hooks/register.tsx
```tsx
import type { Register } from 'claude-code'

export const register: Register = on => {
on('session.start', async ($, e, next) => {
await $.command.register({ name: 'repro', description: 'Open a pane with one Input' })
return next(e)
})
on('command.run', { command: 'repro' }, async $ => {
await $.ui.open({ id: 'repro', title: 'Repro', focus: true })
return { text: 'Opened.' }
})
on('ui.render', { component: 'Pane', requestId: 'repro' }, async ($, e) => {
const { Box, Input } = $.ui.resolve(e)
return (
<Box>
<Input key="reply" placeholder="Type here" submitLabel="send" autoFocus onSubmit={() => {}} />
</Box>
)
})
}
```

  1. Run /repro. The pane opens with the field focused.
  2. Type a sentence longer than the pane is wide.
  3. The field shows the beginning of the sentence. The end, where you are typing, isn't visible.

Is this a regression?

I don't know

Claude Code Version

2.1.293

Platform

Anthropic API

Operating System

macOS 15.7.3

Terminal/Shell

Other: seen in Herdr, reproduced in tmux 3.7c

View original on GitHub ↗