Using Claude Code with Vim, Helix, and JetBrains: the editor-agnostic AI workflow
Claude Code runs in a terminal, which means it works with any editor. Here is the working setup for Vim, Helix, and JetBrains — including the integration patterns that earn their keep.
Cursor and Windsurf are forks of VS Code; they only work if you use VS Code as your editor. Claude Code runs in a terminal, which means it works with whatever editor you already use. This is real freedom — if you’ve invested years in Vim, Helix, or JetBrains config, Claude Code lets you keep that investment.
After daily use across all three editors on different projects, here are the working integration patterns.
The shared pattern
Regardless of editor, the working layout:
- Editor in one terminal pane / window
- Claude Code in another terminal pane
- A shared “git-aware project root” — both processes know about the same files
The flow:
- You write code in your editor
- When you want AI help, you tab to the Claude Code pane
- Claude Code reads files via its own filesystem access; doesn’t need to share your editor’s buffer
- Edits Claude Code makes appear on disk; your editor reloads them
- You review the changes (in editor, or via
git diff), accept or revert via git
That’s it. The “integration” between editor and Claude Code is just “they’re both looking at the same files on disk.”
Vim / Neovim
For Vim users, the recommended setup:
1. Terminal multiplexer. Tmux or Zellij. Split window vertically: Vim on the left, Claude Code on the right. Switch with the multiplexer keybindings (Ctrl-b o for tmux).
2. Auto-reload edits. Add to .vimrc:
set autoread
au CursorHold,CursorHoldI * checktime
When Claude Code edits a file, Vim auto-reloads it. Without this, you may not see Claude’s changes until you manually reload.
3. Avoid editing the same file simultaneously. If you’re in Vim and Claude Code edits the file, your unsaved Vim changes will conflict. Either commit Vim changes before letting Claude Code work, or open the file in :edit after Claude Code is done.
4. Diff review in Vim. :Gdiff (with fugitive.vim) shows you what Claude Code changed. The diff workflow is actually nicer in Vim than in Cursor for many users.
Helix
Helix has built-in tmux-style splits, so the multiplexer step is unnecessary. Setup:
1. Helix split: Ctrl-w s for horizontal split, Ctrl-w v for vertical.
2. Run Claude Code in one of the splits: :run claude or just use a separate terminal window.
3. Auto-reload: Helix auto-reloads file changes by default. No config needed.
4. The “Claude Code edits, Helix shows” loop is the smoothest of the three in my experience. Helix’s modal model handles the “external process changed my file” case more gracefully than Vim.
JetBrains (IntelliJ, GoLand, PyCharm, etc.)
JetBrains is trickier because the IDE doesn’t share a “filesystem-watching” model as naturally as terminal editors. But it works:
1. Terminal panel inside JetBrains. View → Tool Windows → Terminal. Run Claude Code there.
2. File watcher setup. Settings → Build, Execution, Deployment → File Watchers. Make sure “External File Changes” is on (it is by default). When Claude Code edits a file, JetBrains detects the change and reloads.
3. Diff review in JetBrains. When you save Claude Code’s changes, JetBrains shows the diff in the gutter. Use the built-in VCS → Show Diff for a fuller view.
4. The JetBrains AI Assistant plugin can coexist with Claude Code. They don’t conflict; just don’t expect either to know about the other. Pick one for inline completion (JetBrains AI), use Claude Code for the heavy multi-file work.
What you give up vs. Cursor
The honest list:
- No tab completion via Claude. If you wanted Claude’s suggestions inline in your buffer, that’s not how Claude Code works. You can use Copilot or JetBrains AI for inline completion alongside Claude Code for the heavy tasks.
- No Cmd-K-style “highlight code, describe change” in your editor. To do that with Claude Code you tab over to the Claude Code terminal and reference the file/line ranges.
- Cross-editor “Composer-style” multi-file proposals require more terminal context. You tell Claude Code “here are the files,” vs. Cursor’s magic of “Composer figures out which files matter.”
The trade-off: you keep your editor of choice, your years of muscle memory, your specific plugin stack. You lose some of Cursor’s integrated polish.
Why this matters
The “must use VS Code” requirement of Cursor / Windsurf is a real cost for engineers who have spent years tuning Vim, Helix, or JetBrains. Claude Code is the only AI coding tool at frontier quality that doesn’t make you switch editors.
This isn’t a minor convenience. For senior engineers who care about their editor, it’s often the deciding factor in tool choice.
For the broader Claude Code workflow, see our Claude Code review and Cursor vs Claude Code comparison. For Aider as an alternative terminal-first option, Aider review and Aider vs Claude Code piece.
Sources
Every reference behind this piece. If we make a claim, it's because at least one of these said so — or we lived it ourselves.
- Firsthand Daily Claude Code use with Vim, Helix, and JetBrains across different projects
- Docs Claude Code documentation — Anthropic
- Blog r/ClaudeAI workflow threads — r/ClaudeAI
- YouTube IndyDevDan, AI Jason on terminal-AI workflows — IndyDevDan