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
Key
Action
Enter
Send the message
\ then Enter
Insert newline (universal — a trailing backslash makes the line a continuation, works in every terminal)
Alt+Enter
Insert 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+Enter
Insert 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+Enter
Insert newline (requires a Kitty-keyboard-protocol terminal such as Kitty or WezTerm)
Ctrl+J
Insert newline when the terminal distinguishes the chord
Esc
Clear current input / interrupt streaming output
Esc Esc
Undo 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+R
Reverse-search input history (type to filter live; Ctrl+R again jumps to the next older match; Enter accepts into the input, Esc cancels)
Tab
Accept slash-command, skill, or file completion
Shift+Tab
Cycle to the next execution mode when no completion menu is open (also works while streaming)
Ctrl+U
Clear entire line
Ctrl+W
Delete a word
Ctrl+K
Delete from cursor to end of line
Ctrl+A
Move cursor to line start
Ctrl+E
Move cursor to line end
Browse & scroll
Key
Action
Shift+↑ / Shift+↓
Scroll one line
PageUp / PageDown
Scroll 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 / End
Jump to top / bottom of the conversation
Mouse wheel
Scroll inside the chat area (atomcode captures the wheel)
Selection & copy
Key / action
Effect
Mouse drag
Select text in the chat area (atomcode-managed; auto-scrolls at selection edges)
Shift+ mouse drag
Use the host terminal's native selection (bypasses atomcode; better for cross-viewport copy)
Ctrl+Shift+C
Copy selection to system clipboard
Right-click menu
Some terminals offer direct copy/paste (depends on the terminal, not atomcode)
Control flow
Key
Action
F2 / Shift+F2
Switch to the next / previous configured model; Mac keyboards usually require Fn+F2 / Fn+Shift+F2
Ctrl+T
Cycle the active model's reasoning_effort
Esc
Cancel the in-progress tool call or streaming output
Ctrl+C
First 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:
Key
Action
y / Enter
Allow once
a
Always allow this pattern for the current session
n / Esc
Deny
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
Slash Commands — pair keybindings with command completion