Claude Code for Helix Editor — Workflow Guide

Written by Michael Lip · Solo founder of Zovo · $400K+ on Upwork · 100% JSS Join 50+ builders · More at zovo.one

The Setup

You are using Helix, the post-modern modal text editor written in Rust with built-in LSP support and tree-sitter syntax highlighting. Running Claude Code alongside Helix in a terminal multiplexer creates a powerful editing workflow. Claude Code handles code generation and refactoring while Helix handles precise editing with its selection-first modal keybindings.

What Claude Code Gets Wrong By Default

  1. Generates Vim/Neovim keybinding instructions. Claude provides Vim commands like :wq or dd. Helix uses a different modal paradigm — selection-first with w to select a word, then d to delete it, rather than Vim’s verb-first approach.

  2. References .vimrc or init.lua for configuration. Claude writes Neovim configuration files. Helix uses ~/.config/helix/config.toml for settings and ~/.config/helix/languages.toml for language-specific configuration.

  3. Installs Vim plugins for features Helix has built-in. Claude suggests telescope, nvim-treesitter, or LSP plugins. Helix has built-in file picker (<space>f), tree-sitter (built-in), and LSP support — no plugin system needed.

  4. Generates files without considering Helix’s buffer workflow. Claude creates files with touch or writes them directly. Helix works with buffers — using :open filename to create and edit, with the buffer list accessible via <space>b.

The CLAUDE.md Configuration

# Helix Editor Development Workflow

## Editor
- Editor: Helix (hx) — modal, selection-first
- Config: ~/.config/helix/config.toml
- Languages: ~/.config/helix/languages.toml
- LSP: built-in, auto-detects installed language servers

## Workflow Rules
- Run Claude Code and Helix in tmux/zellij split panes
- Claude Code generates files; open in Helix with :open <path>
- Helix has built-in file picker (<space>f), tree-sitter, LSP
- No plugins needed — all features are built-in
- Use Helix's :pipe command to send selections to shell commands
- Format on save configured in languages.toml per language

## Conventions
- Helix in left pane, Claude Code in right pane
- Apply Claude Code patches via file writes, reload in Helix (:reload)
- Use Helix's multi-cursor (C) for batch edits Claude suggests
- LSP servers installed via package manager, not editor plugins
- Theme: configured in config.toml, not terminal emulator
- Use :sh command in Helix for quick shell commands

Workflow Example

You want to refactor a function using Claude Code and apply changes in Helix. Prompt Claude Code:

“Refactor the processOrder function in src/orders.ts to extract the validation logic into a separate validateOrder function. Show me the exact changes needed.”

Claude Code should write the refactored code to the file. In Helix, run :reload to see the changes, then use <space>f to jump to the file, gd for go-to-definition to verify the new function, and <space>d to check LSP diagnostics confirm no type errors.

Common Pitfalls

  1. Expecting VS Code extension support. Claude suggests installing Helix extensions or plugins. Helix deliberately has no plugin system (as of 2026) — features are built-in or use external tools via :pipe and :sh.

  2. Helix config syntax errors. Claude writes JSON or YAML for Helix config. Helix uses TOML exclusively for both config.toml and languages.toml. A syntax error in config prevents Helix from starting with no helpful error message.

  3. LSP server not found after Claude installs it. Claude installs an LSP server with npm but Helix cannot find it. Helix looks for LSP binaries in $PATH — ensure the installed server binary is in a PATH directory, or configure the full path in languages.toml.