Skip to content

heshuaibjcn-bit/openclaw-dashboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

122 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🦞 OpenClaw Dashboard

Modern dashboard for OpenClaw Gateway monitoring and management.

OpenClaw Dashboard TypeScript Tailwind CSS shadcn/ui

Features

πŸ“Š Dashboard Pages

  • Home - Overview with stats cards and activity timeline
  • Gateway - Real-time gateway status and health monitoring
  • Sessions - Active agent sessions with token usage tracking
  • Agents - Agent management with configuration editor
  • Channels - Communication channels monitoring (iMessage, Feishu, Telegram)
  • Logs - Real-time log streaming with filtering
  • Memory - LanceDB memory browser with semantic search
  • Chat - Direct agent interaction interface
  • Settings - Gateway and agent configuration management

✨ Key Features

  • 🎨 Modern UI - Built with shadcn/ui components
  • πŸŒ“ Dark Mode - System-aware theme switching
  • πŸ“± Responsive Design - Works on desktop, tablet, and mobile
  • ⚑ Real-time Updates - Auto-refreshing data with pause/resume
  • πŸ” Search & Filter - Find what you need quickly
  • πŸ’Ύ API Integration - Complete OpenClaw Gateway API client
  • πŸ”„ Error Handling - Graceful error boundaries and recovery
  • 🎯 Type-Safe - Full TypeScript coverage

Quick Start

Prerequisites

  • Node.js 24+
  • OpenClaw Gateway running (default: http://127.0.0.1:18789)

Installation

# Clone or navigate to the project
cd openclaw-dashboard

# Install dependencies
npm install

# Start development server
npm run dev

Visit http://localhost:3000 to see the dashboard.

Configuration

The dashboard will automatically connect to your local OpenClaw Gateway. To configure a different gateway:

  1. Go to Settings
  2. Update Gateway URL
  3. Optionally add an Auth Token

Project Structure

openclaw-dashboard/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ (dashboard)/     # Dashboard pages with shared layout
β”‚   β”‚   β”‚   β”œβ”€β”€ layout.tsx    # Sidebar layout with navigation
β”‚   β”‚   β”‚   β”œβ”€β”€ page.tsx      # Home dashboard
β”‚   β”‚   β”‚   β”œβ”€β”€ gateway/      # Gateway status page
β”‚   β”‚   β”‚   β”œβ”€β”€ sessions/     # Sessions management
β”‚   β”‚   β”‚   β”œβ”€β”€ agents/       # Agent management
β”‚   β”‚   β”‚   β”œβ”€β”€ channels/     # Channel monitoring
β”‚   β”‚   β”‚   β”œβ”€β”€ logs/         # Logs viewer
β”‚   β”‚   β”‚   β”œβ”€β”€ memory/       # Memory browser
β”‚   β”‚   β”‚   β”œβ”€β”€ chat/         # Chat interface
β”‚   β”‚   β”‚   └── settings/     # Settings page
β”‚   β”‚   β”œβ”€β”€ layout.tsx        # Root layout with providers
β”‚   β”‚   └── globals.css       # Global styles
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ ui/               # shadcn/ui components
β”‚   β”‚   β”œβ”€β”€ theme-provider.tsx
β”‚   β”‚   β”œβ”€β”€ theme-toggle.tsx
β”‚   β”‚   └── error-boundary.tsx
β”‚   └── lib/
β”‚       └── openclaw/         # OpenClaw API integration
β”‚           β”œβ”€β”€ types.ts       # TypeScript types
β”‚           β”œβ”€β”€ api-client.ts  # REST API client
β”‚           β”œβ”€β”€ ws-client.ts   # WebSocket client
β”‚           β”œβ”€β”€ react-hooks.tsx # React hooks
β”‚           └── index.ts
β”œβ”€β”€ public/                   # Static assets
β”œβ”€β”€ feature_list.json         # Feature tracking
β”œβ”€β”€ claude-progress.txt       # Development progress
└── init.sh                   # Development setup script

Development

Available Scripts

# Start development server
npm run dev

# Build for production
npm run build

# Run production server
npm start

# Run linting
npm run lint

# Or use the init script
./init.sh start
./init.sh build
./init.sh clean

Adding New Components

The project uses shadcn/ui for UI components:

npx shadcn@latest add [component-name]

Available components: button, card, input, badge, table, dialog, dropdown-menu, sidebar, tabs, select, switch, textarea, scroll-area, separator, label, tooltip, and more.

API Integration

The dashboard includes a complete API client for OpenClaw Gateway:

import { getAPIClient, useGatewayHealth, useSessions } from "@/lib/openclaw"

// Use the API client
const client = getAPIClient();
const health = await client.getHealth();

// Use React hooks for automatic updates
function MyComponent() {
  const { data, loading, error } = useGatewayHealth();
  // Component will auto-refresh every 30s
}

Deployment

Build for Production

npm run build
npm start

The optimized production build will be in the .next folder.

Environment Variables

Create a .env.local file:

NEXT_PUBLIC_OPENCLAW_GATEWAY_URL=http://127.0.0.1:18789
NEXT_PUBLIC_OPENCLAW_AUTH_TOKEN=your-token-here

Docker Deployment

FROM node:24-alpine AS base

WORKDIR /app

COPY package*.json ./
RUN npm ci

COPY . .
RUN npm run build

EXPOSE 3000

CMD ["npm", "start"]

Roadmap

βœ… Completed (20/20 features)

  • Project setup with Next.js 15 + TypeScript
  • shadcn/ui component library
  • Layout with sidebar navigation
  • Home dashboard with stats
  • OpenClaw API integration layer
  • Gateway status page
  • Sessions list and detail view
  • Agents management page
  • Channels monitoring page
  • Logs viewer with real-time streaming
  • Memory browser for LanceDB
  • Chat interface for agent interaction
  • Settings configuration page
  • Dark mode with theme provider
  • Error boundaries and handling
  • Responsive design
  • Performance optimization
  • Error boundary components
  • Comprehensive documentation

πŸš€ Future Enhancements

  • WebSocket real-time updates
  • Advanced analytics charts
  • Custom agent configuration
  • Plugin system
  • Multi-gateway support
  • Export functionality
  • Notifications system

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License.

Acknowledgments

Support

For OpenClaw documentation, visit docs.openclaw.ai

For issues and questions, please open an issue on the GitHub repository.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors