diff --git a/pkgs/development/tools/htmlq/default.nix b/pkgs/development/tools/htmlq/default.nix
new file mode 100644
index 0000000000000..1afd2230edbf9
--- /dev/null
+++ b/pkgs/development/tools/htmlq/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, stdenv
+, fetchpatch
+, fetchFromGitHub
+, rustPlatform
+}:
+let
+ version = "0.2.0";
+ author = "mgdm";
+ pname = "htmlq";
+in
+rustPlatform.buildRustPackage rec {
+ inherit version pname;
+
+ src = fetchFromGitHub {
+ owner = "${author}";
+ repo = "${pname}";
+ rev = "v${version}";
+ hash = "sha256-Q2zjrHKFWowx2yB1cdGxPnNnc8yQJz65HaX0yIqbHks=";
+ };
+
+ cargoSha256 = "sha256-pPtKPVSdEtEPmQPpNRJ4uyguDRAW0YvKgdUw5OAtbjA=";
+
+ doCheck = false;
+
+ meta = with lib; {
+ description = "Like jq, but for HTML";
+ homepage = "https://github.com/${author}/${pname}";
+ license = licenses.mit;
+ maintainers = with maintainers; [ nerdypepper ];
+ };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index cd2a6f1d58057..8876fd125c122 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -5978,6 +5978,8 @@ with pkgs;
html-proofer = callPackage ../tools/misc/html-proofer { };
+ htmlq = callPackage ../development/tools/htmlq { };
+
htpdate = callPackage ../tools/networking/htpdate { };
http-prompt = callPackage ../tools/networking/http-prompt { };