[BUG] Desktop: a pane `Input` never gets the keyboard, though `autoFocus` and `$.ui.focus` both succeed

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

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separately for multiple bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

In the desktop app, an Input in a plugin pane doesn't take the keyboard when it appears. Typed keys don't reach it until the person clicks into it.

The plugin does everything the types offer:

  • The Input has autoFocus.
  • After the drawing that holds the Input reaches the app, the plugin calls $.ui.focus({ requestId, key }) with the Input's key. The call resolves to {}, meaning the focus ring moved.

Logging in the plugin showed both focus calls resolving to {} on each of six clicks, while typed letters went nowhere.

What Should Happen?

When the focus ring moves onto an Input, by autoFocus or by $.ui.focus, the app's native text field should take the keyboard, as the DOM's focus() does.

Error Messages/Logs

None. $.ui.focus resolves to {}.

Steps to Reproduce

  1. In a plugin pane, draw a Button that, when pressed, draws an Input with autoFocus and a key such as field.
  2. In the press handler, after the redraw, call $.ui.focus({ requestId: <pane id>, key: 'field' }) and log the result.
  3. Open the pane in a Code-mode session in the Claude desktop app and click the Button.
  4. Type a letter without clicking the field. It doesn't appear, and the log shows {}.
  5. Click the field and type. Now it works.

Claude Model

Not model-related.

Is this a regression?

Don't know.

Claude Code Version

2.1.295 (the engine the desktop app runs), Claude desktop app 2.31226.1

Platform

Anthropic API

Operating System

macOS 15.7.3

Terminal/Shell

Claude desktop app (Code mode)

Additional Information

These steps are reduced from my plugin's pane. I haven't run them as a separate minimal plugin.

Focus moves between pane Buttons work: after $.ui.focus on a Button, the next click lands normally (see #100874). Only an Input fails to take the keyboard.

View original on GitHub ↗