[Bug] CLAUDE_CODE_NO_FLICKER=1 swallows Ctrl+J keybinding for chat:newline in tmux
Status Fixed / completed
Reported on v2.1.90
Maintainer reply None cached
Activity 5 comments · opened Apr 2, 2026 · closed Apr 12, 2026
Ctrl+J bound to chat:newline in keybindings.json stopped working the moment I set CLAUDE_CODE_NO_FLICKER=1. Remove the env var, Ctrl+J works again. Put it back, gone.
The alt-screen renderer is eating the keystroke before the keybinding system gets a chance to see it. Ctrl+J (ASCII 0x0A, line feed) is probably being consumed as a cursor/scroll control in the alternate screen buffer.
Repro
- Add
"CLAUDE_CODE_NO_FLICKER": "1"tosettings.jsonenv - Bind
ctrl+jtochat:newlineinkeybindings.json:
{
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+j": "chat:newline"
}
}
]
}
- Launch Claude Code inside tmux
- Press Ctrl+J in the input box. Nothing happens.
- Remove
CLAUDE_CODE_NO_FLICKER, restart. Ctrl+J inserts a newline again.
Environment
- Claude Code 2.1.90
- tmux 3.6a
- Linux 6.17.13-2-pve
- zsh
Note
Shift+Enter also doesn't work in tmux (long-standing tmux limitation with modifier key passthrough), so Ctrl+J is the only reliable newline binding here. This effectively makes NO_FLICKER mode unusable for tmux users who need multi-line input.
Related
- #42501 (same class of bug, Shift+Enter broken in Warp with NO_FLICKER)
5 Comments
Found 2 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
This isn't a duplicate of #42501 or #42606. Different terminal, different keybinding, different root cause.
ctrl+j->chat:newlinebinding inkeybindings.json, running in tmuxtmux doesn't pass Shift+Enter through at all, so Ctrl+J is the only viable newline binding for tmux users. The alt-screen renderer is swallowing it before the keybinding system sees it.
Keeping this open as a separate repro.
Still repros on 2.1.98 (April 9). None of the NO_FLICKER fixes in 2.1.97 touched this.
The Warp Shift+Enter fix (#42501) shipped, but tmux +
ctrl+j->chat:newlineis still broken. Since Shift+Enter isn't an option in tmux, there's currently no working way to insert a newline inNO_FLICKERmode from tmux.One observation from the docs:
keybindings.mdnow lists aScrollcontext for "Conversation scrolling and text selection in fullscreen mode." My guess is Ctrl+J is getting routed to that context (or consumed by the alt-screen renderer) before the explicitChat-context binding gets a chance to handle it.Also worth noting:
fullscreen.mdhas a "Use with tmux" section that markets NO_FLICKER as tmux-compatible, but only mentions mouse-mode caveats. A docs note about the Ctrl+J limitation would at least save other tmux users the debugging time.Resolved -- this turned out to be unrelated to
CLAUDE_CODE_NO_FLICKER. The actual culprit wasCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1. Removing that env var restoredctrl+j->chat:newlinebehavior, withNO_FLICKERstill enabled.Leaving a breadcrumb here in case anyone else hits the same combo: if Ctrl+J (or other custom keybindings) stop working and you have
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1set, try removing it. May be worth investigating upstream whether that flag is inadvertently disabling keybinding-related subsystems.Closing.
This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.