A desktop AI Agent runtime and UI layer built on OpenClaw, turning long-running agents into personal digital butlers.
Overview#
RivonClaw (formerly easyclaw) is a local-first desktop application built with Electron 40 and React 19, serving as a graphical shell for the OpenClaw gateway. It addresses the lack of friendly GUI in traditional AI Agent runtimes, messaging platform silos, and local privacy concerns. It does not provide LLM inference itself, but acts as a middleware (Runtime + UI) connecting 20+ LLM providers and 10+ messaging platforms, deeply depending on upstream OpenClaw as the core gateway process.
Core Capabilities#
Model & Inference Access#
- Connects to 20+ providers: OpenAI, Anthropic, Google Gemini, DeepSeek, Zhipu, Moonshot/Kimi, Tongyi Qianwen, Groq, Mistral, xAI, OpenRouter, MiniMax, Venice AI, Xiaomi/MiMo, Volcengine/Doubao, Amazon Bedrock, NVIDIA NIM, and more
- Ollama integration for fully local deployment
- OAuth-based access: Google login for free Gemini, Claude/Anthropic subscription linking, no manual API Key configuration
- Per-provider HTTP/SOCKS5 proxy with automatic routing and hot reload
Messaging & Interaction Channels#
- Supports Telegram, WhatsApp, Discord, Slack, Google Chat, Signal, iMessage, Feishu/Lark, LINE, Matrix, Mattermost, Microsoft Teams, etc., with UI configuration and system keychain-secured credential storage
- Built-in Agent chat panel: real-time WebSocket, Markdown rendering, Emoji picker, image attachments, model switching, persistent conversation history
- Region-aware STT (Groq for international, Volcengine for domestic)
Rules & Permission Control#
- Natural language rules: plain text input, auto-compiled to policy/guard/skill, instant effect without restart
- Visual permission management via UI for file read/write access
- Tool call interception via
before_tool_callhook, covering ~85-90% of file access security scenarios
Privacy & Operations#
- All data stored locally, secrets never stored in plaintext
- Real-time Token usage tracking by model and provider
- Zero-restart updates: API Key, proxy, and channel changes take effect via hot reload
- Built-in skills marketplace with browse, search, and one-click install
- Optional anonymous telemetry, explicitly no PII collection
Architecture#
Client-Server-Backend process isolation:
- Electron Main Process: System Tray host, launches OpenClaw Gateway, serves Panel HTTP Server on dynamic localhost port
- OpenClaw Gateway: Standalone process for core gateway routing
- Panel (React): SPA frontend communicating via static file hosting and REST/SSE
Monorepo Structure:
- apps/:
desktop(Electron tray app),panel(React management UI) - packages/:
core(shared types/Zod schemas/API contracts),gateway(lifecycle/config/secrets/OAuth),storage(SQLite via better-sqlite3),rules(rule compilation/skill file writing),secrets(cross-platform keychain),stt,proxy-router,telemetry,policy,logger,plugin-sdk,device-id,updater - extensions/: 8 OpenClaw plugins (policy injection, custom tools, file permissions, mobile chat channels, browser profile CDP tools, capability manager, event bridge, search browser fallback)
- vendor-patches/openclaw/: Upstream patches via hooks, no vendor source modification
Build toolchain: pnpm workspaces + Turborepo + tsdown (ESM) + oxlint + oxfmt + Vitest
Installation#
Prerequisites: Git (any), Node.js >= 24, pnpm 10.6.2
git clone https://github.com/gaoyangz77/rivonclaw.git
cd rivonclaw
./scripts/setup-vendor.sh
pnpm install
pnpm build
pnpm --filter @rivonclaw/desktop dev
The Electron tray app runs in the background (hidden from Dock on macOS), OpenClaw gateway starts alongside, and a Web management panel is served on a dynamically assigned localhost port. Pre-built installers may be available via GitHub Releases.
API & Configuration#
No standalone CLI; all configuration via local Web Panel. REST API + SSE streams cover 11 categories: Auth & session, Rules & skills, Providers & OAuth, Channels & mobile chat, Browser profiles, Customer-service bridge, Chat & streaming, Settings & status, Usage/telemetry/STT, App lifecycle, Cloud GraphQL proxy.
Data directory defaults to ~/.rivonclaw/, overridable via RIVONCLAW_* / OPENCLAW_* env vars:
db.sqlite— SQLite databaselogs/— Application logssecrets/— File-based secret storage (non-macOS fallback)openclaw/openclaw.json— Gateway configurationopenclaw/skills/— Rule-generated skill files
Unconfirmed Information#
- Upstream OpenClaw repo (https://github.com/openclaw/openclaw) accessibility not verified
- No official website URL found
- Pre-built installer download links not directly provided in README
- Renaming timeline and reason from easyclaw to rivonclaw unknown