diff --git a/manifest.dhall b/manifest.dhall
index 53512abea70bd1308bb6593da19d7e4db740dcd2..a2babd672b6cae9608e7430b51c8d71a8ddb2b02 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -427,6 +427,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "monoid-subclasses" "1.1.3"
     , callHackage "mono-traversable" "1.0.15.3"
     , callHackage "mwc-random" "0.15.0.2"
+    , callHackage "nanospec" "0.2.2"
     , callHackage "network-byte-order" "0.1.6"
     , callHackage "network-conduit-tls" "1.3.2"
     , callHackage "network-uri" "2.6.4.1"
diff --git a/overlay.nix b/overlay.nix
index 4817e7cdbda2d578601d6c833030be7965e6f646..69d729f719ec221ae8d7bc2c27753c47f5bec4d1 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -589,6 +589,8 @@ self: with pkgs.haskell.lib; {
 
   mwc-random = self.callPackage (./pkgs/mwc-random.nix) { };
 
+  nanospec = self.callPackage (./pkgs/nanospec.nix) { };
+
   net-mqtt = self.callPackage (./pkgs/net-mqtt.nix) { };
 
   network = self.callPackage (./pkgs/network.nix) { };
diff --git a/pkgs/nanospec.nix b/pkgs/nanospec.nix
new file mode 100644
index 0000000000000000000000000000000000000000..1b8bfc058b3ed5e63945e5911351322fd039ac0a
--- /dev/null
+++ b/pkgs/nanospec.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, hspec, lib, silently }:
+mkDerivation {
+  pname = "nanospec";
+  version = "0.2.2";
+  sha256 = "cf14ccc2b296c910000cdc3eb51b37389b3eb94139384b9555db79b8128595e5";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [ base hspec silently ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/hspec/nanospec#readme";
+  description = "A lightweight implementation of a subset of Hspec's API";
+  license = lib.licenses.mit;
+  broken = false;
+}