OpenClaw Client
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.
Features
-
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.
-
Theming — 14 built-in color themes with a sidebar picker.
-
Client — React 19 + Vite + Material UI + Redux Toolkit Query, organized with Feature-Sliced Design
-
API — Express + TypeScript + TypeORM + SQLite — single server that also handles OpenClaw gateway communication and CLI execution
Prerequisites
- Node.js 18+
- OpenClaw CLI installed and authenticated on your machine
Verify OpenClaw is set up:
openclaw --version
openclaw auth status
Quick Start
git clone https://github.com/lotsoftick/openclaw_client.git
cd openclaw_client
npm run start
On first run it will automatically:
- Generate
api/.envwith a random JWT secret and default settings - Install API and client dependencies
- Start both services with hot reload (API via nodemon, client via Vite)
Once running:
| Service | URL |
|---|---|
| Client | http://localhost:18800 |
| API | http://localhost:18802 |
| API Docs | http://localhost:18802/api/docs |
Note: API Docs (Swagger) are only available in development mode (
npm run dev).
Default Login
On first startup, a default admin user is created:
- Email:
admin@admin.com - Password:
123456
npm Scripts
| Command | Description |
|---|---|
npm run dev |
Install deps + start API (nodemon) and Client (Vite) in dev mode |
npm start |
Build, deploy to ~/.openclaw_client/, run detached in production |
npm run stop |
Kill processes on ports 18800/18802 |
npm run setup |
Only generate api/.env (no start) |
Stopping
npm run stop
Or press Ctrl+C in the terminal running dev.
Configuration
Environment Variables
Generated automatically on first run in api/.env (see api/.env.example for reference):
| Variable | Default | Description |
|---|---|---|
NODE_ENV |
development |
Environment mode |
JWT_SECRET |
(random) | Secret for JWT signing |
DB_PATH |
./data/openclaw.sqlite |
Path to SQLite database file |
ALLOWED_DOMAIN |
http://localhost:18800 |
CORS allowed origin(s), comma-separated |
The client uses VITE_API_BASE_URL (defaults to http://localhost:18802/api). Set it in client/.env if deploying to a different host.
To regenerate secrets, delete api/.env and run npm run dev or npm run setup again.
Production Layout
When running npm start, built artifacts are deployed to ~/.openclaw_client/:
~/.openclaw_client/
├── api/
│ ├── build/ # Compiled API (JavaScript)
│ ├── node_modules/ # Production dependencies only
│ └── .env # Auto-generated on first deploy
├── client/
│ ├── dist/ # Built static frontend
│ └── serve.mjs # Lightweight static file server
├── data/
│ └── openclaw.sqlite # SQLite database
└── openclaw.log # Combined log output
The source directory is only needed for building. Production processes run entirely from ~/.openclaw_client/.
