Composer and Keyboard
Sending, queuing and steering, editing and reordering queued messages, paging through your message history, the slash command menu and @ references, the general rule for Esc, and where to change the configurable keyboard shortcuts.
Key bindings can be changed: "Settings → Keyboard Shortcuts" lists every command, each one can be rebound, and the two system-level global hotkeys are treated as ordinary rows on the same page. After a change, the keys shown in the native menus update to match — no restart needed. Below, the fixed behaviors of the composer come first, then how to use the settings page.
Fixed behaviors in the composer
These do not go through the command table and cannot be changed:
- Sending: Enter sends, Shift+Enter inserts a newline. Pressing Enter to pick a candidate in CJK input methods does not send by accident (it checks both
isComposingandkeyCode 229, because on ChromiumisComposingis often already false by the time Enter confirms a candidate). - Messaging while it is running: by default the message is queued (sent once the current turn ends); holding ⌘/Ctrl and pressing Enter inverts that into steering (injected directly into the running turn without interrupting it). The default can be changed to steering in Preferences, after which ⌘/Ctrl+Enter queues instead. Slash commands starting with
/are the exception: they are always queued and never injected into a running turn. - Message predictions: an empty composer shows a predicted next message and Tab accepts it as a draft; any model source works. Turn it off under "Preferences → Editor"; see Models.
- Paging through messages you have sent: when the composer is empty, ↑ pages back through the messages you have sent in this session and ↓ pages forward; Esc returns to the draft you were writing. When the composer already has text, ↑↓ are ordinary cursor movement and will not hijack the keys.
- Slash command menu: typing
/opens it, ↑↓ select, Tab or Enter complete, Esc closes. A selected command sits in the composer as one block — a single Backspace deletes the whole thing instead of backing up character by character. @references are blocks too: with the cursor at the very front of the composer, Backspace removes references one at a time from the end.@can reference more than files: chats, devices, friends (see Friends), and "Tabs" — pointing precisely at a browser tab that is already open, so Klaus knows which page you mean. Pasting a chat or tab reference link into the composer also turns it back into a reference block.- Dialogs: Enter confirms, Esc cancels. Multi-line input reverses it — in multi-line prompts, feedback forms, and spec annotations, Enter inserts a newline and ⌘/Ctrl+Enter submits.
- The general rule for Esc is "close the layer in front of you": the command menu, the model picker, the + menu, bubbles, dialogs, and panels all honor Esc. While recording, Esc only cancels the recording and does not close anything else along the way.
Queued messages
Messages queued while a turn runs line up above the composer, and each can be handled on its own:
- Read the full text: hover, focus, or click a message to expand its full text, which you can select and copy.
- Steer: inject it into the running turn now instead of waiting for the turn to end, without interrupting the model.
- Edit message: take it back into the composer with its text, images, files, references, and pasted cards restored; sending it again returns it to its original place in the queue.
- Open in side chat: move it, with attachments and references, into a new side chat so it does not occupy the main line.
- Reorder: drag a message to where you want it; dragging up or down lands on the row you point at.
- Delete.
A queued message can carry just images with no text. When a message was sent but its delivery could not be confirmed, it stays in the queue marked as unconfirmed; steering, editing, and reordering are unavailable for it and only delete remains, and retrying asks you to check the conversation first so the same message is not sent twice.
The keyboard shortcuts settings page
- One page lists every command, ordered by group but without group headers, with a persistent search box at the top. Search has two modes: type directly (fuzzy matching on command names and descriptions), or switch to "keys" mode — press the combination you are looking for and it lists the commands that use those keys; even the first half of a chord is searchable.
- Rebinding: click the pencil on a row to enter capture, and the binding is saved the moment you press it — there is no confirm button. A single click replaces; Shift+click adds another key (one command can have multiple bindings). Esc, clicking elsewhere, or clicking cancel exits capture. A two-step chord first shows "⌘K …" and commits automatically after 1 second.
- Conflicts never overwrite silently: on a collision it refuses to save, keeps capturing, writes "already used by such-and-such command" below the input in a warning color, and marks the input invalid. ⌘G / ⇧⌘G are reserved for in-page find and cannot be bound to another command — colliding with them is rejected outright in the name of "Find". ⌘F is now an ordinary command key that opens the command menu (session search) by default, and it can be changed.
- Resetting a single binding needs no confirmation; "restore all defaults" asks once. Commands with no binding show "Unassigned".
- Changes take effect immediately, and the shortcuts shown on native menu items update too — menus and key bindings come from the same data, so you will never see a menu that says ⌘N while pressing it does nothing.
Common default bindings
- Sessions: ⌘/Ctrl+N new conversation, ⌘/Ctrl+O open folder, ⌘/Ctrl+⌥R rename, ⇧⌘/Ctrl+A archive, ⌘/Ctrl+⌥P pin/unpin.
- Navigation: ⌘/Ctrl+K or ⌘/Ctrl+F command menu (session search; when focus is on a surface with its own in-page find, such as the browser panel, ⌘F stays with it), ⌘/Ctrl+P search files, ⌘/Ctrl+1…9 switch to session N.
- Panels: ⌘/Ctrl+B sidebar, ⌘/Ctrl+J work panel, Ctrl+` terminal, ⇧⌘/Ctrl+E files panel.
- Configuration: ⌘/Ctrl+, Settings, ⌘/Ctrl+/ shortcut overview (a read-only dialog listing every binding actually in effect, including the ones you changed).
- Voice: ⌘/Ctrl+⇧V start or stop dictation.
- System-level global hotkeys (active in other apps too): ⌘/Ctrl+⇧K summon the main window, ⌘/Ctrl+⇧Space quick input card; see quick input and global hotkeys; ⌥Space (Win+Alt+P on Windows) shows or hides Mini, see Mini and Pets.
Menu bar (macOS)
App / File / Edit / Window are the standard macOS items (Edit also carries the Substitutions and Speech system submenus). View holds reload interface, force reload, developer tools, and full screen, plus a group of panel toggles (sidebar, work panel, Overview, files, changes, browser, terminal) — their shortcuts are the same ones you change in the settings page. Zoom is Electron's standard trio (reset to actual size / zoom in / zoom out), that is ⌘0, ⌘+, ⌘-.
The Help menu is not empty: it holds the command menu, file search, and the shortcut overview item. Klaus ships no in-app help pages; the product documentation is this manual.