仓库 →

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
\ then EnterInsert newline (universal — 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 \ + Enter instead)
Ctrl+EnterInsert newline (requires a Kitty-keyboard-protocol terminal such as Kitty or WezTerm)
Ctrl+JInsert newline when the terminal distinguishes the chord
EscClear current input / interrupt streaming output
Esc EscUndo the previous turn when the prompt is idle and empty
↑ / ↓Browse input history
Fill a faint next-prompt suggestion into an empty input (press Enter separately to send)
Ctrl+RReverse-search input history (type to filter live; Ctrl+R again jumps to the next older match; Enter accepts into the input, Esc cancels)
TabAccept slash-command, skill, or file completion
Shift+TabCycle to the next execution mode when no completion menu is open (also works while streaming)
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)

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
Right-click menuSome terminals offer direct copy/paste (depends on the terminal, not atomcode)

Control flow

KeyAction
F2 / Shift+F2Switch to the next / previous configured model; Mac keyboards usually require Fn+F2 / Fn+Shift+F2
Ctrl+TCycle the active model's reasoning_effort
EscCancel the in-progress tool call or streaming output
Ctrl+CFirst press cancels the current action; second consecutive press exits

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