AI Agent Manages Mattermost Kanban Board via Skate CLI Tool
AI agents like Claude Code excel at generating code, but they often overlook project tracking: task statuses go untouched, time isn't logged, and context gets lost between sessions. Enter Skate: a Go-based CLI tool with an MCP server that connects agents directly to the Mattermost Boards API. The agent independently views tasks, updates statuses, starts timers, comments on changes, and closes tickets.
Skate bridges the gap between terminal work and board state. The skate tasks command displays a prioritized list:
ID TITLE STATUS PRIORITY ASSIGNEE
c4cf6f4wzbjgxdm3hpa7iygtjdo Task translation middleware Not Started 2. Medium
cuppcm819atnixx71qg9i485jsr listing tasks In Progress 1. High 🔥
The agent parses the output, grabs the highest-priority task, updates its status via API, and loops without context switching.
Setup and Basic Workflow
Skate's static binary works via HTTP requests with a Mattermost Bearer token. No database or container dependencies.
Initialization:
skate init— enter server URL and token.skate local-init— select board for the project.skate setup claude-code— register MCP server with 9 tools: boards, tasks, task details, status update, create task, comments, timer start/stop, time log.
Output supports JSON/YAML for easy parsing:
skate tasks --json | jq '.[] | select(.Priority | test("High"))'
Permissions inherit from your user: if you see the board in the browser, it's accessible in the CLI.
Task Translation for Multilingual Teams
Middleware translates task descriptions to English for the agent without altering the original on the board. Enable in ~/.config/skate.yaml:
translate:
enabled: true
provider: ollama
model: gpt-oss:latest
base_url: http://localhost:11434/v1
Heuristic: ASCII text skips translation; non-ASCII goes through an OpenAI-compatible API (Ollama, OpenRouter). Ideal for distributed teams with multilingual tasks.
Full Development Cycle Under Agent Control
Skate itself was built using this workflow: a Mattermost board with tasks, where Claude grabbed the next highest-priority task.
Agent Steps:
skate tasks— get list.skate task <ID>— view details.- Status: In Progress.
- Timer start.
- Execute (code, tests, docs).
- Comment with changes.
- Timer stop.
- Status: Completed.
- Ask: next task?
30 tasks closed with timestamps and comments. Recurring tasks (README updates, tests) get dragged from Completed to Not Started — agent analyzes diffs and updates accordingly.
Integrating Agents into Team Workflows
Create tasks from the terminal: skate create with a description from chat. For complex features, the agent generates a Markdown plan, attaches it to the ticket, and sets it to Blocked. The team reviews asynchronously; the agent incorporates feedback before coding.
Result: AI acts as a full team member on the board — plans are visible, time is logged, decisions documented.
Control via SKILL.md: Built-in Markdown file with instructions (statuses, timers, mentions, attachments). Agents follow it more reliably than humans: they check linked tasks, re-read comments, log every step.
Key Takeaways
- Skate gives AI direct access to Mattermost Boards without a browser, tapping into team memory instead of agent memory.
- Full cycle: from priority to closure with time tracking and translations.
- Recurring tasks automated — agent diffs files itself.
- Team integration: plans on the board for human review before coding.
- Minimal stack: Go binary, REST API, MCP tools.
— Editorial Team
No comments yet.