A multi-agent coordination system powered by OpenClaw.
Deploy a team of AI agents that work together, each with their own identity, workspace, and scheduled heartbeats. Coordinate tasks, share context, and deliver notifications in near real-time.
- Run multiple AI agents with distinct roles and personalities
- Agents wake on cron schedules to check for work
- Kanban-style task management with assignments and subtasks
- Instant delivery of @mentions and task updates
- Agents collaborate through shared files and Convex backend
- Monitor squad status, tasks, and chat with agents from a web dashboard
- Docker & Docker Compose
- Convex account (free tier works)
- Anthropic API key
git clone https://github.com/getclawe/clawe.git
cd clawe
cp .env.example .envEdit .env:
# Required
ANTHROPIC_API_KEY=sk-ant-...
OPENCLAW_TOKEN=your-secure-token
CONVEX_URL=https://your-deployment.convex.cloud
# Optional
OPENAI_API_KEY=sk-... # For image generationpnpm install
cd packages/backend
npx convex deployProduction (recommended):
./scripts/start.shThis script will:
- Create
.envfrom.env.exampleif missing - Auto-generate a secure
OPENCLAW_TOKEN - Validate all required environment variables
- Build necessary packages
- Start the Docker containers
Development:
# Start OpenClaw gateway only (use local web dev server)
pnpm dev:docker
# In another terminal, start web + Convex
pnpm devThe production stack starts:
- openclaw: Gateway running all agents
- watcher: Notification delivery + cron setup
- clawe: Web dashboard at http://localhost:3000
Clawe comes with 4 pre-configured agents:
| Agent | Role | Heartbeat |
|---|---|---|
| π¦ Clawe | Squad Lead | Every 15 min |
| βοΈ Inky | Content Editor | Every 15 min |
| π¨ Pixel | Designer | Every 15 min |
| π Scout | SEO | Every 15 min |
Heartbeats are staggered to avoid rate limits.
Schedule recurring tasks that automatically create inbox items:
- Configure day/time schedules per routine
- 1-hour trigger window for crash tolerance
- Tasks created with Clawe as the creator
- Manage via Settings β General in the dashboard
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β DOCKER COMPOSE β
βββββββββββββββββββ¬ββββββββββββββββββββββ¬ββββββββββββββββββββββ€
β openclaw β watcher β clawe β
β β β β
β OpenClaw β β’ Register agents β Web Dashboard β
β Gateway with β β’ Setup crons β β’ Squad status β
β 4 agents β β’ Deliver notifs β β’ Task board β
β β β β’ Agent chat β
ββββββββββ¬βββββββββ΄βββββββββββ¬βββββββββββ΄βββββββββββ¬βββββββββββ
β β β
βββββββββββββββββββββΌββββββββββββββββββββββ
β
ββββββββββΌβββββββββ
β CONVEX β
β (Backend) β
β β
β β’ Agents β
β β’ Tasks β
β β’ Notificationsβ
β β’ Activities β
βββββββββββββββββββ
clawe/
βββ apps/
β βββ web/ # Next.js dashboard
β βββ watcher/ # Notification watcher service
βββ packages/
β βββ backend/ # Convex schema & functions
β βββ cli/ # `clawe` CLI for agents
β βββ shared/ # Shared OpenClaw client
β βββ ui/ # UI components
βββ docker/
βββ openclaw/
βββ Dockerfile
βββ entrypoint.sh
βββ scripts/ # init-agents.sh
βββ templates/ # Agent workspace templates
Agents use the clawe CLI to interact with the coordination system:
# Check for notifications
clawe check
# List tasks
clawe tasks
clawe tasks --status in_progress
# View task details
clawe task:view <task-id>
# Update task status
clawe task:status <task-id> in_progress
clawe task:status <task-id> review
# Add comments
clawe task:comment <task-id> "Working on this now"
# Manage subtasks
clawe subtask:add <task-id> "Research competitors"
clawe subtask:check <task-id> 0
# Register deliverables
clawe deliver <task-id> "Final Report" --path ./report.md
# Send notifications
clawe notify <session-key> "Need your review on this"
# View squad status
clawe squad
# Activity feed
clawe feedEach agent has an isolated workspace with:
/data/workspace-{agent}/
βββ AGENTS.md # Instructions and conventions
βββ SOUL.md # Agent identity and personality
βββ USER.md # Info about the human they serve
βββ HEARTBEAT.md # What to do on each wake
βββ MEMORY.md # Long-term memory
βββ TOOLS.md # Local tool notes
βββ shared/ # Symlink to shared state
βββ WORKING.md # Current team status
βββ WORKFLOW.md # Standard operating procedures
- Create workspace template in
docker/openclaw/templates/workspaces/{name}/ - Add agent to
docker/openclaw/templates/config.template.json - Add agent to watcher's
AGENTSarray inapps/watcher/src/index.ts - Rebuild:
docker compose build && docker compose up -d
Edit the AGENTS array in apps/watcher/src/index.ts:
const AGENTS = [
{
id: "main",
name: "Clawe",
emoji: "π¦",
role: "Squad Lead",
cron: "0 * * * *",
},
// Add or modify agents here
];# Install dependencies
pnpm install
# Terminal 1: Start Convex dev server
pnpm convex:dev
# Terminal 2: Start OpenClaw gateway in Docker
pnpm dev:docker
# Terminal 3: Start web dashboard
pnpm dev:web
# Or run everything together (Convex + web, but not OpenClaw)
pnpm dev# Build everything
pnpm build
# Type check
pnpm check-types
# Lint and format
pnpm check # Check only
pnpm fix # Auto-fix
# Deploy Convex to production
pnpm convex:deploy| Variable | Required | Description |
|---|---|---|
ANTHROPIC_API_KEY |
Yes | Anthropic API key for Claude |
OPENCLAW_TOKEN |
Yes | Auth token for OpenClaw gateway |
CONVEX_URL |
Yes | Convex deployment URL |
OPENAI_API_KEY |
No | OpenAI key (for image generation) |
