- OpenClaw Mission Control dashboard - Auth with rate limiting and secure cookie handling - API routes protected by middleware authentication - Terminal with safe command allowlist - File browser, cron manager, activity feed - Office 3D view with agent avatars - Cost tracking and analytics - Configurable branding via env vars
🦞 Mission Control
A real-time dashboard and control center for OpenClaw AI agents. Built with Next.js 16, React 19, and Tailwind CSS v4.
Features
✅ Implemented
- 📊 System Monitor - Real-time VPS metrics (CPU, RAM, Disk, Network)
- 🤖 Agent Status - View all agents, their sessions, token usage, and activity
- 💰 Cost Tracking - Real cost analytics from OpenClaw sessions with SQLite storage
- ⏰ Cron Jobs - Visual cron manager with weekly timeline, run history, and manual triggers
- 📋 Activity Feed - Real-time activity log of agent actions
- 🧠 Memory Browser - Explore and search agent memory files
- 📁 File Browser - Navigate workspace files with preview
- 🔔 Notifications - Real-time notifications with unread counts
- 🎮 Office 3D - 2D top-down office visualization (3D in progress)
- ⚙️ Settings - Admin controls and configuration
🚧 Roadmap
See ROADMAP.md for planned features including:
- 3D Office with React Three Fiber
- Advanced analytics and ML-powered insights
- Multi-agent orchestration tools
- WebSocket real-time updates
Prerequisites
- Node.js 18+ (tested with v22)
- OpenClaw installed and running
- SQLite (for cost tracking)
- PM2 or systemd (for production deployment)
Quick Start
1. Clone and Install
git clone <your-repo-url>
cd mission-control
npm install
2. Configure Environment
cp .env.example .env.local
Edit .env.local:
# Generate a strong password
ADMIN_PASSWORD=your-secure-password-here
# Generate with: openssl rand -base64 32
AUTH_SECRET=your-random-32-char-secret-here
# Customize branding
NEXT_PUBLIC_AGENT_NAME=Your Agent Name
NEXT_PUBLIC_AGENT_EMOJI=🤖
NEXT_PUBLIC_OWNER_USERNAME=your-github-username
NEXT_PUBLIC_TWITTER_HANDLE=@yourusername
3. Initialize Data Files
# Create data files from examples
cp data/cron-jobs.example.json data/cron-jobs.json
cp data/activities.example.json data/activities.json
cp data/notifications.example.json data/notifications.json
cp data/configured-skills.example.json data/configured-skills.json
cp data/tasks.example.json data/tasks.json
4. Set Up Cost Tracking (Optional)
Collect initial usage data:
npx tsx scripts/collect-usage.ts
Set up automatic hourly collection:
./scripts/setup-cron.sh
See docs/COST-TRACKING.md for details.
5. Run Development Server
npm run dev
Default login: admin / (your ADMIN_PASSWORD)
Production Deployment
Option A: PM2
npm run build
pm2 start npm --name "mission-control" -- start
pm2 save
Option B: systemd
Create /etc/systemd/system/mission-control.service:
[Unit]
Description=Mission Control - AI Agent Dashboard
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/path/to/mission-control
ExecStart=/usr/bin/npm start
Restart=always
RestartSec=10
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
Enable and start:
sudo systemctl daemon-reload
sudo systemctl enable mission-control
sudo systemctl start mission-control
Reverse Proxy (Caddy example)
mission-control.yourdomain.com {
reverse_proxy localhost:3000
}
Project Structure
mission-control/
├── src/
│ ├── app/ # Next.js App Router pages
│ ├── components/ # React components
│ │ ├── TenacitOS/ # OS-like UI shell
│ │ └── Office3D/ # 3D office components
│ ├── config/ # Configuration (branding, etc.)
│ └── lib/ # Utilities (pricing, queries, etc.)
├── data/ # JSON data files (gitignored)
├── docs/ # Documentation
├── public/ # Static assets
└── scripts/ # Utility scripts
Configuration
Branding
Edit src/config/branding.ts or use environment variables to customize:
- Agent name and emoji
- Owner username and social handles
- Company name (shown in Office 3D)
- App title
Data Files
All operational data is stored in data/ as JSON files:
cron-jobs.json- Cron job definitionsactivities.json- Activity feed entriesnotifications.json- Notification queueusage-tracking.db- Cost tracking database (SQLite)
These files are gitignored by default. Use .example versions as templates.
API Endpoints
GET /api/agents- List all agents and sessionsGET /api/costs- Cost analytics and trendsGET /api/cron- List cron jobsPOST /api/cron/run- Trigger cron job manuallyGET /api/cron/runs- Get run history for a jobGET /api/notifications- Fetch notificationsGET /api/system/stats- System metrics (status bar)GET /api/system/monitor- Detailed system info (PM2, Docker, etc.)
See individual route files in src/app/api/ for details.
Development
Tech Stack
- Framework: Next.js 16 (App Router)
- UI Library: React 19
- Styling: Tailwind CSS v4
- Charts: Recharts
- Icons: Lucide React
- Database: SQLite (better-sqlite3)
- Deployment: PM2 / systemd
- Reverse Proxy: Caddy
Code Quality
npm run lint # ESLint
npm run build # TypeScript check + build
Adding Features
- Check ROADMAP.md and IMPLEMENTATION-STATUS.md
- Create feature branch
- Implement and test
- Update
IMPLEMENTATION-STATUS.md - Submit PR
Troubleshooting
"Database not found" error
Run the usage collector to create initial data:
npx tsx scripts/collect-usage.ts
"Gateway not reachable" errors
Ensure OpenClaw gateway is running:
openclaw status
# or
openclaw gateway start
Build errors
rm -rf .next node_modules
npm install
npm run build
Permission denied errors
Ensure files are executable:
chmod +x scripts/*.sh
Contributing
Contributions welcome! Please:
- Fork the repo
- Create a feature branch
- Keep personal data out of commits (use
.env.local) - Write clear commit messages
- Test thoroughly
- Submit a PR
Security
- Never commit
.env.local- contains credentials - Never commit
data/*.json- contains operational data - Never commit
data/*.db- contains usage metrics - Use strong passwords for
ADMIN_PASSWORD - Regenerate
AUTH_SECRETfor your instance
Generate secrets:
# Random password
openssl rand -base64 24
# Auth secret
openssl rand -base64 32
License
MIT License - see LICENSE
Credits
Built for OpenClaw by the community.
Inspired by the need for a beautiful, functional control center for AI agents.
Status: Alpha (v0.1.0) - Actively developed
Docs: docs/
Roadmap: ROADMAP.md
Support: Discord | GitHub Issues
