RivonClaw is a desktop application designed to simplify the management and deployment of OpenClaw, a powerful agent runtime. Built with non-programmers in mind, RivonClaw provides an intuitive interface that allows users to configure agents, manage LLM providers, and set up messaging channels without needing to edit configuration files or interact with terminals.
Key Features:
Natural Language Rules: Write rules in plain language that compile into policies, guards, or skills, taking effect immediately without requiring a restart.
Multi-Provider LLM Support: Integrates with over 20 LLM providers, including OpenAI, Anthropic, Google Gemini, DeepSeek, and more, along with subscription-based plans for access to premium models like Claude and Gemini.
OAuth & Subscription Plans: Seamlessly connect to services like Google for free-tier access or link directly to paid subscriptions without handling API keys manually.
Per-Provider Proxy Support: Configure HTTP/SOCKS5 proxies per provider or API key, ensuring smooth operation in regions with restricted access.
Multi-Account Channels: Connect and manage multiple accounts across platforms such as Telegram, WhatsApp, Discord, Slack, and more through a user-friendly interface.
Zero-Restart Updates: Real-time updates for API keys, proxies, and channels without needing to restart the application.
OpenClaw is a powerful agent runtime — but it's built for engineers. Setting it up means editing config files, managing processes, and juggling API keys from the terminal. For non-programmers (designers, operators, small business owners), that barrier is too high.
RivonClaw wraps OpenClaw into a desktop app that anyone can use: install, launch from the system tray, and manage everything through a local web panel. Write rules in plain language instead of code, configure LLM providers and messaging channels with a few clicks, and let the agent learn your preferences over time. No terminal required.
In short: OpenClaw is the engine; RivonClaw is the cockpit.
Features
Natural Language Rules: Write rules in plain language—they compile to policy, guards, or skills and take effect immediately (no restart)
Multi-Provider LLM Support: 20+ providers (OpenAI, Anthropic, Google Gemini, DeepSeek, Zhipu/Z.ai, Moonshot/Kimi, Qwen, Groq, Mistral, xAI, OpenRouter, MiniMax, Venice AI, Xiaomi/MiMo, Volcengine/Doubao, Amazon Bedrock, NVIDIA NIM, etc.) plus subscription/coding plans (Claude, Gemini, Zhipu Coding, Qwen Coding, Kimi Code, MiniMax Coding, Volcengine Coding) and Ollama for local models
OAuth & Subscription Plans: Sign in with Google for free-tier Gemini access or connect Claude/Anthropic subscription—no API key needed. Auto-detects or installs CLI credentials
Per-Provider Proxy Support: Configure HTTP/SOCKS5 proxies per LLM provider or API key, with automatic routing and hot reload—essential for restricted regions
Multi-Account Channels: Configure Telegram, WhatsApp, Discord, Slack, Google Chat, Signal, iMessage, Feishu/Lark, LINE, Matrix, Mattermost, Microsoft Teams, and more through UI with secure secret storage (Keychain/DPAPI)
Token Usage Tracking: Real-time statistics by model and provider, auto-refreshed from OpenClaw session files
Speech-to-Text: Region-aware STT integration for voice messages (Groq, Volcengine)
Visual Permissions: Control file read/write access through UI
Zero-Restart Updates: API key, proxy, and channel changes apply instantly via hot reload—no gateway restart needed
: All data stays on your machine; secrets never stored in plaintext
Ideal for designers, operators, small business owners, and anyone looking to deploy AI agents without technical expertise. RivonClaw enables users to set up and manage complex agent configurations through a local web panel, eliminating the need for terminal commands or manual configuration. With its intuitive design and comprehensive features, RivonClaw democratizes access to advanced AI capabilities, making it easier than ever to integrate intelligent automation into daily workflows.
RivonClaw can be installed via winget, ensuring seamless deployment across compatible systems.
Local-First & Private
Chat with Agent: Real-time WebSocket chat with markdown rendering, emoji picker, image attachments, model switching, and persistent conversation history
Skills Marketplace: Browse, search, and install community skills from a built-in marketplace; manage installed skills with one click
Auto-Update: Client update checker with static manifest hosting
The monorepo uses pnpm workspaces (apps/*, packages/*, extensions/*) with Turbo for build orchestration. All packages produce ESM output via tsdown.
Apps
Package
Description
@rivonclaw/desktop
Electron 40 tray app. Manages gateway lifecycle, hosts the panel server on a dynamic port, stores data in SQLite.
@rivonclaw/panel
React 19 + Vite 6 SPA. Pages for chat, rules, providers, channels, permissions, STT, usage, skills marketplace, and a first-launch onboarding wizard.
Extensions
Package
Description
@rivonclaw/rivonclaw-policy
Thin OpenClaw plugin shell that wires policy injection into the gateway's before_agent_start hook.
@rivonclaw/rivonclaw-tools
Owner-only custom tools plugin (e.g. system control, desktop integration).
@rivonclaw/rivonclaw-file-permissions
Enforces file access permissions by intercepting and validating tool calls before execution.
@rivonclaw/rivonclaw-mobile-chat-channel
Mobile PWA messaging relay — bridges mobile chat clients to the gateway via WebSocket.
@rivonclaw/rivonclaw-browser-profiles-tools
CDP-based browser profile tool integration for the agent.
@rivonclaw/rivonclaw-capability-manager
Tool capability and surface availability resolver.
@rivonclaw/rivonclaw-event-bridge
Mirrors selected gateway agent events onto the Chat UI stream.
@rivonclaw/rivonclaw-search-browser-fallback
Web-search fallback that uses a headless browser when direct search API fails.
Packages
Package
Description
@rivonclaw/core
Zod-validated types: Rule, ChannelConfig, PermissionConfig, ModelConfig, LLM provider definitions (20+ providers including subscription/coding plans and Ollama), region-aware defaults.
@rivonclaw/gateway
GatewayLauncher (spawn/stop/restart with exponential backoff), config writer, secret injection from system keychain, Gemini CLI OAuth flow, auth profile sync, skills directory watcher for hot reload.
@rivonclaw/logger
tslog-based logger. Writes to ~/.rivonclaw/logs/. Supports DEBUG_* env flags via createQuietLogger for noisy modules (see Debug Flags).
@rivonclaw/plugin-sdk
Thin runtime helpers and shared types for RivonClaw-authored OpenClaw plugins under extensions/.
@rivonclaw/storage
SQLite via better-sqlite3. Repositories for rules, artifacts, channels, permissions, settings. Migration system included. DB at ~/.rivonclaw/rivonclaw.db.
@rivonclaw/rules
Rule compilation, skill lifecycle (activate/deactivate), skill file writer that materializes rules as SKILL.md files for OpenClaw.
@rivonclaw/secrets
Platform-aware secret storage. macOS Keychain, file-based fallback, in-memory for tests.
@rivonclaw/updater
Checks update-manifest.json on the website, notifies user of new versions.
@rivonclaw/device-id
Machine fingerprinting (SHA-256 of hardware UUID) for device identity and quota enforcement.
@rivonclaw/stt
Speech-to-text provider abstraction (Groq for international, Volcengine for China).
@rivonclaw/proxy-router
HTTP CONNECT proxy that routes requests to different upstream proxies based on per-provider domain configuration.
@rivonclaw/telemetry
Privacy-first telemetry client with batch uploads and retry logic; no PII collected.
@rivonclaw/policy
Policy injector & guard evaluator — compiles policies into prompt fragments and guards into enforcement checks.
Scripts
Most root scripts run through Turbo:
pnpm build # Build all packages (respects dependency graph)
pnpm dev # Run desktop + panel in dev mode
pnpm test # Run all tests (vitest)
pnpm lint # Lint all packages (oxlint)
pnpm format # Check formatting (oxfmt, runs directly)
pnpm format:fix # Auto-fix formatting (oxfmt, runs directly)
Per-package
# Desktop
pnpm --filter @rivonclaw/desktop dev # Launch Electron in dev mode
pnpm --filter @rivonclaw/desktop build # Bundle main process
pnpm --filter @rivonclaw/desktop test # Run desktop tests
pnpm --filter @rivonclaw/desktop dist:mac:arm64 # Build macOS DMG (arm64)
pnpm --filter @rivonclaw/desktop dist:mac:x64 # Build macOS DMG (x64)
pnpm --filter @rivonclaw/desktop dist:win # Build Windows NSIS installer
# Panel
pnpm --filter @rivonclaw/panel dev # Vite dev server
pnpm --filter @rivonclaw/panel build # Production build
# Any package
pnpm --filter @rivonclaw/core test
pnpm --filter @rivonclaw/gateway test
The desktop app runs as a tray-only application (hidden from the dock on macOS). It:
Spawns the OpenClaw gateway from vendor/openclaw/
Serves the panel UI and REST API on a dynamically assigned localhost port
Writes gateway config and auth profiles to ~/.openclaw/
Injects secrets (API keys + OAuth tokens) from the system keychain at runtime
Watches ~/.openclaw/skills/ for hot-reload of rule-generated skill files
Syncs refreshed OAuth tokens back to keychain on shutdown
REST API
All Desktop ↔ Panel REST endpoints, SSE streams, and path parameters are declared as a single typed contract in packages/core/src/api/api-contract.ts — both Desktop (route registry) and Panel (fetchJson / EventSource) import from it, so it stays the source of truth.
Gateway configuration (written by @rivonclaw/gateway)
~/.rivonclaw/openclaw/agents//sessions/
Agent session transcripts (JSONL)
~/.rivonclaw/openclaw/skills/
Auto-generated skill files materialized from rules
~/.rivonclaw/openclaw/credentials/
OAuth credential cache (Gemini CLI, Codex)
Building Installers
The dist:mac and dist:win scripts automatically prune and bundle vendor/openclaw before packaging. This reduces the vendor file count and size via esbuild bundling and node_modules pruning. Vendor is copied into the installer via extraResources — the source vendor/openclaw/ is never modified.
better-sqlite3 runs under two runtimes with incompatible ABIs (Node.js for tests, Electron for the app). scripts/rebuild-native.sh compiles it for both and places the binaries in lib/binding/. This runs automatically via the root postinstall hook.
If tests fail with NODE_MODULE_VERSION mismatch after an Electron upgrade:
bash scripts/rebuild-native.sh # rebuild for both ABIs
pnpm --filter @rivonclaw/storage test
pnpm --filter @rivonclaw/gateway test
Debug Flags
Chatty modules default to INFO+ and emit DEBUG only when the matching DEBUG_* env var is set to 1. Flags are registered centrally in packages/logger/src/debug-flags.ts and consumed via createQuietLogger(name, DEBUG_FLAGS.X).