diff --git a/manifest.dhall b/manifest.dhall
index 6edfeef2056d2492bb64de3158b75caecc19e238..48051c383c6712791401c5c53a1f6703fb5a933d 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -609,6 +609,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "these" "1.1.1.1"
     , callHackage "these-skinny" "0.7.5"
     , callHackage "tf-random" "0.5"
+    , callHackage "th-env" "0.1.1"
     , callHackage "th-expand-syns" "0.4.10.0"
     , callHackage "th-extras" "0.0.0.6"
     , callHackage "th-lift-instances" "0.1.20"
diff --git a/overlay.nix b/overlay.nix
index 00e61ed0c6565b3d33fa0985b291d28ac48ef6ab..6e3724fefdb687621610fa3390481b5cb11b1907 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -845,6 +845,8 @@ final: prev: with pkgs.haskell.lib; {
 
   tf-random = prev.callPackage (./pkgs/tf-random.nix) { };
 
+  th-env = prev.callPackage (./pkgs/th-env.nix) { };
+
   th-expand-syns = prev.callPackage (./pkgs/th-expand-syns.nix) { };
 
   th-extras = prev.callPackage (./pkgs/th-extras.nix) { };
diff --git a/pkgs/th-env.nix b/pkgs/th-env.nix
new file mode 100644
index 0000000000000000000000000000000000000000..601cf7ad3fb2e22210dd002827896db01578ab1f
--- /dev/null
+++ b/pkgs/th-env.nix
@@ -0,0 +1,29 @@
+{ mkDerivation
+, base
+, lib
+, markdown-unlit
+, template-haskell
+, th-compat
+}:
+mkDerivation {
+  pname = "th-env";
+  version = "0.1.1";
+  sha256 = "fc01b166df6ba45f6ce157165eb786da208dbab41252fd81134f8ba02cf3f505";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base template-haskell th-compat ];
+  testHaskellDepends = [ base markdown-unlit ];
+  testToolDepends = [ markdown-unlit ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/dzhus/th-env#readme";
+  description = "Template Haskell splices that expand to an environment variable";
+  license = lib.licenses.bsd3;
+  broken = false;
+}