id = "mender-cli"
name = "Mender CLI"
homepage = "https://github.com/mendersoftware/mender-cli"
description = "General-purpose CLI tool for the Mender backend."
executables = ["mender-cli"]
[dotfiles]
paths = []
secret = ["~/.mender-clirc"]
side_effect = false
[commands]
format = 1
label = "Mender CLI"
description = "Log in to a Mender server. Passwords are deliberately not a field (the tool prompts); artifacts operations are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false }
[[commands.subcommand]]
path = ["login"]
label = "Log in to the server"
[[commands.subcommand.source]]
id = "src"
kind = "help"
url = "https://github.com/mendersoftware/mender-cli/blob/master/cmd/root.go"
revision = "master 2026-10"
evidence = """
Use: "login",
Short: "Log in to the Mender server (required before other operations).",
"username, format: email (will prompt if not provided)"
"two-factor authentication token"
argLoginUsername = "username"
argLoginToken = "2fa-code"
argRootServer = "server"
argRootSkipVerify = "skip-verify"
"root server URL, e.g. 'https://hosted.mender.io'"
BoolP(argRootSkipVerify, "k", false, "skip SSL certificate verification")
BoolP(argRootVerbose, "v", false, "print verbose output")
Spelled on the command line (cobra flag names above, prefixed with --): --server --username --2fa-code --skip-verify --verbose, short -k -v
README: mender-cli --generate-autocomplete
"""
[[commands.subcommand.field]]
id = "server"
label = "Server URL"
type = "url"
option = ["--server"]
suggestions = [{ value = "https://hosted.mender.io", label = "hosted.mender.io" }]
sources = ["src"]
[[commands.subcommand.field]]
id = "username"
label = "Username (email)"
type = "string"
option = ["--username"]
sources = ["src"]
[[commands.subcommand.field]]
id = "tfa_code"
label = "Two-factor code"
type = "string"
option = ["--2fa-code"]
sources = ["src"]
[[commands.subcommand.field]]
id = "skip_verify"
label = "Skip TLS verification"
type = "boolean"
option = ["--skip-verify", "-k"]
effect = "exec"
sources = ["src"]
[[commands.subcommand.field]]
id = "verbose"
label = "Verbose"
type = "boolean"
option = ["--verbose", "-v"]
sources = ["src"]
[[commands.subcommand.task]]
id = "login"
label = "Log in"
fields = ["server", "username", "tfa_code"]
required = ["server", "username"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["server", "username", "tfa_code"]
[[commands.subcommand.group]]
id = "advanced"
label = "Advanced"
fields = ["skip_verify", "verbose"]