diff --git a/swh/model/cli.py b/swh/model/cli.py
index 4c8b7c17c4a4ddd49987d4e00db3938d05f57feb..d14d6f983bae18a88b6797edf9892c663aac99d4 100644
--- a/swh/model/cli.py
+++ b/swh/model/cli.py
@@ -9,8 +9,9 @@ import sys
 # WARNING: do not import unnecessary things here to keep cli startup time under
 # control
 import click
-from swh.core.cli import swh as swh_cli_group
 
+from swh.core.cli import swh as swh_cli_group
+from swh.model.identifiers import SWHID
 
 CONTEXT_SETTINGS = dict(help_option_names=["-h", "--help"])
 
@@ -25,17 +26,19 @@ _DULWICH_TYPES = {
 
 
 class SWHIDParamType(click.ParamType):
-    name = "persistent identifier"
+    """Click argument that accepts SWHID and return them as
+    :class:`swh.model.identifiers.SWHID` instances """
+
+    name = "SWHID"
 
-    def convert(self, value, param, ctx):
+    def convert(self, value, param, ctx) -> SWHID:
         from swh.model.exceptions import ValidationError
         from swh.model.identifiers import parse_swhid
 
         try:
-            parse_swhid(value)
-            return value  # return as string, as we need just that
+            return parse_swhid(value)
         except ValidationError as e:
-            self.fail("%s is not a valid SWHID. %s." % (value, e), param, ctx)
+            self.fail(f'"{value}" is not a valid SWHID: {e}', param, ctx)
 
 
 def swhid_of_file(path):
@@ -209,7 +212,7 @@ def identify(obj_type, verify, show_filename, follow_symlinks, objects):
 
     if verify:
         swhid = next(results)[1]
-        if verify == swhid:
+        if str(verify) == swhid:
             click.echo("SWHID match: %s" % swhid)
             sys.exit(0)
         else: