osfeed.dev
Projects/helix-editor / helix

Helix

A modal terminal editor with built-in language server support

Get it on GitHub
Unclaimed

This page was written by @iluxav from public sources, last updated for 25.07.1 (2025-07-18), and may lag behind new releases.

Are you @helix-editor?Claim this page to keep it up to date
25.07.1 · 11 things you can do 8 changes to know before upgrading
Follow GitHub

Edit code in the terminal with Kakoune-style modal commands and multiple selections, with completion, diagnostics and syntax-aware motions working without plugins.

What you can do with Helix

Edit text with modal, selection-first commands and act on many selections at once.

Present at 22.12

Get completion, diagnostics, go to definition, hover and rename from language servers without installing plugins.

2 other tools for code completion
Present at 22.12
Good to know

Each language server must be installed separately.

Highlight code and select or move by syntax nodes using tree-sitter grammars.

1 other tool for syntax highlighting
Present at 22.12
Good to know

Indentation rules exist only for some languages.

Start in a chosen working directory or open a file at a given line from the command line.

Since 23.10

Jump to any visible word by typing the label shown on it.

Since 24.03
Show all 11

Save all open buffers automatically after a delay.

Since 24.07

Show language server diagnostics inline next to the code.

Since 25.01

Explore directories and open files from a picker.

Since 25.07.1

Before you upgrade Helix

Newest first
Show 5 older
Helix release history 9
25.07.1

Browse and open project directories from a file explorer picker.

Details

The command line was rewritten with flags and expansions, so quoting changed and :rsort became :sort --reverse; a directory-exploring picker, EditorConfig support, LSP document colors and a new tree-sitter highlighter. 25.07.1 lowers the glibc needed by the GitHub release binaries. Groups 25.07 and 25.07.1.

Also: Cycle multiple LSP hover responses with A-n/A-p, --no-format for :write, goto_column.

25.07.1; building from source needs Rust 1.82.

Added: Explore directories and open files from a picker.Improved: Configure the editor, keys, themes and languages in…Action required: Edit text with modal, selection-first commands and…Improved: Get completion, diagnostics, go to definition, hove…Action requiredBehavior changedAction required: Get completion, diagnostics, go to definition, hove…

Seeded by @iluxav with Claude Code (canido)

Read the evidence
25.01.1

External formatters now run from the edited file's directory, so they find that project's formatter config.

Details

External formatters run with the document's directory as working directory; fixes for regressions from 25.01.

25.01.1.

Behavior changed

Seeded by @iluxav with Claude Code (canido)

Read the evidence
25.01

See diagnostics inline at the end of the line or under it.

Details

Pickers use a table layout filterable by column and global search can change its query live; inline diagnostics; keybindings as macros; path completion; switchable clipboard providers; Super key bindings.

Also: Line comments continue on o/O and Enter; snippet tabstops; camelCase and snake_case word motions.

25.01.

Added: Show language server diagnostics inline next to the…Improved: Open files, buffers and symbols, and search the wor…Improved: Configure the editor, keys, themes and languages in…Action required: Get completion, diagnostics, go to definition, hove…Behavior changed: Edit text with modal, selection-first commands and…

Seeded by @iluxav with Claude Code (canido)

Read the evidence
24.07

Save all open files automatically after a set delay.

Details

Auto-save after a delay, a picker of files changed in version control, writes through a temporary file, and A-n/A-p to cycle LSP signatures.

Also: select_all_siblings (A-a), select_all_children (A-I), :read, tree-sitter based bracket matching.

24.07; building from source needs Rust 1.74.

Added: Save all open buffers automatically after a delay.Improved: Open files, buffers and symbols, and search the wor…Action required

Seeded by @iluxav with Claude Code (canido)

Read the evidence
24.03

Jump to any visible word by typing a two-letter label.

Details

file-types in languages.toml accepts globs ({ glob = "Makefile" }); suffix entries are gone and plain filenames no longer match. New jump command, block comment toggle, popup borders, URLs opened with goto_file.

Also: LSP window/showDocument, diagnostic tags, required roots for language servers, a file-absolute-path statusline element.

24.03.

Added: Jump to any visible word by typing the label shown…Action required: Configure the editor, keys, themes and languages in…Improved: Edit text with modal, selection-first commands and…

Seeded by @iluxav with Claude Code (canido)

Read the evidence
23.10

Run several language servers for one language, for example a linter next to the main server.

Details

Language servers are now defined in [language-server.<name>] tables and attached with language-servers = [...] in [[language]]. Fuzzy matching moved to Nucleo; new -w/--working-dir and +N flags; .helix/ignore files.

Also: Special registers (%, #, ., *, +), smart tab, a trailing newline on write.

23.10.

Improved: Get completion, diagnostics, go to definition, hove…Action required: Get completion, diagnostics, go to definition, hove…Improved: Open files, buffers and symbols, and search the wor…Added: Start in a chosen working directory or open a file…

Seeded by @iluxav with Claude Code (canido)

Read the evidence
23.05

Get highlighting inside embedded code identified by its file extension or shebang.

Details

Languages can be injected by file extension and shebang; a config option excludes the declaration from LSP references; the buffer picker sorts by most recent use.

23.05.

Improved: Highlight code and select or move by syntax nodes u…Improved: Open files, buffers and symbols, and search the wor…Improved: Get completion, diagnostics, go to definition, hove…

Seeded by @iluxav with Claude Code (canido)

Read the evidence
23.03

Wrap long lines on screen without changing the file.

Details

Soft-wrap, LSP type hints, per-workspace .helix/config.toml and a workspace-lsp-roots option; goto_*_diag and goto_*_change now select the diagnostic or change range.

Also: Initial LSP snippet completions, a version-control HEAD statusline element, Kitty keyboard protocol on supported terminals.

23.03; building from source needs Rust 1.65.

Added: Wrap long lines on screen without inserting line br…Improved: Get completion, diagnostics, go to definition, hove…Improved: Configure the editor, keys, themes and languages in…Action required: Configure the editor, keys, themes and languages in…Behavior changed: Edit text with modal, selection-first commands and…Action required

Seeded by @iluxav with Claude Code (canido)

Read the evidence
22.12
Starting point

Edit code in the terminal with modal commands, multiple selections and language server features built in.

Details

What Helix offered up to 22.12: Kakoune-style modal editing with multiple selections, built-in language server client, tree-sitter highlighting and motions, fuzzy pickers, and TOML configuration.

Packaged by most Linux distributions; prebuilt binaries on GitHub releases; builds with Rust.

Added: Edit text with modal, selection-first commands and…Added: Get completion, diagnostics, go to definition, hove…Added: Highlight code and select or move by syntax nodes u…Added: Open files, buffers and symbols, and search the wor…Added: Configure the editor, keys, themes and languages in…

Seeded by @iluxav with Claude Code (canido)

Read the evidence