A modern, AI-powered web dashboard for managing and monitoring OpenClaw agents
Features β’ Quick Start β’ Screenshots β’ Documentation
- π Unified Dashboard β Real-time overview of agent status, sessions, and system health
- π§© Skills Manager β Browse, create, edit, and organize OpenClaw skills with live preview and pagination (12 skills per page)
- π Markdown Editor with AI β CodeMirror-powered editor with OpenAI integration for intelligent content assistance
- βοΈ OpenClaw Config β Visual interface for editing
config.jsonwith validation and hot-reload - π Secure Authentication β JWT-based auth with bcrypt password hashing
- β° Cron Management β Schedule and manage recurring tasks with visual timeline
- π Session Monitor β Track active sessions, sub-agents, and execution history
- π System Metrics β Real-time resource usage (CPU, memory, tokens) with recharts visualizations
- π Live Updates β WebSocket-powered real-time data streaming
- π¨ Modern UI/UX β Built with shadcn/ui, Radix UI primitives, and Framer Motion animations
- π Dark/Light Mode β Theme switching with next-themes
- π± Responsive Design β Optimized for desktop, tablet, and mobile
- π Command Palette β Keyboard-first navigation with cmdk (βK / Ctrl+K)
- π― Type-Safe β Full TypeScript coverage with strict mode enabled
- ποΈ Git Integration β View commits, branches, and repository status directly in the dashboard
- π File System Access β Browse and manage workspace files and memory logs
- π§ Memory Management β View and edit MEMORY.md, daily logs, and agent context
- Node.js 20+ and npm
- OpenClaw installed and configured (
~/.openclaw/) - Git for version control
# Clone the repository
git clone https://github.com/manthis/openclaw-brain-dashboard.git
cd openclaw-brain-dashboard
# Install dependencies
npm install
# Copy environment configuration
cp .env.example .env.local
# Edit .env.local with your settings
nano .env.localEdit .env.local with your values:
# Generate a secure JWT secret
JWT_SECRET=$(openssl rand -base64 32)
# Set admin credentials (β οΈ change these!)
ADMIN_USERNAME=admin
ADMIN_PASSWORD=your-secure-password
# OpenClaw paths (defaults usually work)
OPENCLAW_CONFIG_PATH=~/.openclaw/config.json
OPENCLAW_WORKSPACE_PATH=~/.openclaw/workspace
OPENCLAW_SKILLS_GLOBAL_PATH=/opt/homebrew/lib/node_modules/openclaw/skills
OPENCLAW_SKILLS_LOCAL_PATH=~/.openclaw/workspace/skills
# Optional: OpenAI API key for AI editing features
OPENAI_API_KEY=sk-...# Development server (with hot reload)
npm run dev
# Open http://localhost:3000 in your browser# Build for production
npm run build
# Start production server
npm start- Navigate to
http://localhost:3000 - Login with credentials from
.env.local - Start managing your OpenClaw agents! π
π· Screenshots coming soon! The following sections describe the key interfaces available in the dashboard.
Secure JWT authentication with username/password
Real-time overview with system metrics, active sessions, recent activity, and quick actions
Browse global and local skills with pagination (12 per page), create new ones, edit code with syntax highlighting
CodeMirror editor with OpenAI-powered suggestions for MEMORY.md, SOUL.md, and daily logs
Visual JSON editor for config.json with schema validation and live preview
Schedule periodic tasks, view execution history, manage timing and payloads
Active sessions, sub-agents, token usage, and execution logs with filters
CPU, memory, disk usage, API quotas, and historical trends with interactive charts
Repository status, commit history, branch management, and quick commit tools
| Layer | Technology | Purpose |
|---|---|---|
| Framework | Next.js 16 | React framework with App Router, Server Components, and API routes |
| Language | TypeScript 5 | Type-safe development with strict mode |
| UI Library | React 19.2 | Component-based UI with latest features |
| Styling | Tailwind CSS 4 | Utility-first CSS with custom design system |
| Components | shadcn/ui + Radix UI | Accessible, customizable primitives |
| Animations | Framer Motion | Declarative animations and transitions |
| Code Editor | CodeMirror 6 | In-browser code editing with themes |
| Charts | Recharts | Composable charting library |
| Auth | jose + bcryptjs | JWT tokens + password hashing |
| Real-time | ws | WebSocket server for live updates |
| Icons | Lucide React | Beautiful consistent icons |
| Theming | next-themes | System-aware dark/light mode |
| CLI | cmdk | Command palette (βK) |
| Notifications | Sonner | Toast notifications |
openclaw-brain-dashboard/
βββ src/
β βββ app/ # Next.js App Router pages
β β βββ layout.tsx # Root layout with providers
β β βββ page.tsx # Main dashboard
β β βββ api/ # API routes (auth, data endpoints)
β βββ components/
β β βββ ui/ # shadcn/ui components
β β βββ motion/ # Framer Motion wrappers
β βββ hooks/ # Custom React hooks
β βββ lib/ # Utilities and helpers
β βββ types/ # TypeScript type definitions
βββ public/ # Static assets
βββ docs/
β βββ screenshots/ # Documentation images
βββ .env.example # Environment template
βββ package.json # Dependencies
βββ tsconfig.json # TypeScript config
βββ next.config.ts # Next.js config
βββ tailwind.config.ts # Tailwind config
User Browser
β
Next.js Server (Port 3000)
β
API Routes β OpenClaw Config/Files
β
WebSocket Server (Port 3001)
β
Real-time Updates β OpenClaw Events
| Variable | Required | Default | Description |
|---|---|---|---|
JWT_SECRET |
β | β | Secret key for JWT tokens (generate with openssl rand -base64 32) |
ADMIN_USERNAME |
β | admin |
Dashboard admin username |
ADMIN_PASSWORD |
β | changeme |
Dashboard admin password ( |
OPENCLAW_CONFIG_PATH |
β | ~/.openclaw/config.json |
Path to OpenClaw config |
OPENCLAW_WORKSPACE_PATH |
β | ~/.openclaw/workspace |
Path to workspace |
OPENCLAW_SKILLS_GLOBAL_PATH |
β | /opt/homebrew/lib/node_modules/openclaw/skills |
Global skills path |
OPENCLAW_SKILLS_LOCAL_PATH |
β | ~/.openclaw/workspace/skills |
Local skills path |
NEXT_PUBLIC_WS_PORT |
β | 3001 |
WebSocket server port |
OPENAI_API_KEY |
β | β | OpenAI key for AI editor features (optional) |
PORT |
β | 3000 |
HTTP server port |
HOSTNAME |
β | 0.0.0.0 |
Bind address |
- Never commit
.env.localβ It contains secrets! - Use strong passwords β Minimum 16 characters with mixed case, numbers, symbols
- Rotate JWT_SECRET β Change periodically for enhanced security
- HTTPS in production β Use a reverse proxy (nginx, Caddy) with SSL
- Firewall WebSocket port β Only allow trusted networks if exposed
AGENTS.mdβ Agent personality, behavior rules, and memory guidelinesSOUL.mdβ Core identity and values of the agentUSER.mdβ User preferences and contextMEMORY.mdβ Long-term memory (curated)TOOLS.mdβ Local notes for tools and integrationsmemory/YYYY-MM-DD.mdβ Daily activity logs
Skills are stored in:
- Global:
/opt/homebrew/lib/node_modules/openclaw/skills/ - Local:
~/.openclaw/workspace/skills/
Use the Skills Manager in the dashboard to:
- Browse available skills
- Create new skills with templates
- Edit existing skills with syntax highlighting
- Test skills in a sandbox environment
| Endpoint | Method | Description |
|---|---|---|
/api/auth/login |
POST | Authenticate user |
/api/auth/verify |
GET | Verify JWT token |
/api/config |
GET/POST | Read/write OpenClaw config |
/api/skills |
GET | List all skills |
/api/skills/[id] |
GET/PUT/DELETE | Manage specific skill |
/api/sessions |
GET | List active sessions |
/api/crons |
GET/POST | Manage cron jobs |
/api/memory |
GET/PUT | Access memory files |
Subscribe to real-time updates:
const ws = new WebSocket('ws://localhost:3001');
ws.on('session:start', (data) => {
console.log('New session:', data);
});
ws.on('metrics:update', (data) => {
console.log('System metrics:', data);
});Contributions are welcome! This project is part of the OpenClaw ecosystem.
-
Fork the repo and create a feature branch
git checkout -b feature/amazing-feature
-
Make your changes with clear, atomic commits
git commit -m "feat: add amazing feature" -
Follow conventions:
- Use TypeScript strict mode
- Format with Prettier (config included)
- Lint with ESLint (
npm run lint) - Test thoroughly before submitting
-
Push and create a PR
git push origin feature/amazing-feature
Follow Conventional Commits:
feat:New featurefix:Bug fixdocs:Documentationstyle:Formatting, missing semicolons, etc.refactor:Code restructuringtest:Adding testschore:Maintenance tasks
Found a bug? Have a feature request?
- Check existing issues first
- Create a new issue with:
- Clear title and description
- Steps to reproduce (for bugs)
- Expected vs actual behavior
- Environment details (OS, Node version, etc.)
MIT License
Copyright (c) 2025 OpenClaw Brain Dashboard Contributors
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Built with π§ for the OpenClaw ecosystem
Report Bug β’ Request Feature β’ Documentation