Skip to content

rockomatthews/clawbeacon

Β 
Β 

Repository files navigation

🦞 Claw Beacon

Kanban for AI Agents - Coordinate your AI team with style

🌐 www.ClawBeacon.xyz β€” Live Demo & Documentation

🐦 x.com/clawbeacon β€” Our Official X account

🚧 Under Active Development β€” We're continuously improving this skill! Feedback and contributions welcome.

Claw Beacon is a beautiful, real-time mission control dashboard for managing AI agent workflows. Track tasks, monitor agent status, and coordinate your AI team through an intuitive Kanban interface with live updates.

Dashboard Overview
Real-time Kanban board with agent status and live activity feed


πŸš€ Quick Start

Step 1: Install the Skill

npx skills add clawbeacon/clawbeacon

This teaches your AI agent how to use Claw Beacon.

Step 2: Let Your Agent Guide You

Your agent will walk you through:

  • πŸš€ Deployment - Railway one-click, Docker, or manual setup
  • 🎨 Theme Selection - DBZ, One Piece, Marvel, and more
  • βš™οΈ Configuration - AGENTS.md setup, API connections
  • 🧠 Memory Integration - Optional Supermemory + QMD setup

That's it! Install the skill, and your agent handles the rest.


πŸ“¦ Deployment Options (the skill will guide you through these)

Note: After deploying, you still need to install the skill to your AI agent:

npx skills add clawbeacon/claw-beacon

The skill teaches your agent how to use Claw Beacon.

Railway (One-Click)

Deploy on Railway

Click β†’ Wait 2 mins β†’ Done! Railway auto-provisions PostgreSQL, backend, and frontend.


Docker Compose

git clone https://github.com/clawbeacon/clawbeacon
cd clawbeacon
docker compose up -d

Open http://localhost:5173 and you're ready!

πŸ’‘ Using SQLite instead of PostgreSQL?
docker compose -f docker-compose.yml -f docker-compose.sqlite.yml up -d --scale db=0

Manual Setup

# Clone the repo
git clone https://github.com/clawbeacon/clawbeacon
cd claw-beacon

# Backend (Terminal 1)
cd packages/backend
npm install
echo "DATABASE_URL=sqlite:./data/claw-beacon.db" > .env
npm run migrate
npm run dev

# Frontend (Terminal 2)
cd packages/frontend
npm install
echo "VITE_API_URL=http://localhost:3001" > .env
npm run dev

Open http://localhost:5173 πŸš€


πŸ”§ Configuration

Environment Variables

Backend (packages/backend/.env)

# Database - SQLite (local dev)
DATABASE_URL=sqlite:./data/claw-beacon.db

# Or PostgreSQL (production)
DATABASE_URL=postgresql://user:pass@localhost:5432/claw_beacon

# Server
PORT=3001

# Authentication (optional - leave empty for open access)
API_KEY=your-secret-key-here

Frontend (packages/frontend/.env) ⚠️ Required

# REQUIRED: URL of your backend API
API_URL=http://localhost:3001

# For production, use your deployed backend URL:
# API_URL=https://your-backend.railway.app

Note: The frontend MUST have API_URL set to connect to the backend. Without it, the dashboard won't load data.

API Authentication (Optional)

By default, Claw Beacon runs in open mode - perfect for local development.

For production, set API_KEY to require authentication on write operations:

Mode API_KEY Value Behavior
Open Empty/unset All operations public
Protected Set POST/PUT/DELETE require auth

Agent Configuration

Define your agent team in config/agents.yaml:

agents:
  - name: "Goku"
    role: "Coordinator"
    avatar: "πŸ₯‹"
    description: "Main coordinator - delegates tasks"

  - name: "Vegeta"
    role: "Backend"
    avatar: "πŸ’ͺ"
    description: "Backend specialist - APIs, databases"

  - name: "Bulma"
    role: "DevOps"
    avatar: "πŸ”§"
    description: "DevOps & Frontend - infrastructure, UI"

See more examples in config/examples/.


πŸ€– Connecting AI Agents

Your AI agents connect to Claw Beacon via REST API and SSE for real-time updates.

REST API Endpoints

Action Method Endpoint
List tasks GET /api/tasks
Create task POST /api/tasks
Update task PUT /api/tasks/:id
List agents GET /api/agents
Update agent PUT /api/agents/:id
Post message POST /api/messages

Example: Agent Reports Working

# Update agent status to "working"
curl -X PUT http://localhost:3001/api/agents/1 \
  -H "Content-Type: application/json" \
  -d '{"status": "working"}'

# Post a message to the activity feed
curl -X POST http://localhost:3001/api/messages \
  -H "Content-Type: application/json" \
  -d '{
    "agent_id": 1,
    "message": "Starting task: Deploy to production"
  }'

