# OpenClaw Agent Fleet Dashboard A real-time task coordination board for the OpenClaw agent fleet. ## Features - **Kanban Board**: Backlog → Todo → In Progress → Review → Done - **Agent Assignment**: Assign tasks to specific OpenClaw agents - **Priority Levels**: High, Medium, Low - **Tags**: Categorize tasks with tags - **Wiki Auto-Generation**: Completed tasks generate wiki documentation - **Real-time Updates**: WebSocket-powered live updates - **REST API**: For agent heartbeat integration ## Quick Start ```bash cd /home/bear/homelab/ubuntu/taskboard docker compose up -d --build ``` Access at: https://agentdash.local.tophermayor.com ## API Endpoints ### Tasks | Method | Endpoint | Description | |--------|----------|-------------| | GET | `/api/tasks` | List all tasks (filter: `?assignee=ubuntu&status=todo`) | | GET | `/api/tasks/:id` | Get single task | | POST | `/api/tasks` | Create task | | PATCH | `/api/tasks/:id` | Update task | | POST | `/api/tasks/:id/complete` | Complete task (creates wiki) | | DELETE | `/api/tasks/:id` | Delete task | ### Wiki | Method | Endpoint | Description | |--------|----------|-------------| | GET | `/api/wiki` | List wiki pages | | GET | `/api/wiki/:filename` | Get wiki page content | ### Agent Heartbeat | Method | Endpoint | Description | |--------|----------|-------------| | GET | `/api/heartbeat/:agent` | Get pending tasks for agent | ## Agent Integration Add to agent's HEARTBEAT.md: ```bash # Check for assigned tasks TASKS=$(curl -s http://192.168.50.61:8395/api/heartbeat/ubuntu) # If tasks pending, process them if echo "$TASKS" | jq -e '.pending_tasks > 0' > /dev/null; then echo "Processing assigned tasks..." # Process tasks... fi ``` ## Example: Create Task via API ```bash curl -X POST http://localhost:8395/api/tasks \ -H "Content-Type: application/json" \ -d '{ "title": "Restart PostgreSQL container", "description": "The postgres-shared container needs a restart for config changes", "assignee": "ubuntu", "priority": "high", "tags": ["docker", "database"] }' ``` ## Example: Complete Task with Wiki ```bash curl -X POST http://localhost:8395/api/tasks/TASK_ID/complete \ -H "Content-Type: application/json" \ -d '{ "implementation_details": "Restarted the container using docker restart postgres-shared. Verified connections working.", "files_changed": ["/home/bear/homelab/ubuntu/postgres/docker-compose.yml"] }' ``` ## Task Schema ```json { "id": "uuid", "title": "string", "description": "string", "assignee": "ubuntu|pve|truenas|grizzley|ice|panda|zeroclaw|docs", "status": "backlog|todo|in_progress|review|done", "priority": "high|medium|low", "tags": ["array", "of", "tags"], "created_at": "ISO timestamp", "updated_at": "ISO timestamp", "completed_at": "ISO timestamp or null", "wiki_path": "filename.md or null" } ``` ## Directory Structure ``` taskboard/ ├── docker-compose.yml ├── Dockerfile ├── README.md ├── package.json ├── server.js ├── client/ │ └── index.html ├── public/ │ ├── index.html │ └── app.js ├── data/ │ └── tasks.db (SQLite) └── wiki/ └── (auto-generated wiki pages) ``` ## Deployment The taskboard is deployed on the ubuntu host at: - **URL**: https://agentdash.local.tophermayor.com - **Port**: 8395 - **Container**: openclaw-taskboard - **Traefik Route**: /home/bear/homelab/ubuntu/traefik/config/dynamic/taskboard.yml ## License MIT