Desktop application for managing ZeroClaw installations. Configure your agent, manage skills, tune settings, and monitor status — all from a native desktop interface.
This project was vibe-coded as a hobby — built for fun, learning, and scratching an itch. Contributions, ideas, and pull requests are very welcome!
- Dashboard — Real-time daemon status, health checks, and quick diagnostics with
zeroclaw statusandzeroclaw doctoroutput - Onboarding Wizard — Guided setup: detect installation, configure provider and API key, set up channels, test connection
- Agent Workspace — Edit workspace files that define your agent's personality and behavior:
- Identity — Name, creature type, vibe, and emoji
- Soul — Personality traits and communication style (markdown editor with live preview)
- Agent — Workflows, tools, and safety rules (markdown editor)
- User — User context and preferences
- Memory / Heartbeat / Tools — Long-term memory, scheduled tasks, and environment-specific tool notes
- Skills Management — Browse installed skills, discover new ones from the marketplace, install/uninstall with one click, bulk install
- Settings — Full configuration editor for zeroclaw's TOML config:
- General — API key, default provider/model, temperature, max tool iterations
- Gateway — Host, port, pairing, public bind controls
- Memory — Backend selection, embedding provider, vector/keyword weights
- Channels — Telegram, Discord, WhatsApp, email, and more
- Model Routes — Route hints for model and embedding selection
- Scheduler — Cron job management
- Autonomy — Access level, command allowlists, path denylists, rate limits, risk gates, tool approval overrides
| Layer | Technology |
|---|---|
| Desktop framework | Electron 40 |
| Frontend | React 19, TypeScript |
| Styling | Tailwind CSS v4, shadcn/ui, Radix UI |
| State | Zustand 5 |
| Routing | React Router v7 |
| Build | electron-vite 3 |
| Testing | Vitest, Testing Library |
| Config parsing | smol-toml |
| Markdown | react-markdown, remark-gfm |
- Node.js >= 18
- npm >= 9
- ZeroClaw installed and available on your
PATH(installation guide)
# Clone the repository
git clone https://github.com/nicholasbester/zeroclaw-ui.git
cd zeroclaw-ui
# Install dependencies
npm install
# Start in development mode
npm run devThe app will open an Electron window with hot-reload enabled.
| Command | Description |
|---|---|
npm run dev |
Start development server with hot-reload |
npm run build |
Build for production |
npm run preview |
Preview the production build |
npm test |
Run tests once |
npm run test:watch |
Run tests in watch mode |
src/
main/ # Electron main process
ipc/ # IPC handlers (config, zeroclaw CLI bridge)
lib/ # CLI wrapper, utilities
preload/ # Electron preload scripts (context bridge)
renderer/ # React frontend
components/ # Shared UI components (shadcn/ui + custom)
features/ # Feature modules
dashboard/ # Status & diagnostics
onboarding/ # Setup wizard
agent/ # Workspace file editors
skills/ # Skill management & marketplace
settings/ # Config editor sections
hooks/ # Custom React hooks
stores/ # Zustand state stores
lib/ # Utilities, IPC client, parsers
assets/ # Static assets
The app follows Electron's security best practices:
- Context isolation enabled — renderer has no direct Node.js access
- Sandbox enabled — renderer process is sandboxed
- Preload scripts expose a typed API via
contextBridge - All ZeroClaw CLI interactions go through IPC: renderer -> preload -> main -> CLI subprocess
Config is read/written as TOML via smol-toml. The settings UI reads/writes to ZeroClaw's config.toml and runs zeroclaw doctor for validation after saves.
Contributions are welcome! See CONTRIBUTING.md for setup instructions, coding conventions, and the PR process.
If you're not sure where to start, check the open issues for anything tagged good first issue or help wanted.
MIT — see LICENSE for details.