diff --git a/manifest.dhall b/manifest.dhall
index 73bde5ece7d9d0193ac213a6f865afe0f430097c..d77a10d7d3a65055bc3170c0e8f8e7e7eaf049da 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -466,6 +466,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "nanospec" "0.2.2"
     , callHackage "network-byte-order" "0.1.6"
     , callHackage "network-conduit-tls" "1.3.2"
+    , callHackage "network-run" "0.2.4"
     , callHackage "network-uri" "2.6.4.1"
     , callHackage "network" "3.1.2.7"
     , callHackage "newtype-generics" "0.6.2"
diff --git a/overlay.nix b/overlay.nix
index 100eaf9f16b77c01e9dbe355c33bfe841973d669..1db113d25777eb5d30891da2ab1cc8039cdd19f5 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -683,6 +683,8 @@ self: with pkgs.haskell.lib; {
 
   network-conduit-tls = self.callPackage (./pkgs/network-conduit-tls.nix) { };
 
+  network-run = self.callPackage (./pkgs/network-run.nix) { };
+
   network-uri = self.callPackage (./pkgs/network-uri.nix) { };
 
   newtype-generics = self.callPackage (./pkgs/newtype-generics.nix) { };
diff --git a/pkgs/network-run.nix b/pkgs/network-run.nix
new file mode 100644
index 0000000000000000000000000000000000000000..b4ceea7d38202ca02ca4f7f045afd8bc858490e5
--- /dev/null
+++ b/pkgs/network-run.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, bytestring, lib, network }:
+mkDerivation {
+  pname = "network-run";
+  version = "0.2.4";
+  sha256 = "f415c619eeb34a18493dfcd634049c7a1da1b02615e1387b0096c80126af6d70";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring network ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Simple network runner library";
+  license = lib.licenses.bsd3;
+  broken = false;
+}