English | 中文文档
ClawWorkbench is a desktop client for OpenClaw Gateway v3.
It is more than a chat window. It also provides multi-server access, multi-Agent / multi-Session management, config editing, Logs / Memory / Cron / Subagent panels, plus desktop-only notifications, tray support, and remote Web access.
- Connecting to local or remote OpenClaw Gateways and managing multiple servers in one place
- Switching between multiple Agents and Sessions inside the same desktop app
- Watching Gateway status, logs, memory, cron jobs, and subagent activity while chatting
- Editing OpenClaw config directly in the client instead of manually changing files
- Temporarily exposing the current desktop UI through a Web service for remote browser access
- Multi-server switching with
ws/wssGateway addresses - Multi-Agent / multi-Session management
- Streaming responses, Markdown rendering, and code block display
- Session-level model switching and
thinking levelcontrol - Slash command panel with search, aliases, and parameter placeholders
- Image paste, drag-and-drop upload, and preview support
- Export a single assistant message or a full session as Markdown
- Tool call visualization and execution approval handling
Gateway Status: version, protocol, uptime, and online devicesMemory: search, pagination, and clear memory file contentCron: create, edit, delete, enable/disable, run jobs manually, and inspect recent runsLogs: real-time tailing, level filtering, search, and table / JSON viewsSubagent: inspect task state and abort running tasks
- Switch between form view and JSON view
- Edit:
- Models and Providers
- Agent list
- Agent defaults
- Logging config
- Binding rules
- Skills
- Prefer RPC-based config read/write when connected to Gateway
- Fall back to local file mode when RPC is unavailable
- Built-in validation and conflict hints
- Single-instance protection that focuses the existing window on relaunch
- Closing the main window hides it to the tray instead of quitting
- System notifications; on Windows, taskbar flashing can also be triggered
- Open external links, export text files, and read local images from restricted directories
- Start an embedded Web server from the desktop client
- Access the current frontend UI remotely from a browser
- Automatically expose
/api/configand/wsproxy endpoints so the browser does not need to connect to the local Gateway port directly - Optional access token support, suitable for Tailscale, FRP, or similar port forwarding tools
You need a reachable OpenClaw Gateway address first, for example:
ws://localhost:18789?token=your-token
wss://gateway.example.com?token=your-token
If you already have a packaged desktop build, just open it.
If you are running from source, see the “Local Development and Build” section below.
After opening the app, you can add a server in two ways:
- Quick input: paste the full address, for example
wss://host:port?token=xxx - Manual input: name, host, port, protocol, and token
Notes:
- The port can be left empty to use the protocol default
- The current connection URL must include a
tokenparameter - All server config is managed in the UI; no manual environment variables are required
Basic flow:
- Select a server
- Select an Agent
- Select an existing Session or start a new one
- Type and send a message
- Enter
/when you need the slash command panel
Common interactions:
- Enter
/to open the command panel - Paste or drag images into the input area
- Switch model or thinking level for the current session
- Export a single message or a full session
- Approve or reject execution requests directly in the UI
- Maintain multiple Gateway connections
- Supports quick address parsing
- Useful for managing local, test, and production environments together
- Left side for Agent / Session switching
- Center area for messages and input
- Assistant replies support Markdown rendering
- Tool calls can be expanded independently
Useful for:
- Adding or adjusting model providers
- Setting default models, workspaces, and skills for Agents
- Editing logging, bindings, and skills
- Switching between form and JSON views
Useful for quickly checking:
- Whether the connected Gateway is healthy
- Whether the protocol version matches
- Online device count and basic information
These panels are more operations- and debugging-focused:
Memory: inspect and search Gateway-side memory contentCron: manage scheduled jobs and inspect run recordsLogs: inspect runtime logs for troubleshootingSubagent: observe multi-task decomposition and execution
This feature is available only in desktop mode.
Steps:
- Open the
Web Remote Servicepanel - Set the listening port
- Optionally set an access token
- Start the service
- Expose the local port with Tailscale, FRP, or similar tools if needed
- Open the generated full URL in a remote browser
Notes:
- The access token can be empty, but enabling it is recommended
- If the current server changes after startup, the Web service automatically syncs to the new Gateway config
- If the app cannot find the frontend asset directory
dist/, runpnpm buildfirst
- Clicking the window close button hides the app to the tray
- To exit completely, use the tray menu exit action
- When the window is unfocused and a new assistant message arrives, the app tries to send a system notification
- On Windows, the taskbar icon may also flash
/help
/status
/context detail
/think high
/model gpt-4
/reset
/export-session
/subagents list
The actual available commands are defined by the in-app command panel.
Please check first:
- Whether the address uses
ws://orwss:// - Whether the host and port are correct
- Whether the
tokenis valid - Whether the Gateway is already running
- Whether the Gateway protocol capability matches the client
Some features depend on Gateway RPC methods or events, for example:
logs.tail- Memory-related APIs
- Cron-related APIs
- Subagent-related events
If your Gateway version is older, some panels may appear empty or unavailable.
That is the current default desktop behavior: closing the window hides it to the tray to avoid accidental exits.
Common reasons:
- The port is already in use
- The app is not running in desktop mode
dist/has not been built yet; runpnpm buildfirst
If you want to run from source:
- Node.js >= 18
- pnpm >= 8
- Rust >= 1.77.2
pnpm installpnpm dev
pnpm tauri devNotes:
pnpm devstarts only the frontend dev serverpnpm tauri devstarts the full desktop development mode
pnpm lint
pnpm build
pnpm tauri buildNotes:
- This project uses manual build, manual test, and manual release flow by default
- CI/CD auto-release flow is intentionally disabled
Current version management follows a manual sync and manual release process: No migration, replace directly.
pnpm version:check
pnpm version:set -- 0.2.0Notes:
package.jsonis the primary version entry in this repositorysrc-tauri/tauri.conf.jsonandsrc-tauri/Cargo.tomlare synchronized manually through scripts- Frontend handshake version is read from
package.jsonduring build instead of hard-coding it separately - After syncing versions, perform build, verification, commit, and tagging manually
src/ frontend React + TypeScript source
src/components/ chat, config, logs, memory, cron, and other UI components
src/hooks/ Gateway communication, config, servers, notifications, and other state logic
src/data/ slash commands and theme data
src/types/ frontend domain type definitions
src-tauri/ Tauri Rust entry and embedded Web service implementation
