Initial commit: OpenClaw Skill Collection

6 custom skills (assign-task, dispatch-webhook, daily-briefing,
task-capture, qmd-brain, tts-voice) with technical documentation.
Compatible with Claude Code, OpenClaw, Codex CLI, and OpenCode.
This commit is contained in:
2026-03-13 10:58:30 +08:00
commit 4c966a3ad2
884 changed files with 140761 additions and 0 deletions

View File

@@ -0,0 +1,19 @@
# agent
# `openclaw agent`
Run an agent turn via the Gateway (use `--local` for embedded).
Use `--agent <id>` to target a configured agent directly.
Related:
* Agent send tool: [Agent send](/tools/agent-send)
## Examples
```bash
openclaw agent --to +15555550123 --message "status update" --deliver
openclaw agent --agent ops --message "Summarize logs"
openclaw agent --session-id 1234 --message "Summarize inbox" --thinking medium
openclaw agent --agent ops --message "Generate report" --deliver --reply-channel slack --reply-to "#reports"
```

View File

@@ -0,0 +1,29 @@
# agents
# `openclaw agents`
Manage isolated agents (workspaces + auth + routing).
## Key Features
**Agent Management Commands:**
The tool supports several operations including listing agents, adding new ones to specific workspaces, configuring identities, and deleting agents.
**Identity Configuration:**
Each agent workspace can contain an `IDENTITY.md` file at its root. Agents can be customized with fields such as name, theme, emoji, and avatar. Avatar files can reference workspace-relative paths, URLs, or data URIs.
**Identity Setup Methods:**
Users can load identity settings from an `IDENTITY.md` file or override specific properties directly via command-line arguments.
**Configuration Structure:**
Identity information is stored in the configuration under `agents.list[].identity`, containing customizable display properties that personalize each agent's presentation.
## Commands
```bash
openclaw agents list
openclaw agents add <name> --workspace <path>
openclaw agents delete <id>
```
Related concepts: multi-agent routing and agent workspace architecture.

View File

@@ -0,0 +1,44 @@
# approvals
# `openclaw approvals`
Manage exec approvals for the **local host**, **gateway host**, or a **node host**.
By default, commands target the local approvals file on disk. Use `--gateway` to target the gateway, or `--node` to target a specific node.
Related:
* Exec approvals: [Exec approvals](/tools/exec-approvals)
* Nodes: [Nodes](/nodes)
## Common commands
```bash
openclaw approvals get
openclaw approvals get --node <id|name|ip>
openclaw approvals get --gateway
```
## Replace approvals from a file
```bash
openclaw approvals set --file ./exec-approvals.json
openclaw approvals set --node <id|name|ip> --file ./exec-approvals.json
openclaw approvals set --gateway --file ./exec-approvals.json
```
## Allowlist helpers
```bash
openclaw approvals allowlist add "~/Projects/**/bin/rg"
openclaw approvals allowlist add --agent main --node <id|name|ip> "/usr/bin/uptime"
openclaw approvals allowlist add --agent "*" "/usr/bin/uname"
openclaw approvals allowlist remove "~/Projects/**/bin/rg"
```
## Notes
* `--node` uses the same resolver as `openclaw nodes` (id, name, ip, or id prefix).
* `--agent` defaults to `"*"`, which applies to all agents.
* The node host must advertise `system.execApprovals.get/set` (macOS app or headless node host).
* Approvals files are stored per host at `~/.openclaw/exec-approvals.json`.

View File

@@ -0,0 +1,52 @@
# browser
# `openclaw browser`
Manage browser control servers and enable automated browser interactions.
## Overview
OpenClaw's browser command manages browser control servers and enables automated browser interactions. The system supports two primary browser profiles:
- **openclaw**: Launches a dedicated, isolated Chrome instance managed by OpenClaw
- **chrome**: Controls existing Chrome tabs through a Chrome extension relay
## Key Capabilities
The tool supports standard browser automation tasks including:
- Tab management (list, open, focus, close)
- Navigation
- Screenshots and snapshots
- UI element interaction through reference-based automation
## Usage Patterns
Common operations include:
- Managing tabs (list, open, focus, close)
- Visual capture via snapshots and screenshots
- Programmatic actions like clicking and typing on referenced UI elements
- Remote browser control through node host proxies when browsers run on different machines
## Commands
```bash
openclaw browser status
openclaw browser start
openclaw browser stop
openclaw browser screenshot
openclaw browser snapshot
openclaw browser navigate <url>
openclaw browser click --ref <ref>
openclaw browser type --ref <ref> --text "content"
```
## Configuration
Users can create custom browser profiles with specific names and colors, and specify profiles via the `--browser-profile` flag. Standard options include timeout settings, gateway URLs, and output formatting.
## Extension Integration
The Chrome extension relay allows manual attachment of existing Chrome tabs, requiring installation through the unpacked extension method rather than auto-attachment.
For comprehensive setup details, see additional guides covering remote access, security considerations, and Tailscale integration.

View File

