Claude Code IDE Integrations: VS Code, JetBrains & More (2026)
Set up Claude Code in every major IDE and editor
Start Building with Hypereal
Access Kling, Flux, Sora, Veo & more through a single API. Free credits to start, scale to millions.
No credit card required • 100k+ developers • Enterprise ready
Claude Code IDE Integrations: VS Code, JetBrains & More (2026)
Claude Code is Anthropic's agentic coding tool that lives in your terminal. While it works great as a standalone CLI, integrating it directly into your IDE transforms it from a separate tool into a seamless part of your development workflow. You can trigger Claude Code from within your editor, send selected code for review, and apply its suggestions without leaving your IDE.
This guide walks you through setting up Claude Code in VS Code, JetBrains IDEs, Neovim, Emacs, and more, with configuration tips for each.
Prerequisites
Before setting up any IDE integration, you need Claude Code installed and authenticated:
# Install Claude Code via npm
npm install -g @anthropic-ai/claude-code
# Authenticate (opens browser for OAuth)
claude
# Verify installation
claude --version
System Requirements
| Requirement | Minimum |
|---|---|
| Node.js | 18+ |
| Operating system | macOS, Linux, Windows (WSL) |
| RAM | 4GB+ |
| Anthropic plan | Max ($100/mo) or API key |
VS Code Integration
VS Code has the most mature Claude Code integration, available as an official extension.
Installation
# Install from VS Code marketplace
code --install-extension anthropic.claude-code
Or search for "Claude Code" in the VS Code Extensions panel (Cmd+Shift+X / Ctrl+Shift+X).
Configuration
After installation, configure the extension in your VS Code settings:
// .vscode/settings.json
{
// Claude Code extension settings
"claudeCode.terminalProfile": "integrated",
"claudeCode.autoApprove": false,
"claudeCode.showInStatusBar": true,
// Keybinding hint: Cmd+Shift+P > "Claude Code" to see all commands
}
Key Features in VS Code
| Feature | How to Access | Description |
|---|---|---|
| Inline chat | Cmd+I / Ctrl+I | Ask Claude about selected code |
| Terminal panel | Claude Code panel in sidebar | Full Claude Code terminal |
| Quick fix | Click lightbulb on errors | Claude suggests fixes for diagnostics |
| Code actions | Right-click > Claude Code | Refactor, explain, test selected code |
| File context | Automatic | Claude sees your open files and project |
Workflow: Fix a Bug with Claude Code in VS Code
- Select the buggy code in your editor
- Press
Cmd+I(orCtrl+I) to open inline chat - Type: "Fix this bug -- the function returns undefined when the input array is empty"
- Review the suggested diff
- Click "Accept" to apply changes
// Before (buggy):
function getAverage(numbers: number[]): number {
const sum = numbers.reduce((a, b) => a + b, 0);
return sum / numbers.length; // Returns NaN for empty arrays
}
// After (Claude Code fix):
function getAverage(numbers: number[]): number {
if (numbers.length === 0) return 0;
const sum = numbers.reduce((a, b) => a + b, 0);
return sum / numbers.length;
}
Custom Keybindings for VS Code
Add these to your keybindings.json for faster Claude Code access:
[
{
"key": "cmd+shift+c",
"command": "claudeCode.openChat",
"when": "editorTextFocus"
},
{
"key": "cmd+shift+e",
"command": "claudeCode.explain",
"when": "editorHasSelection"
},
{
"key": "cmd+shift+r",
"command": "claudeCode.refactor",
"when": "editorHasSelection"
},
{
"key": "cmd+shift+t",
"command": "claudeCode.generateTests",
"when": "editorTextFocus"
}
]
JetBrains Integration (IntelliJ, WebStorm, PyCharm)
Claude Code integrates with JetBrains IDEs through a terminal-based approach and a community plugin.
Method 1: Built-in Terminal Integration
The simplest approach uses JetBrains' built-in terminal:
- Open the Terminal panel (Alt+F12)
- Run
claudeto start Claude Code - Claude automatically detects your JetBrains project context
Method 2: Claude Code Plugin
1. Open Settings > Plugins > Marketplace
2. Search for "Claude Code"
3. Install the plugin and restart the IDE
JetBrains Configuration
<!-- In your IDE settings -->
<component name="ClaudeCodeSettings">
<option name="autoDetectProject" value="true" />
<option name="terminalIntegration" value="true" />
<option name="showToolWindow" value="true" />
</component>
Key Features in JetBrains
| Feature | How to Access |
|---|---|
| Claude Code tool window | View > Tool Windows > Claude Code |
| Send selection to Claude | Right-click > Claude Code > Ask about selection |
| Terminal integration | Alt+F12, then run claude |
| Generate tests | Right-click on class > Claude Code > Generate Tests |
JetBrains Workflow Example
// In IntelliJ, right-click this method and select
// "Claude Code > Optimize"
// Before:
public List<String> filterAndSort(List<String> items) {
List<String> result = new ArrayList<>();
for (String item : items) {
if (item != null && !item.isEmpty()) {
result.add(item.trim().toLowerCase());
}
}
Collections.sort(result);
return result;
}
// Claude Code suggests (using streams):
public List<String> filterAndSort(List<String> items) {
return items.stream()
.filter(item -> item != null && !item.isEmpty())
.map(item -> item.trim().toLowerCase())
.sorted()
.collect(Collectors.toList());
}
Neovim Integration
Neovim users can integrate Claude Code through a terminal split or dedicated plugin.
Method 1: Terminal Split
The simplest approach:
" Open Claude Code in a vertical split terminal
:vsplit | terminal claude
" Or in a horizontal split
:split | terminal claude
" Add a keybinding to your init.lua or init.vim
-- init.lua
vim.keymap.set('n', '<leader>cc', function()
vim.cmd('vsplit | terminal claude')
end, { desc = 'Open Claude Code' })
-- Send selected text to Claude Code
vim.keymap.set('v', '<leader>cs', function()
-- Yank selection and send to Claude Code terminal
vim.cmd('normal! y')
local text = vim.fn.getreg('"')
-- Send to Claude Code terminal buffer
vim.fn.chansend(vim.b.terminal_job_id, text .. '\n')
end, { desc = 'Send to Claude Code' })
Method 2: claudecode.nvim Plugin
The community-maintained claudecode.nvim plugin provides tighter integration:
-- lazy.nvim configuration
{
"anthropics/claudecode.nvim",
dependencies = { "nvim-lua/plenary.nvim" },
config = function()
require("claudecode").setup({
auto_start = false,
keymap = {
toggle = "<leader>cc",
send_selection = "<leader>cs",
accept = "<leader>ca",
reject = "<leader>cr",
},
window = {
position = "right",
width = 0.4,
},
})
end,
}
Neovim Keybinding Cheat Sheet
| Keybinding | Action |
|---|---|
<leader>cc |
Toggle Claude Code panel |
<leader>cs |
Send visual selection to Claude |
<leader>ca |
Accept Claude's suggestion |
<leader>cr |
Reject Claude's suggestion |
<leader>ce |
Explain selected code |
<leader>ct |
Generate tests for current file |
Emacs Integration
Emacs users can integrate Claude Code through vterm or a dedicated package.
Using vterm
;; Add to your init.el or .emacs
(defun open-claude-code ()
"Open Claude Code in a vterm buffer."
(interactive)
(let ((buf (get-buffer "*claude-code*")))
(if buf
(switch-to-buffer buf)
(vterm "*claude-code*")
(vterm-send-string "claude\n"))))
(global-set-key (kbd "C-c c c") 'open-claude-code)
;; Send region to Claude Code
(defun send-region-to-claude ()
"Send the selected region to Claude Code."
(interactive)
(let ((text (buffer-substring-no-properties (region-beginning) (region-end))))
(with-current-buffer "*claude-code*"
(vterm-send-string text)
(vterm-send-return))))
(global-set-key (kbd "C-c c s") 'send-region-to-claude)
Using claude-code.el Package
;; Using straight.el or use-package
(use-package claude-code
:straight (:host github :repo "anthropic/claude-code-emacs")
:config
(setq claude-code-auto-approve nil)
(setq claude-code-window-side 'right)
:bind
(("C-c c c" . claude-code-toggle)
("C-c c s" . claude-code-send-region)
("C-c c e" . claude-code-explain)
("C-c c r" . claude-code-refactor)))
Terminal Multiplexer Integration (tmux)
For developers who prefer terminal-centric workflows:
# Create a tmux layout with Claude Code in a side pane
tmux split-window -h -l 40% 'claude'
# Or add to your .tmux.conf:
bind C-c split-window -h -l 40% 'claude'
tmux + Claude Code Workflow
┌──────────────────────┬─────────────────┐
│ │ │
│ Your editor │ Claude Code │
│ (vim/nano/etc) │ terminal │
│ │ │
│ │ > fix the bug │
│ │ in auth.py │
│ │ │
└──────────────────────┴─────────────────┘
Configuration Tips for All IDEs
Project-Level Configuration
Create a .claude/settings.json file in your project root to configure Claude Code's behavior per-project:
{
"model": "claude-sonnet-4-20250514",
"permissions": {
"allow_file_write": true,
"allow_bash": true,
"allow_web_fetch": false
},
"context": {
"include": ["src/**", "tests/**", "package.json", "tsconfig.json"],
"exclude": ["node_modules/**", "dist/**", ".env"]
}
}
CLAUDE.md Context File
Add a CLAUDE.md file to your project root to give Claude Code persistent context:
# Project: My Web App
## Tech Stack
- Next.js 15 with App Router
- TypeScript strict mode
- Tailwind CSS + shadcn/ui
- Drizzle ORM with PostgreSQL
- tRPC for API routes
## Conventions
- Use functional components with hooks
- Prefer server components where possible
- Use Zod for all validation
- Tests use Vitest + React Testing Library
## Architecture
- /src/app - Next.js routes
- /src/components - Shared UI components
- /src/server - Backend logic and API
- /src/lib - Utilities and helpers
Performance Optimization
| Setting | Recommendation | Why |
|---|---|---|
| Model | Sonnet 4 (default) | Best balance of speed and quality |
| Context includes | Be specific | Reduces token usage and cost |
| Auto-approve | Off (for safety) | Review changes before applying |
| File exclusions | node_modules, dist, .env | Prevents sending unnecessary context |
Comparison: Claude Code vs Other IDE AI Tools
| Feature | Claude Code | GitHub Copilot | Cursor | Cody (Sourcegraph) |
|---|---|---|---|---|
| IDE support | VS Code, JetBrains, Neovim, Emacs, terminal | VS Code, JetBrains, Neovim | Cursor only | VS Code, JetBrains, Neovim |
| Agentic (multi-step) | Yes | Limited | Yes | Limited |
| File editing | Yes (applies diffs) | Inline suggestions | Yes | Inline suggestions |
| Terminal commands | Yes (can run bash) | No | Limited | No |
| Git operations | Yes | No | Limited | No |
| Project-wide changes | Yes | No | Yes | Limited |
| Price | $100-200/mo or API | $10-39/mo | $20-40/mo | Free-$9/mo |
Frequently Asked Questions
Does Claude Code work with VS Code Remote (SSH)?
Yes. Claude Code runs on the remote machine through VS Code's remote terminal, so it has access to the remote filesystem and tools.
Can I use Claude Code with multiple projects simultaneously?
Yes. Each terminal instance of Claude Code operates independently. You can have multiple instances running in different project directories.
Does Claude Code support pair programming?
Claude Code works well in pair programming scenarios. Both developers can interact with the same Claude Code session through a shared terminal (e.g., via tmux or VS Code Live Share).
How much does Claude Code cost through IDE integrations?
The IDE integrations themselves are free. The cost comes from the Claude Code usage, which requires either a Claude Max subscription ($100-200/month) or API access (pay-per-token).
Conclusion
Claude Code's IDE integrations make it a powerful addition to any development workflow. VS Code offers the most polished experience, JetBrains provides solid integration through plugins and terminal, and Neovim/Emacs users can set up efficient workflows with terminal splits and community plugins.
For developers who also need AI-powered media generation in their projects -- images, video, audio, or 3D models -- Hypereal AI provides a developer-friendly API that pairs well with Claude Code. Use Claude Code to write the integration code and Hypereal AI to handle the actual media generation, covering everything from Flux image generation to Sora 2 video creation.
Related Articles
Start Building Today
Get 35 free credits on signup. No credit card required. Generate your first image in under 5 minutes.
