[BUG] Keybindings: Missing chat:insertNewline action prevents Enter/Shift+Enter swap

Resolved 💬 3 comments Opened Jan 16, 2026 by ww2283 Closed Jan 20, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Summary

The keybindings feature lacks a chat:insertNewline action, making it impossible to swap Enter and Shift+Enter behavior (Enter for newline,
Shift+Enter for submit).

What Should Happen?

Expected Behavior

Users should be able to configure:
```json
[
{
"context": "Chat",
"bindings": {
"enter": "chat:insertNewline",
"shift+enter": "chat:submit"
}
}
]

Actual Behavior

  • chat:insertNewline doesn't exist as an action
  • Setting "enter": null to unbind doesn't insert newline - Enter still submits or does nothing
  • No way to achieve the common "Enter = newline, Shift+Enter = submit" pattern

Error Messages/Logs

Steps to Reproduce

Steps to Reproduce

  1. Create ~/.claude/keybindings.json:

[
{
"context": "Chat",
"bindings": {
"enter": null,
"shift+enter": "chat:submit"
}
}
]

  1. Restart Claude Code
  2. Press Enter in chat - still submits instead of inserting newline

Claude Model

Opus

Is this a regression?

No, this never worked

Last Working Version

_No response_

Claude Code Version

2.1.9

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

VS Code integrated terminal

Additional Information

Feature Request

Add chat:insertNewline action to allow rebinding Enter to insert newline, enabling the swap pattern many users prefer from other chat
applications.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