helix-editor/helix
Helix
Helix is a post-modern modal text editor written in Rust. It is inspired by Kakoune and Neovim, with a "selection -> action" editing model, multiple selections as a core primitive, built-in language server support, and tree-sitter-powered syntax features.
What this wiki covers
This wiki documents the internals of the Helix codebase. It is aimed at contributors and curious readers who want to understand how the editor is structured, how text is represented and manipulated, how the terminal UI is rendered, and how subsystems like LSP, DAP, syntax highlighting, and the event bus fit together.
User-facing documentation (keymaps, language support, configuration reference) lives in the Helix book and the source under book/. This wiki complements the book by drilling into the Rust source code.
At a glance
- Language: Rust (edition 2021, MSRV 1.90)
- Workspace: A Cargo workspace with 14 crates and an
xtasktask runner — seeCargo.toml - Binary:
hx(defined inhelix-term/src/main.rs) - License: MPL-2.0
- Versioning: Calendar versioning (
YY.MM), currently25.7.1— seedocs/releases.md - Configuration: TOML files in the user config directory; runtime assets live in
runtime/
Quick links
- Architecture — crate boundaries, data flow, layered design
- Getting started — build, run, and develop on Helix
- Glossary — Helix-specific terminology
- Packages — per-crate documentation
- Primitives — core types like
Rope,Selection,Transaction - Features — modal editing, multiple selections, LSP, syntax, pickers
- How to contribute — workflow, testing, conventions
- Reference — configuration, keymap, languages
Where to start reading code
- The terminal binary entry point:
helix-term/src/main.rs - The application event loop:
helix-term/src/application.rs - Editor-wide state:
helix-view/src/editor.rs - The bulk of editing commands:
helix-term/src/commands.rs - Default keybindings:
helix-term/src/keymap/default.rs - The text rope and editing primitives:
helix-core/
Project intent
The project vision sums it up: "An efficient, batteries-included editor you can take anywhere and be productive." Helix is terminal-first, native (no Electron), cross-platform, and intentionally opinionated. The editing model is borrowed from Kakoune (selection-first), and the vocabulary borrows from Vim (modal, motions, text objects).
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.