Terminal Setup
Atomic uses the Kitty keyboard protocol for reliable modifier key detection. Most modern terminals support this protocol, but some require configuration.Kitty, iTerm2
Work out of the box.Ghostty
Add to your Ghostty config (~/Library/Application Support/com.mitchellh.ghostty/config on macOS, ~/.config/ghostty/config on Linux):
CTRL+J, so tmux and Atomic no longer see a real shift+enter key event.
If Claude Code 2.x or newer is the only reason you added that mapping, you can remove it, unless you want to use Claude Code in tmux, where it still requires that Ghostty mapping.
If you want SHIFT+Enter to keep working in tmux via that remap, add ctrl+j to your Atomic tui.input.newLine keybinding in ~/.atomic/agent/keybindings.json:
WezTerm
Create~/.wezterm.lua:
VS Code (Integrated Terminal)
keybindings.json locations:
- macOS:
~/Library/Application Support/Code/User/keybindings.json - Linux:
~/.config/Code/User/keybindings.json - Windows:
%APPDATA%\\Code\\User\\keybindings.json
keybindings.json to enable SHIFT+Enter for multi-line input:
Windows Terminal
Add tosettings.json (CTRL+SHIFT+, or Settings → Open JSON file) to forward the modified Enter keys Atomic uses:
SHIFT+Enterinserts a new line.- Windows Terminal binds
ALT+Enterto fullscreen by default. That prevents Atomic from receivingALT+Enterfor follow-up queueing. - Remapping
ALT+EntertosendInputforwards the real key chord to Atomic instead.
actions array, add the objects to it. If the old fullscreen behavior persists, fully close and reopen Windows Terminal.
xfce4-terminal, terminator
These terminals have limited escape sequence support. Modified Enter keys likeCTRL+Enter and SHIFT+Enter cannot be distinguished from plain Enter, preventing custom keybindings such as submit: ["ctrl+enter"] from working.
For the best experience, use a terminal that supports the Kitty keyboard protocol:
IntelliJ IDEA (Integrated Terminal)
The built-in terminal has limited escape sequence support. SHIFT+Enter cannot be distinguished from Enter in IntelliJ’s terminal. If you want the hardware cursor visible, setATOMIC_HARDWARE_CURSOR=1 before running Atomic. The legacy PI_HARDWARE_CURSOR=1 alias also works; the hardware cursor is disabled by default for compatibility.
Consider using a dedicated terminal emulator for the best experience.