>

Claude Code is Anthropic's official AI coding agent, used by developers at companies from startups to Fortune 500. Learn more →

Claude Code Features

Claude Code Keyboard Shortcuts: Complete Guide

Stop clicking through menus. Learn the keyboard shortcuts that make Claude Code faster, from essential commands everyone should know to custom keybindings for power users.

Updated February 10, 2026 · 13 min read

The five essential Claude Code shortcuts are Shift+Tab to cycle permission modes, Ctrl+C to cancel, Ctrl+D to exit, Esc to interrupt a response, and @ to reference files. Beyond these, Claude Code has dozens more for navigation, model switching, and session control.

This guide covers every keyboard shortcut organized by category, the five you should memorize first, and how to create custom keybindings that match your workflow.

What Are Claude Code Shortcuts?

Claude Code keyboard shortcuts are key combinations that trigger actions instantly. They work in the terminal interface and fall into several categories:

Some shortcuts are fixed (like Ctrl+C to cancel), while others can be customized to match your preferences.

The 5 Essential Shortcuts

If you learn nothing else, memorize these five:

Shift+Tab

Cycle through permission modes: Normal, Auto-Accept, Plan. This is the single most important shortcut. It controls whether Claude asks before editing, auto-approves edits, or operates in read-only mode.

Ctrl+C

Cancel the current operation. If Claude is running a command, analyzing files, or generating a response, this stops it immediately.

Ctrl+D

Exit Claude Code entirely. This ends your session and returns you to your regular terminal.

Cmd+P (Mac) / Meta+P

Open the model picker. Switch between Sonnet, Opus, and Haiku, and adjust the thinking effort level.

Ctrl+R

Open history search. Find and re-run previous commands from your session history.

Complete Shortcut Reference

Session Control

Shortcut Action Notes
Ctrl+C Cancel/interrupt Cannot be rebound
Ctrl+D Exit Claude Code Cannot be rebound
Ctrl+T Toggle task list Show/hide background tasks
Ctrl+O Toggle transcript Show verbose output
Ctrl+B Background task Send current task to background

Mode Switching

Shortcut Action Notes
Shift+Tab Cycle permission modes Normal, Auto-Accept, Plan
Cmd+T / Meta+T Toggle thinking mode Extended reasoning on/off
Cmd+P / Meta+P Open model picker Change model and effort

Windows note: On Windows without VT mode (Node <24.2.0/<22.17.0, Bun <1.2.23), mode switching defaults to Meta+M instead of Shift+Tab.

Model Picker Controls

When the model picker is open (Cmd+P), use arrow keys to adjust the effort level slider:

Shortcut Action Notes
Left Decrease effort level Low = faster, cheaper
Right Increase effort level High = deeper reasoning

Effort levels (low, medium, high) control Opus 4.6's adaptive reasoning. Lower effort is faster and cheaper for straightforward tasks; higher effort provides deeper reasoning for complex problems.

Chat Input

Shortcut Action Notes
Enter Submit message Send your prompt to Claude
Escape Cancel input Clear current input
Ctrl+G External editor Open prompt in your editor
Ctrl+S Stash prompt Save current prompt for later
Ctrl+V Paste image Alt+V on Windows
Ctrl+_ Undo Undo last action

History Navigation

Shortcut Action Notes
Ctrl+R Search history Opens history search mode
Up Previous item Navigate history backward
Down Next item Navigate history forward

Autocomplete

Shortcut Action Notes
Tab Accept suggestion Complete the current suggestion
Escape Dismiss menu Close autocomplete
Up Previous suggestion Navigate suggestions
Down Next suggestion Navigate suggestions

Confirmation Dialogs

Shortcut Action Notes
Y or Enter Confirm (Yes) Approve the action
N or Escape Decline (No) Reject the action
Tab Next field Move between options
Shift+Tab Cycle modes Change permission mode
Ctrl+E Toggle explanation Show permission details

Diff Viewer

Shortcut Action Notes
Escape Close diff Exit diff viewer
Left / Right Navigate sources Switch between diff sources
Up / Down Navigate files Move between changed files
Enter View details Open file diff

Mode Switching Explained

The Shift+Tab shortcut cycles through three permission modes:

Mode Edits Commands Use When
Normal Ask Ask Default, review everything
Auto-Accept Auto Ask Trust edits, verify commands
Plan Blocked Blocked Read-only analysis

Press Shift+Tab repeatedly to cycle: Normal, Auto-Accept, Plan, Normal...

The current mode shows in your terminal status. Watch for indicators like "auto-accept on" or "plan mode on" to confirm the switch.

I documented all my Claude Code productivity shortcuts and workflows in a free guide — it covers the full setup from installation to daily use.

Customizing Keybindings

You can customize most keyboard shortcuts to match your preferences.

Step 1: Open the Configuration File

Run /keybindings in Claude Code. This creates or opens ~/.claude/keybindings.json.

