diff --git a/manifest.dhall b/manifest.dhall
index e0ed4d3166ab036fc2f293cf26df37b68c1d71e5..4581db9fcbbfc5d379dbb595b7fb30048c930056 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -89,6 +89,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "blaze-markup" "0.8.2.8"
     , callHackage "boring" "0.2"
     , callHackage "bsb-http-chunked" "0.0.0.4"
+    , callHackage "breakpoint" "0.1.1.1"
     , callHackage "brick" "1.3"
     , callHackage "bytes" "0.17.2"
     , callHackage "cabal-doctest" "1.0.9"
diff --git a/overlay.nix b/overlay.nix
index 206258748495511f5324adce2f51c63a3bb03051..f81fad9072fc5ac1e1344ebbeb72de068aeea777 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -59,6 +59,8 @@ final: prev: with pkgs.haskell.lib; {
 
     boring = prev.callPackage (./pkgs/boring.nix) { };
 
+    breakpoint = prev.callPackage (./pkgs/breakpoint.nix) { };
+
     brick = prev.callPackage (./pkgs/brick.nix) { };
 
     bsb-http-chunked = prev.callPackage (./pkgs/bsb-http-chunked.nix) { };
diff --git a/pkgs/breakpoint.nix b/pkgs/breakpoint.nix
new file mode 100644
index 0000000000000000000000000000000000000000..d6dfc5de0f75fc14b446a31e86b9cda5ba045959
--- /dev/null
+++ b/pkgs/breakpoint.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, ansi-terminal, base, containers, ghc, haskeline
+, lib, mtl, pretty-simple, tasty, tasty-hunit, template-haskell
+, text, transformers
+}:
+mkDerivation {
+  pname = "breakpoint";
+  version = "0.1.1.1";
+  sha256 = "e24a2cafa6ea866b571fe50bcc49fbf64c14244d985918e9ffe2c7c789d5cec3";
+  libraryHaskellDepends = [
+    ansi-terminal base containers ghc haskeline mtl pretty-simple
+    template-haskell text transformers
+  ];
+  testHaskellDepends = [ base containers tasty tasty-hunit ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Set breakpoints using a GHC plugin";
+  license = lib.licenses.mit;
+}
\ No newline at end of file