仓库 →

Keybindings

AtomCode's TUI is built on ratatui + crossterm; common keybindings stick close to the conventions of mainstream terminal tools. Run /keys in a session to dump this table into the current scrollback, or /help for the slash-command list.

Input editing

KeyAction
EnterSend the message
Ctrl+JInsert newline (universal — sends a literal LF byte that every terminal accepts)
\ then EnterInsert newline (atomcode fallback — a trailing backslash makes the line a continuation, works in every terminal)
Alt+EnterInsert newline (most terminals; macOS Apple Terminal needs "Use Option as Meta key" enabled under Settings → Profiles → Keyboard; Windows Terminal reserves it by default — release in settings)
Shift+EnterInsert newline (only terminals that disambiguate the modifier: Kitty / WezTerm / iTerm2 with Report Modifiers / Windows Terminal / Ghostty / Warp. Apple Terminal, xterm, GNOME Terminal, VS Code integrated terminal all collapse it to Enter — use Ctrl+J or \ + Enter instead)
Ctrl+EnterInsert newline (requires a Kitty-keyboard-protocol terminal such as Kitty or WezTerm)
EscClear current input / interrupt streaming output
↑ / ↓Browse input history
TabAccept completion (slash-command menu, file paths, etc.)
Ctrl+UClear entire line
Ctrl+WDelete a word
Ctrl+KDelete from cursor to end of line
Ctrl+AMove cursor to line start
Ctrl+EMove cursor to line end

Browse & scroll

KeyAction
Shift+↑ / Shift+↓Scroll one line
PageUp / PageDownScroll one page (10 lines)
Alt+↑ / Alt+↓Jump to previous / next message (macOS Apple Terminal: enable Settings → Profiles → Keyboard → "Use Option as Meta key" first)
Ctrl+↑ / Ctrl+↓Jump to previous / next user message
Home / EndJump to top / bottom of the conversation
Mouse wheelScroll inside the chat area (atomcode captures the wheel)
Ctrl+LClear the current session's messages

Selection & copy

Key / actionEffect
Mouse dragSelect text in the chat area (atomcode-managed; auto-scrolls at selection edges)
Shift+ mouse dragUse the host terminal's native selection (bypasses atomcode; better for cross-viewport copy)
Ctrl+Shift+CCopy selection to system clipboard
/copyCopy the AI's last complete reply
Right-click menuSome terminals offer direct copy/paste (depends on the terminal, not atomcode)

Control flow

KeyAction
EscCancel the in-progress tool call or streaming output
Ctrl+CFirst press cancels the current action; second consecutive press exits
Ctrl+DExits when the input box is empty

Tool permission dialog

When the model is about to execute a dangerous action (destructive bash, writing sensitive files, deleting source code, etc.), AtomCode pops a confirmation dialog:

KeyAction
y / EnterAllow once
aAlways allow this pattern for the current session
n / EscDeny
Don't get greedy

"Always allow" is granted per tool name + argument pattern and only for the current session — it resets next launch. For permanent cross-session exceptions, manage them in config (e.g. allowlists for specific paths).

Next steps