{"version":"2.1.3","anchor":"custom-keybindings-support","canonical_anchor":"custom-keybindings-support","heading":"Custom Keybindings Support","tier":null,"area":null,"scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.3\/e\/custom-keybindings-support","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.3","markdown":"### Custom Keybindings Support\n\n**What**\n\nConfigure custom keyboard shortcuts via a JSON file in your Claude config directory.\n\n**Usage**\n\nCreate `~\/.claude\/keybindings.json` with your custom mappings:\n\n`[ { \"context\": \"Chat\", \"bindings\": { \"ctrl+k\": \"chat:submit\", \"ctrl+l\": null } } ]` **Details** - Supports contexts: `Global`, `Chat`, `Autocomplete`, `Confirmation`, `Transcript`, `HistorySearch`, `Task`, `ThemePicker`, `Help` - Set a binding to `null` to disable it - File is hot-reloaded on changes\u2014no restart required - Invalid keybindings show warnings via notifications, with details available in `\/doctor` - Reserved keys (`ctrl+c`, `ctrl+d`) cannot be remapped - Validation warns about OS-specific conflicts (e.g., `cmd+c` on macOS) **Evidence** `TJ()` at line 358886 (`KeybindingSetup` component, initializes with `\"[keybindings] KeybindingSetup initialized\"`), `Q_A()` at line 213102 (returns `keybindings.json` path), `g_5()` at line 358862 (displays `\"keybinding-config-warning\"` notifications)"}