Skip to main content

Keyboard shortcuts

Keyboard shortcuts may vary by platform and terminal. In fullscreen rendering, press ? in the transcript viewer to see available shortcuts there.macOS users: Option/Alt key shortcuts (Alt+B, Alt+F, Alt+Y, Alt+P) require configuring Option as Meta in your terminal. See Enable Option key shortcuts on macOS for the setting in each terminal.

General controls

Text editing

Theme and display

Multiline input

Quick commands

Transcript viewer

When the transcript viewer is open (toggled with Ctrl+O), these shortcuts are available. Run /tui with no argument to check which renderer is active. Ctrl+E can be rebound via transcript:toggleShowAll.

Voice input

Commands

Type / in Claude Code to see all available commands, or type / followed by any letters to filter. The / menu shows everything you can invoke: built-in commands, bundled and user-authored skills, and commands contributed by plugins and MCP servers. Not all built-in commands are visible to every user since some depend on your platform or plan. In fullscreen rendering, the / command and @ file suggestion lists also respond to the mouse: hovering highlights a row and clicking accepts it. See the commands reference for the full list of commands included in Claude Code.

Vim editor mode

Enable vim-style editing via /config → Editor mode.

Mode switching

Remap INSERT-mode key sequences

The vimInsertModeRemaps setting maps a two-key INSERT-mode sequence to Escape, so a mapping like jj returns you to NORMAL mode. Requires Claude Code v2.1.208 or later. The following ~/.claude/settings.json example turns on vim mode and maps jj to Escape:
Each key is exactly two printable characters typed in sequence, and "<Esc>" is the only supported target. Entries with a different length or target are ignored. Typing the first character of a sequence inserts it normally. Pressing the second character within one second removes that pending character and switches to NORMAL mode, leaving neither character in your input. After the one-second window, or if a different key follows, both characters stay as literal text, so you can still type a word containing the sequence by pausing between the two keys. Claude Code reads this setting from your user settings file, the --settings flag, and managed settings only. Entries in a project’s .claude/settings.json or .claude/settings.local.json are ignored, so a checked-out repository can’t remap your keystrokes.