This document explains how to configure OPENCLAW to work with the OPENCLAW Task Board's multi-agent system.
When you drag a task to "In Progress", the task board automatically:
- Calls OPENCLAW's
/tools/invokeAPI - Spawns a sub-agent session with
sessions_spawn - Passes the task details and guardrails to the agent
- The agent posts updates as comments on the task
For this to work, you need agents configured in OPENCLAW.
If you just want the task board without multi-agent automation:
- Set
OPENCLAW_ENABLED=falsein your.env(or leaveOPENCLAW_TOKENempty) - The board works as a standard Kanban — no AI sessions spawn
- You can still use it for manual task tracking
Add agents to your OPENCLAW config (config.yaml or via OPENCLAW config):
agents:
architect:
model: anthropic/claude-sonnet-4-20250514 # or your preferred model
systemPrompt: |
You are the Architect for a software project.
Focus on system design, patterns, scalability, and technical trade-offs.
Be concise. Flag concerns with severity (CRITICAL/HIGH/MEDIUM/LOW).
security-auditor:
model: anthropic/claude-sonnet-4-20250514
systemPrompt: |
You are a Security Auditor.
Focus on SOC2, HIPAA, CIS Controls compliance.
Review for vulnerabilities, credential handling, data isolation.
Rate findings: CRITICAL (blocks deploy) / HIGH / MEDIUM / LOW
code-reviewer:
model: anthropic/claude-sonnet-4-20250514
systemPrompt: |
You are a Code Reviewer.
Focus on Python/Django best practices, DRY, SOLID, error handling.
Format: MUST FIX / SHOULD FIX / CONSIDER / NICE TO HAVE
ux-manager:
model: anthropic/claude-sonnet-4-20250514
systemPrompt: |
You are a UX Manager.
Focus on user flows, error messages, form design, accessibility.
You have browser access to localhost only for UI review.Your gateway token is in your OPENCLAW config. Find it:
OPENCLAW config get gateway.tokenOr check your config.yaml:
gateway:
token: "your-token-here"Create .env from the example:
cp .env.example .envEdit .env:
OPENCLAW_GATEWAY_URL=http://host.docker.internal:18789
OPENCLAW_TOKEN=your-OPENCLAW-token-here
TASKBOARD_API_KEY=generate-a-random-keyNote: Use host.docker.internal if running the task board in Docker and OPENCLAW on your host machine.
docker-compose down
docker-compose up -dThe task board maps display names to OPENCLAW agent IDs:
| Task Board Name | OPENCLAW Agent ID |
|---|---|
| OpenClaw | main |
| Architect | architect |
| Security Auditor | security-auditor |
| Code Reviewer | code-reviewer |
| UX Manager | ux-manager |
If your OPENCLAW uses different agent IDs, edit app.py:
AGENT_TO_OPENCLAW_ID = {
"OpenClaw": "main",
"Architect": "your-architect-id",
"Security Auditor": "your-security-id",
# ... etc
}The command bar lets you chat with OpenClaw directly. For responses to appear in the command bar:
## Command Bar (Task Board Two-Way Chat)
When a message arrives prefixed with `[COMMAND_BAR]`, respond via the task board endpoint:
\`\`\`powershell
Invoke-RestMethod -Uri "http://localhost:8080/api/<Moltname>/respond" -Method POST -Headers @{"Content-Type"="application/json"; "X-API-Key"="YOUR_TASKBOARD_API_KEY"} -Body '{"response":"Your message here"}'
\`\`\`
This pushes the response to the command bar via WebSocket for real-time two-way chat.- You type in the command bar
- Task board sends
[COMMAND_BAR] your messageto OPENCLAW via wake - Molt (main agent) receives the message
- Molt responds by POSTing to
/api/<Moltname>/respond - Task board broadcasts response via WebSocket
- You see the response in the command bar
When agents are spawned, they receive these guardrails:
⚠️ MANDATORY CONSTRAINTS:
FILESYSTEM BOUNDARIES:
- ONLY access: [your configured paths]
- Everything else is FORBIDDEN
FORBIDDEN ACTIONS:
- Browser tool (except UX Manager on localhost)
- git commit (requires approval)
- External API calls (requires approval)
COMMUNICATION:
- Post comments on task cards
- Create action items for questions
- Move to Review when done
You can customize guardrails in app.py → AGENT_GUARDRAILS.
-
Check OPENCLAW is running:
OPENCLAW status
-
Check the token is correct:
curl -H "Authorization: Bearer YOUR_TOKEN" http://localhost:18789/api/status -
Check agent exists:
OPENCLAW config get agents.architect
-
Check Docker can reach host:
- Use
host.docker.internalon Docker Desktop - On Linux, you may need
--network hostor the host IP
- Use
- Ensure TOOLS.md has the command bar instructions
- Check
TASKBOARD_API_KEYmatches in both places - Look for
[COMMAND_BAR]prefix in OPENCLAW logs
The agent needs to make HTTP calls to the task board. Ensure:
- Agent can reach
http://localhost:8080(or your task board URL) - No firewall blocking the connection
- Check agent logs for HTTP errors
┌─────────────────────────────────────────────────────────────┐
│ Task Board UI │
│ User drags task to "In Progress" │
└─────────────────────┬───────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Task Board Backend │
│ POST /tools/invoke { sessions_spawn, agentId, task } │
└─────────────────────┬───────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ OPENCLAW Gateway │
│ Spawns sub-agent session with task prompt + guardrails │
└─────────────────────┬───────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Agent Session │
│ - Analyzes task │
│ - POSTs comments to task board │
│ - Creates action items if needed │
│ - Moves task to Review when done │
└─────────────────────┬───────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Task Board Backend │
│ Receives comment → Broadcasts via WebSocket │
└─────────────────────┬───────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Task Board UI │
│ Live update: comment appears on task card │
└─────────────────────────────────────────────────────────────┘