tek/hix

Haskell/Nix development build tools

Haskell

44

1,143 commits

updated Jul 2, 2026

See the code

README

About

Hix is a toolkit for Haskell development that uses Nix to provide a unified, declarative interface for a range of build related tasks:

  • Reproducible environments and dependency overrides
  • Cabal file generation
  • Hackage upload
  • Rapid-recompilation testing with ghcid
  • Haskell Language Server
  • CTags generation
  • Virtual Machines for testing
  • Compatibility checks for multiple GHC versions

To learn more, please visit the documentation page.

tldr

You can convert an existing Cabal project by executing this command in the project root, using FlakeHub or GitHub:

nix run 'https://flakehub.com/f/tek/hix/~0.9.tar.gz#bootstrap'
nix run 'github:tek/hix?ref=0.9.1#bootstrap'

You can create a new project in the current or an arbitrary directory:

nix run 'https://flakehub.com/f/tek/hix/~0.9.tar.gz#init' -- --author 'Your Name' --name project-name
nix run 'https://flakehub.com/f/tek/hix/~0.9.tar.gz#new' -- --author 'Your Name' path/to/project-name

The manual process consists of first adding Hix to your Haskell project flake by specifying the input:

{
  inputs.hix.url = "https://flakehub.com/f/tek/hix/~0.9.tar.gz";
}

Then configure your project with NixOS module options:

{
  description = "Example";
  inputs.hix.url = "https://flakehub.com/f/tek/hix/~0.9.tar.gz";
  outputs = {hix, ...}: hix {
    packages.parser = {
      src = ./.;
      library = {
        enable = true;
        dependencies = ["aeson ^>= 2.0" "bytestring"];
      };
      executable.enable = true;
      test.enable = true;
    };
  };
}

Now generate Cabal files with:

nix run .#gen-cabal

Build the package with nix build, or run the tests in test/Main.hs in GHCid:

nix run .#ghcid -- -p parser
haskell
nix

Contributors

tek

1,124 commits

dependabot[bot]

10 commits

DeviousStoat

8 commits

cgeorgii

1 commits

tek/hix

Haskell/Nix development build tools

Haskell

44

1,143 commits

updated Jul 2, 2026

See the code

README

About

Hix is a toolkit for Haskell development that uses Nix to provide a unified, declarative interface for a range of build related tasks:

  • Reproducible environments and dependency overrides
  • Cabal file generation
  • Hackage upload
  • Rapid-recompilation testing with ghcid
  • Haskell Language Server
  • CTags generation
  • Virtual Machines for testing
  • Compatibility checks for multiple GHC versions

To learn more, please visit the documentation page.

tldr

You can convert an existing Cabal project by executing this command in the project root, using FlakeHub or GitHub:

nix run 'https://flakehub.com/f/tek/hix/~0.9.tar.gz#bootstrap'
nix run 'github:tek/hix?ref=0.9.1#bootstrap'

You can create a new project in the current or an arbitrary directory:

nix run 'https://flakehub.com/f/tek/hix/~0.9.tar.gz#init' -- --author 'Your Name' --name project-name
nix run 'https://flakehub.com/f/tek/hix/~0.9.tar.gz#new' -- --author 'Your Name' path/to/project-name

The manual process consists of first adding Hix to your Haskell project flake by specifying the input:

{
  inputs.hix.url = "https://flakehub.com/f/tek/hix/~0.9.tar.gz";
}

Then configure your project with NixOS module options:

{
  description = "Example";
  inputs.hix.url = "https://flakehub.com/f/tek/hix/~0.9.tar.gz";
  outputs = {hix, ...}: hix {
    packages.parser = {
      src = ./.;
      library = {
        enable = true;
        dependencies = ["aeson ^>= 2.0" "bytestring"];
      };
      executable.enable = true;
      test.enable = true;
    };
  };
}

Now generate Cabal files with:

nix run .#gen-cabal

Build the package with nix build, or run the tests in test/Main.hs in GHCid:

nix run .#ghcid -- -p parser
haskell
nix

Contributors

tek

1,124 commits

dependabot[bot]

10 commits

DeviousStoat

8 commits

cgeorgii

1 commits

Languages

Haskell

66.3%

Nix

32.7%