Your AI Dashboard for OpenClaw
ClawBoard is a comprehensive web-based dashboard for managing and monitoring your OpenClaw AI agent. It provides a beautiful, modern interface for task management, project tracking, journal entries, conversation history, and real-time agent monitoring.
**Repository: github.com/Wadera/clawboard
- π Task Board β Kanban-style task management with drag-and-drop, subtasks, priorities, and dependencies
- ποΈ Project Management β Organize tasks into projects with links, notebooks, environments, and resources
- π Journal β Daily journal entries with mood tracking, multi-entry per day, and navigation
- π¬ Sessions β Browse and search through all agent conversation transcripts
- π€ Real-time Agent Status β Monitor your OpenClaw agent's activity, connections, and health
- π Statistics β Visual insights into task completion, project progress, and agent activity
- π Plugin System β Extend your dashboard with Docker-based plugins (journals, monitors, blogs, etc.)
- π¨ Fully Customizable β Theme colors, branding, feature toggles, custom avatars
- π Secure β Password-protected with JWT authentication
- π³ Docker-Ready β Complete Docker Compose setup with health checks
- π Real-time Updates β WebSocket integration for live dashboard updates
Screenshots coming soon! After deployment, we'll add visual examples of the dashboard in action.
Placeholder for main dashboard screenshot
Placeholder for Kanban board screenshot
Placeholder for project management screenshot
Placeholder for agent monitoring screenshot
Get ClawBoard running in 5 minutes:
# 1. Clone repository
git clone https://github.com/Wadera/clawboard.git
cd ClawBoard
# 2. Run setup script (generates .env with password hash)
./setup.sh
# 3. Start services
docker compose up -d
# 4. Access dashboard
open http://localhost:8080/dashboard/Prerequisites:
- Docker & Docker Compose
- OpenClaw installed and running
- 2GB RAM, 1 CPU core
What the setup script does:
- Creates
.envfrom.env.example - Generates bcrypt password hash for dashboard login
- Sets up database credentials and JWT secret
- Configures OpenClaw integration paths
- Creates data and backup directories
ClawBoard automatically reads and displays your bot's workspace files, giving you direct visibility into your agent's personality, memory, and configuration.
The following files from your OpenClaw workspace are accessible in the dashboard:
- SOUL.md β Your bot's personality, identity, and core values
- HEARTBEAT.md β Heartbeat monitoring configuration and tasks
- AGENTS.md β Agent behavior, memory rules, and conventions
- USER.md β Information about the human the bot serves
- memory/YYYY-MM-DD.md β Daily memory logs
- memory/*.md β Additional memory files
The workspace is mounted read-only into the ClawBoard backend container:
volumes:
- ${OPENCLAW_WORKSPACE:-~/.openclaw/workspace}:/workspace:roConfiguration in .env:
# Path to your bot's workspace directory
OPENCLAW_WORKSPACE=~/.openclaw/workspaceWhen workspace files are loaded, you'll see:
- Workspace Files Widget β Browse and view workspace files directly in the dashboard
- Bot Personality Card β Displays bot name and identity from SOUL.md
- Memory Timeline β Navigate through daily memory logs
- Quick File Access β Jump to any workspace file with one click
To verify the workspace integration is working:
- Log into the dashboard at
http://localhost:8080/dashboard/ - Look for the "Workspace Files" widget on the main dashboard
- Click on any file (e.g., SOUL.md) to view its contents
- If files don't appear, check:
.envhas correctOPENCLAW_WORKSPACEpath- The path exists and contains the expected files
- Docker container has been restarted after .env changes
Files not showing up?
# Check if workspace path is correct
ls -la ~/.openclaw/workspace
# Verify .env configuration
grep OPENCLAW_WORKSPACE .env
# Restart containers to pick up changes
docker compose restart clawboard-backendPermission issues?
The workspace is mounted read-only, so ClawBoard cannot modify your files. If you need to edit them, use your preferred editor on the host system.
Documentation lives in docs/:
- Getting Started β 5-minute quick start guide
- Plugin Development β Build your own plugins
- Example Plugin β Minimal hello-world plugin to learn from
- Project Overview β Architecture deep dive
- Deployment Guide β Production deployment (Traefik, Nginx, Docker)
- Database Guide β Schema, backup, restore
- Contributing β How to contribute
βββββββββββββββββββββββββββββββββββββββββββ
β ClawBoard Frontend β
β React + TypeScript + Vite β
β Port: 8080 β 80 β
ββββββββββββββ¬βββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββ
β ClawBoard Backend β
β Node.js + Express + TypeScript β
β Port: 3001 (internal) β
ββββββββ¬βββββββββββββββββββββββββββββββββββ
β
ββββββββββββΊ OpenClaw Gateway
β (WebSocket: ws://host.docker.internal:18789)
β
ββββββββββββΊ PostgreSQL 16
(Internal only)
Components:
- Frontend: Static React app served by nginx
- Backend: REST API + WebSocket gateway + Plugin proxy
- Database: PostgreSQL for persistent storage
- OpenClaw: Read-only integration for session data
- Plugins: Docker containers loaded on startup (optional)
- React 18
- TypeScript
- Vite
- CSS (no framework)
- Node.js 18+
- Express.js
- TypeScript
- PostgreSQL (node-postgres)
- WebSocket (ws)
- Docker & Docker Compose
- PostgreSQL 16
- Nginx (frontend serving)
- Traefik / Nginx (optional reverse proxy)
# Check Docker
docker --version
docker compose version
# Check OpenClaw
openclaw status./setup.sh
docker compose up -dThe setup script will guide you through configuration interactively.
# 1. Create .env
cp .env.example .env
nano .env
# Set POSTGRES_PASSWORD, JWT_SECRET, LOGIN_PASSWORD, OPENCLAW_DIR
# 2. Create config
cp clawboard.config.example.json clawboard.config.json
nano clawboard.config.json
# Customize bot name, colors, features
# 3. Start services
docker compose up -d
# 4. Check status
docker compose ps# Start dev stack with hot reload
docker compose -f docker-compose.dev.yml upClawBoard includes a command-line tool for managing tasks, projects, tools, and journals.
# Make executable and add to PATH
chmod +x cli/clawboard
export PATH="$(pwd)/cli:$PATH"
# Or create a symlink
ln -s "$(pwd)/cli/clawboard" /usr/local/bin/clawboard
# Configure API URL (default: http://localhost:8080/api)
export CLAWBOARD_API_URL="http://localhost:8080/api"# Login (stores token in ~/.config/clawboard/token.json)
clawboard login
# Or use environment variables
export CLAWBOARD_PASSWORD="your-dashboard-password"clawboard list # List all tasks
clawboard create "My first task" # Create a task
clawboard projects # List projects
clawboard tools list # List tools
clawboard tools generate-md --slim # Generate TOOLS.md
clawboard journal list # List journal entries
clawboard status # Dashboard overviewAfter deploying ClawBoard, bootstrap the tool registry so your bot knows how to use the dashboard:
# 1. Login to the CLI
clawboard login
# 2. Add your tools (or import from a template)
clawboard tools list
# 3. Generate TOOLS.md for your bot's workspace
clawboard tools generate-md --slim -o /path/to/bot/workspace/TOOLS.mdThe generated TOOLS.md gives your OpenClaw bot context about available tools and how to use them.
# Database
POSTGRES_PASSWORD=your-secure-password
# Authentication
JWT_SECRET=your-random-hex-string
LOGIN_PASSWORD=your-dashboard-password
# OpenClaw Integration
OPENCLAW_DIR=~/.openclaw
OPENCLAW_GATEWAY_URL=ws://host.docker.internal:18789
# Deployment
FRONTEND_PORT=8082
DOMAIN=localhost{
"bot": {
"name": "ClawBot",
"displayName": "My ClawBoard",
"emoji": "π€"
},
"branding": {
"primaryColor": "#6366f1",
"accentColor": "#8b5cf6",
"sidebarTitle": "ClawBoard"
},
"features": {
"taskBoard": true,
"projects": true,
"journal": true,
"botStatus": true,
"stats": true
}
}See Getting Started for complete reference.
ClawBoard V2 supports a plugin system where each plugin runs as its own Docker container. Plugins can add sidebar items, API endpoints, and full UI pages to your dashboard.
# 1. Create clawboard.plugins.json (or copy the example)
cp clawboard.plugins.example.json clawboard.plugins.json
# 2. Add your plugin entries
# 3. Start with plugins
docker compose up -dSee the full Plugin Development Guide.
Every plugin needs:
- A
plugin.jsonmanifest at its root - A
/healthendpoint - A Dockerfile
- An entry in
clawboard.plugins.json
ClawBoard works perfectly without any plugins. The plugin system is completely optional β if clawboard.plugins.json is empty or missing, ClawBoard runs in core-only mode.
ClawBoard follows security best practices:
- β Password-protected with JWT authentication
- β Non-root Docker containers (UID 1002)
- β Read-only OpenClaw mounts
- β Environment variable secrets (no hardcoded passwords)
- β HTTPS support (via Traefik/Nginx)
- β Complete audit logging
- β CORS protection
- β Rate limiting (configurable)
Default credentials:
- Login password: Set in
.env(LOGIN_PASSWORD) - Database: Internal only (not exposed to host)
ClawBoard uses PostgreSQL 16 for data storage:
# Create backup
./database/backup.sh
# Restore from backup
./database/restore.sh
# Direct database access
docker compose exec clawboard-db psql -U clawboard -d clawboardTables:
tasksβ Kanban tasksprojectsβ Project organizationjournal_entriesβ Daily journalbot_statusβ Agent status updatesaudit_logβ Complete audit trail
See Database Guide for schema and management.
# 1. Backup first!
./database/backup.sh
# 2. Pull latest changes
git pull origin main
# 3. Rebuild containers
docker compose build
# 4. Restart services
docker compose up -d
# 5. Verify
docker compose psClawBoard connects to your OpenClaw agent via the Gateway WebSocket. This is how it reads sessions, monitors agent status, and sends control commands.
- OpenClaw Gateway runs on your host machine (default port:
18789) - ClawBoard backend (inside Docker) connects to it via WebSocket
- The
extra_hostsDocker setting mapshost.docker.internalβ your host machine - Session data and config files are mounted read-only into the container
The backend container needs access to these OpenClaw files:
| Host Path | Container Path | Purpose |
|---|---|---|
~/.openclaw/agents/main/sessions/ |
/clawdbot/sessions/ |
Session transcripts & sessions.json |
~/.openclaw/openclaw.json |
/clawdbot/clawdbot.json |
OpenClaw configuration |
~/.openclaw/workspace/ |
/workspace/ |
Bot workspace (SOUL.md, memory/, etc.) |
| Variable | Default | Purpose |
|---|---|---|
OPENCLAW_DIR |
~/.openclaw |
Host path to OpenClaw data directory |
OPENCLAW_GATEWAY_URL |
ws://host.docker.internal:18789 |
Gateway WebSocket URL |
OPENCLAW_WORKSPACE |
~/.openclaw/workspace |
Bot workspace directory |
Note: Inside the container, these are mapped to
CLAWDBOT_*env vars that the backend reads. Thedocker-compose.ymlhandles this mapping automatically.
# 1. Check OpenClaw gateway is running
openclaw gateway status
# 2. Check the backend can reach it
docker compose logs clawboard-backend | grep -i gateway
# 3. Look for "Gateway connected" in logs
docker compose logs clawboard-backend | grep -i "connected"After deployment, verify that everything works:
# 1. Check all containers are healthy
docker compose ps
# Expected: All containers show "healthy" or "Up"
# 2. Test API health endpoint
curl http://localhost:8080/api/health
# Expected: {"status":"ok","timestamp":"..."}
# 3. Test login
curl -X POST http://localhost:8080/api/auth/login \
-H "Content-Type: application/json" \
-d '{"password":"your-password"}'
# Expected: {"token":"...","user":{...}}
# 4. Access dashboard in browser
open http://localhost:8080/dashboard/
# Expected: Login page loads, successful login redirects to dashboardTroubleshooting:
- API 502 Bad Gateway: Backend container not healthy. Check:
docker compose logs clawboard-backend - Login fails: Password hash mismatch. Regenerate:
./setup.sh(reconfigure) - Dashboard blank: Check browser console for API errors. Verify
/api/proxy in nginx
This means the backend can't reach the OpenClaw gateway. Check:
# 1. Is OpenClaw gateway running?
openclaw gateway status
# If not: openclaw gateway start
# 2. Is the WebSocket URL correct in .env?
grep OPENCLAW_GATEWAY_URL .env
# Should be: ws://host.docker.internal:18789
# 3. Can the container reach the host?
docker compose exec clawboard-backend sh -c "wget -qO- http://host.docker.internal:18789 || echo 'Cannot reach gateway'"
# 4. Check backend logs for connection errors
docker compose logs clawboard-backend | grep -i "gateway\|websocket\|error"
# 5. Restart the backend
docker compose restart clawboard-backendCommon causes:
- OpenClaw gateway not running β
openclaw gateway start - Wrong port in
.envβ default is18789 - Docker networking issue β ensure
extra_hostsis in docker-compose.yml - Firewall blocking localhost connections β check iptables/firewalld rules
# Check containers
docker compose ps
# View logs
docker compose logs -f
# Restart
docker compose restart# Rebuild frontend with latest config
docker compose build clawboard-frontend
docker compose up -d clawboard-frontend
# Check clawboard.config.json has features enabled
cat clawboard.config.json | grep -A 20 '"features"'# Check database logs
docker compose logs clawboard-db
# Restart database
docker compose restart clawboard-dbSee DEPLOYMENT.md for more deployment and troubleshooting guidance.
Contributions are welcome! Please see CONTRIBUTING.md.
See CONTRIBUTING.md for the full guide, including how to maintain a private fork (upstream/downstream workflow).
Ways to contribute:
- π Report bugs
- β¨ Suggest features
- π Improve documentation
- π» Submit code
- π¨ Design improvements
Development setup:
git clone https://github.com/yourusername/clawboard.git
cd clawboard
docker compose -f docker-compose.dev.yml up| Who | Role | Contact |
|---|---|---|
| Paulina Stopa | Creator & Architect | pstopa@skyday.eu |
| Nim π | AI Co-Creator & Lead Engineer | nim@skyday.eu |
Yes, an AI co-wrote this dashboard. The future is collaborative. β¨
ClawBoard is open-source software licensed under the MIT License.
ClawBoard is built with:
- React β UI framework
- Express.js β Backend framework
- PostgreSQL β Database
- Docker β Containerization
- OpenClaw β AI agent framework
Special thanks to the open-source community!
- Email: pstopa@skyday.eu
- Repository: ClawBoard on GitHub
- Wiki: Documentation
V2.0.0 (Current):
- β Plugin system (Docker-based, config-driven)
- β Multi-entry journal (multiple entries per day)
- β Mobile UX improvements
- β Backend stability (OOM fixes, debounced watchers)
- β Upstream/downstream fork workflow
Planned:
- π Multi-language support
- π Notification system
- π₯ Multi-user collaboration
- π± Mobile app
- π Advanced analytics
- π¨ Theme marketplace
- π Plugin marketplace & registry
Built with β€οΈ for the OpenClaw community