diff --git a/pkgs/development/tools/htmlq/default.nix b/pkgs/development/tools/htmlq/default.nix
new file mode 100644
index 000000000000..232b751c34b6
--- /dev/null
+++ b/pkgs/development/tools/htmlq/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub, rustPlatform, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "htmlq";
+ version = "0.2.0";
+
+ src = fetchFromGitHub {
+ owner = "mgdm";
+ repo = "htmlq";
+ rev = "v${version}";
+ sha256 = "sha256-Q2zjrHKFWowx2yB1cdGxPnNnc8yQJz65HaX0yIqbHks=";
+ };
+
+ cargoSha256 = "sha256-pPtKPVSdEtEPmQPpNRJ4uyguDRAW0YvKgdUw5OAtbjA=";
+
+ buildInputs = lib.optionals stdenv.isDarwin [ Security ];
+
+ doCheck = false;
+
+ meta = with lib; {
+ description = "Like jq, but for HTML";
+ homepage = "https://github.com/mgdm/htmlq";
+ license = licenses.mit;
+ maintainers = with maintainers; [ siraben ];
+ };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 298fe3cee44f..92c1f7e32a76 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -5973,6 +5973,10 @@ with pkgs;
html-proofer = callPackage ../tools/misc/html-proofer { };
+ htmlq = callPackage ../development/tools/htmlq {
+ inherit (pkgs.darwin.apple_sdk.frameworks) Security;
+ };
+
htpdate = callPackage ../tools/networking/htpdate { };
http-prompt = callPackage ../tools/networking/http-prompt { };