version unknown

rivonclaw

@gaoyangz77

<p align="center">

Choose how to use this skill

You do not need every option. Choose the path your AI client supports. The stable page stays the same; versioned files are immutable.

1. Native installer

This listing has no registered native installer command. Use the complete package or source fallback below, depending on what your client supports.

Do not guess an installer command or replace an existing version without reviewing the diff.

2. Complete package recommended

Download the ZIP when available. It includes SKILL.md plus the references, security notes and version metadata.

No complete ProSkills package is published for this listing yet.

3. Prompt-only

Copy the prompt above when the agent can read the stable page or when you want to adopt the workflow without installing a skill.

Need only the instruction file?

Download SKILL.md only if your client requires a single file. The complete ZIP is safer for a full installation because it preserves the references and release context.

No path installs or executes anything by itself. Your agent still needs access to the project files. Before updating, compare the installed version and review the diff.

7.6/10
Verified
Apr 29, 2026

// RATINGS

⭐GitHub Stars
⭐ 0 on GitHubGitHub ↗

New / niche

🟢ProSkills ScoreAI Verified
7.6/10
📍

Not yet listed on ClawHub or SkillsMP

// README

Why RivonClaw?

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
  • Local-First & Private: All data stays on your machine; secrets never stored in plaintext
  • 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
  • Privacy-First Telemetry: Optional anonymous usage analytics—no PII collected

How File Permissions Work

RivonClaw enforces file access permissions through an OpenClaw plugin that intercepts tool calls before they execute. Here's what's protected:

  • File access tools (read, write, edit, image, apply-patch): Fully protected—paths are validated against your configured permissions
  • Command execution (exec, process): Working directory is validated, but paths inside command strings (like cat /etc/passwd) cannot be inspected

Coverage: ~85-90% of file access scenarios. For maximum security, consider restricting or disabling exec tools through Rules.

Technical note: The file permissions plugin uses OpenClaw's before_tool_call hook—no vendor source code modifications needed, so RivonClaw can cleanly pull upstream OpenClaw updates.

Prerequisites

ToolVersion
Gitany
Node.js>= 24
pnpm10.6.2

Quick Start

# 1. Clone the repository
git clone https://github.com/nicepkg/rivonclaw.git
cd rivonclaw

# 2. Clone and build the vendored OpenClaw runtime (applies vendor patches automatically)
./scripts/setup-vendor.sh

# 3. Install workspace dependencies and build
pnpm install
pnpm build

# 4. Launch in dev mode
pnpm --filter @rivonclaw/desktop dev

This starts the Electron tray app, which spawns the OpenClaw gateway and serves the management panel on a dynamically assigned localhost port.

Repository Structure

rivonclaw/
├── apps/
│   ├── desktop/          # Electron tray app (main process)
│   └── panel/            # React management UI (served by desktop)
├── packages/
│   ├── core/             # Shared types & Zod schemas
│   ├── device-id/        # Machine fingerprinting for device identity
│   ├── gateway/          # Gateway lifecycle, config writer, secret injection, OAuth flows
│   ├── logger/           # Structured logging (tslog)
│   ├── storage/          # SQLite persistence (better-sqlite3)
│   ├── rules/            # Rule compilation & skill file writer
│   ├── secrets/          # Keychain / DPAPI / file-based secret stores
│   ├── updater/          # Auto-update client
│   ├── stt/              # Speech-to-text abstraction (Groq, Volcengine)
│   ├── proxy-router/     # HTTP CONNECT proxy multiplexer for restricted regions
│   ├── telemetry/        # Privacy-first anonymous analytics client
│   └── policy/           # Policy injector & guard evaluator logic
├── extensions/
│   ├── rivonclaw-policy/      # OpenClaw plugin shell for policy injection
│   ├── rivonclaw-tools/       # Owner-only custom tools plugin
│   ├── rivonclaw-file-permissions/  # OpenClaw plugin for file access control
│   └── rivonclaw-mobile-chat-channel/  # Mobile messaging relay plugin
├── scripts/
│   ├── test-local.sh             # Local test pipeline (build + unit + e2e tests)
│   ├── publish-release.sh        # Publish draft GitHub Release
│   └── rebuild-native.sh         # Prebuild better-sqlite3 for Node.js + Electron
└── vendor/
    └── openclaw/         # Vendored OpenClaw binary (gitignored)

Workspaces

