{
  config,
  pkgs,
  lib,
  ...
}:
let
  cfg = config.krop.cli;
in
{
  options.krop.cli = {
    enable = lib.mkOption {
      type = lib.types.bool;
      default = true;
      example = true;
      description = "Whether to install the most used tools";
    };
    install-editors = lib.mkOption {
      type = lib.types.bool;
      default = true;
      example = true;
      description = "Whether to install cli editors";
    };
    install-k8s-tools = lib.mkOption {
      type = lib.types.bool;
      default = false;
      example = true;
      description = "Whether to install k8s tools";
    };
    install-cloud-cli = lib.mkOption {
      type = lib.types.bool;
      default = false;
      example = true;
      description = "Whether to install cloud providers CLI clients";
    };
  };
  config = lib.mkIf cfg.enable {
    environment.systemPackages =
      with pkgs;
      [
        openssl_3_3
        dig
        wl-clipboard
        bitwarden-cli
        direnv
        nix-direnv
        gettext
        file
      ]
      ++ lib.optionals cfg.install-editors [
        pkgs.lazygit
        pkgs.lazydocker
        pkgs.micro-with-wl-clipboard
      ]
      ++ lib.optionals cfg.install-k8s-tools [
        pkgs.k9s
        pkgs.kubectl
        pkgs.kubectx
        pkgs.minikube
        pkgs.kind
      ]
      ++ lib.optionals cfg.install-cloud-cli [
        pkgs.oci-cli
      ];
  };
}