A web-based chat interface for OpenClaw AI agents. Create multiple agents, manage conversations, upload files, and stream AI responses in real time — all through a clean, modern UI.
- Multi-agent support — Create and manage multiple OpenClaw agents, each with their own identity and conversation history.
- Streaming chat — Real-time streamed responses with separate display for thinking process and output.
- File uploads — Attach files to messages; files are saved directly to the agent's workspace for context-aware responses.
- Conversation management — Multiple conversations per agent, editable titles, searchable sidebar.
- User authentication — JWT-based auth with a default admin account created on first run.
┌─── Docker ─────────────────────────────┐
│ Client (React) → localhost:18800│
│ API (Express/Node) → localhost:18802│
│ MongoDB → localhost:27017│
└─────────────────────────┬──────────────┘
│
┌───────────▼───────────┐
│ Proxy (host:18801) │
│ spawns openclaw CLI │
└───────────────────────┘
- Client — React 19 + Vite + Material UI + Redux Toolkit Query
- API — Express + TypeScript + Mongoose
- MongoDB — Data store for users, agents, conversations, and messages
- Proxy — Lightweight Express server that runs on the host and executes OpenClaw CLI commands
The proxy runs on the host (not in Docker) so it can access the locally installed OpenClaw CLI and your ~/.openclaw configuration.
- Docker and Docker Compose
- Node.js 18+ (for the proxy)
- OpenClaw CLI installed and authenticated on your machine
Verify OpenClaw is set up:
openclaw --version
openclaw auth statusgit clone https://github.com/lotsoftick/openclaw_client.git
cd openclaw_client
npm startThat's it. On first run it will automatically:
- Generate environment files (
.env,api/.env) with random secrets - Install proxy dependencies
- Start Docker containers (client, API, MongoDB)
- Start the OpenClaw proxy on the host
Once running:
| Service | URL |
|---|---|
| Client | http://localhost:18800 |
| API | http://localhost:18802 |
| API Docs | http://localhost:18802/api/docs |
| Proxy | http://localhost:18801 |
On first startup, a default admin user is created:
- Email:
admin@admin.com - Password:
123456
npm stopThis stops all Docker containers and kills the proxy process.
Generated automatically on first run:
api/.env
| Variable | Description |
|---|---|
NODE_ENV |
Environment mode (development) |
JWT_SECRET |
Random secret for JWT signing |
MONGO_LINK |
MongoDB connection string with auth |
.env (project root — used by Docker Compose)
| Variable | Description |
|---|---|
MONGO_USER |
MongoDB root username |
MONGO_PASSWORD |
MongoDB root password |
To regenerate secrets, delete both env files and run npm start again.
Optional — set before running proxy.js:
| Variable | Default | Description |
|---|---|---|
PROXY_PORT |
18801 |
Port the proxy listens on |
OPENCLAW_HOME |
~/.openclaw |
Path to OpenClaw config directory |
| Command | Description |
|---|---|
npm start |
Build images + run containers + proxy (fast after first build) |
npm stop |
Stop all containers + proxy |
npm run setup |
Only generate env files (no start) |
