diff --git a/lib.nix b/lib.nix
index fa575e2df624e421d86ed93298c7ab4b9f3ebcdf..c4e41fd8ed85d3300c96173cddc12c8c0fbca010 100644
--- a/lib.nix
+++ b/lib.nix
@@ -41,9 +41,16 @@ rec {
     # A function that accepts a package set and returns a list of additional
     # buildInputs to include in the dev shell.
     extraBuildInputs ? (pkgs: [])
+    , shellHook ? "# nothing"
   }: {
     default = hsPkgs.shellFor {
-      inherit (preCommitCheck { }) shellHook;
+      shellHook = ''
+        # Pre-commit
+        ${(preCommitCheck { }).shellHook}
+
+        # Application-supplied
+        ${shellHook}
+      '';
 
       # Packages to create this development shell for.  These are usually your
       # local packages.