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.