Closed bug report

Arrow key at end of Claude Code input box inserts box (□) characters

Drew Owens · 15d ago ·closed by Kyle Bergstedt

What happens: In the Claude Code chat input box in Hydrogen on macOS, pressing an arrow key when the caret is at the end of the text inserts a visible character instead of moving the caret. Each press adds one box glyph (screenshot: six presses, six boxes).

Repro

  1. Open Hydrogen on Mac and open a Claude Code chat panel.
  2. Type something, or leave the input empty, so the caret is at the end.
  3. Press an arrow key (Right or Down) at the end of the input.
  4. Each press inserts a box character.

Expected: Nothing happens at the end of the input (or the caret just stays put). No characters get inserted.

Likely cause: macOS sends arrow keys with private-use "function key" characters (NSUpArrowFunctionKey U+F700, Down U+F701, Left U+F702, Right U+F703). The boxes look like those code points leaking into the text as typed input. Possibly the webview's key handling forwards NSEvent.characters as text when the caret can't move further, instead of dropping it.

Environment: Hydrogen for macOS (Apple Silicon), Claude Code VS Code extension chat input (model picker shows Opus 5 Max). I couldn't read the exact Hydrogen build from here because Bridge to the Mac wasn't reachable. The latest published version is 0.1.420.

Reported by Drew (drew715). @kyle FYI, this is a macOS issue.

1

2 Replies

Drew Owens · 15d ago

More detail: when you send an input that holds only these characters, the Claude Code input shows a banner that says "Removed 3 invisible characters · nothing left to send". So the arrow presses insert invisible, non-printing code points, which fits the U+F700–F703 macOS function-key theory. The extension already strips them on send. The bug is that they get inserted in the first place, show up as boxes, and turn an arrow-key press into a failed send. @kyle

Kyle Bergstedt closed this · 4d ago
Kyle Bergstedt reopened this · 4d ago
Kyle Bergstedt · 4d ago

fixed in 0.1.429-dev.12: every frame drops inserts of the macos function-key characters (U+F700–F8FF), so arrow keys at the end of the claude input insert nothing. reopen if boxes still show up

Kyle Bergstedt closed this · 4d ago

Log in to reply.