@@ -0,0 +1,73 @@
# channels
# `openclaw channels`
Manage chat channel accounts and their runtime status on the Gateway.
Related docs:
* Channel guides: [Channels](/channels/index)
* Gateway configuration: [Configuration](/gateway/configuration)
## Common commands
```bash
openclaw channels list
openclaw channels status
openclaw channels capabilities
openclaw channels capabilities --channel discord --target channel:123
openclaw channels resolve --channel slack "#general" "@jane"
openclaw channels logs --channel all
```
## Add / remove accounts
```bash
openclaw channels add --channel telegram --token <bot-token>
openclaw channels remove --channel telegram --delete
```
Tip: `openclaw channels add --help` shows per-channel flags (token, app token, signal-cli paths, etc).
## Login / logout (interactive)
```bash
openclaw channels login --channel whatsapp
openclaw channels logout --channel whatsapp
```
## Troubleshooting
* Run `openclaw status --deep` for a broad probe.
* Use `openclaw doctor` for guided fixes.
* `openclaw channels list` prints `Claude: HTTP 403 ... user:profile` → usage snapshot needs the `user:profile` scope. Use `--no-usage`, or provide a claude.ai session key (`CLAUDE_WEB_SESSION_KEY` / `CLAUDE_WEB_COOKIE`), or re-auth via Claude Code CLI.
## Capabilities probe
Fetch provider capability hints (intents/scopes where available) plus static feature support:
```bash
openclaw channels capabilities
openclaw channels capabilities --channel discord --target channel:123
```
Notes:
* `--channel` is optional; omit it to list every channel (including extensions).
* `--target` accepts `channel:<id>` or a raw numeric channel id and only applies to Discord.
* Probes are provider-specific: Discord intents + optional channel permissions; Slack bot + user scopes; Telegram bot flags + webhook; Signal daemon version; MS Teams app token + Graph roles/scopes (annotated where known). Channels without probes report `Probe: unavailable`.
## Resolve names to IDs
Resolve channel/user names to IDs using the provider directory:
```bash
openclaw channels resolve --channel slack "#general" "@jane"
openclaw channels resolve --channel discord "My Server/#support" "@someone"
openclaw channels resolve --channel matrix "Project Room"
```
Notes:
* Use `--kind user|group|auto` to force the target type.
* Resolution prefers active matches when multiple entries share the same name.

View File

@@ -0,0 +1,28 @@
# configure
# `openclaw configure`
Interactive prompt to set up credentials, devices, and agent defaults.
Note: The **Model** section now includes a multi-select for the
`agents.defaults.models` allowlist (what shows up in `/model` and the model picker).
Tip: `openclaw config` without a subcommand opens the same wizard. Use
`openclaw config get|set|unset` for non-interactive edits.
Related:
* Gateway configuration reference: [Configuration](/gateway/configuration)
* Config CLI: [Config](/cli/config)
Notes:
* Choosing where the Gateway runs always updates `gateway.mode`. You can select "Continue" without other sections if that is all you need.
* Channel-oriented services (Slack/Discord/Matrix/Microsoft Teams) prompt for channel/room allowlists during setup. You can enter names or IDs; the wizard resolves names to IDs when possible.
## Examples
```bash
openclaw configure
openclaw configure --section models --section channels
```

View File

@@ -0,0 +1,36 @@
# cron
# `openclaw cron`
Manage cron jobs for the Gateway scheduler.
Related:
* Cron jobs: [Cron jobs](/automation/cron-jobs)
Tip: run `openclaw cron --help` for the full command surface.
Note: isolated `cron add` jobs default to `--announce` delivery. Use `--no-deliver` to keep
output internal. `--deliver` remains as a deprecated alias for `--announce`.
Note: one-shot (`--at`) jobs delete after success by default. Use `--keep-after-run` to keep them.
## Common edits
Update delivery settings without changing the message:
```bash
openclaw cron edit <job-id> --announce --channel telegram --to "123456789"
```
Disable delivery for an isolated job:
```bash
openclaw cron edit <job-id> --no-deliver
```
Announce to a specific channel:
```bash
openclaw cron edit <job-id> --announce --channel slack --to "channel:C1234567890"
```

View File

@@ -0,0 +1,10 @@
# dashboard
# `openclaw dashboard`
Open the Control UI using your current auth.
```bash
openclaw dashboard
openclaw dashboard --no-open
```

View File

@@ -0,0 +1,57 @@
# directory
# `openclaw directory`
Directory lookups for channels that support it (contacts/peers, groups, and "me").
## Common flags
* `--channel <name>`: channel id/alias (required when multiple channels are configured; auto when only one is configured)
* `--account <id>`: account id (default: channel default)
* `--json`: output JSON
## Notes
* `directory` is meant to help you find IDs you can paste into other commands (especially `openclaw message send --target ...`).
* For many channels, results are config-backed (allowlists / configured groups) rather than a live provider directory.
* Default output is `id` (and sometimes `name`) separated by a tab; use `--json` for scripting.
## Using results with `message send`
```bash
openclaw directory peers list --channel slack --query "U0"
openclaw message send --channel slack --target user:U012ABCDEF --message "hello"
```
## ID formats (by channel)
* WhatsApp: `+15551234567` (DM), `1234567890-1234567890@g.us` (group)
* Telegram: `@username` or numeric chat id; groups are numeric ids
* Slack: `user:U…` and `channel:C…`
* Discord: `user:<id>` and `channel:<id>`
* Matrix (plugin): `user:@user:server`, `room:!roomId:server`, or `#alias:server`
* Microsoft Teams (plugin): `user:<id>` and `conversation:<id>`
* Zalo (plugin): user id (Bot API)
* Zalo Personal / `zalouser` (plugin): thread id (DM/group) from `zca` (`me`, `friend list`, `group list`)
## Self ("me")
```bash
openclaw directory self --channel zalouser
```
## Peers (contacts/users)
```bash
openclaw directory peers list --channel zalouser
openclaw directory peers list --channel zalouser --query "name"
openclaw directory peers list --channel zalouser --limit 50
```
## Groups
```bash
openclaw directory groups list --channel zalouser
openclaw directory groups list --channel zalouser --query "work"
openclaw directory groups members --channel zalouser --group-id <id>
```

View File

@@ -0,0 +1,17 @@
# dns
# `openclaw dns`
DNS helpers for wide-area discovery (Tailscale + CoreDNS). Currently focused on macOS + Homebrew CoreDNS.
Related:
* Gateway discovery: [Discovery](/gateway/discovery)
* Wide-area discovery config: [Configuration](/gateway/configuration)
## Setup
```bash
openclaw dns setup
openclaw dns setup --apply
```

