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.
calwe.mp4
Features
- 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
Quick Start
Prerequisites
- Docker & Docker Compose
- Convex account (free tier works)
- Anthropic API key
1. Clone and Setup
git clone https://github.com/getclawe/clawe.git
cd clawe
cp .env.example .env2. Configure Environment
Edit .env:
# Required SQUADHUB_TOKEN=your-secure-token CONVEX_URL=https://your-deployment.convex.cloud # API keys (Anthropic, OpenAI) are configured via the UI during onboarding
3. Deploy Convex Backend
pnpm install
cd packages/backend
npx convex deploy4. Start the System
Production (recommended):
This script will:
- Create
.envfrom.env.exampleif missing - Auto-generate a secure
SQUADHUB_TOKEN - Validate all required environment variables
- Build necessary packages
- Start the Docker containers
Development:
# Start squadhub gateway only (use local web dev server) pnpm dev:docker # In another terminal, start web + Convex pnpm dev
The production stack starts:
- squadhub: Gateway running all agents
- watcher: Notification delivery + cron setup
- clawe: Web dashboard at http://localhost:3000
The Squad
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.
Routines
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
Architecture
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β DOCKER COMPOSE β
βββββββββββββββββββ¬ββββββββββββββββββββββ¬ββββββββββββββββββββββ€
β squadhub β watcher β clawe β
β β β β
β Agent Gateway β β’ Register agents β Web Dashboard β
β with 4 agents β β’ Setup crons β β’ Squad status β
β β β’ Deliver notifs β β’ Task board β
β β β β’ Agent chat β
ββββββββββ¬βββββββββ΄βββββββββββ¬βββββββββββ΄βββββββββββ¬βββββββββββ
β β β
βββββββββββββββββββββΌββββββββββββββββββββββ
β
ββββββββββΌβββββββββ
β CONVEX β
β (Backend) β
β β
β β’ Agents β
β β’ Tasks β
β β’ Notificationsβ
β β’ Activities β
βββββββββββββββββββ
Project Structure
clawe/
βββ apps/
β βββ web/ # Next.js dashboard
β βββ watcher/ # Notification watcher service
βββ packages/
β βββ backend/ # Convex schema & functions
β βββ cli/ # `clawe` CLI for agents
β βββ shared/ # Shared squadhub client
β βββ ui/ # UI components
βββ docker/
βββ squadhub/
βββ Dockerfile
βββ entrypoint.sh
βββ scripts/ # init-agents.sh
βββ templates/ # Agent workspace templates
CLI Commands
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 feed
Agent Workspaces
Each 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
Customization
Adding New Agents
- Create workspace template in
docker/squadhub/templates/workspaces/{name}/ - Add agent to
docker/squadhub/templates/config.template.json - Add agent to watcher's
AGENTSarray inapps/watcher/src/index.ts - Rebuild:
docker compose build && docker compose up -d
Changing Heartbeat Schedules
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 ];
Development
# Install dependencies pnpm install # Terminal 1: Start Convex dev server pnpm convex:dev # Terminal 2: Start squadhub gateway in Docker pnpm dev:docker # Terminal 3: Start web dashboard pnpm dev:web # Or run everything together (Convex + web, but not squadhub) pnpm dev
Useful Commands
# 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
Environment Variables
| Variable | Required | Description |
|---|---|---|
SQUADHUB_TOKEN |
Yes | Auth token for squadhub gateway |
CONVEX_URL |
Yes | Convex deployment URL |
API keys (Anthropic, OpenAI) are managed via the UI during onboarding and in Settings > General > API Keys.