Step 2: Add Your Bindings

{
  "$schema": "https://platform.claude.com/docs/schemas/claude-code/keybindings.json",
  "bindings": [
    {
      "context": "Chat",
      "bindings": {
        "ctrl+e": "chat:externalEditor",
        "ctrl+s": null
      }
    }
  ]
}

Step 3: Save

Changes apply automatically. No restart required.

Configuration Structure

The keybindings file has this structure:

Each binding block specifies:

Available Contexts

Context Description
Global Applies everywhere in the app
Chat Main chat input area
Autocomplete Autocomplete menu open
Confirmation Permission and confirmation dialogs
HistorySearch History search mode (Ctrl+R)
DiffDialog Diff viewer navigation
ModelPicker Model selection and effort level
Task Background task running
MessageSelector Rewind and summarize dialog
Transcript Transcript viewer
Settings Settings menu
ThemePicker Theme picker dialog
Attachments Image/attachment bar navigation
Footer Footer indicator navigation
Select Generic select/list components
Plugin Plugin dialog (browse, manage)

Keystroke Syntax

Modifiers connect with +:

Modifier names:

Special keys: escape, enter, tab, space, up, down, left, right, backspace, delete

Unbinding Shortcuts

Set an action to null to unbind it:

{
  "bindings": [
    {
      "context": "Chat",
      "bindings": {
        "ctrl+s": null
      }
    }
  ]
}

Key Chords

Create multi-key sequences with spaces:

"ctrl+k ctrl+s": "chat:stash"

This requires pressing Ctrl+K, releasing, then Ctrl+S.

Real Examples

Example 1: Vim-Style Navigation

{
  "bindings": [
    {
      "context": "MessageSelector",
      "bindings": {
        "k": "messageSelector:up",
        "j": "messageSelector:down",
        "K": "messageSelector:top",
        "J": "messageSelector:bottom"
      }
    }
  ]
}

Example 2: Quick External Editor

{
  "bindings": [
    {
      "context": "Chat",
      "bindings": {
        "ctrl+e": "chat:externalEditor"
      }
    }
  ]
}

Example 3: Disable Accidental Exits

{
  "bindings": [
    {
      "context": "Chat",
      "bindings": {
        "ctrl+q": null
      }
    }
  ]
}

Reserved Shortcuts

These shortcuts cannot be rebound:

Shortcut Reason
Ctrl+C Hardcoded interrupt/cancel
Ctrl+D Hardcoded exit

Terminal Conflicts

Some shortcuts may conflict with terminal multiplexers:

Shortcut Conflict
Ctrl+B tmux prefix (press twice to send)
Ctrl+A GNU screen prefix
Ctrl+Z Unix process suspend

Tip: If you use tmux, you may need to press Ctrl+B twice: once for tmux prefix, once for Claude Code background task.

Common Mistakes

  1. Forgetting Shift+Tab exists: Many people manually change modes through settings. Shift+Tab is instant and does the same thing.
  2. Using Ctrl+C to clear input: Ctrl+C cancels operations. Use Escape to clear your input without interrupting Claude.
  3. Not using history search: Ctrl+R lets you search previous prompts. Faster than scrolling or retyping.
  4. Missing the model picker: Cmd+P opens the model picker instantly. No need to type /model.
  5. Invalid keybindings.json: Run /doctor to check for keybinding errors. The file must be valid JSON.

FAQ

Why does Shift+Tab not work on Windows?

Older Node versions on Windows without VT mode use Meta+M instead. Update Node to version 24.2.0+ (or 22.17.0+) or Bun 1.2.23+ for Shift+Tab support.

Can I use vim keybindings in Claude Code?

Yes. Run /vim to enable vim mode for text editing. Vim mode handles input (cursor movement, modes), while keybindings handle app actions (submit, toggle). They work independently.

How do I reset keybindings to default?

Delete ~/.claude/keybindings.json. Claude Code returns to default shortcuts.

Do keybindings sync across machines?

No. Keybindings are stored locally in ~/.claude/keybindings.json. Copy the file to sync between machines.

Where can I see all available actions?

Actions follow the namespace:action format. Common namespaces include app:, chat:, history:, and confirm:. The official documentation lists all actions by context.

Quick Reference Card

Essential Shortcuts

Shift+Tab Cycle permission modes
Ctrl+C Cancel operation
Ctrl+D Exit Claude Code
Cmd+P Model picker
Cmd+T Toggle thinking
Ctrl+R History search
Ctrl+G External editor
Tab Accept autocomplete
Escape Cancel/dismiss
Y / N Confirm/decline
Ctrl+B Background current task
Left / Right Adjust effort level (in model picker)

Free: The AI Growth Breakdown

See how one business went from 0 to 600 daily visitors in 14 days using AI. The exact tools and results.

Get the Free Breakdown →

Keep reading