View File

@@ -0,0 +1,10 @@
# docs
# `openclaw docs`
Search the live docs index.
```bash
openclaw docs browser extension
openclaw docs sandbox allowHostControl
```

View File

@@ -0,0 +1,35 @@
# doctor
# `openclaw doctor`
Health checks + quick fixes for the gateway and channels.
Related:
* Troubleshooting: [Troubleshooting](/gateway/troubleshooting)
* Security audit: [Security](/gateway/security)
## Examples
```bash
openclaw doctor
openclaw doctor --repair
openclaw doctor --deep
```
Notes:
* Interactive prompts (like keychain/OAuth fixes) only run when stdin is a TTY and `--non-interactive` is **not** set. Headless runs (cron, Telegram, no terminal) will skip prompts.
* `--fix` (alias for `--repair`) writes a backup to `~/.openclaw/openclaw.json.bak` and drops unknown config keys, listing each removal.
## macOS: `launchctl` env overrides
If you previously ran `launchctl setenv OPENCLAW_GATEWAY_TOKEN ...` (or `...PASSWORD`), that value overrides your config file and can cause persistent "unauthorized" errors.
```bash
launchctl getenv OPENCLAW_GATEWAY_TOKEN
launchctl getenv OPENCLAW_GATEWAY_PASSWORD
launchctl unsetenv OPENCLAW_GATEWAY_TOKEN
launchctl unsetenv OPENCLAW_GATEWAY_PASSWORD
```

View File

@@ -0,0 +1,43 @@
# gateway
# `openclaw gateway`
The Gateway serves as OpenClaw's WebSocket server managing channels, nodes, sessions, and hooks. All subcommands operate under the `openclaw gateway` namespace.
## Running the Gateway
Launch a local Gateway with:
```bash
openclaw gateway
```
Key startup requirements include setting `gateway.mode=local` in configuration, though `--allow-unconfigured` bypasses this for development. The system blocks loopback binding without authentication as a safety measure.
## Query Commands
Gateway queries use WebSocket RPC with flexible output formatting (human-readable by default, JSON via `--json` flag).
**Available commands:**
- `gateway health`: checks Gateway connectivity
- `gateway status`: displays service status plus optional RPC probe
- `gateway probe`: comprehensive debug command scanning configured and localhost gateways
- `gateway call <method>`: low-level RPC helper for custom operations
## Service Management
Standard lifecycle commands include:
```bash
openclaw gateway install
openclaw gateway start
openclaw gateway stop
openclaw gateway restart
openclaw gateway uninstall
```
## Gateway Discovery
The `gateway discover` command scans for Gateway beacons using multicast DNS-SD (`_openclaw-gw._tcp`). Discovery records include details like WebSocket ports, SSH configuration, and TLS fingerprints when applicable.
Related documentation sections: Bonjour configuration, discovery protocols, and system configuration settings.

View File

@@ -0,0 +1,16 @@
# health
# `openclaw health`
Fetch health from the running Gateway.
```bash
openclaw health
openclaw health --json
openclaw health --verbose
```
Notes:
* `--verbose` runs live probes and prints per-account timings when multiple accounts are configured.
* Output includes per-agent session stores when multiple agents are configured.

View File

@@ -0,0 +1,34 @@
# hooks
# `openclaw hooks`
Manage event-driven automations for gateway commands and startup events.
## Core Commands
**Listing and Information:**
- `openclaw hooks list` displays all discovered hooks with readiness status
- `openclaw hooks info <name>` provides detailed information about specific hooks
- `openclaw hooks check` shows overall eligibility summary
**Management:**
- `openclaw hooks enable <name>` activates a hook in your config
- `openclaw hooks disable <name>` deactivates a hook
- `openclaw hooks install <path-or-spec>` adds new hook packs from local directories, archives, or npm
- `openclaw hooks update <id>` refreshes installed npm-based hook packs
## Available Bundled Hooks
The system includes four pre-built hooks:
1. **session-memory** - Saves session context when `/new` command executes, storing output to `~/.openclaw/workspace/memory/`
2. **command-logger** - Records all command events to a centralized audit file at `~/.openclaw/logs/commands.log`
3. **soul-evil** - Swaps `SOUL.md` content with `SOUL_EVIL.md` during specified windows or randomly
4. **boot-md** - Executes `BOOT.md` upon gateway startup (triggered by `gateway:startup` event)
## Important Notes
After enabling or disabling hooks, restart your gateway for changes to take effect. Plugin-managed hooks cannot be toggled directly through these commands - manage the parent plugin instead.

View File

