kctl-mm 0.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- kctl_mm-0.2.0/.gitignore +33 -0
- kctl_mm-0.2.0/PKG-INFO +17 -0
- kctl_mm-0.2.0/README.md +212 -0
- kctl_mm-0.2.0/pyproject.toml +48 -0
- kctl_mm-0.2.0/skills/mattermost-admin/SKILL.md +317 -0
- kctl_mm-0.2.0/src/kctl_mm/__init__.py +1 -0
- kctl_mm-0.2.0/src/kctl_mm/__main__.py +4 -0
- kctl_mm-0.2.0/src/kctl_mm/cli.py +119 -0
- kctl_mm-0.2.0/src/kctl_mm/commands/__init__.py +0 -0
- kctl_mm-0.2.0/src/kctl_mm/commands/audit.py +36 -0
- kctl_mm-0.2.0/src/kctl_mm/commands/bots.py +48 -0
- kctl_mm-0.2.0/src/kctl_mm/commands/channels.py +207 -0
- kctl_mm-0.2.0/src/kctl_mm/commands/completions.py +32 -0
- kctl_mm-0.2.0/src/kctl_mm/commands/config_cmd.py +500 -0
- kctl_mm-0.2.0/src/kctl_mm/commands/dashboard.py +76 -0
- kctl_mm-0.2.0/src/kctl_mm/commands/deploy.py +36 -0
- kctl_mm-0.2.0/src/kctl_mm/commands/doctor.py +45 -0
- kctl_mm-0.2.0/src/kctl_mm/commands/health.py +52 -0
- kctl_mm-0.2.0/src/kctl_mm/commands/import_export.py +99 -0
- kctl_mm-0.2.0/src/kctl_mm/commands/integrations.py +45 -0
- kctl_mm-0.2.0/src/kctl_mm/commands/jobs.py +32 -0
- kctl_mm-0.2.0/src/kctl_mm/commands/logs.py +21 -0
- kctl_mm-0.2.0/src/kctl_mm/commands/maintenance.py +53 -0
- kctl_mm-0.2.0/src/kctl_mm/commands/mm_config.py +61 -0
- kctl_mm-0.2.0/src/kctl_mm/commands/permissions.py +56 -0
- kctl_mm-0.2.0/src/kctl_mm/commands/plugins.py +57 -0
- kctl_mm-0.2.0/src/kctl_mm/commands/posts.py +47 -0
- kctl_mm-0.2.0/src/kctl_mm/commands/self_update.py +30 -0
- kctl_mm-0.2.0/src/kctl_mm/commands/skill_cmd.py +76 -0
- kctl_mm-0.2.0/src/kctl_mm/commands/status.py +14 -0
- kctl_mm-0.2.0/src/kctl_mm/commands/teams.py +74 -0
- kctl_mm-0.2.0/src/kctl_mm/commands/users.py +98 -0
- kctl_mm-0.2.0/src/kctl_mm/commands/webhooks.py +58 -0
- kctl_mm-0.2.0/src/kctl_mm/core/__init__.py +0 -0
- kctl_mm-0.2.0/src/kctl_mm/core/callbacks.py +55 -0
- kctl_mm-0.2.0/src/kctl_mm/core/client.py +245 -0
- kctl_mm-0.2.0/src/kctl_mm/core/config.py +200 -0
- kctl_mm-0.2.0/src/kctl_mm/core/exceptions.py +25 -0
- kctl_mm-0.2.0/src/kctl_mm/core/mm_exec.py +57 -0
- kctl_mm-0.2.0/tests/__init__.py +0 -0
- kctl_mm-0.2.0/tests/conftest.py +44 -0
- kctl_mm-0.2.0/tests/test_audit.py +17 -0
- kctl_mm-0.2.0/tests/test_bots.py +15 -0
- kctl_mm-0.2.0/tests/test_channels.py +26 -0
- kctl_mm-0.2.0/tests/test_cli_smoke.py +41 -0
- kctl_mm-0.2.0/tests/test_client.py +50 -0
- kctl_mm-0.2.0/tests/test_config_cmd.py +10 -0
- kctl_mm-0.2.0/tests/test_doctor.py +22 -0
- kctl_mm-0.2.0/tests/test_health_dashboard.py +29 -0
- kctl_mm-0.2.0/tests/test_host_commands.py +32 -0
- kctl_mm-0.2.0/tests/test_import_export.py +43 -0
- kctl_mm-0.2.0/tests/test_integrations.py +17 -0
- kctl_mm-0.2.0/tests/test_jobs.py +15 -0
- kctl_mm-0.2.0/tests/test_maintenance.py +34 -0
- kctl_mm-0.2.0/tests/test_mm_config.py +28 -0
- kctl_mm-0.2.0/tests/test_mm_exec.py +46 -0
- kctl_mm-0.2.0/tests/test_permissions.py +23 -0
- kctl_mm-0.2.0/tests/test_plugins.py +31 -0
- kctl_mm-0.2.0/tests/test_posts.py +23 -0
- kctl_mm-0.2.0/tests/test_standard_commands.py +15 -0
- kctl_mm-0.2.0/tests/test_teams.py +32 -0
- kctl_mm-0.2.0/tests/test_users.py +30 -0
- kctl_mm-0.2.0/tests/test_webhooks.py +15 -0
kctl_mm-0.2.0/.gitignore
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*.egg-info/
|
|
5
|
+
*.egg
|
|
6
|
+
dist/
|
|
7
|
+
build/
|
|
8
|
+
.eggs/
|
|
9
|
+
|
|
10
|
+
# Virtual environments
|
|
11
|
+
.venv/
|
|
12
|
+
venv/
|
|
13
|
+
|
|
14
|
+
# IDE
|
|
15
|
+
.idea/
|
|
16
|
+
.vscode/
|
|
17
|
+
*.swp
|
|
18
|
+
*.swo
|
|
19
|
+
|
|
20
|
+
# Testing
|
|
21
|
+
.pytest_cache/
|
|
22
|
+
.coverage
|
|
23
|
+
htmlcov/
|
|
24
|
+
.mypy_cache/
|
|
25
|
+
.ruff_cache/
|
|
26
|
+
|
|
27
|
+
# OS
|
|
28
|
+
.DS_Store
|
|
29
|
+
Thumbs.db
|
|
30
|
+
|
|
31
|
+
# Environment
|
|
32
|
+
.env
|
|
33
|
+
.env.local
|
kctl_mm-0.2.0/PKG-INFO
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: kctl-mm
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: Kodemeio Mattermost CLI — manage Mattermost Team Edition
|
|
5
|
+
Requires-Python: >=3.12
|
|
6
|
+
Requires-Dist: httpx>=0.28.0
|
|
7
|
+
Requires-Dist: kctl-lib>=0.4.0
|
|
8
|
+
Requires-Dist: pydantic>=2.10.0
|
|
9
|
+
Requires-Dist: pyyaml>=6.0.2
|
|
10
|
+
Requires-Dist: rich>=13.9.0
|
|
11
|
+
Requires-Dist: typer>=0.15.0
|
|
12
|
+
Provides-Extra: dev
|
|
13
|
+
Requires-Dist: mypy>=1.14.0; extra == 'dev'
|
|
14
|
+
Requires-Dist: pytest-httpx>=0.35.0; extra == 'dev'
|
|
15
|
+
Requires-Dist: pytest>=8.3.0; extra == 'dev'
|
|
16
|
+
Requires-Dist: ruff>=0.9.0; extra == 'dev'
|
|
17
|
+
Requires-Dist: types-pyyaml>=6.0.0; extra == 'dev'
|
kctl_mm-0.2.0/README.md
ADDED
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
# kctl-mm
|
|
2
|
+
|
|
3
|
+
Kodemeio CLI for managing Mattermost Team Edition instances. Part of the
|
|
4
|
+
[kodemeio-platform](../../) monorepo.
|
|
5
|
+
|
|
6
|
+
Manage users, teams, channels, posts, webhooks, bots, plugins, integrations,
|
|
7
|
+
and server operations from the command line with profile-based multi-instance
|
|
8
|
+
support.
|
|
9
|
+
|
|
10
|
+
## Installation
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
# From workspace root (development)
|
|
14
|
+
uv sync --all-extras --all-packages
|
|
15
|
+
|
|
16
|
+
# Standalone install
|
|
17
|
+
uv tool install ./packages/kctl-mm
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Quick Start
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# 1. Configure a profile
|
|
24
|
+
kctl-mm config init
|
|
25
|
+
|
|
26
|
+
# 2. Check server health
|
|
27
|
+
kctl-mm health
|
|
28
|
+
|
|
29
|
+
# 3. List users
|
|
30
|
+
kctl-mm users list
|
|
31
|
+
|
|
32
|
+
# 4. List teams
|
|
33
|
+
kctl-mm teams list
|
|
34
|
+
|
|
35
|
+
# 5. List channels in a team
|
|
36
|
+
kctl-mm channels list --team kodemeio
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Command Groups
|
|
40
|
+
|
|
41
|
+
kctl-mm provides 24 command groups covering administration, messaging, server
|
|
42
|
+
operations, and integrations for Mattermost Team Edition.
|
|
43
|
+
|
|
44
|
+
### Admin & Config
|
|
45
|
+
|
|
46
|
+
| Group | Description |
|
|
47
|
+
|-------|-------------|
|
|
48
|
+
| `config` | Profile management (init, add, use, show, validate, remove, set, profiles, current) |
|
|
49
|
+
| `users` | User administration (list, get, create, deactivate, reactivate, update, reset-password) |
|
|
50
|
+
| `teams` | Team administration (list, get, create, update, delete, add-member, remove-member) |
|
|
51
|
+
| `channels` | Channel CRUD (list, get, create, update, delete, archive, add-member, remove-member) |
|
|
52
|
+
| `permissions` | Role & permission management (list, get, assign, revoke) |
|
|
53
|
+
| `mm-config` | Mattermost server config (show, get, set, patch, reload, diff) |
|
|
54
|
+
|
|
55
|
+
### Messaging
|
|
56
|
+
|
|
57
|
+
| Group | Description |
|
|
58
|
+
|-------|-------------|
|
|
59
|
+
| `posts` | Post management (create, get, update, delete, search, pin, unpin) |
|
|
60
|
+
|
|
61
|
+
### Server Ops
|
|
62
|
+
|
|
63
|
+
| Group | Description |
|
|
64
|
+
|-------|-------------|
|
|
65
|
+
| `status` | Server status and version info |
|
|
66
|
+
| `logs` | Fetch and stream server logs |
|
|
67
|
+
| `deploy` | Deploy / redeploy Mattermost stack |
|
|
68
|
+
| `health` | Health checks (ping, DB, cluster, connectivity) |
|
|
69
|
+
| `dashboard` | Overview dashboard with server stats |
|
|
70
|
+
| `maintenance` | Server maintenance (recycle DB, reload config, clear cache) |
|
|
71
|
+
| `jobs` | Background job management (list, get, cancel) |
|
|
72
|
+
| `audit` | Audit log queries |
|
|
73
|
+
| `import-export` | Bulk import / export (users, teams, channels, posts) |
|
|
74
|
+
|
|
75
|
+
### Integrations
|
|
76
|
+
|
|
77
|
+
| Group | Description |
|
|
78
|
+
|-------|-------------|
|
|
79
|
+
| `webhooks` | Incoming & outgoing webhook management |
|
|
80
|
+
| `bots` | Bot account management (list, create, update, disable, assign-owner) |
|
|
81
|
+
| `plugins` | Plugin management (list, install, enable, disable, remove, upload) |
|
|
82
|
+
| `integrations` | Slash commands & OAuth apps |
|
|
83
|
+
|
|
84
|
+
### Tools
|
|
85
|
+
|
|
86
|
+
| Group | Description |
|
|
87
|
+
|-------|-------------|
|
|
88
|
+
| `doctor` | Diagnostic checks (config, connectivity, auth, API version) |
|
|
89
|
+
| `self-update` | Check for PyPI updates and upgrade via `uv tool` |
|
|
90
|
+
| `completions` | Generate/install shell completions (zsh, bash, fish) |
|
|
91
|
+
| `skill` | Auto-generate SKILL.md from Typer introspection (hidden) |
|
|
92
|
+
|
|
93
|
+
## Global Options
|
|
94
|
+
|
|
95
|
+
| Option | Short | Description |
|
|
96
|
+
|--------|-------|-------------|
|
|
97
|
+
| `--json` | | Output as JSON (shortcut for `--format json`) |
|
|
98
|
+
| `--quiet` | `-q` | Suppress info messages |
|
|
99
|
+
| `--format` | `-f` | Output format: `pretty`, `json`, `csv`, `yaml` |
|
|
100
|
+
| `--no-header` | | Omit headers in CSV output |
|
|
101
|
+
| `--profile` | `-p` | Config profile name |
|
|
102
|
+
| `--url` | | API URL override |
|
|
103
|
+
| `--token` | | Personal access token override |
|
|
104
|
+
| `--version` | `-V` | Show version and exit |
|
|
105
|
+
|
|
106
|
+
## Configuration
|
|
107
|
+
|
|
108
|
+
kctl-mm uses the shared Kodemeio config framework at
|
|
109
|
+
`~/.config/kodemeio/config.yaml` with service key `mm`.
|
|
110
|
+
|
|
111
|
+
### Profile Schema Example
|
|
112
|
+
|
|
113
|
+
```yaml
|
|
114
|
+
mm:
|
|
115
|
+
active_profile: production
|
|
116
|
+
profiles:
|
|
117
|
+
production:
|
|
118
|
+
url: https://mm.kodeme.io
|
|
119
|
+
token: ${MM_TOKEN}
|
|
120
|
+
team: kodemeio
|
|
121
|
+
staging:
|
|
122
|
+
url: https://stg-mm.kodeme.io
|
|
123
|
+
token: ${MM_STAGING_TOKEN}
|
|
124
|
+
team: kodemeio
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Profile Setup
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
# Interactive setup
|
|
131
|
+
kctl-mm config init
|
|
132
|
+
|
|
133
|
+
# Manual profile
|
|
134
|
+
kctl-mm config add production \
|
|
135
|
+
--url https://mm.kodeme.io \
|
|
136
|
+
--token YOUR_PERSONAL_ACCESS_TOKEN
|
|
137
|
+
|
|
138
|
+
# Switch profiles
|
|
139
|
+
kctl-mm config use production
|
|
140
|
+
kctl-mm config current
|
|
141
|
+
kctl-mm config profiles
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Multi-Instance Support
|
|
145
|
+
|
|
146
|
+
Each profile can target a different Mattermost instance. Use `--profile` to
|
|
147
|
+
override the active profile for a single command:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
kctl-mm --profile staging health
|
|
151
|
+
kctl-mm --profile production users list --json
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### Environment Variables
|
|
155
|
+
|
|
156
|
+
| Variable | Description |
|
|
157
|
+
|----------|-------------|
|
|
158
|
+
| `KCTL_MM_URL` | Mattermost server URL |
|
|
159
|
+
| `KCTL_MM_TOKEN` | Personal access token |
|
|
160
|
+
| `KCTL_MM_PROFILE` | Default profile name |
|
|
161
|
+
|
|
162
|
+
Environment variables override config file values. CLI flags (`--url`,
|
|
163
|
+
`--token`) take highest precedence.
|
|
164
|
+
|
|
165
|
+
## Shell Completions
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
# Generate completion script
|
|
169
|
+
kctl-mm completions zsh
|
|
170
|
+
|
|
171
|
+
# Install completions (writes to shell config dir)
|
|
172
|
+
kctl-mm completions zsh --install
|
|
173
|
+
kctl-mm completions bash --install
|
|
174
|
+
kctl-mm completions fish --install
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
## Development
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
# Run tests
|
|
181
|
+
uv run pytest tests/ -v
|
|
182
|
+
|
|
183
|
+
# Lint
|
|
184
|
+
uv run ruff check src/
|
|
185
|
+
|
|
186
|
+
# Type check
|
|
187
|
+
uv run mypy src/
|
|
188
|
+
|
|
189
|
+
# Build
|
|
190
|
+
uv build
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Project Structure
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
packages/kctl-mm/
|
|
197
|
+
├── src/kctl_mm/
|
|
198
|
+
│ ├── cli.py # Main Typer app + command registration (Task 4)
|
|
199
|
+
│ ├── core/ # Shared core (callbacks, client, config)
|
|
200
|
+
│ └── commands/ # 24 command group modules
|
|
201
|
+
├── tests/ # pytest unit tests
|
|
202
|
+
└── pyproject.toml # Package metadata
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
## References
|
|
206
|
+
|
|
207
|
+
- Design spec: [`docs/superpowers/specs/2026-04-13-kctl-mm-design.md`](../../docs/superpowers/specs/2026-04-13-kctl-mm-design.md)
|
|
208
|
+
- Skill directory: [`skills/mattermost-admin/`](../../skills/mattermost-admin/)
|
|
209
|
+
|
|
210
|
+
## License
|
|
211
|
+
|
|
212
|
+
Internal -- Kodemeio Pte Ltd.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "kctl-mm"
|
|
7
|
+
version = "0.2.0"
|
|
8
|
+
description = "Kodemeio Mattermost CLI — manage Mattermost Team Edition"
|
|
9
|
+
requires-python = ">=3.12"
|
|
10
|
+
dependencies = [
|
|
11
|
+
"kctl-lib>=0.4.0",
|
|
12
|
+
"typer>=0.15.0",
|
|
13
|
+
"rich>=13.9.0",
|
|
14
|
+
"pydantic>=2.10.0",
|
|
15
|
+
"pyyaml>=6.0.2",
|
|
16
|
+
"httpx>=0.28.0",
|
|
17
|
+
]
|
|
18
|
+
|
|
19
|
+
[project.optional-dependencies]
|
|
20
|
+
dev = [
|
|
21
|
+
"pytest>=8.3.0",
|
|
22
|
+
"pytest-httpx>=0.35.0",
|
|
23
|
+
"ruff>=0.9.0",
|
|
24
|
+
"mypy>=1.14.0",
|
|
25
|
+
"types-PyYAML>=6.0.0",
|
|
26
|
+
]
|
|
27
|
+
|
|
28
|
+
[project.scripts]
|
|
29
|
+
kctl-mm = "kctl_mm.cli:_run"
|
|
30
|
+
|
|
31
|
+
[tool.uv.sources]
|
|
32
|
+
kctl-lib = { workspace = true }
|
|
33
|
+
|
|
34
|
+
[project.entry-points."kctl_mm.plugins"]
|
|
35
|
+
|
|
36
|
+
[tool.hatch.build.targets.wheel]
|
|
37
|
+
packages = ["src/kctl_mm"]
|
|
38
|
+
|
|
39
|
+
[tool.ruff]
|
|
40
|
+
target-version = "py312"
|
|
41
|
+
line-length = 120
|
|
42
|
+
|
|
43
|
+
[tool.mypy]
|
|
44
|
+
python_version = "3.12"
|
|
45
|
+
strict = true
|
|
46
|
+
|
|
47
|
+
[tool.pytest.ini_options]
|
|
48
|
+
testpaths = ["tests"]
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mattermost-admin
|
|
3
|
+
description: >
|
|
4
|
+
Mattermost team chat administration via kctl-mm CLI (24 groups, ~108 commands).
|
|
5
|
+
MUST use for ANY kctl-mm operation.
|
|
6
|
+
Triggers on: "activate", "activity", "archive", "assign", "audit", "bots", "cancel", "channels", "check", "cleanup", "completions", "compliance", "components", "config", "create-incoming", "create-outgoing", "current", "dashboard", "deactivate", "delete-incoming", "delete-outgoing", "demote", "deploy", "disable", "doctor", "down", "enable", "export", "full", "generate", "health", "import", "import-export", "init", "install", "integrations", "invite", "jobs", "json", "kctl-mm", "ldap-sync", "ldap-test", "list-incoming", "list-outgoing", "login", "logs", "maintenance", "members", "metrics", "mm-config", "oauth-create", "oauth-delete", "oauth-list", "optimize", "permissions", "plugins", "posts", "profile", "profiles", "promote", "pull", "quick", "rebuild", "reload", "remove", "rename", "reset-caches", "reset-pwd", "restart", "search", "security", "self-update", "skill", "status", "summary", "teams", "test-email", "unpin", "users", "vacuum".
|
|
7
|
+
Auto-generated: 2026-04-13
|
|
8
|
+
registry_hash: 5f677ba37de8
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# mattermost-admin — kctl-mm CLI Reference
|
|
12
|
+
|
|
13
|
+
> Auto-generated from `kctl-mm` command registry. Do not edit manually.
|
|
14
|
+
> To regenerate: `kctl-mm skill generate`
|
|
15
|
+
> To add custom content: edit `SKILL.extra.md` in the same directory.
|
|
16
|
+
|
|
17
|
+
## Overview
|
|
18
|
+
|
|
19
|
+
**CLI:** `kctl-mm`
|
|
20
|
+
**Command groups:** 24
|
|
21
|
+
**Total commands:** ~108
|
|
22
|
+
**Install:** `cd cli && uv tool install --editable .`
|
|
23
|
+
|
|
24
|
+
## Global Options
|
|
25
|
+
|
|
26
|
+
| Flag | Description |
|
|
27
|
+
|------|-------------|
|
|
28
|
+
| `--json` | JSON output |
|
|
29
|
+
| `--quiet`, `-q` | Suppress info messages |
|
|
30
|
+
| `--format`, `-f` | Output format: pretty/json/csv/yaml |
|
|
31
|
+
| `--no-header` | Omit CSV header row |
|
|
32
|
+
| `--profile`, `-p` | Config profile name |
|
|
33
|
+
| `--version`, `-V` | Show version |
|
|
34
|
+
|
|
35
|
+
## Command Reference
|
|
36
|
+
|
|
37
|
+
### `kctl-mm audit`
|
|
38
|
+
|
|
39
|
+
Audit & compliance reports.
|
|
40
|
+
|
|
41
|
+
| Command | Description |
|
|
42
|
+
|---------|-------------|
|
|
43
|
+
| `audit compliance <report_id> <out>` | |
|
|
44
|
+
| `audit login <username>` | |
|
|
45
|
+
| `audit security` | |
|
|
46
|
+
|
|
47
|
+
### `kctl-mm bots`
|
|
48
|
+
|
|
49
|
+
Bot management.
|
|
50
|
+
|
|
51
|
+
| Command | Description |
|
|
52
|
+
|---------|-------------|
|
|
53
|
+
| `bots create <username> <display>` | |
|
|
54
|
+
| `bots delete <bot_id>` | |
|
|
55
|
+
| `bots disable <bot_id>` | |
|
|
56
|
+
| `bots enable <bot_id>` | |
|
|
57
|
+
| `bots list` | |
|
|
58
|
+
|
|
59
|
+
### `kctl-mm channels`
|
|
60
|
+
|
|
61
|
+
Channel management.
|
|
62
|
+
|
|
63
|
+
| Command | Description |
|
|
64
|
+
|---------|-------------|
|
|
65
|
+
| `channels add <team_name> <channel_name> <user>` | |
|
|
66
|
+
| `channels archive <team_name> <channel_name>` | |
|
|
67
|
+
| `channels create <team_name> <channel_name> <display> [--private]` | |
|
|
68
|
+
| `channels get <team_name> <channel_name>` | |
|
|
69
|
+
| `channels list <team_name>` | |
|
|
70
|
+
| `channels members <team_name> <channel_name>` | |
|
|
71
|
+
| `channels remove <team_name> <channel_name> <user>` | |
|
|
72
|
+
| `channels rename <team_name> <channel_name> <new_display>` | |
|
|
73
|
+
|
|
74
|
+
### `kctl-mm completions`
|
|
75
|
+
|
|
76
|
+
Generate or install shell completions.
|
|
77
|
+
|
|
78
|
+
### `kctl-mm config`
|
|
79
|
+
|
|
80
|
+
Manage CLI configuration and Mattermost profiles.
|
|
81
|
+
|
|
82
|
+
| Command | Description |
|
|
83
|
+
|---------|-------------|
|
|
84
|
+
| `config add <name> [--url] [--token] [--team] [--set_default]` | Add or update a profile's Mattermost connection. |
|
|
85
|
+
| `config current` | Show the active profile and connection status. |
|
|
86
|
+
| `config init [--url] [--token] [--team] [--name]` | Initialize CLI configuration (interactive if no flags given). |
|
|
87
|
+
| `config profiles` | List all profiles with Mattermost connection status. |
|
|
88
|
+
| `config remove <name> [--force] [--service_only]` | Remove a profile or just its Mattermost config. |
|
|
89
|
+
| `config set <key> <value> [--profile_arg]` | Set a configuration value for the Mattermost service. |
|
|
90
|
+
| `config show` | Show full configuration (secrets masked). |
|
|
91
|
+
| `config use <name>` | Switch the default profile. |
|
|
92
|
+
| `config validate` | Validate the active profile's Mattermost connection. |
|
|
93
|
+
|
|
94
|
+
**Examples:**
|
|
95
|
+
```bash
|
|
96
|
+
kctl-mm config set url https://mm.new.io
|
|
97
|
+
kctl-mm config set token new-token-value
|
|
98
|
+
kctl-mm config set default_profile production
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### `kctl-mm dashboard`
|
|
102
|
+
|
|
103
|
+
Operational dashboard.
|
|
104
|
+
|
|
105
|
+
| Command | Description |
|
|
106
|
+
|---------|-------------|
|
|
107
|
+
| `dashboard activity` | |
|
|
108
|
+
| `dashboard full` | |
|
|
109
|
+
| `dashboard json` | |
|
|
110
|
+
| `dashboard summary` | |
|
|
111
|
+
| `dashboard watch [--interval]` | |
|
|
112
|
+
|
|
113
|
+
### `kctl-mm deploy`
|
|
114
|
+
|
|
115
|
+
Deploy lifecycle operations.
|
|
116
|
+
|
|
117
|
+
| Command | Description |
|
|
118
|
+
|---------|-------------|
|
|
119
|
+
| `deploy down` | |
|
|
120
|
+
| `deploy pull` | |
|
|
121
|
+
| `deploy rebuild` | |
|
|
122
|
+
| `deploy restart` | |
|
|
123
|
+
| `deploy up` | |
|
|
124
|
+
|
|
125
|
+
### `kctl-mm doctor`
|
|
126
|
+
|
|
127
|
+
Diagnose kctl-mm configuration and connectivity.
|
|
128
|
+
|
|
129
|
+
### `kctl-mm health`
|
|
130
|
+
|
|
131
|
+
Health checks.
|
|
132
|
+
|
|
133
|
+
| Command | Description |
|
|
134
|
+
|---------|-------------|
|
|
135
|
+
| `health components` | |
|
|
136
|
+
| `health json` | |
|
|
137
|
+
| `health metrics` | |
|
|
138
|
+
| `health quick` | |
|
|
139
|
+
| `health status` | |
|
|
140
|
+
|
|
141
|
+
### `kctl-mm import-export`
|
|
142
|
+
|
|
143
|
+
Bulk import/export (mmctl).
|
|
144
|
+
|
|
145
|
+
| Command | Description |
|
|
146
|
+
|---------|-------------|
|
|
147
|
+
| `import-export export <team> [--out]` | |
|
|
148
|
+
| `import-export import <local_path>` | |
|
|
149
|
+
| `import-export jobs` | |
|
|
150
|
+
|
|
151
|
+
### `kctl-mm integrations`
|
|
152
|
+
|
|
153
|
+
OAuth / LDAP / SAML integrations (mmctl).
|
|
154
|
+
|
|
155
|
+
| Command | Description |
|
|
156
|
+
|---------|-------------|
|
|
157
|
+
| `integrations ldap-sync` | |
|
|
158
|
+
| `integrations ldap-test` | |
|
|
159
|
+
| `integrations oauth-create <name> <callback_url>` | |
|
|
160
|
+
| `integrations oauth-delete <oauth_id>` | |
|
|
161
|
+
| `integrations oauth-list` | |
|
|
162
|
+
|
|
163
|
+
### `kctl-mm jobs`
|
|
164
|
+
|
|
165
|
+
Job management.
|
|
166
|
+
|
|
167
|
+
| Command | Description |
|
|
168
|
+
|---------|-------------|
|
|
169
|
+
| `jobs cancel <job_id>` | |
|
|
170
|
+
| `jobs list [--job_type]` | |
|
|
171
|
+
| `jobs status <job_id>` | |
|
|
172
|
+
|
|
173
|
+
### `kctl-mm logs`
|
|
174
|
+
|
|
175
|
+
Tail Mattermost service logs.
|
|
176
|
+
|
|
177
|
+
### `kctl-mm maintenance`
|
|
178
|
+
|
|
179
|
+
Server maintenance commands.
|
|
180
|
+
|
|
181
|
+
| Command | Description |
|
|
182
|
+
|---------|-------------|
|
|
183
|
+
| `maintenance cleanup` | |
|
|
184
|
+
| `maintenance optimize` | Alias for cleanup — Mattermost has no separate optimize endpoint. |
|
|
185
|
+
| `maintenance reset-caches` | |
|
|
186
|
+
| `maintenance vacuum` | |
|
|
187
|
+
|
|
188
|
+
### `kctl-mm mm-config`
|
|
189
|
+
|
|
190
|
+
Mattermost server config (REST + mmctl).
|
|
191
|
+
|
|
192
|
+
| Command | Description |
|
|
193
|
+
|---------|-------------|
|
|
194
|
+
| `mm-config export <local_path>` | |
|
|
195
|
+
| `mm-config get <key>` | |
|
|
196
|
+
| `mm-config reload` | |
|
|
197
|
+
| `mm-config set <key> <value>` | |
|
|
198
|
+
| `mm-config show` | |
|
|
199
|
+
| `mm-config test-email` | |
|
|
200
|
+
|
|
201
|
+
### `kctl-mm permissions`
|
|
202
|
+
|
|
203
|
+
Permissions & role management (mmctl).
|
|
204
|
+
|
|
205
|
+
| Command | Description |
|
|
206
|
+
|---------|-------------|
|
|
207
|
+
| `permissions add <role> <perm>` | |
|
|
208
|
+
| `permissions assign <role> <user>` | |
|
|
209
|
+
| `permissions get <role>` | |
|
|
210
|
+
| `permissions list` | |
|
|
211
|
+
| `permissions remove <role> <perm>` | |
|
|
212
|
+
|
|
213
|
+
### `kctl-mm plugins`
|
|
214
|
+
|
|
215
|
+
Plugin management (mmctl).
|
|
216
|
+
|
|
217
|
+
| Command | Description |
|
|
218
|
+
|---------|-------------|
|
|
219
|
+
| `plugins delete <plugin_id>` | |
|
|
220
|
+
| `plugins disable <plugin_id>` | |
|
|
221
|
+
| `plugins enable <plugin_id>` | |
|
|
222
|
+
| `plugins install <local_path>` | |
|
|
223
|
+
| `plugins list` | |
|
|
224
|
+
|
|
225
|
+
### `kctl-mm posts`
|
|
226
|
+
|
|
227
|
+
Post management.
|
|
228
|
+
|
|
229
|
+
| Command | Description |
|
|
230
|
+
|---------|-------------|
|
|
231
|
+
| `posts create <channel_id> <message>` | |
|
|
232
|
+
| `posts delete <post_id>` | |
|
|
233
|
+
| `posts get <post_id>` | |
|
|
234
|
+
| `posts pin <post_id>` | |
|
|
235
|
+
| `posts search <team_id> <terms>` | |
|
|
236
|
+
| `posts unpin <post_id>` | |
|
|
237
|
+
|
|
238
|
+
### `kctl-mm self-update`
|
|
239
|
+
|
|
240
|
+
Check for updates and upgrade kctl-mm.
|
|
241
|
+
|
|
242
|
+
### `kctl-mm skill`
|
|
243
|
+
|
|
244
|
+
Claude Code skill management.
|
|
245
|
+
|
|
246
|
+
| Command | Description |
|
|
247
|
+
|---------|-------------|
|
|
248
|
+
| `skill generate [--output] [--install] [--check]` | Auto-generate SKILL.md from CLI command registry. |
|
|
249
|
+
|
|
250
|
+
**Examples:**
|
|
251
|
+
```bash
|
|
252
|
+
kctl-mm skill generate
|
|
253
|
+
kctl-mm skill generate --install
|
|
254
|
+
kctl-mm skill generate --check
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
### `kctl-mm status`
|
|
258
|
+
|
|
259
|
+
Show Mattermost service status.
|
|
260
|
+
|
|
261
|
+
### `kctl-mm teams`
|
|
262
|
+
|
|
263
|
+
Team management.
|
|
264
|
+
|
|
265
|
+
| Command | Description |
|
|
266
|
+
|---------|-------------|
|
|
267
|
+
| `teams add <team_name> <user>` | |
|
|
268
|
+
| `teams archive <team_name>` | |
|
|
269
|
+
| `teams create <name> <display>` | |
|
|
270
|
+
| `teams delete <team_name> [--confirm]` | |
|
|
271
|
+
| `teams get <team_name>` | |
|
|
272
|
+
| `teams list` | |
|
|
273
|
+
| `teams members <team_name>` | |
|
|
274
|
+
| `teams remove <team_name> <user>` | |
|
|
275
|
+
|
|
276
|
+
### `kctl-mm users`
|
|
277
|
+
|
|
278
|
+
User management.
|
|
279
|
+
|
|
280
|
+
| Command | Description |
|
|
281
|
+
|---------|-------------|
|
|
282
|
+
| `users activate <username>` | |
|
|
283
|
+
| `users create <email> <username> <password>` | |
|
|
284
|
+
| `users deactivate <username>` | |
|
|
285
|
+
| `users demote <username>` | |
|
|
286
|
+
| `users get <username>` | |
|
|
287
|
+
| `users invite <email> <team>` | |
|
|
288
|
+
| `users list [--page] [--per_page]` | |
|
|
289
|
+
| `users promote <username>` | |
|
|
290
|
+
| `users reset-pwd <username>` | |
|
|
291
|
+
| `users search <query>` | |
|
|
292
|
+
|
|
293
|
+
### `kctl-mm webhooks`
|
|
294
|
+
|
|
295
|
+
Webhook management.
|
|
296
|
+
|
|
297
|
+
| Command | Description |
|
|
298
|
+
|---------|-------------|
|
|
299
|
+
| `webhooks create-incoming <channel_id> <display>` | |
|
|
300
|
+
| `webhooks create-outgoing <team_id> <trigger>` | |
|
|
301
|
+
| `webhooks delete-incoming <hook_id>` | |
|
|
302
|
+
| `webhooks delete-outgoing <hook_id>` | |
|
|
303
|
+
| `webhooks list` | |
|
|
304
|
+
| `webhooks list-incoming` | |
|
|
305
|
+
| `webhooks list-outgoing` | |
|
|
306
|
+
|
|
307
|
+
## Configuration
|
|
308
|
+
|
|
309
|
+
Shared config: `~/.config/kodemeio/config.yaml`
|
|
310
|
+
|
|
311
|
+
```bash
|
|
312
|
+
kctl-mm config init # Interactive setup
|
|
313
|
+
kctl-mm config show # Show current config
|
|
314
|
+
kctl-mm config profiles # List profiles
|
|
315
|
+
kctl-mm config current # Show active profile
|
|
316
|
+
kctl-mm config validate # Verify config
|
|
317
|
+
```
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.2.0"
|