Support Shift+Enter for multiline input (industry standard)
Currently Claude Code uses Enter for submitting and requires Alt+Enter for newlines. This goes against the industry standard where virtually all modern tools use:
- Shift+Enter for newlines
- Enter for submit
Tools that use Shift+Enter for multiline:
- ChatGPT, GitHub Copilot Chat, VSCode, Slack, Discord, Jupyter, etc.
Proposed solution:
- Make Shift+Enter the default for newlines
- Keep Enter for submit
- Optionally provide /terminal-setup command that works on Linux terminals
This would improve UX consistency and reduce context switching friction.
Environment:
- OS: Linux
- Terminal: Terminator
- Claude Code version: 1.0.2
There is a /terminal-setup command that will automatically configure some popular terminals based on their keyboard shortcut handling configs.
Like Terminator, the terminal I use—Ghostty—isn't supported (yet), but you can just manually add a custom shortcut to your terminal's config (that's all the slash command does in other terminals).
You can go here in Terminator and just set shift-enter to \n and it will work.
As @adamavenir suggested, running /terminal-setup will configure this for most terminal clients, and we now (optionally) run this as part of the first use of Claude Code.
Why not use the industry standard without any extra setup steps? Why make it more complicated than it has to be?
Because it's not an app and they don't wantl to try to override your terminal emulator's keyboard input handling without your consent.
When I start claude without arguments, IT IS an app that just happens to run in my terminal.
Am Mo., 7. Juli 2025 um 15:39 Uhr schrieb Adam @.***>:
adamavenir left a comment (anthropics/claude-code#1259) https://github.com/anthropics/claude-code/issues/1259#issuecomment-3045192898
Because it's not an app and they don't wantl to try to override your terminal emulator's keyboard input handling without your consent.
— Reply to this email directly, view it on GitHub https://github.com/anthropics/claude-code/issues/1259#issuecomment-3045192898, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEWX422RVEQ7EKYKYT7BJT3HJ2CVAVCNFSM6AAAAAB5YF43RKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTANBVGE4TEOBZHA . You are receiving this because you commented.Message ID: @.***>
Arrived here as well because I was trying to figure out how to do this. It should be the default!
This issue was closed prematurely. The /terminal-setup command does NOT work for Terminator and many other Linux terminals, as confirmed by multiple users above.
The fundamental problem is that Claude Code should use the Kitty Keyboard Protocol or similar modern terminal APIs to detect Shift+Enter universally, instead of relying on terminal-specific configurations.
A proper fix would involve:
- Detecting Shift+Enter via escape sequences (e.g., \e[13;2u for Kitty protocol)
- Fallback detection for legacy terminals
- Making Shift+Enter the default behavior, not requiring setup
Current workarounds (Alt+Enter, backslash-escape) are not acceptable for professional daily use when every other modern tool (ChatGPT, GitHub Copilot, VS Code) handles this correctly out-of-the-box.
This issue affects all Linux users with unsupported terminals and should be reopened.
I still can't write new lines even after running that command. The terminal setup looks like it tries to add something to keybindings, but there is no change with or without it. If I press Shift+Enter, it just sends in my prompt instantly. I was kind of expecting to be able to create bullet points or something like that. Is it not supported?
Same on Mac with the default terminal emulator and zsh (default). Running /terminal-setup doesn't fix it, neither restarting the emulator.
I've found out my issue. In my setup Claude runs in Ubuntu which is in a VM. And I SSH into this system using VS Code's remote workspaces feature. Claude doesn't know that the output of the /terminal-setup should end up in the Windows side of the config. This solved it:
{
"key": "shift+enter",
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "\u001B\u000A"
},
"when": "terminalFocus"
}
in C:\Users\Firsh\AppData\Roaming\Code\User\keybindings.json
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.