diff --git a/manifest.dhall b/manifest.dhall
index b031c9ad8e366596012e15fdecdea850ac5d0d6f..70443bb15a82c0feda3e0d49aed4f0f795a068e2 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -189,6 +189,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
         "https://github.com/milloni/hnix"
         (Some "005568ee024eabee129d9cf4ca331c6da260610b")
         (None Text)
+    , callHackage "hpack" "0.35.0"
     , callHackage "hslua-aeson" "2.2.1"
     , callHackage "hspec" "2.10.3"
     , callHackage "hspec-core" "2.10.0.1"
diff --git a/overlay.nix b/overlay.nix
index 9b7b6a028aeed2f3dc7bd00b4256728b5fc5c755..4d0074cfcc08780eb057ebf26a3ce2fa263193ce 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -205,6 +205,8 @@ final: prev: with pkgs.haskell.lib; {
 
     hourglass = prev.callPackage (./pkgs/hourglass.nix) { };
 
+    hpack = prev.callPackage (./pkgs/hpack.nix) { };
+
     hslua-aeson = prev.callPackage (./pkgs/hslua-aeson.nix) { };
 
     hspec = prev.callPackage (./pkgs/hspec.nix) { };
diff --git a/pkgs/hpack.nix b/pkgs/hpack.nix
new file mode 100644
index 0000000000000000000000000000000000000000..1fc0a088e3b892bab882dc13fd22e18866294dbc
--- /dev/null
+++ b/pkgs/hpack.nix
@@ -0,0 +1,44 @@
+{ mkDerivation, aeson, base, bifunctors, bytestring, Cabal
+, containers, cryptonite, deepseq, directory, filepath, Glob, hspec
+, hspec-discover, http-client, http-client-tls, http-types, HUnit
+, infer-license, interpolate, lib, mockery, pretty, QuickCheck
+, scientific, template-haskell, temporary, text, transformers
+, unordered-containers, vector, yaml
+}:
+mkDerivation {
+  pname = "hpack";
+  version = "0.35.0";
+  sha256 = "c6bdbc2d48dac398d3c35120a11455f507639f275befc4fda0a26662db2231b2";
+  revision = "1";
+  editedCabalFile = "1x0rmra2fpfzmhhw090iila2drfdmb1y28ybypmgbi0asa1zl751";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    aeson base bifunctors bytestring Cabal containers cryptonite
+    deepseq directory filepath Glob http-client http-client-tls
+    http-types infer-license pretty scientific text transformers
+    unordered-containers vector yaml
+  ];
+  executableHaskellDepends = [
+    aeson base bifunctors bytestring Cabal containers cryptonite
+    deepseq directory filepath Glob http-client http-client-tls
+    http-types infer-license pretty scientific text transformers
+    unordered-containers vector yaml
+  ];
+  testHaskellDepends = [
+    aeson base bifunctors bytestring Cabal containers cryptonite
+    deepseq directory filepath Glob hspec http-client http-client-tls
+    http-types HUnit infer-license interpolate mockery pretty
+    QuickCheck scientific template-haskell temporary text transformers
+    unordered-containers vector yaml
+  ];
+  testToolDepends = [ hspec-discover ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/sol/hpack#readme";
+  description = "A modern format for Haskell packages";
+  license = lib.licenses.mit;
+  mainProgram = "hpack";
+}
\ No newline at end of file