Skip to content

IDE Integration

Maximize your productivity by integrating Claude Code with your IDE. This guide covers installation, configuration, keyboard shortcuts, and advanced features for VS Code, JetBrains IDEs, and terminal environments.

IDE Compatibility

Claude Code provides dedicated integrations for:

  • VS Code (including Cursor, Windsurf, VSCodium)
  • JetBrains IDEs (IntelliJ, PyCharm, WebStorm, PhpStorm, GoLand, Android Studio)
  • Any Terminal (iTerm2, Terminal.app, Windows Terminal, etc.)

Even without specific integration, Claude Code works in any environment with a terminal.

  1. Install Claude Code CLI (if not already done)

    Terminal window
    npm install -g @anthropic-ai/claude-code
  2. Start Claude Code from your IDE’s terminal

    Terminal window
    claude
  3. Extension auto-installs (VS Code) or Install plugin (JetBrains)

  4. Test integration

    • Use keyboard shortcuts
    • Try diff viewing
    • Check diagnostic sharing

Simply run claude from VS Code’s integrated terminal - the extension installs automatically.

VS Code Integration Features

FeatureShortcutDescription
Quick LaunchCmd+Esc (Mac)
Ctrl+Esc (Win/Linux)
Open Claude Code from editor
Diff ViewingAutomaticView changes in VS Code’s diff editor
File ReferenceCmd+Option+K (Mac)
Alt+Ctrl+K (Win/Linux)
Insert file references (@File#L1-99)
Selection ContextAutomaticCurrent selection shared with Claude
Diagnostic SharingAutomaticLinter errors sent to Claude
Multiple InstancesManualRun parallel Claude sessions in split panes
.vscode/settings.json
// .vscode/settings.json
{
"claude-code.diffTool": "auto",
"claude-code.autoLaunch": true,
"claude-code.diagnosticSharing": true,
"claude-code.selectionContext": true,
"terminal.integrated.defaultProfile.osx": "zsh",
"terminal.integrated.fontSize": 14
}

Run multiple Claude instances for different parts of your codebase:

  1. Split terminal panes

    • Right-click terminal tab → “Split Terminal”
    • Or use Cmd+\ (Mac) / Ctrl+\ (Windows/Linux)
  2. Navigate to different directories

    Terminal window
    # Terminal 1
    cd frontend
    claude
    # Terminal 2
    cd backend
    claude
  3. Work in parallel

    • Each instance maintains separate context
    • Ideal for frontend/backend separation
  1. Open JetBrains IDE (IntelliJ, PyCharm, etc.)
  2. Go to Settings → Plugins → Marketplace
  3. Search for “Claude Code”
  4. Install and restart IDE completely

JetBrains Integration Features

  • Quick Launch: Same keyboard shortcuts as VS Code
  • Integrated Diff Viewer: View changes in JetBrains diff tool
  • Project Context: Automatic project structure awareness
  • Run Configurations: Access to project run configs
  • Database Integration: Works with DataGrip features
  1. Ensure Claude Code is run from project root
  2. Check plugin is enabled in Settings
  3. Completely restart IDE (may need multiple restarts)
  4. For Remote Dev, verify plugin is on remote host
  1. Run terminal setup

    Terminal window
    /terminal-setup

    This configures Shift+Enter for multiline input

  2. Manual configuration for different terminals

    • Preferences → Keys → Key Bindings
    • Add: Shift+Enter → Send Text: \x1b[13;2u

Entering Multiline Text

MethodShortcutWorks In
Quick Escape\ + EnterAll terminals
Shift+EnterShift + EnterAfter setup
Option+EnterOption + EntermacOS default
Paste ModeDirect pasteFor code blocks
Vim Mode/vim then o/OWith Vim enabled

Recommended Settings:

  • Enable “Unlimited scrollback”
  • Set up system notifications
  • Configure semantic history
  • Use profiles for different projects

Notifications:

Terminal window
# Enable iTerm2 notifications
claude config set preferredNotifChannel iterm2_with_bell

Use /ide command to connect Claude Code running in external terminal to your IDE:

  1. Open IDE with your project

  2. In external terminal

    Terminal window
    cd /path/to/project
    claude
    /ide
  3. Claude detects and connects to IDE

    • Enables diff viewing
    • Shares diagnostics
    • Syncs file context

Configure your preferred diff viewer:

Diff tool configuration
{
"diffTool": "auto", // Auto-detect IDE
// Or specify explicitly:
// "diffTool": "vscode"
// "diffTool": "intellij"
// "diffTool": "meld"
// "diffTool": "vimdiff"
}

Enable Vim keybindings within Claude:

  1. Enable Vim mode

    Terminal window
    /vim

    Or configure permanently:

    Terminal window
    claude config set vimMode true
  2. Supported commands

    • Mode switching: Esc, i, a, o
    • Navigation: h/j/k/l, w/e/b, 0/$
    • Editing: x, dd, cc, . (repeat)
    • And more standard Vim commands

Effective Workflows

1. Quick Fix Pattern

  • See error in IDE
  • Cmd+Esc to launch Claude
  • “Fix the TypeScript error in UserService.ts”
  • Review diff in IDE
  • Accept or modify

2. Feature Development

  • Write tests in IDE
  • Launch Claude: “Implement the UserProfile component to pass these tests”
  • Watch live implementation
  • Debug in IDE

3. Code Review Prep

  • Select code block
  • Launch Claude: “Review this code for security issues”
  • Get instant feedback
  • Fix issues before PR

Symptoms: Shortcuts don’t work, no Claude button

Solutions:

  1. Verify Claude Code is installed: claude --version
  2. Check IDE CLI tool: which code (or cursor, etc.)
  3. Manually trigger install from terminal
  4. Check extension logs in IDE
  • Use native Terminal.app or iTerm2 for best experience
  • Configure keyboard shortcuts in System Preferences if needed
  • Enable accessibility permissions for keyboard shortcuts
  • Prefer WSL 2 over native Windows
  • Use Windows Terminal for modern experience
  • Configure Git Bash path if using native mode
  • Works with all major terminals
  • May need to configure keybindings manually
  • Check shell compatibility (bash/zsh/fish)
ActionVS CodeJetBrainsTerminal
Launch ClaudeCmd+EscCmd+Escclaude
Stop ClaudeEscEscEsc
File ReferenceCmd+Opt+KCmd+Opt+KType @file
MultilineAutoAuto\+Enter
Clear ScreenN/AN/ACtrl+L
ExitN/AN/ACtrl+D

Remember: The IDE integration is designed to be invisible when it’s working correctly - you get all the benefits without thinking about it.