A Native GUI for Helix
Nucleotide is a high-performance graphical interface for the Helix modal editor, bringing the power of terminal-based modal editing to a modern native GUI.
Nucleotide wouldn't exist without these incredible projects:
- Helix - The powerful modal editor that powers our editing engine
- GPUI - Zed's blazing-fast GPU-accelerated UI framework
- helix-gpui - The original project we forked from, created by @polachok
We are deeply grateful to these projects and their maintainers for making Nucleotide possible.
Currently, Nucleotide provides a native GUI wrapper around Helix with:
- Native macOS/Linux/Windows support
- GPU-accelerated rendering via GPUI
- File tree sidebar
- Integrated terminal (planned)
- Full Helix keybinding support
Install Rust stable and Zig 0.17.0 first. Zig is required to build the Ghostty-backed integrated terminal.
The Rust bindings are pinned to an upstream Git revision with Zig 0.17 support until that update is released on crates.io. The Nix Ghostty source pin matches the bindings' native library revision; update them together.
cargo build --release
./target/release/nuclThe repo-local Cargo config disables Helix's automatic grammar fetch during
builds. Use nucl --grammar fetch / nucl --grammar build or the bundle script
when you need to update packaged runtime grammars.
./scripts/bundle-mac.sh
open Nucleotide.appNucleotide publishes Velopack installers and update feeds for macOS. On Windows,
the only install artifact is a portable *-Portable.zip bundle; extract the
entire bundle to a writable directory and launch Nucleotide.exe. The release
also includes the feed and packages used by the in-app updater.
Install Rust stable, Zig 0.17.0, the .NET 8 SDK, and the Velopack CLI before building a Windows portable package locally.
cargo build --release -p nucleotide --bins
.\scripts\clone-helix-runtime.ps1 -Destination helix-temp
try {
.\scripts\setup-windows-runtime.cmd -RuntimeSource helix-temp\runtime -NuclExe target\release\nucl-grammar.exe
} finally {
Remove-Item -LiteralPath helix-temp -Recurse -Force
}
dotnet tool update -g vpk --version 1.2.161
.\scripts\package-velopack.ps1 -RequireRemoteHelpersSee docs/windows_install.md for local Windows Velopack build and install
notes. See docs/application_updates.md for the in-app update flow and release
pipeline.
To ensure consistent code formatting, install the pre-commit hooks:
./scripts/install-hooks.shThis will set up automatic cargo fmt checks before each commit.
Nucleotide uses Helix's platform config directory. It looks for
nucleotide.toml there for GUI settings and loads Helix's config.toml
separately for editor settings and keybindings.
- Linux/macOS: commonly
~/.config/helix/nucleotide.toml - Windows:
%APPDATA%\helix\nucleotide.toml
Copy the complete annotated example to that location for all supported GUI parameters, descriptions, accepted values and defaults. Optional overrides remain commented out to preserve platform defaults. Settings that are parsed but not yet wired to runtime behaviour are labelled in the example. Save the file, then choose Settings > Reload Configuration (under Nucleotide on macOS/Linux or File on Windows), or restart Nucleotide.
MPL-2.0 (same as Helix)