tui: NumPad End/Home ignored under kitty keyboard protocol (Windows Terminal reports KP_END 57424)
Maintainers usually reply within 1 day
@argszero is already working on this.
Since Oct 14, 2026.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 75/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- typescript
- Domain
- cli
Research direction
Start with the default keybind table for input.line.home and input.line.end and add the kphome and kpend names alongside home and end, as the workaround in cli.json does. Check that the kitty keyboard parser maps CSI 57424 u to kpend, since the issue says the names are already accepted. Done when NumPad End and Home trigger the same actions as the regular keys, and the other NumPad navigation keys are covered too.
Written by the indexing model from the issue text.
Description
Description
NumPad End (NumLock off) does nothing in the TUI, while the regular End key works. Same for the other NumPad navigation keys.
With the kitty keyboard protocol enabled, Windows Terminal reports NumPad End as KP_END (CSI 57424 u) rather than End. OpenCode doesn't treat it as End, so the default end bindings never fire. Outside OpenCode both keys send ^[[F, so the terminal is fine.
Expected: NumPad navigation keys behave like their regular equivalents (kpend → end, kphome → home, and so on), the same way opentui#1047 handled NumPad digits and Enter in the textarea.
Workaround: adding the kp* names to cli.json works (after restarting the TUI), so the key names are already parsed and accepted. They just aren't in the defaults:
"keybinds": {
"input.line.home": "ctrl+a,home,kphome",
"input.line.end": "ctrl+e,end,kpend"
}
Earlier reports of the same root cause were auto-closed in V1: #20461, #7698.
Plugins
None related (one local personal plugin)
OpenCode version
2.0.29
Steps to reproduce
- In Windows Terminal (WSL), with NumLock off, run
printf '\e[>1u'; cat -v; printf '\e[<u' - Press End, then NumPad End. Output:
^[[F^[[57424u - Open OpenCode with default keybinds, scroll up in a session, and press End: it jumps to the last message. Press NumPad End: nothing happens.
Screenshot and/or share link
N/A
Operating System
Windows 11 + WSL2, Ubuntu 26 (Linux 6.18.54.1-microsoft-standard-WSL2)
Terminal
Windows Terminal
- Dominant language
- TypeScript
- Stars
- 213k
- Forks
- 28.4k
- Avg merge
- 8h 32m
- Merged PRs (30d)
- 253
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from anomalyco/opencode
-
reproduced
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
anomalyco/opencode#55676 · 1 comment ·
Maintainers usually reply within 1 day
-
pending close triaging
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
anomalyco/opencode#55392 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
anomalyco/opencode#55383 · 3 comments ·
Maintainers usually reply within 1 day
-
web: second Firefox tab never connects to /api/event - Cache-Control: no-cache lets Firefox's HTTP cache block concurrent SSE requestsPossibly taken @zonemeen claimed this 1 day ago. Openreproduced
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
anomalyco/opencode#55369 · 2 comments ·
Maintainers usually reply within 1 day
-
reproduced
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
anomalyco/opencode#55351 · 1 comment ·
Maintainers usually reply within 1 day
All issues in anomalyco/opencode
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
xdjs/MusicNerdWeb#1532 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
sebastian-software/ardo#352 ·
Maintainers usually reply within 1 day
-
@react95/core good first issue
Difficulty 1/5 Under an hour Newbie friendliness 88/100
Maintainers usually reply within 3 days
-
@shikijs/stream: `ShikiStreamTokenizer.clone()` shares its `tokensStable` array with the originalPossibly taken @xyrolle claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 6 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day