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] # Mender's upstream README documents ~/.mender-clirc as a JSON config file # containing username/password/server. Keep it secret because credentials are # valid backend authentication material. # https://github.com/mendersoftware/mender-cli#configuration-file 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"]