Build a custom dashboard connecting to OpenClaw's Gateway API.
Architecture
Your Dashboard (Next.js) ↔ HTTP/WebSocket ↔ OpenClaw Gateway (port 18789) ↔ AI Agents + Channels
Step 1: Create Project
npx create-next-app@latest my-dashboard --typescript --tailwind --app
cd my-dashboard
Step 2: Connect to Gateway
// src/lib/gateway.ts
const GATEWAY_URL = process.env.OPENCLAW_GATEWAY_URL || 'http://localhost:18789'
const AUTH_TOKEN = process.env.OPENCLAW_AUTH_TOKEN
export async function fetchGateway(endpoint: string) {
const res = await fetch(`${GATEWAY_URL}${endpoint}`, {
headers: { 'Authorization': `Bearer ${AUTH_TOKEN}` }
})
return res.json()
}
Step 3: Real-Time via WebSocket
const ws = new WebSocket(`ws://localhost:18789/ws?token=${AUTH_TOKEN}`)
ws.onmessage = (event) => {
const data = JSON.parse(event.data)
// Handle real-time updates
}
Step 4: Key Components to Build
Step 5: Deploy
npm run build && npm run start -- -p 3011
Add a Caddyfile entry for HTTPS reverse proxy and create a systemd service for persistence.