diff --git a/config/common.nix b/config/common.nix
index 38f0a03c4ab350af272156900dc6ad62b51c4ecf..444c65995a90f24cd8e8f921e1e44399a0956596 100644
--- a/config/common.nix
+++ b/config/common.nix
@@ -1066,6 +1066,20 @@
                     };
                   };
                 };
+                tqsl = lib.mkOption {
+                  type = lib.types.submodule {
+                    options = {
+                      enabled = lib.mkOption {
+                        type = lib.types.bool;
+                        default = false;
+                        example = true;
+                        description = ''
+                          Whether or not tqsl, the lotw logging app, has been installed.
+                        '';
+                      };
+                    };
+                  };
+                };
                 gotop = lib.mkOption {
                   type = lib.types.submodule {
                     options = {
diff --git a/pkgs/util/default.nix b/pkgs/util/default.nix
index 9862b738e25e24a77ff4daa51727c5d5eb0bfa8f..a061927cda1049439a92e4fe0a26584a8453041c 100644
--- a/pkgs/util/default.nix
+++ b/pkgs/util/default.nix
@@ -26,5 +26,6 @@
     ./dnsutils
     ./inetutils
     ./ispell
+    ./tqsl
   ];
 }
diff --git a/pkgs/util/tqsl/config.nix b/pkgs/util/tqsl/config.nix
new file mode 100644
index 0000000000000000000000000000000000000000..af8bd7da918a515a34e1745514d1fbdcba2da2ea
--- /dev/null
+++ b/pkgs/util/tqsl/config.nix
@@ -0,0 +1,4 @@
+{ config, ... }:
+{
+  config.provides.util.tqsl.enabled = true;
+}
diff --git a/pkgs/util/tqsl/default.nix b/pkgs/util/tqsl/default.nix
new file mode 100644
index 0000000000000000000000000000000000000000..cc8cb85ff6453c0033e25f71127d43082f2d9f17
--- /dev/null
+++ b/pkgs/util/tqsl/default.nix
@@ -0,0 +1,10 @@
+{ pkgs, ... }: {
+  imports = [
+    ../common.nix
+    ./config.nix
+  ];
+
+  environment.systemPackages = with pkgs; [
+    tqsl
+  ];
+}