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)
  • sudo privileges
  • curl installed (sudo apt install curl if 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:

  1. Keyrings directory — creates /etc/apt/keyrings for third-party signing keys.
  2. GPG key — downloads and de-armours the key so APT can verify packages.
  3. Source list — adds the repository, detecting your Debian codename with lsb_release -sc.
  4. 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; Esc returns to normal mode
  • x — select the current line, press again to extend
  • d — delete selection, c — change (delete and insert), y — yank
  • u / 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 buffers
  • Space s — jump to a symbol in the current document
  • Space / — 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 definition
  • gr — find references
  • gi — go to implementation
  • Space r — rename the symbol under the cursor
  • Space 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:

  1. Run sudo apt update after adding the repository.
  2. Check your release is supported (Bookworm, Trixie or Sid).
  3. 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.