A real-time dashboard that gives you a window into your OpenClaw AI assistant — chat, monitor status, and interact with agent-driven cards from any browser.
- Connected: Plugs into your OpenClaw gateway via the dashbot-openclaw plugin for live two-way communication.
- Mobile-first: Designed for Tesla browsers, phones, and tablets — works great on desktop too.
- Extensible: Widget system for custom status panels, agentic cards, and integrations.
graph TD
Dashboard["🖥️ Dashboard"]
DashBot["⚡ DashBot"]
Plugin["🔌 dashbot-openclaw plugin"]
Gateway["🤖 OpenClaw Gateway"]
Dashboard <--> DashBot
DashBot <--> Plugin
Plugin <--> Gateway
Your OpenClaw AI agent runs on the gateway. The dashbot-openclaw plugin connects it to DashBot over WebSockets, streaming chat messages, status updates, and agentic card interactions in real time. Open the dashboard in any browser to see what your agent is up to.
| Chat | Status | Settings |
|---|---|---|
![]() |
![]() |
![]() |
- 💬 Chat — Talk to your AI agent with real-time streaming responses
- 📊 Status dashboard — Monitor agent health, memory, token usage, and cron jobs
- 🎯 Agentic cards — Interactive prompt/response widgets for structured AI actions
- 🔌 OpenClaw plugin — Drop-in integration via dashbot-openclaw
- 🔐 QR code login — Scan to authenticate from any device
- 🌙 Dark mode — Full theme support with system preference detection
- 📱 Responsive — Mobile-first design that scales to desktop
- Ruby 4.0+
- Node.js 22+
- SQLite3
git clone https://github.com/wembledev/dashbot.git
cd dashbot
bin/setup # install deps, prepare DBOr step by step:
bundle install && npm install
cp .env.example .env
bin/rails db:prepareConfigure .env:
DASHBOT_PASSWORD=<pick a password>
DASHBOT_API_TOKEN=<generate with: ruby -e "require 'securerandom'; puts SecureRandom.hex(32)">bin/dev # Rails on :3000, Vite HMR on :5173Open http://localhost:3000 and log in.
DashBot connects to your AI assistant via the dashbot-openclaw plugin. Install the plugin into your OpenClaw gateway, point it at your DashBot instance, and you're live. See the plugin README for setup.
bin/rails test # Rails (Minitest)
npm test # Frontend (Vitest)
npm run check # TypeScript type checking
bin/rubocop # Ruby linting
bin/ci # Full CI suiteDashBot deploys as a standard Rails 8 app with SQLite. See docs/deployment.md for Docker, Kamal, and Dokku instructions.
DashBot is a Rails 8 monolith with a React frontend, connected via Inertia.js:
| Layer | Technology |
|---|---|
| Backend | Rails 8.1, Ruby 4.0, SQLite3 |
| Frontend | React 19, TypeScript, Vite 7, Tailwind v4 |
| Bridge | Inertia.js (server-driven SPA) |
| UI | shadcn/ui, Lucide icons |
| Real-time | Action Cable (Solid Cable in production) |
| Jobs | Solid Queue |
| Caching | Solid Cache |
| Server | Puma + Thruster |
| Doc | Contents |
|---|---|
| OpenClaw Integration | Architecture, ChatChannel, connection auth, plugin setup |
| REST API | Endpoint reference with request/response examples |
| Deployment | Docker, Kamal, Dokku, persistent storage |
Contributions are welcome! Please:
- Fork the repo and create your branch from
main - Add tests for any new functionality
- Ensure the test suite passes (
bin/ci) - Open a pull request
This project is licensed under the MIT License.


