diff --git a/manifest.dhall b/manifest.dhall
index 9554d4bc69c7edab2f98d2bfedd88cee3d5bdc49..2288cc659a8d852c63c847e320fa402cc1c5c99e 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -150,6 +150,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "fcf-containers" "0.7.1"
     , callHackage "finite-field" "0.10.0"
     , callHackage "first-class-families" "0.8.0.1"
+    , callHackage "fsnotify" "0.4.1.0"
     , callHackage "foldl" "1.4.12"
     , callHackage "foundation" "0.0.29"
     , callHackage "generic-lens-core" "2.2.1.0"
diff --git a/overlay.nix b/overlay.nix
index d142bf6e1b6c0deef20dab63e35dcc0bb88ed51d..0857d037d754a5b0bdf0ca743214ad768053e54e 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -139,6 +139,8 @@ final: prev: with pkgs.haskell.lib; {
 
     foundation = prev.callPackage (./pkgs/foundation.nix) { };
 
+    fsnotify = prev.callPackage (./pkgs/fsnotify.nix) { };
+
     generic-lens-core = prev.callPackage (./pkgs/generic-lens-core.nix) { };
 
     generic-lens-lite = prev.callPackage (./pkgs/generic-lens-lite.nix) { };
diff --git a/pkgs/fsnotify.nix b/pkgs/fsnotify.nix
new file mode 100644
index 0000000000000000000000000000000000000000..08d17e8f140293478f6095e41065485a3f4a16ba
--- /dev/null
+++ b/pkgs/fsnotify.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, async, base, bytestring, containers, directory
+, exceptions, filepath, hinotify, lib, monad-control, random, retry
+, safe-exceptions, sandwich, temporary, text, time, unix
+, unix-compat, unliftio
+}:
+mkDerivation {
+  pname = "fsnotify";
+  version = "0.4.1.0";
+  sha256 = "d130fb4a871a181a3d1485f24da85aa49d6ff9022ce08f8401b4626143eaf7ef";
+  libraryHaskellDepends = [
+    async base bytestring containers directory filepath hinotify
+    monad-control safe-exceptions text time unix unix-compat
+  ];
+  testHaskellDepends = [
+    async base directory exceptions filepath random retry
+    safe-exceptions sandwich temporary unix-compat unliftio
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-fswatch/hfsnotify";
+  description = "Cross platform library for file change notification";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file