Example: Create a Task

curl -X POST http://localhost:3001/api/tasks \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Fix login bug",
    "description": "Users getting 401 on valid tokens",
    "status": "todo",
    "priority": "high"
  }'

With Authentication

If API_KEY is set, include it in write requests:

curl -X POST http://localhost:3001/api/tasks \
  -H "Authorization: Bearer your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"title": "New task"}'

SSE for Real-Time Updates

Connect to the event stream to receive live updates:

curl -N http://localhost:3001/api/stream

Events emitted:

  • task-created / task-updated / task-deleted
  • agent-updated
  • message-created

JavaScript Example

// Update agent status
await fetch('http://localhost:3001/api/agents/1', {
  method: 'PUT',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ status: 'working' })
});

// Listen for real-time updates
const eventSource = new EventSource('http://localhost:3001/api/stream');
eventSource.onmessage = (event) => {
  const data = JSON.parse(event.data);
  console.log('Update:', data);
};

OpenClaw Integration Script

For OpenClaw/Claude agents, copy the helper script:

cp templates/scripts/update_dashboard.js scripts/
export claw_beacon_URL=https://your-backend.railway.app

Then agents can update status with:

node scripts/update_dashboard.js --agent "Bulma" --status "working" --message "Starting deployment"

πŸ“– Full guide: docs/openclaw-integration.md


✨ Features

  • πŸ“‹ Kanban Board - Drag-and-drop task management with real-time sync
  • πŸ€– Agent Tracking - Monitor agent status (idle/working/error)
  • πŸ’¬ Activity Feed - Real-time agent message stream
  • πŸ”„ SSE Updates - Live updates without polling
  • πŸ“± Mobile Responsive - Works on any device
  • 🎨 Cyberpunk UI - Sleek, dark theme with glowing accents
  • πŸ”Œ MCP Integration - Native Model Context Protocol support
  • πŸ—„οΈ Flexible Storage - SQLite (dev) or PostgreSQL (prod)

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                         CLIENTS                              β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Dashboard β”‚ AI Agents β”‚ MCP Tools β”‚  External Webhooks     β”‚
β”‚  (React)  β”‚ (REST API)β”‚  (stdio)  β”‚  (GitHub, etc.)        β”‚
β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
      β”‚           β”‚           β”‚                β”‚
      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                        β”‚
                β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”
                β”‚   API Server   β”‚
                β”‚   (Fastify)    β”‚
                β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
                β”‚ β€’ REST API     β”‚
                β”‚ β€’ SSE Stream   β”‚
                β”‚ β€’ Auth Layer   β”‚
                β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                        β”‚
                β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”
                β”‚   Database     β”‚
                β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
                β”‚ SQLite β”‚ Postgres β”‚
                β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Tech Stack

Layer Technology
Frontend React 19, TypeScript, Vite, TailwindCSS
Backend Node.js, Fastify 5, Server-Sent Events
Database SQLite (dev) / PostgreSQL (prod)
AI Integration MCP Server, REST API
Deployment Docker, Railway

πŸ“š Full Documentation


πŸ“¦ Project Structure

claw-beacon/
β”œβ”€β”€ packages/
β”‚   β”œβ”€β”€ frontend/          # React + Vite + TailwindCSS
β”‚   β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”‚   β”œβ”€β”€ components/  # UI components
β”‚   β”‚   β”‚   β”œβ”€β”€ hooks/       # Custom React hooks
β”‚   β”‚   β”‚   └── types/       # TypeScript types
β”‚   β”‚   └── package.json
β”‚   β”‚
β”‚   └── backend/           # Fastify + SQLite/PostgreSQL
β”‚       β”œβ”€β”€ src/
β”‚       β”‚   β”œβ”€β”€ server.js      # Main API server
β”‚       β”‚   β”œβ”€β”€ db-adapter.js  # Database abstraction
β”‚       β”‚   β”œβ”€β”€ mcp-server.js  # MCP integration
β”‚       β”‚   └── migrate.js     # DB migrations
β”‚       └── package.json
β”‚
β”œβ”€β”€ config/                    # Configuration files
β”‚   β”œβ”€β”€ agents.yaml            # Your agent definitions
β”‚   └── examples/              # Example configs
β”œβ”€β”€ docker-compose.yml         # Full stack (PostgreSQL)
β”œβ”€β”€ docker-compose.sqlite.yml  # SQLite override
└── templates/scripts/         # Integration scripts

🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details.


πŸ“„ License

MIT License - see LICENSE for details.


Made with 🦞 by the OpenClaw team

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 54.9%
  • JavaScript 41.1%
  • CSS 3.2%
  • Other 0.8%