id = "mmctl"
name = "mmctl"
homepage = "https://docs.mattermost.com/administration-guide/manage/mmctl-command-line-tool"
description = "The Mattermost command-line administration tool"
executables = ["mmctl"]
[dotfiles]
paths = ["[configHome]/mmctl/config"]
secret = []
[[dotfiles.secret_paths]]
file = "[configHome]/mmctl/config"
format = "json"
match = { key_path = [
"credentials.*.auth_token",
"credentials.*.password",
"credentials.*.mfa_token",
] }
[commands]
format = 1
label = "mmctl"
description = "Common Mattermost administration jobs: list users and create a channel. Authentication, TLS and other subcommands are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false }
[[commands.subcommand]]
path = ["user", "list"]
label = "List users"
[[commands.subcommand.source]]
id = "doc"
kind = "manual"
url = "https://raw.githubusercontent.com/mattermost/mmctl/master/docs/mmctl_user_list.rst"
revision = "master 2026-10-27"
evidence = """
--all Fetch all users. --page flag will be ignore if provided
--page int Page number to fetch for the list of users
--per-page int Number of users to be fetched (default 200)
--team string If supplied, only users belonging to this team will be listed
--json the output format will be in json format
"""
[[commands.subcommand.field]]
id = "all"
label = "All users"
type = "boolean"
option = ["--all"]
sources = ["doc"]
[[commands.subcommand.field]]
id = "team"
label = "Team"
type = "string"
option = ["--team"]
sources = ["doc"]
[[commands.subcommand.field]]
id = "page"
label = "Page"
type = "integer"
option = ["--page"]
sources = ["doc"]
[[commands.subcommand.field]]
id = "per_page"
label = "Users per page"
type = "integer"
option = ["--per-page"]
sources = ["doc"]
[[commands.subcommand.field]]
id = "json"
label = "JSON output"
type = "boolean"
option = ["--json"]
sources = ["doc"]
[[commands.subcommand.task]]
id = "list"
label = "List all users"
fields = ["all", "team", "json"]
set = { all = [true] }
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["all", "team", "page", "per_page", "json"]
[[commands.subcommand]]
path = ["channel", "create"]
label = "Create a channel"
[[commands.subcommand.source]]
id = "doc"
kind = "manual"
url = "https://raw.githubusercontent.com/mattermost/mmctl/master/docs/mmctl_channel_create.rst"
revision = "master 2026-10-27"
evidence = """
--display-name string Channel Display Name
--header string Channel header
--name string Channel Name
--private Create a private channel.
--purpose string Channel purpose
--team string Team name or ID
"""
[[commands.subcommand.field]]
id = "team"
label = "Team name or ID"
type = "string"
option = ["--team"]
sources = ["doc"]
[[commands.subcommand.field]]
id = "name"
label = "Channel name"
type = "string"
option = ["--name"]
sources = ["doc"]
[[commands.subcommand.field]]
id = "display_name"
label = "Display name"
type = "string"
option = ["--display-name"]
sources = ["doc"]
[[commands.subcommand.field]]
id = "private"
label = "Private channel"
type = "boolean"
option = ["--private"]
sources = ["doc"]
[[commands.subcommand.field]]
id = "purpose"
label = "Purpose"
type = "string"
option = ["--purpose"]
sources = ["doc"]
[[commands.subcommand.field]]
id = "header"
label = "Header"
type = "string"
option = ["--header"]
sources = ["doc"]
[[commands.subcommand.task]]
id = "create"
label = "Create channel"
fields = ["team", "name", "display_name", "private"]
required = ["team", "name", "display_name"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["team", "name", "display_name", "private", "purpose", "header"]