diff --git a/pkgs/applications/misc/gmnitohtml/default.nix b/pkgs/applications/misc/gmnitohtml/default.nix
new file mode 100644
index 000000000000..a4b6f9403c64
--- /dev/null
+++ b/pkgs/applications/misc/gmnitohtml/default.nix
@@ -0,0 +1,46 @@
+{ lib, buildGoModule, fetchFromSourcehut, scdoc, installShellFiles }:
+
+buildGoModule rec {
+ pname = "gmnitohtml";
+ version = "0.1.1";
+
+ src = fetchFromSourcehut {
+ owner = "~adnano";
+ repo = pname;
+ rev = version;
+ hash = "sha256-XcHJbqmfSkW6lt2xRlrf9AJfwLOZqdgsL1v0aK2bQwo=";
+ };
+ vendorSha256 = "sha256-Cx8x8AISRVTA4Ufd73vOVky97LX23NkizHDingr/zVk=";
+
+ ldflags = [ "-s" "-w" ];
+
+ # Build and install the man pages
+ nativeBuildInputs = [ scdoc installShellFiles ];
+
+ postBuild = ''
+ make gmnitohtml.1
+ '';
+
+ postInstall = ''
+ installManPage gmnitohtml.1
+ '';
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ runHook preInstallCheck
+ $out/bin/gmnitohtml --help
+ runHook postInstallCheck
+ '';
+
+ meta = with lib; {
+ homepage = "https://git.sr.ht/~adnano/gmnitohtml";
+ changelog = "https://git.sr.ht/~adnano/gmnitohtml/log";
+ description = "Gemini text to HTML converter";
+ longDescription = ''
+ he gmnitohtml utility reads Gemini text from the standard input and writes
+ HTML to the standard output.
+ '';
+ license = licenses.mit;
+ maintainers = with maintainers; [ jk sikmir ];
+ };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 55830f89b567..b276d2435ee2 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1566,6 +1566,8 @@ in
gmnisrv = callPackage ../servers/gemini/gmnisrv { };
+ gmnitohtml = callPackage ../applications/misc/gmnitohtml { };
+
goimapnotify = callPackage ../tools/networking/goimapnotify { };
gojsontoyaml = callPackage ../development/tools/gojsontoyaml { };