Support Shift+Enter for multiline input (industry standard)

Status Fixed / completed
Maintainer reply ✓ Yes — rboyce-ant
Activity 11 comments · opened May 23, 2025 · closed Jun 8, 2025
💡 Likely answer: A maintainer (rboyce-ant, contributor) responded on this thread — see the highlighted reply below.

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

View original on GitHub ↗

11 Comments

adamavenir · 1 year ago

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.

rboyce-ant contributor · 1 year ago

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.

ungerik · 1 year ago

Why not use the industry standard without any extra setup steps? Why make it more complicated than it has to be?

adamavenir · 1 year ago

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.

ungerik · 1 year ago

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: @.***>
zeptoon · 1 year ago

Arrived here as well because I was trying to figure out how to do this. It should be the default!

sinasan · 1 year ago

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.

Firsh · 1 year ago

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?

strentom · 1 year ago

Same on Mac with the default terminal emulator and zsh (default). Running /terminal-setup doesn't fix it, neither restarting the emulator.

Firsh · 1 year ago

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": "\^[\u000A"
        },
        "when": "terminalFocus"
    }

in C:\Users\Firsh\AppData\Roaming\Code\User\keybindings.json

github-actions[bot] · 1 year ago

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.