{
  lib,
  buildGoModule,
  fetchFromGitHub,
}: let
  version = "0.27.2";
in
  buildGoModule {
    pname = "step-cli";
    inherit version;

    src = fetchFromGitHub {
      owner = "smallstep";
      repo = "cli";
      rev = "refs/tags/v${version}";
      hash = "sha256-9w7rUtlLa1kl9oVboWZWj4eoZh+pPdGsEEQDWYdEMns=";
    };

    ldflags = [
      "-w"
      "-s"
      "-X=main.Version=${version}"
    ];

    preCheck = ''
      # Tries to connect to smallstep.com
      rm command/certificate/remote_test.go
    '';

    vendorHash = "sha256-GD9TAvWqE3nvgVpoy/4CkkdVxliNMy+GNBXJtGSNVqo=";

    meta = {
      description = "Zero trust swiss army knife for working with X509, OAuth, JWT, OATH OTP, etc";
      homepage = "https://smallstep.com/cli/";
      changelog = "https://github.com/smallstep/cli/blob/v${version}/CHANGELOG.md";
      license = lib.licenses.asl20;
      maintainers = with lib.maintainers; [isabelroses];
      platforms = lib.platforms.linux ++ lib.platforms.darwin;
      mainProgram = "step";
    };
  }
