diff --git a/pkgs/tools/misc/gay/default.nix b/pkgs/tools/misc/gay/default.nix
new file mode 100644
index 000000000000..f2ab2ce6d9e3
--- /dev/null
+++ b/pkgs/tools/misc/gay/default.nix
@@ -0,0 +1,26 @@
+{ lib, python39Packages, fetchFromGitHub }:
+
+python39Packages.buildPythonPackage rec {
+  name = "gay";
+  version = "1.2.8";
+
+  src = fetchFromGitHub {
+    owner = "ms-jpq";
+    repo = "gay";
+    # The repo doesn't have any tags
+    # This references version 1.2.8
+    rev = "1e3e96815c68214533a925c86a52b0acf832a359";
+    sha256 = "sha256-vouEFybcz27bcw/CpAGjFY8NYWQC+V0IE7h1a8XufZ0=";
+  };
+
+  meta = with lib; {
+    description = "Colour your text / terminal to be more gay";
+    longDescription = ''
+      Applies pride flag colors to text, ala lolcat or displays a pride flag.
+    '';
+    homepage = "https://github.com/ms-jpq/gay";
+    maintainers = with maintainers; [ CodeLongAndProsper90 ];
+    license = licenses.mit;
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 582c6921259f..fdc58f704281 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -997,6 +997,8 @@ with pkgs;
     libgamemode32 = pkgsi686Linux.gamemode.lib;
   };
 
+  gay = callPackage ../tools/misc/gay {  };
+
   elkhound = callPackage ../development/tools/elkhound { };
 
   weidu = callPackage ../tools/games/weidu { };