Customize keyboard shortcuts changedkeybindings
Nearest release: v2.1.283, published 4 hours before upstream edited the page. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.
Upstream edited this page at 25 Sep 2026 23:41 UTC, give or take a minute or two: the time comes from Anthropic’s own sitemap rather than from a commit. This site recorded the change at 26 Sep 2026 00:07 UTC.
Upstream edited
Recorded here
Lines+22added
Lines−10removed
From line
271
where the diff opens
First seen
14 Aug 2026
this site's first read of the page
Recorded edits25to this page, all time
The whole hunk
from line 271, old and new numbered
/
from line 271
271271
272272### Message selector actions
273273
274Actions available in the `MessageSelector` context:
274In the message list of the [rewind menu](/docs/en/checkpointing), you move through messages and pick one with the [Select actions](#select-actions) and their default keys. Your `Select` bindings for those actions apply there too. The `MessageSelector` context has no actions or default bindings of its own. Use it to change a key for this list alone, by binding a Select action such as `select:accept` in a `MessageSelector` block.
275275
276| Action | Default | Description |
277| :----------------------- | :---------------------------------------- | :---------------- |
278| `messageSelector:up` | Up, K, Ctrl+P | Move up in list |
279| `messageSelector:down` | Down, J, Ctrl+N | Move down in list |
280| `messageSelector:top` | Ctrl+Up, Shift+Up, Meta+Up, Shift+K | Jump to top |
281| `messageSelector:bottom` | Ctrl+Down, Shift+Down, Meta+Down, Shift+J | Jump to bottom |
282| `messageSelector:select` | Enter | Select message |
276This example binds `o` to pick the highlighted message in the rewind menu, without changing any other list:
283277
278```json theme={null}
279{
280 "bindings": [
281 {
282 "context": "MessageSelector",
283 "bindings": {
284 "o": "select:accept"
285 }
286 }
287 ]
288}
289```
290
291Before v2.1.283, this list ignored `Select` bindings and had its own actions: `messageSelector:up`, `messageSelector:down`, `messageSelector:top`, `messageSelector:bottom`, and `messageSelector:select`. If your `keybindings.json` binds one of those names, the binding keeps working in this list as the Select action that does the same thing. `Home` and `End` jump to either end of the list; before v2.1.283, keys such as `Shift+K` and `Shift+J` did that by default.
292
284293### Diff actions
285294
286295Actions available in the `DiffDialog` context:
from line 301
292301| `diff:nextSource` | Right | Next diff source |
293302| `diff:previousFile` | Up, K | Previous file in the file list; scroll up one line in the detail view |
294303| `diff:nextFile` | Down, J | Next file in the file list; scroll down one line in the detail view |
295| `diff:viewDetails` | Enter | View diff details |
296304| `diff:back` | (unbound) | Go back in diff viewer. Escape performs the back action via `diff:dismiss`. The previous default of Left in the detail view was removed in v2.1.203 |
305
306The file list also responds to the [Select actions](#select-actions), through their default keys and your `Select` bindings. `select:previous` and `select:next` move to the previous and next file, and `Enter` opens the selected file's diff through `select:accept`. To change one of those keys for the file list alone, bind the Select action in a `DiffDialog` block.
307
308Before v2.1.283, the file list ignored `Select` bindings, and `Enter` opened the selected file's diff through a separate `diff:viewDetails` action. If your `keybindings.json` binds `diff:viewDetails`, the binding keeps working in the file list as `select:accept`.
297309
298310The diff detail view also binds pager-style keys to the standard [scroll actions](#scroll-actions). These bindings are part of the `DiffDialog` context and apply only in the detail view; the `Scroll` context defaults listed under [Scroll actions](#scroll-actions) are unchanged.
299311
No line in this hunk matches that.