The monorepo uses pnpm workspaces (apps/*, packages/*, extensions/*) with Turbo for build orchestration. All packages produce ESM output via tsdown.

Apps

PackageDescription
@rivonclaw/desktopElectron 40 tray app. Manages gateway lifecycle, hosts the panel server on a dynamic port, stores data in SQLite.
@rivonclaw/panelReact 19 + Vite 6 SPA. Pages for chat, rules, providers, channels, permissions, STT, usage, skills marketplace, and a first-launch onboarding wizard.

Extensions

PackageDescription
@rivonclaw/rivonclaw-policyThin OpenClaw plugin shell that wires policy injection into the gateway's before_agent_start hook.
@rivonclaw/rivonclaw-toolsOwner-only custom tools plugin (e.g. system control, desktop integration).
@rivonclaw/file-permissionsOpenClaw plugin that enforces file access permissions by intercepting and validating tool calls before execution.
@rivonclaw/rivonclaw-mobile-chat-channelMobile PWA messaging relay — bridges mobile chat clients to the gateway via WebSocket.

Packages

PackageDescription
@rivonclaw/coreZod-validated types: Rule, ChannelConfig, PermissionConfig, ModelConfig, LLM provider definitions (20+ providers including subscription/coding plans and Ollama), region-aware defaults.
@rivonclaw/gatewayGatewayLauncher (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/loggertslog-based logger. Writes to ~/.rivonclaw/logs/.
@rivonclaw/storageSQLite via better-sqlite3. Repositories for rules, artifacts, channels, permissions, settings. Migration system included. DB at ~/.rivonclaw/rivonclaw.db.
@rivonclaw/rulesRule compilation, skill lifecycle (activate/deactivate), skill file writer that materializes rules as SKILL.md files for OpenClaw.
@rivonclaw/secretsPlatform-aware secret storage. macOS Keychain, file-based fallback, in-memory for tests.
@rivonclaw/updaterChecks update-manifest.json on the website, notifies user of new versions.
@rivonclaw/device-idMachine fingerprinting (SHA-256 of hardware UUID) for device identity and quota enforcement.
@rivonclaw/sttSpeech-to-text provider abstraction (Groq for international, Volcengine for China).
@rivonclaw/proxy-routerHTTP CONNECT proxy that routes requests to different upstream proxies based on per-provider domain configuration.
@rivonclaw/telemetryPrivacy-first telemetry client with batch uploads and retry logic; no PII collected.
@rivonclaw/policyPolicy 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   # Build macOS DMG (universal)
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

Architecture

┌─────────────────────────────────────────┐
│  System Tray (Electron main process)    │
│  ├── GatewayLauncher → vendor/openclaw  │
│  ├── Panel HTTP Server (dynamic port)   │
│  │   ├── Static files (panel dist/)     │
│  │   └── REST API (/api/*)              │
│  ├── SQLite Storage                     │
│  ├── Auth Profile Sync                  │
│  └── Auto-Updater                       │
└─────────────────────────────────────────┘
         │                    ▲
         ▼                    │
┌─────────────┐    ┌─────────────────┐
│  OpenClaw   │    │  Panel (React)  │
│  Gateway    │    │  Panel (React)  │
│  Process    │    └─────────────────┘
└─────────────┘

The desktop app runs as a tray-only application (hidden from the dock on macOS). It:

  1. Spawns the OpenClaw gateway from vendor/openclaw/
  2. Serves the panel UI and REST API on a dynamically assigned localhost port
  3. Writes gateway config and auth profiles to ~/.openclaw/
  4. Injects secrets (API keys + OAuth tokens) from the system keychain at runtime
  5. Watches ~/.openclaw/skills/ for hot-reload of rule-generated skill files
  6. Syncs refreshed OAuth tokens back to keychain on shutdown

REST API

The panel server exposes these endpoints:

EndpointMethodsDescription
/api/rulesGET, POST, PUT, DELETECRUD for rules
/api/channelsGET, POST, PUT, DELETEChannel management
/api/permissionsGET, POST, PUT, DELETEPermission management
/api/settingsGET, PUTKey-value settings store
/api/agent-settingsGET, PUTAgent settings (DM scope, browser mode)
/api/providersGETAvailable LLM providers
/api/provider-keysGET, POST, PUT, DELETEAPI key and OAuth credential management
/api/oauthPOSTGemini CLI OAuth flow (acquire/save)
/api/skillsGET, POST, DELETESkills marketplace and installed skills
/api/usageGETToken usage statistics
/api/sttGET, PUTSpeech-to-text configuration
/api/telemetryPOSTAnonymous telemetry events
/api/statusGETSystem status (rule count, gateway state)

Data Directories

PathPurpose
~/.rivonclaw/rivonclaw.dbSQLite database
~/.rivonclaw/logs/Application logs
~/.openclaw/OpenClaw state directory
~/.openclaw/gateway/config.ymlGateway configuration
~/.openclaw/sessions/WhatsApp sessions
~/.openclaw/skills/Auto-generated skill files

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.

macOS (DMG, universal arm64+x64)

pnpm build
pnpm --filter @rivonclaw/desktop dist:mac
# Output: apps/desktop/release/RivonClaw-<version>-universal.dmg

For code signing and notarization, set these environment variables:

CSC_LINK=<path-to-.p12-certificate>
CSC_KEY_PASSWORD=<certificate-password>
APPLE_ID=<your-apple-id>
APPLE_APP_SPECIFIC_PASSWORD=<app-specific-password>
APPLE_TEAM_ID=<team-id>

Windows (NSIS installer, x64)

pnpm build
pnpm --filter @rivonclaw/desktop dist:win
# Output: apps/desktop/release/RivonClaw.Setup.<version>.exe
#         apps/desktop/release/RivonClaw-<version>-portable.exe

Cross-compiling from macOS works (NSIS doesn't need Wine). For code signing on Windows, set:

CSC_LINK=<path-to-.pfx-certificate>
CSC_KEY_PASSWORD=<certificate-password>

Local Testing

The scripts/test-local.sh script runs the full local test pipeline:

./scripts/test-local.sh 1.2.8            # full pipeline
./scripts/test-local.sh --skip-tests      # build + pack only

This will:

  1. Prebuild native modules for Node.js + Electron
  2. Build all workspace packages
  3. Run unit tests and E2E tests (dev + prod)
  4. Pack the app (electron-builder --dir)

Publishing

After CI builds complete and local tests pass:

./scripts/publish-release.sh             # publish draft release

Note: better-sqlite3 native module

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

Testing

Tests use Vitest. Run all tests:

pnpm test

Run tests for a specific package:

pnpm --filter @rivonclaw/storage test
pnpm --filter @rivonclaw/gateway test

Code Style

  • Linting: oxlint (Rust-based, fast)
  • Formatting: oxfmt (Rust-based, fast)
  • TypeScript: Strict mode, ES2023 target, NodeNext module resolution
pnpm lint
pnpm format       # Check
pnpm format:fix   # Auto-fix

Community

License

See LICENSE for details.