diff --git a/cmd/cli/app/pflags.go b/cmd/cli/app/pflags.go
index a22b530c3d3d384537af6c98919729a50ad7fa62..304f68de11b37dcc0da1f2fecc60042a638ef99b 100644
--- a/cmd/cli/app/pflags.go
+++ b/cmd/cli/app/pflags.go
@@ -38,6 +38,7 @@ import (
 
 func addArtifactPFlags(cmd *cobra.Command) error {
 	cmd.Flags().Var(&fileOrURLFlag{}, "signature", "path or URL to detached signature file")
+	cmd.Flags().Var(&sigFormatFlag{value: "pgp"}, "signature-format", "format of the signature")
 
 	cmd.Flags().Var(&fileOrURLFlag{}, "public-key", "path or URL to public key file")
 
@@ -160,7 +161,13 @@ func CreateRekordFromPFlags() (models.ProposedEntry, error) {
 		}
 
 		re.RekordObj.Signature = &models.RekordV001SchemaSignature{}
-		re.RekordObj.Signature.Format = models.RekordV001SchemaSignatureFormatPgp
+		sigFormat := viper.GetString("signature-format")
+		switch sigFormat {
+		case "pgp":
+			re.RekordObj.Signature.Format = models.RekordV001SchemaSignatureFormatPgp
+		case "minisign":
+			re.RekordObj.Signature.Format = models.RekordV001SchemaSignatureFormatMinisign
+		}
 		signature := viper.GetString("signature")
 		sigURL, err := url.Parse(signature)
 		if err == nil && sigURL.IsAbs() {
@@ -231,6 +238,30 @@ func (f *fileOrURLFlag) Type() string {
 	return "fileOrURLFlag"
 }
 
+type sigFormatFlag struct {
+	value string
+}
+
+func (f *sigFormatFlag) Type() string {
+	return "sigFormat"
+}
+
+func (f *sigFormatFlag) String() string {
+	return f.value
+}
+
+func (f *sigFormatFlag) Set(s string) error {
+	set := map[string]struct{}{
+		"pgp":      {},
+		"minisign": {},
+	}
+	if _, ok := set[s]; ok {
+		f.value = s
+		return nil
+	}
+	return fmt.Errorf("value specified is invalid: [%s] supported values are: [pgp, minisign]", s)
+}
+
 type shaFlag struct {
 	hash string
 }