How to Install Helix on Ubuntu: The Post-Modern Modal Text Editor

Helix is a post-modern modal text editor written in Rust. It builds on the modal editing tradition of Vim and Kakoune but flips the grammar around: you make a selection first and then apply an action to it, so the effect of every motion is visible before you act. Best of all, it comes complete โ€” Language Server Protocol support, tree-sitter highlighting and structural code navigation are built in, with no plugin ecosystem to assemble.

On Ubuntu, the version available through the standard archive usually trails upstream by several releases, missing newer language support and editor features. You can build Helix from source, but that means installing Rust and keeping grammars in sync yourself.

The unofficial deb.griffo.io repository packages a current Helix build you install with apt. One thing to remember up front: the installed command is hx, not helix. Here is the full walkthrough for Ubuntu.

What Makes Helix Special?

  • ๐ŸŽฏ Selection-first editing โ€” you always act on a visible selection, which makes commands predictable and easy to chain.
  • ๐Ÿงฉ Built-in LSP โ€” completion, diagnostics, goto-definition and rename with zero plugins to install.
  • ๐ŸŒณ Tree-sitter powered โ€” precise highlighting, indentation and structural selection across many languages.
  • ๐Ÿ”€ Multiple cursors โ€” native multi-selection for editing many places at once.
  • ๐Ÿช„ Space menu โ€” a discoverable popup menu, so commands are easy to find rather than memorise.
  • โšก Fast and native โ€” a single Rust binary with instant startup and no runtime dependencies.
  • ๐ŸŽจ Themeable โ€” dozens of bundled themes you can switch live with :theme.
  • โŒจ๏ธ Great defaults โ€” productive immediately, before any configuration.

Why Use the deb.griffo.io Repository?

  • Install and update through APT with no manual downloads.
  • Automatic dependency management through Debian-style packaging.
  • Always tracks upstream so Helix stays current.
  • No source builds and no Rust toolchain to maintain.
  • Works across supported Ubuntu releases โ€” Jammy, Noble and newer.

Prerequisites

You will need:

  • An Ubuntu system (Jammy 22.04 LTS, Noble 24.04 LTS, or newer)
  • sudo privileges
  • curl installed (sudo apt install curl if it is missing)

Step 1: Add the deb.griffo.io Repository

Install the repository key and add its 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

What each command does:

  1. Keyrings directory โ€” /etc/apt/keyrings holds third-party signing keys on modern Ubuntu.
  2. GPG key โ€” downloaded and de-armoured for APT to verify packages against.
  3. Source list โ€” lsb_release -sc fills in your Ubuntu codename (for example noble).
  4. Update โ€” refreshes APTโ€™s index.

Step 2: Update the Package List

If you did not run the final command above:

sudo apt update

Step 3: Install Helix

sudo apt install helix

The package is helix; the binary it provides is hx.

Step 4: Verify the Installation

Run the hx command โ€” a common source of confusion, since the package is named helix:

hx --version

Expected output:

helix 25.01.1 (a1b2c3d4)

Check which language servers Helix can find with:

hx --health

Getting Started with Helix

Configuration First

Because Helix is productive out of the box, a small config is all most people need. It lives at ~/.config/helix/config.toml:

mkdir -p ~/.config/helix
# ~/.config/helix/config.toml
theme = "catppuccin_mocha"

[editor]
line-number = "relative"
mouse       = true
color-modes = true

[editor.cursor-shape]
insert = "bar"
normal = "block"
select = "underline"

[editor.lsp]
display-inlay-hints = true

Open this file without leaving the editor using :config-open, reload it live with :config-reload, and preview any theme instantly with :theme <name>.

Editing Basics

Open something to edit:

# A single file
hx app/main.py

# The current directory via the file picker
hx .

Remember the selection-first grammar: a motion selects, then an action applies. Key commands:

  • i / a โ€” insert before / after selection, Esc to leave insert mode
  • x โ€” select line (repeat to extend), d โ€” delete, c โ€” change, y โ€” yank
  • u / U โ€” undo / redo
  • :w, :q, :wq โ€” write, quit, write-and-quit

The Space Menu

Space opens the popup command menu, the quickest route to almost everything:

  • Space f โ€” fuzzy file picker
  • Space b โ€” buffer switcher
  • Space s โ€” document symbol picker
  • Space / โ€” global content search
  • Space k โ€” hover documentation

LSP-Powered Navigation

With a language server present, Helix behaves like an IDE:

  • gd โ€” go to definition
  • gr โ€” find references
  • gi โ€” go to implementation
  • Space r โ€” rename symbol
  • Space a โ€” code actions

Install the servers you need separately, for example:

# TypeScript / JavaScript
npm install -g typescript typescript-language-server

# Python
npm install -g pyright

# Rust
sudo apt install rust-analyzer

Then confirm detection with hx --health python (or the relevant language).

Per-Language Configuration

Language-specific settings โ€” formatters, indentation, LSP tweaks โ€” go in ~/.config/helix/languages.toml. For example, to run ruff format on save for Python:

# ~/.config/helix/languages.toml
[[language]]
name = "python"
auto-format = true
formatter = { command = "ruff", args = ["format", "-"] }

The Built-in Tutorial

To learn the editing model interactively, run this from within Helix:

:tutor

Keeping Helix Updated

Helix updates arrive with your normal Ubuntu upgrades:

sudo apt update && sudo apt upgrade

Other Tools from deb.griffo.io

The repository packages plenty of other developer tools for Ubuntu:

  • 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 reports a signature problem, re-install the 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 cannot find helix:

  1. Run sudo apt update after adding the repository.
  2. Confirm your release is supported (Jammy, Noble or newer).
  3. Check the source list:
cat /etc/apt/sources.list.d/deb.griffo.io.list

helix: command not found

The binary is hx, not helix โ€” this trips up nearly everyone. Run hx. If Ubuntu also has an unrelated helix from a snap on your PATH, remove it (sudo snap remove helix) so there is no confusion, and always launch the editor with hx.

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 offers a modern, complete editing experience with LSP, tree-sitter and multiple cursors built in, and deb.griffo.io keeps it current on Ubuntu through a single apt install. Launch it as hx, add a compact config.toml under ~/.config/helix/, and you have a fast editor that stays fresh via your usual apt upgrade.

The selection-first model takes a short while to click, but once it does, Helix is one of the most ergonomic editors you can run in a terminal.

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.