mattermost-cli
Mattermost CLI
Fetch and display Mattermost messages using the mm command. Output is automatically redacted for safe LLM processing.
When to Invoke Immediately
Trigger this skill when the user explicitly:
- Asks to check/read/fetch their Mattermost messages or DMs
- Wants to see what someone said ("what did alice say about X")
- Needs to find tasks or action items from chat
- References a conversation they had on Mattermost
When to Suggest (Don't Auto-Invoke)
Offer to use this skill when:
- User mentions a task "from chat" without specifying Mattermost
- User is looking for context that might be in messages
- You need message history to understand a task better
Say: "want me to check your Mattermost messages for context?" - don't auto-invoke.
Prerequisites
The mm CLI must be installed and configured:
# Test if working
mm channels
If it fails, configure credentials using one of:
- Config file:
mm config --initthen edit~/.config/mattermost-cli/config.toml - Environment variables:
MM_URLandMM_TOKEN - CLI flags:
--urland--token
Commands
List DM Channels
mm channels # Pretty output - who have I chatted with?
mm channels --json # Structured output
Fetch Messages
mm dms # All DMs, last 7 days
mm dms -u <username> # From specific user
mm dms -u alice -u bob # Multiple users
mm dms --since 24h # Last 24 hours
mm dms --since 30d --limit 100 # More history
mm dms --json # For parsing
Manage Configuration
mm config # Show config status
mm config --init # Create config file with template
mm config --path # Print config file path
Quick Reference
| Task | Command |
|---|---|
| Recent messages | mm dms --since 24h |
| From specific person | mm dms -u alice |
| All channels list | mm channels |
| JSON for processing | mm dms --json |
| Extended history | mm dms --since 30d --limit 200 |
| Setup config | mm config --init |
Output Formats
| Context | Format | Use Case |
|---|---|---|
| Terminal (TTY) | Pretty | Reading directly |
| Piped/non-TTY | Markdown | Passing to tools |
--json flag |
JSON | Parsing, analysis |
Date/Time Display
Dates use European format (DD Mon YYYY) and 24-hour time.
Under AI agents, relative time is enabled by default ("2 days ago" instead of "29 Jan 2026"). Override with --no-relative if needed.
mm channels # "2 days ago" (under agent)
mm channels --no-relative # "29 Jan 2026"
mm channels --relative # Force relative time
Security
All secrets are automatically redacted:
- API keys, tokens, passwords, JWTs
- Connection strings
- Credentials in config snippets
Example: ghp_abc123xyz789secret → ghp_...cret
Output is safe to include in context or pass to other LLMs.
Configuration Priority
Credentials are resolved in this order:
- CLI flags (
--url,--token) - Environment variables (
MM_URL,MM_TOKEN) - Config file (
~/.config/mattermost-cli/config.toml)
Error Handling
| Error | Cause | Solution |
|---|---|---|
| "Mattermost URL required" | Not configured | Run mm config --init or set MM_URL |
| "Mattermost token required" | Not configured | Edit config file or set MM_TOKEN |
| "Could not find DM channel" | User doesn't exist or no DM history | Check username spelling |
| Connection errors | Network/server issues | Verify URL is correct and accessible |
When NOT to Use
- User is asking about Slack, Discord, or other chat platforms
- User wants to send messages (this is read-only)
- User needs real-time notifications (this is one-shot fetch)
Example Workflows
"What did Alice say about the deployment?"
mm dms -u alice --since 7d
Then grep or scan output for deployment-related content.
"Check my recent messages for any tasks"
mm dms --since 24h
Review output for action items, requests, or TODOs.
"Get context from a specific conversation"
mm dms -u bob --limit 50 --json > /tmp/bob-chat.json
Parse JSON for relevant context to include in your response.