Keybinding override for "enter" does not suppress default "chat:submit" action

Resolved 💬 5 comments Opened Apr 8, 2026 by junpei Closed Apr 20, 2026

Description

When overriding enter to chat:newline in ~/.claude/keybindings.json, the default chat:submit action is not suppressed. Pressing Enter inserts a newline and submits the message simultaneously.

Keybindings Configuration

{
  "$schema": "https://www.schemastore.org/claude-code-keybindings.json",
  "$docs": "https://code.claude.com/docs/en/keybindings",
  "bindings": [
    {
      "context": "Chat",
      "bindings": {
        "enter": "chat:newline",
        "ctrl+enter": "chat:submit"
      }
    }
  ]
}

Expected Behavior

  • Enter: inserts a newline only
  • Ctrl+Enter: submits the message

Actual Behavior

  • Enter: inserts a newline and submits the message (both actions fire)
  • Ctrl+Enter: submits the message

Environment

  • Claude Code version: 2.1.96
  • OS: macOS (Darwin 25.3.0)
  • Shell: zsh
  • Terminals tested: Warp, macOS Terminal.app (same behavior on both)

View original on GitHub ↗

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