@@ -0,0 +1,171 @@
# Complete CLI Reference Documentation
## Overview
This documentation provides comprehensive reference material for OpenClaw's command-line interface, detailing all available commands, options, and usage patterns.
## Core Structure
The CLI organizes functionality through a primary command with subcommands:
```
openclaw [--dev] [--profile <name>] <command>
```
### Global Options
The system supports several flags applicable across commands:
- `--dev`: Isolates state to `~/.openclaw-dev` with shifted default ports
- `--profile <name>`: Isolates state to `~/.openclaw-<name>`
- `--no-color`: Disables ANSI styling
- `--version`: Displays version information
### Output Formatting
ANSI colors and progress indicators only render in TTY sessions. OSC-8 hyperlinks render as clickable links in supported terminals; otherwise we fall back to plain URLs.
## Command Categories
### Setup & Configuration
**`setup`** initializes configuration and workspace with options for workspace path, wizard mode, and remote gateway configuration.
**`onboard`** provides an interactive wizard supporting multiple flows (quickstart, advanced, manual) with authentication provider selection and gateway binding options.
**`configure`** launches an interactive configuration wizard for models, channels, skills, and gateway settings.
**`config`** offers non-interactive helpers for retrieving, setting, or removing configuration values using dot/bracket path notation.
**`doctor`** performs health checks and applies quick fixes for configuration, gateway, and legacy services.
### Channel Management
**`channels`** manages chat channel accounts across platforms including WhatsApp, Telegram, Discord, Slack, Signal, iMessage, and Microsoft Teams.
Subcommands include:
- `list`: Display configured channels
- `status`: Check gateway reachability
- `add`: Wizard-style or non-interactive setup
- `remove`: Disable or delete configurations
- `login`/`logout`: Interactive authentication (platform-dependent)
- `logs`: Display recent channel activity
### Skill & Plugin Management
**`skills`** lists available skills and readiness information:
- `list`: Enumerate all skills
- `info <name>`: Display specific skill details
- `check`: Summary of ready versus missing requirements
**`plugins`** manages extensions and their configuration:
- `list`: Discover available plugins
- `install`: Add plugins from various sources
- `enable`/`disable`: Toggle activation
- `doctor`: Report load errors
### Messaging & Agent Control
**`message`** provides unified outbound messaging with subcommands for sending, polling, reacting, editing, deleting, and managing permissions across channels.
**`agent`** executes a single agent turn via the Gateway with options for message content, destination, session tracking, and verbose output.
**`agents`** manages isolated agent workspaces:
- `list`: Display configured agents
- `add`: Create new isolated agent
- `delete`: Remove agent and prune state
### Gateway Operations
**`gateway`** runs the WebSocket Gateway with binding, authentication, and Tailscale options.
Gateway service management includes:
- `status`: Probe gateway health
- `install`: Install service
- `start`/`stop`/`restart`: Control service state
**`logs`** tails Gateway file logs via RPC, with support for colorized structured output in TTY sessions and JSON formatting.
### System & Monitoring
**`status`** displays linked session health and recent recipients with options for comprehensive diagnostics and provider usage information.
**`health`** fetches current health status from the running Gateway.
**`sessions`** lists stored conversation sessions with filtering by activity duration.
**`system`** manages system-level operations:
- `event`: Enqueue system events
- `heartbeat`: Control heartbeat functionality
- `presence`: List system presence entries
### Model Configuration
**`models`** manages AI model selection and authentication:
- `list`: Enumerate available models
- `status`: Display current configuration
- `set`: Designate primary model
- `scan`: Discover new models with filtering options
- `auth`: Configure authentication credentials
- `aliases`: Create model shortcuts
- `fallbacks`: Define backup models
### Automation
**`cron`** manages scheduled jobs with support for:
- Time-based scheduling (`--at`, `--every`, `--cron`)
- System events or messaging payloads
- Job lifecycle management (enable/disable/edit)
### Node Management
**`node`** operates headless node hosts or manages them as background services.
**`nodes`** communicates with Gateway-paired nodes supporting:
- Status monitoring and connection filtering
- Command invocation with timeout control
- Camera operations (snap, clip)
- Canvas and screen management
- Location tracking
### Browser Control
**`browser`** controls dedicated Chrome/Brave/Edge/Chromium instances:
Management: `status`, `start`, `stop`, `reset-profile`, `profiles`, `create-profile`, `delete-profile`
Inspection: `screenshot`, `snapshot` with format and selector options
Actions: `navigate`, `click`, `type`, `press`, `hover`, `drag`, `select`, `upload`, `fill`, `dialog`, `wait`, `evaluate`, `console`, `pdf`
### Additional Tools
**`memory`** enables vector search over markdown files:
- `status`: Display index statistics
- `index`: Rebuild index
- `search`: Execute semantic queries
**`approvals`** manages approval configurations with allowlist operations.
**`security`** provides audit functionality with optional deep probing and automatic fixes.
**`tui`** opens an interactive terminal user interface connected to the Gateway.
**`docs`** searches live documentation.
## Reset & Cleanup
**`reset`** clears local configuration and state with scoping options (config only, config+credentials+sessions, or full reset).
**`uninstall`** removes the gateway service and associated data while preserving the CLI installation.
**`update`** manages version upgrades.
## Color Palette
OpenClaw employs a distinctive color scheme for terminal output:
- accent (#FF5A2D): headings, labels, primary highlights
- accentBright (#FF7A3D): command names, emphasis
- success (#2FBF71): success states
- error (#E23D2D): errors, failures
This reference encompasses the complete command taxonomy with emphasis on practical usage patterns and option availability across the OpenClaw platform.

View File

@@ -0,0 +1,18 @@
# logs
# `openclaw logs`
Tail Gateway file logs over RPC (works in remote mode).
Related:
* Logging overview: [Logging](/logging)
## Examples
```bash
openclaw logs
openclaw logs --follow
openclaw logs --json
openclaw logs --limit 500
```

View File

@@ -0,0 +1,34 @@
# memory
# `openclaw memory`
Semantic memory indexing and search operations through the active memory plugin system.
## Core Functionality
This tool provides three primary capabilities:
1. **Status Monitoring**: Check memory system health with `openclaw memory status`
2. **Indexing**: Build or rebuild the semantic index via `openclaw memory index`
3. **Search**: Query indexed content with `openclaw memory search`
## Examples
```bash
openclaw memory status
openclaw memory status --deep
openclaw memory index
openclaw memory search "query terms"
```
## Key Command Options
Users can scope operations to individual agents using `--agent <id>` or apply verbose logging with the `--verbose` flag for detailed diagnostic output.
## Advanced Features
The `--deep` flag enables probes for vector + embedding availability, while combining `--deep --index` triggers automatic reindexing when the storage is marked as dirty. The system also respects extra paths configured through `memorySearch.extraPaths`.
## Plugin Architecture
Memory functionality depends on the active memory plugin (defaulting to `memory-core`), which can be disabled by setting `plugins.slots.memory = "none"`.

View File

@@ -0,0 +1,233 @@
# message
# `openclaw message`
Single outbound command for sending messages and channel actions
(Discord/Google Chat/Slack/Mattermost (plugin)/Telegram/WhatsApp/Signal/iMessage/MS Teams).
## Usage
```
openclaw message <subcommand> [flags]
```
Channel selection:
* `--channel` required if more than one channel is configured.
* If exactly one channel is configured, it becomes the default.
* Values: `whatsapp|telegram|discord|googlechat|slack|mattermost|signal|imessage|msteams` (Mattermost requires plugin)
Target formats (`--target`):
* WhatsApp: E.164 or group JID
* Telegram: chat id or `@username`
* Discord: `channel:<id>` or `user:<id>` (or `<@id>` mention; raw numeric ids are treated as channels)
* Google Chat: `spaces/<spaceId>` or `users/<userId>`
* Slack: `channel:<id>` or `user:<id>` (raw channel id is accepted)
* Mattermost (plugin): `channel:<id>`, `user:<id>`, or `@username` (bare ids are treated as channels)
* Signal: `+E.164`, `group:<id>`, `signal:+E.164`, `signal:group:<id>`, or `username:<name>`/`u:<name>`
* iMessage: handle, `chat_id:<id>`, `chat_guid:<guid>`, or `chat_identifier:<id>`
* MS Teams: conversation id (`19:...@thread.tacv2`) or `conversation:<id>` or `user:<aad-object-id>`
Name lookup:
* For supported providers (Discord/Slack/etc), channel names like `Help` or `#help` are resolved via the directory cache.
* On cache miss, OpenClaw will attempt a live directory lookup when the provider supports it.
## Common flags
* `--channel <name>`
* `--account <id>`
* `--target <dest>` (target channel or user for send/poll/read/etc)
* `--targets <name>` (repeat; broadcast only)
* `--json`
* `--dry-run`
* `--verbose`
## Actions
### Core
* `send`
* Channels: WhatsApp/Telegram/Discord/Google Chat/Slack/Mattermost (plugin)/Signal/iMessage/MS Teams
* Required: `--target`, plus `--message` or `--media`
* Optional: `--media`, `--reply-to`, `--thread-id`, `--gif-playback`
* Telegram only: `--buttons` (requires `channels.telegram.capabilities.inlineButtons` to allow it)
* Telegram only: `--thread-id` (forum topic id)
* Slack only: `--thread-id` (thread timestamp; `--reply-to` uses the same field)
* WhatsApp only: `--gif-playback`
* `poll`
* Channels: WhatsApp/Discord/MS Teams
* Required: `--target`, `--poll-question`, `--poll-option` (repeat)
* Optional: `--poll-multi`
* Discord only: `--poll-duration-hours`, `--message`
* `react`
* Channels: Discord/Google Chat/Slack/Telegram/WhatsApp/Signal
* Required: `--message-id`, `--target`
* Optional: `--emoji`, `--remove`, `--participant`, `--from-me`, `--target-author`, `--target-author-uuid`
* Note: `--remove` requires `--emoji` (omit `--emoji` to clear own reactions where supported; see /tools/reactions)
* WhatsApp only: `--participant`, `--from-me`
* Signal group reactions: `--target-author` or `--target-author-uuid` required
* `reactions`
* Channels: Discord/Google Chat/Slack
* Required: `--message-id`, `--target`
* Optional: `--limit`
* `read`
* Channels: Discord/Slack
* Required: `--target`
* Optional: `--limit`, `--before`, `--after`
* Discord only: `--around`
* `edit`
* Channels: Discord/Slack
* Required: `--message-id`, `--message`, `--target`
* `delete`
* Channels: Discord/Slack/Telegram
* Required: `--message-id`, `--target`
* `pin` / `unpin`
* Channels: Discord/Slack
* Required: `--message-id`, `--target`
* `pins` (list)
* Channels: Discord/Slack
* Required: `--target`
* `permissions`
* Channels: Discord
* Required: `--target`
* `search`
* Channels: Discord
* Required: `--guild-id`, `--query`
* Optional: `--channel-id`, `--channel-ids` (repeat), `--author-id`, `--author-ids` (repeat), `--limit`
### Threads
* `thread create`
* Channels: Discord
* Required: `--thread-name`, `--target` (channel id)
* Optional: `--message-id`, `--auto-archive-min`
* `thread list`
* Channels: Discord
* Required: `--guild-id`
* Optional: `--channel-id`, `--include-archived`, `--before`, `--limit`
* `thread reply`
* Channels: Discord
* Required: `--target` (thread id), `--message`
* Optional: `--media`, `--reply-to`
### Emojis
* `emoji list`
* Discord: `--guild-id`
* Slack: no extra flags
* `emoji upload`
* Channels: Discord
* Required: `--guild-id`, `--emoji-name`, `--media`
* Optional: `--role-ids` (repeat)
### Stickers
* `sticker send`
* Channels: Discord
* Required: `--target`, `--sticker-id` (repeat)
* Optional: `--message`
* `sticker upload`
* Channels: Discord
* Required: `--guild-id`, `--sticker-name`, `--sticker-desc`, `--sticker-tags`, `--media`
### Roles / Channels / Members / Voice
* `role info` (Discord): `--guild-id`
* `role add` / `role remove` (Discord): `--guild-id`, `--user-id`, `--role-id`
* `channel info` (Discord): `--target`
* `channel list` (Discord): `--guild-id`
* `member info` (Discord/Slack): `--user-id` (+ `--guild-id` for Discord)
* `voice status` (Discord): `--guild-id`, `--user-id`
### Events
* `event list` (Discord): `--guild-id`
* `event create` (Discord): `--guild-id`, `--event-name`, `--start-time`
* Optional: `--end-time`, `--desc`, `--channel-id`, `--location`, `--event-type`
### Moderation (Discord)
* `timeout`: `--guild-id`, `--user-id` (optional `--duration-min` or `--until`; omit both to clear timeout)
* `kick`: `--guild-id`, `--user-id` (+ `--reason`)
* `ban`: `--guild-id`, `--user-id` (+ `--delete-days`, `--reason`)
* `timeout` also supports `--reason`
### Broadcast
* `broadcast`
* Channels: any configured channel; use `--channel all` to target all providers
* Required: `--targets` (repeat)
* Optional: `--message`, `--media`, `--dry-run`
## Examples
Send a Discord reply:
```bash
openclaw message send --channel discord \
--target channel:123 --message "hi" --reply-to 456
```
Create a Discord poll:
```bash
openclaw message poll --channel discord \
--target channel:123 \
--poll-question "Snack?" \
--poll-option Pizza --poll-option Sushi \
--poll-multi --poll-duration-hours 48
```
Send a Teams proactive message:
```bash
openclaw message send --channel msteams \
--target conversation:19:abc@thread.tacv2 --message "hi"
```
Create a Teams poll:
```bash
openclaw message poll --channel msteams \
--target conversation:19:abc@thread.tacv2 \
--poll-question "Lunch?" \
--poll-option Pizza --poll-option Sushi
```
React in Slack:
```bash
openclaw message react --channel slack \
--target C123 --message-id 456 --emoji "check"
```
React in a Signal group:
```bash
openclaw message react --channel signal \
--target signal:group:abc123 --message-id 1737630212345 \
--emoji "check" --target-author-uuid 123e4567-e89b-12d3-a456-426614174000
```
Send Telegram inline buttons:
```bash
openclaw message send --channel telegram --target @mychat --message "Choose:" \
--buttons '[ [{"text":"Yes","callback_data":"cmd:yes"}], [{"text":"No","callback_data":"cmd:no"}] ]'
```

View File

@@ -0,0 +1,73 @@
# models
# `openclaw models`
Model discovery, scanning, and configuration (default model, fallbacks, auth profiles).
Related:
* Providers + models: [Models](/providers/models)
* Provider auth setup: [Getting started](/start/getting-started)
## Common commands
```bash
openclaw models status
openclaw models list
openclaw models set <model-or-alias>
openclaw models scan
```
`openclaw models status` shows the resolved default/fallbacks plus an auth overview.
When provider usage snapshots are available, the OAuth/token status section includes
provider usage headers.
Add `--probe` to run live auth probes against each configured provider profile.
Probes are real requests (may consume tokens and trigger rate limits).
Use `--agent <id>` to inspect a configured agent's model/auth state. When omitted,
the command uses `OPENCLAW_AGENT_DIR`/`PI_CODING_AGENT_DIR` if set, otherwise the
configured default agent.
Notes:
* `models set <model-or-alias>` accepts `provider/model` or an alias.
* Model refs are parsed by splitting on the **first** `/`. If the model ID includes `/` (OpenRouter-style), include the provider prefix (example: `openrouter/moonshotai/kimi-k2`).
* If you omit the provider, OpenClaw treats the input as an alias or a model for the **default provider** (only works when there is no `/` in the model ID).
### `models status`
Options:
* `--json`
* `--plain`
* `--check` (exit 1=expired/missing, 2=expiring)
* `--probe` (live probe of configured auth profiles)
* `--probe-provider <name>` (probe one provider)
* `--probe-profile <id>` (repeat or comma-separated profile ids)
* `--probe-timeout <ms>`
* `--probe-concurrency <n>`
* `--probe-max-tokens <n>`
* `--agent <id>` (configured agent id; overrides `OPENCLAW_AGENT_DIR`/`PI_CODING_AGENT_DIR`)
## Aliases + fallbacks
```bash
openclaw models aliases list
openclaw models fallbacks list
```
## Auth profiles
```bash
openclaw models auth add
openclaw models auth login --provider <id>
openclaw models auth setup-token
openclaw models auth paste-token
```
`models auth login` runs a provider plugin's auth flow (OAuth/API key). Use
`openclaw plugins list` to see which providers are installed.
Notes:
* `setup-token` prompts for a setup-token value (generate it with `claude setup-token` on any machine).
* `paste-token` accepts a token string generated elsewhere or from automation.

View File

@@ -0,0 +1,48 @@
# nodes
# `openclaw nodes`
Manage paired devices and enable invocation of node capabilities.
## Overview
The `openclaw nodes` command manages paired devices and enables invocation of node capabilities. This includes listing nodes, approving pending connections, checking status, and executing commands remotely.
## Key Commands
**Listing and Status:**
```bash
openclaw nodes list
openclaw nodes list --pending
openclaw nodes list --connected
openclaw nodes status <id|name|ip>
```
The tool provides commands to display pending and paired nodes, with options to filter by connection status or timeframe. Users can retrieve only currently-connected nodes or those connecting within specified durations like 24 hours or 7 days.
**Execution:**
Remote command execution is available through two approaches:
```bash
openclaw nodes invoke <id|name|ip> --method <method> --params <json>
openclaw nodes run <id|name|ip> -- <command>
```
The `invoke` command uses structured parameters, while the `run` command uses shell-style syntax. The system supports both direct commands and raw shell strings.
## Important Features
**Exec-style Defaults:**
The `nodes run` command mirrors standard execution behavior by reading configuration from `tools.exec.*` settings and implementing approval workflows before invoking system commands.
**Customization Options:**
Users can specify working directories, environment variables, command timeouts, and security levels. Additional flags allow requiring screen recording permissions and agent-scoped approvals.
**Node Identification:**
Commands accept node references by ID, name, or IP address for flexible targeting.
## Notes
A compatible node must advertise `system.run` capabilities, such as a macOS companion application or headless node host.

View File

@@ -0,0 +1,36 @@
# onboard
# `openclaw onboard`
Interactive onboarding wizard (local or remote Gateway setup).
## Related guides
* CLI onboarding hub: [Onboarding Wizard (CLI)](/start/wizard)
* CLI onboarding reference: [CLI Onboarding Reference](/start/wizard-cli-reference)
* CLI automation: [CLI Automation](/start/wizard-cli-automation)
* macOS onboarding: [Onboarding (macOS App)](/start/onboarding)
## Examples
```bash
openclaw onboard
openclaw onboard --flow quickstart
openclaw onboard --flow manual
openclaw onboard --mode remote --remote-url ws://gateway-host:18789
```
Flow notes:
* `quickstart`: minimal prompts, auto-generates a gateway token.
* `manual`: full prompts for port/bind/auth (alias of `advanced`).
* Fastest first chat: `openclaw dashboard` (Control UI, no channel setup).
## Common follow-up commands
```bash
openclaw configure
openclaw agents add <name>
```
Note: `--json` does not imply non-interactive mode. Use `--non-interactive` for scripts.

View File

@@ -0,0 +1,16 @@
# pairing
# `openclaw pairing`
Approve or inspect DM pairing requests (for channels that support pairing).
Related:
* Pairing flow: [Pairing](/start/pairing)
## Commands
```bash
openclaw pairing list whatsapp
openclaw pairing approve whatsapp <code> --notify
```

View File

@@ -0,0 +1,43 @@
# plugins
# `openclaw plugins`
Manage gateway extensions that load in-process.
## Overview
The OpenClaw plugins system manages gateway extensions that load in-process. Bundled plugins ship with OpenClaw but start disabled. Use `plugins enable` to activate them.
## Key Commands
```bash
openclaw plugins list
openclaw plugins info <name>
openclaw plugins enable <name>
openclaw plugins disable <name>
openclaw plugins install <path-or-spec>
openclaw plugins install <path> --link
openclaw plugins update <id>
openclaw plugins update --all
openclaw plugins doctor
```
## Installation Requirements
Plugins must include a manifest file (`openclaw.plugin.json`) containing inline JSON Schema specifications. Missing/invalid manifests or schemas prevent the plugin from loading and fail config validation.
## Installation Methods
Users can install plugins via:
1. **Direct path or specification**: `openclaw plugins install <path-or-spec>`
2. **Linked local directory**: Using the `--link` flag to reference a local folder without copying
3. **Supported archive formats**: ZIP, TGZ, TAR.GZ, and TAR files
## Security Considerations
Treat plugin installs like running code. Prefer pinned versions.
## Update Capabilities
Updates apply only to plugins installed from npm and tracked in the configuration. A dry-run option allows users to preview changes before applying them.

View File

@@ -0,0 +1,28 @@
# reset
# `openclaw reset`
Clear local configuration and state (CLI remains).
## Overview
The `openclaw reset` command clears local configuration and state while preserving the CLI installation itself.
## Examples
```bash
openclaw reset
openclaw reset --dry-run
openclaw reset --scope config+creds+sessions --yes --non-interactive
```
## Key Options
* `--dry-run`: Preview changes without applying them
* `--scope`: Specify what to reset (config, credentials, sessions)
* `--yes`: Skip confirmation prompts
* `--non-interactive`: Run without user interaction
## Purpose
This command helps users clear their local settings and stored data while keeping the CLI tool itself installed and functional.

View File

@@ -0,0 +1,44 @@
# sandbox
# `openclaw sandbox`
Manage Docker-based isolated containers for secure agent execution.
## Overview
The OpenClaw sandbox system manages Docker-based isolated containers for secure agent execution. The CLI provides tools to inspect, list, and recreate these containers when configurations or images change.
## Key Commands
**`openclaw sandbox explain`** displays effective sandbox settings, including mode, scope, workspace access, and tool policies with relevant configuration paths.
**`openclaw sandbox list`** enumerates all sandbox containers, showing their operational status, Docker image details, creation time, idle duration, and associated session/agent information.
**`openclaw sandbox recreate`** forcefully removes containers to trigger fresh initialization with current images and configurations. Supports filtering by session, agent, or container type.
## Examples
```bash
openclaw sandbox explain
openclaw sandbox list
openclaw sandbox recreate
openclaw sandbox recreate --session <id>
openclaw sandbox recreate --agent <id>
```
## Primary Use Cases
After updating Docker images or modifying sandbox configuration settings, the recreate command ensures containers reflect these changes rather than persisting with outdated configurations. This addresses a core issue: existing containers continue running with old settings while the system waits up to 24 hours for automatic pruning.
## Configuration Location
Sandbox settings reside in `~/.openclaw/openclaw.json` under `agents.defaults.sandbox`, with per-agent overrides available in `agents.list[].sandbox`. Key parameters include:
* Execution mode (off/non-main/all)
* Scope level (session/agent/shared)
* Docker image specification
* Pruning thresholds
## Related Resources
See additional documentation covering broader sandboxing concepts, agent workspace configuration, and the doctor command for sandbox diagnostics verification.

View File

@@ -0,0 +1,21 @@
# security
# `openclaw security`
Security tools (audit + optional fixes).
Related:
* Security guide: [Security](/gateway/security)
## Audit
```bash
openclaw security audit
openclaw security audit --deep
openclaw security audit --fix
```
The audit warns when multiple DM senders share the main session and recommends **secure DM mode**: `session.dmScope="per-channel-peer"` (or `per-account-channel-peer` for multi-account channels) for shared inboxes.
It also warns when small models (`<=300B`) are used without sandboxing and with web/browser tools enabled.

View File

@@ -0,0 +1,16 @@
# sessions
# `openclaw sessions`
List stored conversation sessions.
```bash
openclaw sessions
openclaw sessions --active 120
openclaw sessions --json
```
Notes:
* The `--active` flag filters sessions by activity duration (in minutes).
* Use `--json` for programmatic consumption.

View File

@@ -0,0 +1,29 @@
# setup
# `openclaw setup`
Initialize the OpenClaw configuration file and agent workspace environment.
## Overview
The `openclaw setup` command establishes `~/.openclaw/openclaw.json` and sets up the agent workspace.
## Basic Usage
```bash
openclaw setup
openclaw setup --workspace ~/.openclaw/workspace
```
## Wizard Mode
To launch the interactive onboarding wizard during setup:
```bash
openclaw setup --wizard
```
## Related Resources
* Getting started guide: [Getting Started](/start/getting-started)
* Onboarding wizard documentation: [Onboarding](/start/onboarding)

View File

@@ -0,0 +1,20 @@
# skills
# `openclaw skills`
Inspect skills (bundled + workspace + managed overrides) and see what's eligible vs missing requirements.
Related:
* Skills system: [Skills](/tools/skills)
* Skills config: [Skills config](/tools/skills-config)
* ClawHub installs: [ClawHub](/tools/clawhub)
## Commands
```bash
openclaw skills list
openclaw skills list --eligible
openclaw skills info <name>
openclaw skills check
```

View File

@@ -0,0 +1,20 @@
# status
# `openclaw status`
Diagnostics for channels + sessions.
```bash
openclaw status
openclaw status --all
openclaw status --deep
openclaw status --usage
```
Notes:
* `--deep` runs live probes (WhatsApp Web + Telegram + Discord + Google Chat + Slack + Signal).
* Output includes per-agent session stores when multiple agents are configured.
* Overview includes Gateway + node host service install/runtime status when available.
* Overview includes update channel + git SHA (for source checkouts).
* Update info surfaces in the Overview; if an update is available, status prints a hint to run `openclaw update` (see [Updating](/install/updating)).

View File

@@ -0,0 +1,32 @@
# system
# `openclaw system`
System-level helpers for the Gateway: enqueue system events, control heartbeats, and view presence.
## Key Capabilities
**System Events**: Enqueue messages that inject into prompts as system lines, with options to trigger immediately or await the next scheduled heartbeat.
**Heartbeat Management**: Enable, disable, or check the status of periodic heartbeat events.
**Presence Monitoring**: Display current system presence entries including nodes and instance statuses.
## Commands
```bash
openclaw system event --text "message" --mode now
openclaw system event --text "message" --mode next-heartbeat
openclaw system heartbeat status
openclaw system heartbeat enable
openclaw system heartbeat disable
openclaw system presence
```
## Notable Parameters
The system event command accepts text content, execution mode selection (`now` or `next-heartbeat`), and optional JSON output formatting. Similarly, heartbeat and presence commands support JSON output for programmatic use.
## Requirements
A running Gateway reachable by your current config (local or remote) is necessary. Note that system events are temporary rather than persisting across restarts.

View File

@@ -0,0 +1,17 @@
# tui
# `openclaw tui`
Open the terminal UI connected to the Gateway.
Related:
* TUI guide: [TUI](/tui)
## Examples
```bash
openclaw tui
openclaw tui --url ws://127.0.0.1:18789 --token <token>
openclaw tui --session main --deliver
```

View File

@@ -0,0 +1,11 @@
# uninstall
# `openclaw uninstall`
Uninstall the gateway service + local data (CLI remains).
```bash
openclaw uninstall
openclaw uninstall --all --yes
openclaw uninstall --dry-run
```

View File

@@ -0,0 +1,39 @@
# update
# `openclaw update`
Manage OpenClaw updates across stable, beta, and development channels.
## Overview
The `openclaw update` command manages OpenClaw updates across stable, beta, and development channels. This tool handles version switching while maintaining configuration integrity.
## Key Capabilities
The update system supports multiple installation methods. When switching channels explicitly, OpenClaw also keeps the install method aligned with your chosen channel - dev uses git checkouts, while stable/beta use npm distribution tags.
## Primary Commands
```bash
openclaw update
openclaw update status
openclaw update wizard
openclaw update --channel beta
openclaw update --channel dev
```
## Important Safeguards
The update process includes verification steps:
* For git-based installations, the system requires a clean worktree (no uncommitted changes) before proceeding.
* Downgrades require confirmation because older versions can break configuration.
## Update Workflow Details
For dev channel users, the system performs preflight checks in a temporary workspace and can walk back up to 10 commits to find the newest clean build if the latest version has issues. All update paths conclude with running `openclaw doctor` as a validation step.
## Additional Options
* `--no-restart`: Skip Gateway service restart
* `--json`: Output machine-readable results for automation purposes

View File

@@ -0,0 +1,44 @@
# voicecall
# `openclaw voicecall`
Plugin-provided voice call functionality (requires voice-call plugin).
## Overview
The `voicecall` command is a plugin-provided feature available when the voice-call plugin is installed and enabled.
## Key Commands
```bash
# Check call status
openclaw voicecall status --call-id <id>
# Initiate a call
openclaw voicecall call --to "+15555550123" --message "Hello" --mode notify
# Continue a call
openclaw voicecall continue --call-id <id> --message "Any questions?"
# End a call
openclaw voicecall end --call-id <id>
```
## Webhook Exposure
Expose webhooks using Tailscale:
```bash
# Serve mode
openclaw voicecall expose --mode serve
# Funnel mode
openclaw voicecall expose --mode funnel
# Disable exposure
openclaw voicecall unexpose
```
## Security Guidance
Only expose the webhook endpoint to networks you trust. Prefer Tailscale Serve over Funnel when feasible due to security considerations.