diff --git a/funkwhale_cli/cli.py b/funkwhale_cli/cli.py
index fa892e39452385d8c852b857925d93a4a7ad6fb2..70252b581cd5cba1ed8ea45737660b52b586ae7e 100644
--- a/funkwhale_cli/cli.py
+++ b/funkwhale_cli/cli.py
@@ -118,14 +118,14 @@ class lazy_credential():
         return bool(self.value)
 
 
-def set_server(ctx, url, token):
+def set_server(ctx, url, token, use_auth=True):
     ctx.ensure_object(dict)
     ctx.obj["SERVER_URL"] = url
     parsed = urllib.parse.urlparse(url)
     ctx.obj["SERVER_NETLOC"] = parsed.netloc
     ctx.obj["SERVER_PROTOCOL"] = parsed.scheme
     try:
-        token = token or lazy_credential(url, "_")
+        token = (token or lazy_credential(url, "_")) if use_auth else None
     except ValueError as e:
         raise click.ClickException("Error while retrieving password from keyring: {}. Your password may be incorrect.".format(e.args[0]))
     except Exception as e:
@@ -154,6 +154,13 @@ def set_server(ctx, url, token):
     default=False,
     help="Disable logging",
 )
+@click.option(
+    "--no-login",
+    envvar="FUNKWHALE_NO_LOGIN",
+    is_flag=True,
+    default=False,
+    help="Disable authentication/keyring",
+)
 @SERVER_DECORATOR
 @TOKEN_DECORATOR
 @click_log.simple_verbosity_option(logs.logger, expose_value=True)
@@ -161,7 +168,7 @@ def set_server(ctx, url, token):
 def cli(ctx, env_file, url, verbosity, token, quiet):
     ctx.ensure_object(dict)
     logs.logger.disabled = quiet
-    set_server(ctx, url, token)
+    set_server(ctx, url, token, use_auth=not no_login)
 
 
 @cli.command()