v0.4.3

Fast, unified, futuristic

hx

Haskell, finally fast

A fast, opinionated, next-gen toolchain for Haskell. Built in Rust.

curl -fsSL https://arcanist.sh/hx/install.sh | sh

Why hx?

Everything you need to build Haskell projects. No more juggling cabal, stack, and ghcup.

Batteries included

Build, test, run, format, lint, profile, and publish. Watch mode, coverage reports, and IDE setup. Everything in one tool.

Managed toolchains

Automatic GHC installation and version switching. Pin versions per-project in hx.toml. No ghcup required.

Deterministic builds

TOML lockfiles with fingerprint verification. Every build is reproducible across machines and CI. No more "works on my machine".

Excellent errors

Actionable error messages with fix suggestions. hx doctor diagnoses setup issues and tells you exactly how to fix them.

Drop-in compatible

Works with existing .cabal files and Hackage. Import from Stack or Cabal projects. Your workflow stays the same, just better.

Extensible

Plugin system with Steel (Scheme) for custom workflows. Pre/post build hooks. Nix integration. Generate Homebrew formulas and install scripts.

Blazingly fast

hx native builds bypass Cabal overhead for simple projects

Cold build
hx
0.48s
cabal
2.68s
5.6xfaster
Incremental
hx
0.05s
cabal
0.39s
7.8xfaster

Get Started in Seconds

Install hx and create your first project in under a minute.

# Install hx
curl -fsSL https://raw.githubusercontent.com/arcanist-sh/hx/main/install.sh | sh

# Create a new project
hx new my-app && cd my-app

# Build and run
hx run

That’s it. No ghcup, no stack, no cabal-install — just hx.

[ COMPILER BACKEND ]

BHC Basel Haskell Compiler

hx supports BHC as an alternative compiler backend alongside GHC. BHC is an independent Haskell compiler with runtime profiles, WASM targets, and numeric optimizations.

Runtime profiles (default, server, numeric, edge)
Multiple targets: native, WASI, WASM
GHC-compatible, drop-in for most packages
terminal
$ hx build --compiler=bhc --profile=server