How to Install Helix on Debian: The Post-Modern Modal Text Editor
Helix is a post-modern modal text editor written in Rust. It takes the modal editing ideas popularised by Vim and Kakoune and refines them into a selection-first model: you select first, then act, with the result of every motion shown before you commit to it. Crucially, Helix ships batteries included — Language Server Protocol support, tree-sitter syntax highlighting and code navigation all work out of the box with no plugins.
Because Helix releases regularly and its language support keeps expanding, the version in Debian’s official repositories tends to trail upstream, and on older releases it may be missing entirely. Building it means installing a Rust toolchain and managing grammars yourself.
The unofficial deb.griffo.io repository provides a current Helix package installable with apt. Note that the binary is called hx, not helix. This guide covers the whole setup on Debian.
What Makes Helix Special?
- 🎯 Selection-first editing — every action works on a selection you can see, making commands predictable and composable.
- 🧩 Built-in LSP — completion, diagnostics, goto-definition and rename work without installing a single plugin.
- 🌳 Tree-sitter powered — accurate syntax highlighting, indentation and structural selections for dozens of languages.
- 🔀 Multiple cursors — first-class multi-selection for fast, parallel edits.
- 🪄 Space menu — a discoverable, popup command menu so you rarely need to memorise obscure chords.
- ⚡ Fast and native — a single Rust binary with no runtime dependencies and instant startup.
- 🎨 Themeable — a large collection of bundled themes, switchable live with
:theme. - ⌨️ Sensible defaults — a productive experience before you write a single line of configuration.
Why Use the deb.griffo.io Repository?
- Easy installation and updates through the APT package manager.
- Automatic dependency management handled by the Debian packaging.
- Always tracks upstream releases so you get the latest Helix.
- No compiling from source and no Rust toolchain to maintain.
- Works across supported Debian releases — Bookworm, Trixie and Sid.
Prerequisites
Before you begin, make sure you have:
- A Debian-based system (Bookworm 12, Trixie 13, or Sid)
sudoprivilegescurlinstalled (sudo apt install curlif needed)
Step 1: Add the deb.griffo.io Repository
Register the repository’s signing key and source list:
# Create the keyrings directory
sudo install -d -m 0755 /etc/apt/keyrings
# Download and install the repository GPG key
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
# Add the repository (auto-detects your distro codename)
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
# Update the package list
sudo apt update
Step by step:
- Keyrings directory — creates
/etc/apt/keyringsfor third-party signing keys. - GPG key — downloads and de-armours the key so APT can verify packages.
- Source list — adds the repository, detecting your Debian codename with
lsb_release -sc. - Update — refreshes the package index.
Step 2: Update the Package List
If you skipped the last command above:
sudo apt update
Step 3: Install Helix
sudo apt install helix
The package name is helix, but the command it installs is hx.
Step 4: Verify the Installation
Use the hx binary — this is the point most newcomers trip over:
hx --version
You should see output like:
helix 25.01.1 (a1b2c3d4)
To confirm which language servers and tools Helix can find, run its health check:
hx --health
Getting Started with Helix
Opening Files and Basic Editing
Start editing by pointing hx at a file or directory:
# Open a single file
hx src/main.rs
# Open the current directory (uses the file picker)
hx .
The selection-first model is the key idea: a motion like w selects the next word, and then an action like d deletes that selection. Some essentials:
i/a— insert before / after the selection;Escreturns to normal modex— select the current line, press again to extendd— delete selection,c— change (delete and insert),y— yanku/U— undo / redo:w,:q,:wq— write, quit, write-and-quit
The Space Menu and Pickers
Press Space to open the command menu — the fastest way to discover functionality:
Space f— open the file picker (fuzzy find files in the project)Space b— switch between open buffersSpace s— jump to a symbol in the current documentSpace /— search file contents across the workspace (global search)Space k— show documentation for the symbol under the cursor
Code Navigation with LSP
When a language server is available, Helix gives you IDE-grade navigation immediately:
gd— go to definitiongr— find referencesgi— go to implementationSpace r— rename the symbol under the cursorSpace a— trigger code actions
Language servers are installed separately. For example, to get Rust, Python and TypeScript support:
# Rust (rust-analyzer)
sudo apt install rust-analyzer
# Python (pyright, via npm)
npm install -g pyright
# TypeScript / JavaScript
npm install -g typescript typescript-language-server
Run hx --health <language> to check whether Helix detects a given server.
Configuration
Helix reads its configuration from ~/.config/helix/config.toml. Create it and set a theme and a couple of editor options:
mkdir -p ~/.config/helix
# ~/.config/helix/config.toml
theme = "onedark"
[editor]
line-number = "relative"
mouse = true
bufferline = "multiple"
[editor.cursor-shape]
insert = "bar"
normal = "block"
select = "underline"
[editor.lsp]
display-inlay-hints = true
You can open this file from inside the editor at any time with :config-open, and reload it live with :config-reload. Preview any bundled theme instantly with :theme <name>.
Language-Specific Settings
Per-language configuration — such as formatters, LSP settings or indentation — lives in ~/.config/helix/languages.toml. For example, to format Python with ruff on save:
# ~/.config/helix/languages.toml
[[language]]
name = "python"
auto-format = true
formatter = { command = "ruff", args = ["format", "-"] }
Learning the Editor
Helix ships an interactive tutorial. Launch it from any Helix session:
:tutor
Keeping Helix Updated
Because Helix is installed via APT, updates come with your normal system upgrade:
sudo apt update && sudo apt upgrade
Other Tools from deb.griffo.io
The same repository packages many other developer tools for Debian:
- Zig — a general-purpose systems programming language to edit in Helix.
- Zellij — a terminal workspace and multiplexer to host your editor.
- Yazi — a blazing-fast terminal file manager to open files in Helix.
- Lazydocker — a simple terminal UI for Docker and docker-compose.
Troubleshooting
GPG or Key Errors
If APT cannot verify the repository, re-add the signing key:
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
sudo apt update
Package Not Found
If apt install helix cannot find the package:
- Run
sudo apt updateafter adding the repository. - Check your release is supported (Bookworm, Trixie or Sid).
- Inspect the source list:
cat /etc/apt/sources.list.d/deb.griffo.io.list
helix: command not found
This is expected — the binary is hx, not helix. Run hx instead. If hx --health shows language servers as “not found”, the servers themselves are separate programs that must be installed and on your PATH; install the relevant one and re-run the health check.
Uninstalling
# Remove the Helix package
sudo apt remove helix
# Optionally remove the repository
sudo rm -f /etc/apt/sources.list.d/deb.griffo.io.list
sudo rm -f /etc/apt/keyrings/deb.griffo.io.gpg
sudo apt update
Conclusion
Helix delivers a modern, batteries-included editing experience — LSP, tree-sitter and multiple cursors without a plugin manager in sight — and deb.griffo.io keeps it current on Debian with a single apt install. Remember that the command is hx, drop a small config.toml into ~/.config/helix/, and you have a fast, capable editor that stays up to date through your normal apt upgrade.
Whether you are coming from Vim, an IDE, or something else entirely, Helix’s selection-first model is worth the short adjustment period.
Resources
Disclaimer: The deb.griffo.io repository is an unofficial community project and is not affiliated with the official Debian or Ubuntu projects, or with the upstream Helix project.