mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-19 01:07:27 +00:00
refactor: rename to openclaw
This commit is contained in:
@@ -6,7 +6,7 @@ read_when:
|
||||
# Audio / Voice Notes — 2026-01-17
|
||||
|
||||
## What works
|
||||
- **Media understanding (audio)**: If audio understanding is enabled (or auto‑detected), Moltbot:
|
||||
- **Media understanding (audio)**: If audio understanding is enabled (or auto‑detected), OpenClaw:
|
||||
1) Locates the first audio attachment (local path or URL) and downloads it if needed.
|
||||
2) Enforces `maxBytes` before sending to each model entry.
|
||||
3) Runs the first eligible model entry in order (provider or CLI).
|
||||
@@ -17,7 +17,7 @@ read_when:
|
||||
|
||||
## Auto-detection (default)
|
||||
If you **don’t configure models** and `tools.media.audio.enabled` is **not** set to `false`,
|
||||
Moltbot auto-detects in this order and stops at the first working option:
|
||||
OpenClaw auto-detects in this order and stops at the first working option:
|
||||
|
||||
1) **Local CLIs** (if installed)
|
||||
- `sherpa-onnx-offline` (requires `SHERPA_ONNX_MODEL_DIR` with encoder/decoder/joiner/tokens)
|
||||
|
||||
@@ -7,7 +7,7 @@ read_when:
|
||||
|
||||
# Camera capture (agent)
|
||||
|
||||
Moltbot supports **camera capture** for agent workflows:
|
||||
OpenClaw supports **camera capture** for agent workflows:
|
||||
|
||||
- **iOS node** (paired via Gateway): capture a **photo** (`jpg`) or **short video clip** (`mp4`, with optional audio) via `node.invoke`.
|
||||
- **Android node** (paired via Gateway): capture a **photo** (`jpg`) or **short video clip** (`mp4`, with optional audio) via `node.invoke`.
|
||||
@@ -67,10 +67,10 @@ The easiest way to get attachments is via the CLI helper, which writes decoded m
|
||||
Examples:
|
||||
|
||||
```bash
|
||||
moltbot nodes camera snap --node <id> # default: both front + back (2 MEDIA lines)
|
||||
moltbot nodes camera snap --node <id> --facing front
|
||||
moltbot nodes camera clip --node <id> --duration 3000
|
||||
moltbot nodes camera clip --node <id> --no-audio
|
||||
openclaw nodes camera snap --node <id> # default: both front + back (2 MEDIA lines)
|
||||
openclaw nodes camera snap --node <id> --facing front
|
||||
openclaw nodes camera clip --node <id> --duration 3000
|
||||
openclaw nodes camera clip --node <id> --no-audio
|
||||
```
|
||||
|
||||
Notes:
|
||||
@@ -108,30 +108,30 @@ Photos are recompressed to keep the base64 payload under 5 MB.
|
||||
|
||||
The macOS companion app exposes a checkbox:
|
||||
|
||||
- **Settings → General → Allow Camera** (`moltbot.cameraEnabled`)
|
||||
- **Settings → General → Allow Camera** (`openclaw.cameraEnabled`)
|
||||
- Default: **off**
|
||||
- When off: camera requests return “Camera disabled by user”.
|
||||
|
||||
### CLI helper (node invoke)
|
||||
|
||||
Use the main `moltbot` CLI to invoke camera commands on the macOS node.
|
||||
Use the main `openclaw` CLI to invoke camera commands on the macOS node.
|
||||
|
||||
Examples:
|
||||
|
||||
```bash
|
||||
moltbot nodes camera list --node <id> # list camera ids
|
||||
moltbot nodes camera snap --node <id> # prints MEDIA:<path>
|
||||
moltbot nodes camera snap --node <id> --max-width 1280
|
||||
moltbot nodes camera snap --node <id> --delay-ms 2000
|
||||
moltbot nodes camera snap --node <id> --device-id <id>
|
||||
moltbot nodes camera clip --node <id> --duration 10s # prints MEDIA:<path>
|
||||
moltbot nodes camera clip --node <id> --duration-ms 3000 # prints MEDIA:<path> (legacy flag)
|
||||
moltbot nodes camera clip --node <id> --device-id <id>
|
||||
moltbot nodes camera clip --node <id> --no-audio
|
||||
openclaw nodes camera list --node <id> # list camera ids
|
||||
openclaw nodes camera snap --node <id> # prints MEDIA:<path>
|
||||
openclaw nodes camera snap --node <id> --max-width 1280
|
||||
openclaw nodes camera snap --node <id> --delay-ms 2000
|
||||
openclaw nodes camera snap --node <id> --device-id <id>
|
||||
openclaw nodes camera clip --node <id> --duration 10s # prints MEDIA:<path>
|
||||
openclaw nodes camera clip --node <id> --duration-ms 3000 # prints MEDIA:<path> (legacy flag)
|
||||
openclaw nodes camera clip --node <id> --device-id <id>
|
||||
openclaw nodes camera clip --node <id> --no-audio
|
||||
```
|
||||
|
||||
Notes:
|
||||
- `moltbot nodes camera snap` defaults to `maxWidth=1600` unless overridden.
|
||||
- `openclaw nodes camera snap` defaults to `maxWidth=1600` unless overridden.
|
||||
- On macOS, `camera.snap` waits `delayMs` (default 2000ms) after warm-up/exposure settle before capturing.
|
||||
- Photo payloads are recompressed to keep base64 under 5 MB.
|
||||
|
||||
@@ -145,7 +145,7 @@ Notes:
|
||||
For *screen* video (not camera), use the macOS companion:
|
||||
|
||||
```bash
|
||||
moltbot nodes screen record --node <id> --duration 10s --fps 15 # prints MEDIA:<path>
|
||||
openclaw nodes screen record --node <id> --duration 10s --fps 15 # prints MEDIA:<path>
|
||||
```
|
||||
|
||||
Notes:
|
||||
|
||||
@@ -8,12 +8,12 @@ read_when:
|
||||
The WhatsApp channel runs via **Baileys Web**. This document captures the current media handling rules for send, gateway, and agent replies.
|
||||
|
||||
## Goals
|
||||
- Send media with optional captions via `moltbot message send --media`.
|
||||
- Send media with optional captions via `openclaw message send --media`.
|
||||
- Allow auto-replies from the web inbox to include media alongside text.
|
||||
- Keep per-type limits sane and predictable.
|
||||
|
||||
## CLI Surface
|
||||
- `moltbot message send --media <path-or-url> [--message <caption>]`
|
||||
- `openclaw message send --media <path-or-url> [--message <caption>]`
|
||||
- `--media` optional; caption can be empty for media-only sends.
|
||||
- `--dry-run` prints the resolved payload; `--json` emits `{ channel, to, messageId, mediaUrl, caption }`.
|
||||
|
||||
@@ -30,11 +30,11 @@ The WhatsApp channel runs via **Baileys Web**. This document captures the curren
|
||||
|
||||
## Auto-Reply Pipeline
|
||||
- `getReplyFromConfig` returns `{ text?, mediaUrl?, mediaUrls? }`.
|
||||
- When media is present, the web sender resolves local paths or URLs using the same pipeline as `moltbot message send`.
|
||||
- When media is present, the web sender resolves local paths or URLs using the same pipeline as `openclaw message send`.
|
||||
- Multiple media entries are sent sequentially if provided.
|
||||
|
||||
## Inbound Media to Commands (Pi)
|
||||
- When inbound web messages include media, Moltbot downloads to a temp file and exposes templating variables:
|
||||
- When inbound web messages include media, OpenClaw downloads to a temp file and exposes templating variables:
|
||||
- `{{MediaUrl}}` pseudo-URL for the inbound media.
|
||||
- `{{MediaPath}}` local temp path written before running the command.
|
||||
- When a per-session Docker sandbox is enabled, inbound media is copied into the sandbox workspace and `MediaPath`/`MediaUrl` are rewritten to a relative path like `media/inbound/<filename>`.
|
||||
|
||||
@@ -12,7 +12,7 @@ A **node** is a companion device (macOS/iOS/Android/headless) that connects to t
|
||||
|
||||
Legacy transport: [Bridge protocol](/gateway/bridge-protocol) (TCP JSONL; deprecated/removed for current nodes).
|
||||
|
||||
macOS can also run in **node mode**: the menubar app connects to the Gateway’s WS server and exposes its local canvas/camera commands as a node (so `moltbot nodes …` works against this Mac).
|
||||
macOS can also run in **node mode**: the menubar app connects to the Gateway’s WS server and exposes its local canvas/camera commands as a node (so `openclaw nodes …` works against this Mac).
|
||||
|
||||
Notes:
|
||||
- Nodes are **peripherals**, not gateways. They don’t run the gateway service.
|
||||
@@ -26,16 +26,16 @@ creates a device pairing request for `role: node`. Approve via the devices CLI (
|
||||
Quick CLI:
|
||||
|
||||
```bash
|
||||
moltbot devices list
|
||||
moltbot devices approve <requestId>
|
||||
moltbot devices reject <requestId>
|
||||
moltbot nodes status
|
||||
moltbot nodes describe --node <idOrNameOrIp>
|
||||
openclaw devices list
|
||||
openclaw devices approve <requestId>
|
||||
openclaw devices reject <requestId>
|
||||
openclaw nodes status
|
||||
openclaw nodes describe --node <idOrNameOrIp>
|
||||
```
|
||||
|
||||
Notes:
|
||||
- `nodes status` marks a node as **paired** when its device pairing role includes `node`.
|
||||
- `node.pair.*` (CLI: `moltbot nodes pending/approve/reject`) is a separate gateway-owned
|
||||
- `node.pair.*` (CLI: `openclaw nodes pending/approve/reject`) is a separate gateway-owned
|
||||
node pairing store; it does **not** gate the WS `connect` handshake.
|
||||
|
||||
## Remote node host (system.run)
|
||||
@@ -47,21 +47,21 @@ forwards `exec` calls to the **node host** when `host=node` is selected.
|
||||
### What runs where
|
||||
- **Gateway host**: receives messages, runs the model, routes tool calls.
|
||||
- **Node host**: executes `system.run`/`system.which` on the node machine.
|
||||
- **Approvals**: enforced on the node host via `~/.clawdbot/exec-approvals.json`.
|
||||
- **Approvals**: enforced on the node host via `~/.openclaw/exec-approvals.json`.
|
||||
|
||||
### Start a node host (foreground)
|
||||
|
||||
On the node machine:
|
||||
|
||||
```bash
|
||||
moltbot node run --host <gateway-host> --port 18789 --display-name "Build Node"
|
||||
openclaw node run --host <gateway-host> --port 18789 --display-name "Build Node"
|
||||
```
|
||||
|
||||
### Start a node host (service)
|
||||
|
||||
```bash
|
||||
moltbot node install --host <gateway-host> --port 18789 --display-name "Build Node"
|
||||
moltbot node restart
|
||||
openclaw node install --host <gateway-host> --port 18789 --display-name "Build Node"
|
||||
openclaw node restart
|
||||
```
|
||||
|
||||
### Pair + name
|
||||
@@ -69,34 +69,34 @@ moltbot node restart
|
||||
On the gateway host:
|
||||
|
||||
```bash
|
||||
moltbot nodes pending
|
||||
moltbot nodes approve <requestId>
|
||||
moltbot nodes list
|
||||
openclaw nodes pending
|
||||
openclaw nodes approve <requestId>
|
||||
openclaw nodes list
|
||||
```
|
||||
|
||||
Naming options:
|
||||
- `--display-name` on `moltbot node run` / `moltbot node install` (persists in `~/.clawdbot/node.json` on the node).
|
||||
- `moltbot nodes rename --node <id|name|ip> --name "Build Node"` (gateway override).
|
||||
- `--display-name` on `openclaw node run` / `openclaw node install` (persists in `~/.openclaw/node.json` on the node).
|
||||
- `openclaw nodes rename --node <id|name|ip> --name "Build Node"` (gateway override).
|
||||
|
||||
### Allowlist the commands
|
||||
|
||||
Exec approvals are **per node host**. Add allowlist entries from the gateway:
|
||||
|
||||
```bash
|
||||
moltbot approvals allowlist add --node <id|name|ip> "/usr/bin/uname"
|
||||
moltbot approvals allowlist add --node <id|name|ip> "/usr/bin/sw_vers"
|
||||
openclaw approvals allowlist add --node <id|name|ip> "/usr/bin/uname"
|
||||
openclaw approvals allowlist add --node <id|name|ip> "/usr/bin/sw_vers"
|
||||
```
|
||||
|
||||
Approvals live on the node host at `~/.clawdbot/exec-approvals.json`.
|
||||
Approvals live on the node host at `~/.openclaw/exec-approvals.json`.
|
||||
|
||||
### Point exec at the node
|
||||
|
||||
Configure defaults (gateway config):
|
||||
|
||||
```bash
|
||||
moltbot config set tools.exec.host node
|
||||
moltbot config set tools.exec.security allowlist
|
||||
moltbot config set tools.exec.node "<id-or-name>"
|
||||
openclaw config set tools.exec.host node
|
||||
openclaw config set tools.exec.security allowlist
|
||||
openclaw config set tools.exec.node "<id-or-name>"
|
||||
```
|
||||
|
||||
Or per session:
|
||||
@@ -118,7 +118,7 @@ Related:
|
||||
Low-level (raw RPC):
|
||||
|
||||
```bash
|
||||
moltbot nodes invoke --node <idOrNameOrIp> --command canvas.eval --params '{"javaScript":"location.href"}'
|
||||
openclaw nodes invoke --node <idOrNameOrIp> --command canvas.eval --params '{"javaScript":"location.href"}'
|
||||
```
|
||||
|
||||
Higher-level helpers exist for the common “give the agent a MEDIA attachment” workflows.
|
||||
@@ -130,17 +130,17 @@ If the node is showing the Canvas (WebView), `canvas.snapshot` returns `{ format
|
||||
CLI helper (writes to a temp file and prints `MEDIA:<path>`):
|
||||
|
||||
```bash
|
||||
moltbot nodes canvas snapshot --node <idOrNameOrIp> --format png
|
||||
moltbot nodes canvas snapshot --node <idOrNameOrIp> --format jpg --max-width 1200 --quality 0.9
|
||||
openclaw nodes canvas snapshot --node <idOrNameOrIp> --format png
|
||||
openclaw nodes canvas snapshot --node <idOrNameOrIp> --format jpg --max-width 1200 --quality 0.9
|
||||
```
|
||||
|
||||
### Canvas controls
|
||||
|
||||
```bash
|
||||
moltbot nodes canvas present --node <idOrNameOrIp> --target https://example.com
|
||||
moltbot nodes canvas hide --node <idOrNameOrIp>
|
||||
moltbot nodes canvas navigate https://example.com --node <idOrNameOrIp>
|
||||
moltbot nodes canvas eval --node <idOrNameOrIp> --js "document.title"
|
||||
openclaw nodes canvas present --node <idOrNameOrIp> --target https://example.com
|
||||
openclaw nodes canvas hide --node <idOrNameOrIp>
|
||||
openclaw nodes canvas navigate https://example.com --node <idOrNameOrIp>
|
||||
openclaw nodes canvas eval --node <idOrNameOrIp> --js "document.title"
|
||||
```
|
||||
|
||||
Notes:
|
||||
@@ -150,9 +150,9 @@ Notes:
|
||||
### A2UI (Canvas)
|
||||
|
||||
```bash
|
||||
moltbot nodes canvas a2ui push --node <idOrNameOrIp> --text "Hello"
|
||||
moltbot nodes canvas a2ui push --node <idOrNameOrIp> --jsonl ./payload.jsonl
|
||||
moltbot nodes canvas a2ui reset --node <idOrNameOrIp>
|
||||
openclaw nodes canvas a2ui push --node <idOrNameOrIp> --text "Hello"
|
||||
openclaw nodes canvas a2ui push --node <idOrNameOrIp> --jsonl ./payload.jsonl
|
||||
openclaw nodes canvas a2ui reset --node <idOrNameOrIp>
|
||||
```
|
||||
|
||||
Notes:
|
||||
@@ -163,16 +163,16 @@ Notes:
|
||||
Photos (`jpg`):
|
||||
|
||||
```bash
|
||||
moltbot nodes camera list --node <idOrNameOrIp>
|
||||
moltbot nodes camera snap --node <idOrNameOrIp> # default: both facings (2 MEDIA lines)
|
||||
moltbot nodes camera snap --node <idOrNameOrIp> --facing front
|
||||
openclaw nodes camera list --node <idOrNameOrIp>
|
||||
openclaw nodes camera snap --node <idOrNameOrIp> # default: both facings (2 MEDIA lines)
|
||||
openclaw nodes camera snap --node <idOrNameOrIp> --facing front
|
||||
```
|
||||
|
||||
Video clips (`mp4`):
|
||||
|
||||
```bash
|
||||
moltbot nodes camera clip --node <idOrNameOrIp> --duration 10s
|
||||
moltbot nodes camera clip --node <idOrNameOrIp> --duration 3000 --no-audio
|
||||
openclaw nodes camera clip --node <idOrNameOrIp> --duration 10s
|
||||
openclaw nodes camera clip --node <idOrNameOrIp> --duration 3000 --no-audio
|
||||
```
|
||||
|
||||
Notes:
|
||||
@@ -185,8 +185,8 @@ Notes:
|
||||
Nodes expose `screen.record` (mp4). Example:
|
||||
|
||||
```bash
|
||||
moltbot nodes screen record --node <idOrNameOrIp> --duration 10s --fps 10
|
||||
moltbot nodes screen record --node <idOrNameOrIp> --duration 10s --fps 10 --no-audio
|
||||
openclaw nodes screen record --node <idOrNameOrIp> --duration 10s --fps 10
|
||||
openclaw nodes screen record --node <idOrNameOrIp> --duration 10s --fps 10 --no-audio
|
||||
```
|
||||
|
||||
Notes:
|
||||
@@ -203,8 +203,8 @@ Nodes expose `location.get` when Location is enabled in settings.
|
||||
CLI helper:
|
||||
|
||||
```bash
|
||||
moltbot nodes location get --node <idOrNameOrIp>
|
||||
moltbot nodes location get --node <idOrNameOrIp> --accuracy precise --max-age 15000 --location-timeout 10000
|
||||
openclaw nodes location get --node <idOrNameOrIp>
|
||||
openclaw nodes location get --node <idOrNameOrIp> --accuracy precise --max-age 15000 --location-timeout 10000
|
||||
```
|
||||
|
||||
Notes:
|
||||
@@ -219,7 +219,7 @@ Android nodes can expose `sms.send` when the user grants **SMS** permission and
|
||||
Low-level invoke:
|
||||
|
||||
```bash
|
||||
moltbot nodes invoke --node <idOrNameOrIp> --command sms.send --params '{"to":"+15555550123","message":"Hello from Moltbot"}'
|
||||
openclaw nodes invoke --node <idOrNameOrIp> --command sms.send --params '{"to":"+15555550123","message":"Hello from OpenClaw"}'
|
||||
```
|
||||
|
||||
Notes:
|
||||
@@ -234,8 +234,8 @@ The headless node host exposes `system.run`, `system.which`, and `system.execApp
|
||||
Examples:
|
||||
|
||||
```bash
|
||||
moltbot nodes run --node <idOrNameOrIp> -- echo "Hello from mac node"
|
||||
moltbot nodes notify --node <idOrNameOrIp> --title "Ping" --body "Gateway ready"
|
||||
openclaw nodes run --node <idOrNameOrIp> -- echo "Hello from mac node"
|
||||
openclaw nodes notify --node <idOrNameOrIp> --title "Ping" --body "Gateway ready"
|
||||
```
|
||||
|
||||
Notes:
|
||||
@@ -246,7 +246,7 @@ Notes:
|
||||
- macOS nodes drop `PATH` overrides; headless node hosts only accept `PATH` when it prepends the node host PATH.
|
||||
- On macOS node mode, `system.run` is gated by exec approvals in the macOS app (Settings → Exec approvals).
|
||||
Ask/allowlist/full behave the same as the headless node host; denied prompts return `SYSTEM_RUN_DENIED`.
|
||||
- On headless node host, `system.run` is gated by exec approvals (`~/.clawdbot/exec-approvals.json`).
|
||||
- On headless node host, `system.run` is gated by exec approvals (`~/.openclaw/exec-approvals.json`).
|
||||
|
||||
## Exec node binding
|
||||
|
||||
@@ -256,21 +256,21 @@ This sets the default node for `exec host=node` (and can be overridden per agent
|
||||
Global default:
|
||||
|
||||
```bash
|
||||
moltbot config set tools.exec.node "node-id-or-name"
|
||||
openclaw config set tools.exec.node "node-id-or-name"
|
||||
```
|
||||
|
||||
Per-agent override:
|
||||
|
||||
```bash
|
||||
moltbot config get agents.list
|
||||
moltbot config set agents.list[0].tools.exec.node "node-id-or-name"
|
||||
openclaw config get agents.list
|
||||
openclaw config set agents.list[0].tools.exec.node "node-id-or-name"
|
||||
```
|
||||
|
||||
Unset to allow any node:
|
||||
|
||||
```bash
|
||||
moltbot config unset tools.exec.node
|
||||
moltbot config unset agents.list[0].tools.exec.node
|
||||
openclaw config unset tools.exec.node
|
||||
openclaw config unset agents.list[0].tools.exec.node
|
||||
```
|
||||
|
||||
## Permissions map
|
||||
@@ -279,27 +279,27 @@ Nodes may include a `permissions` map in `node.list` / `node.describe`, keyed by
|
||||
|
||||
## Headless node host (cross-platform)
|
||||
|
||||
Moltbot can run a **headless node host** (no UI) that connects to the Gateway
|
||||
OpenClaw can run a **headless node host** (no UI) that connects to the Gateway
|
||||
WebSocket and exposes `system.run` / `system.which`. This is useful on Linux/Windows
|
||||
or for running a minimal node alongside a server.
|
||||
|
||||
Start it:
|
||||
|
||||
```bash
|
||||
moltbot node run --host <gateway-host> --port 18789
|
||||
openclaw node run --host <gateway-host> --port 18789
|
||||
```
|
||||
|
||||
Notes:
|
||||
- Pairing is still required (the Gateway will show a node approval prompt).
|
||||
- The node host stores its node id, token, display name, and gateway connection info in `~/.clawdbot/node.json`.
|
||||
- Exec approvals are enforced locally via `~/.clawdbot/exec-approvals.json`
|
||||
- The node host stores its node id, token, display name, and gateway connection info in `~/.openclaw/node.json`.
|
||||
- Exec approvals are enforced locally via `~/.openclaw/exec-approvals.json`
|
||||
(see [Exec approvals](/tools/exec-approvals)).
|
||||
- On macOS, the headless node host prefers the companion app exec host when reachable and falls
|
||||
back to local execution if the app is unavailable. Set `CLAWDBOT_NODE_EXEC_HOST=app` to require
|
||||
the app, or `CLAWDBOT_NODE_EXEC_FALLBACK=0` to disable fallback.
|
||||
back to local execution if the app is unavailable. Set `OPENCLAW_NODE_EXEC_HOST=app` to require
|
||||
the app, or `OPENCLAW_NODE_EXEC_FALLBACK=0` to disable fallback.
|
||||
- Add `--tls` / `--tls-fingerprint` when the Gateway WS uses TLS.
|
||||
|
||||
## Mac node mode
|
||||
|
||||
- The macOS menubar app connects to the Gateway WS server as a node (so `moltbot nodes …` works against this Mac).
|
||||
- The macOS menubar app connects to the Gateway WS server as a node (so `openclaw nodes …` works against this Mac).
|
||||
- In remote mode, the app opens an SSH tunnel for the Gateway port and connects to `localhost`.
|
||||
|
||||
@@ -85,11 +85,11 @@ Notes:
|
||||
|
||||
## Model/tooling integration
|
||||
- Tool surface: `nodes` tool adds `location_get` action (node required).
|
||||
- CLI: `moltbot nodes location get --node <id>`.
|
||||
- CLI: `openclaw nodes location get --node <id>`.
|
||||
- Agent guidelines: only call when user enabled location and understands the scope.
|
||||
|
||||
## UX copy (suggested)
|
||||
- Off: “Location sharing is disabled.”
|
||||
- While Using: “Only when Moltbot is open.”
|
||||
- While Using: “Only when OpenClaw is open.”
|
||||
- Always: “Allow background location. Requires system permission.”
|
||||
- Precise: “Use precise GPS location. Toggle off to share approximate location.”
|
||||
|
||||
@@ -6,7 +6,7 @@ read_when:
|
||||
---
|
||||
# Media Understanding (Inbound) — 2026-01-17
|
||||
|
||||
Moltbot can **summarize inbound media** (image/audio/video) before the reply pipeline runs. It auto‑detects when local tools or provider keys are available, and can be disabled or customized. If understanding is off, models still receive the original files/URLs as usual.
|
||||
OpenClaw can **summarize inbound media** (image/audio/video) before the reply pipeline runs. It auto‑detects when local tools or provider keys are available, and can be disabled or customized. If understanding is off, models still receive the original files/URLs as usual.
|
||||
|
||||
## Goals
|
||||
- Optional: pre‑digest inbound media into short text for faster routing + better command parsing.
|
||||
@@ -106,12 +106,12 @@ Rules:
|
||||
- If media exceeds `maxBytes`, that model is skipped and the **next model is tried**.
|
||||
- If the model returns more than `maxChars`, output is trimmed.
|
||||
- `prompt` defaults to simple “Describe the {media}.” plus the `maxChars` guidance (image/video only).
|
||||
- If `<capability>.enabled: true` but no models are configured, Moltbot tries the
|
||||
- If `<capability>.enabled: true` but no models are configured, OpenClaw tries the
|
||||
**active reply model** when its provider supports the capability.
|
||||
|
||||
### Auto-detect media understanding (default)
|
||||
If `tools.media.<capability>.enabled` is **not** set to `false` and you haven’t
|
||||
configured models, Moltbot auto-detects in this order and **stops at the first
|
||||
configured models, OpenClaw auto-detects in this order and **stops at the first
|
||||
working option**:
|
||||
|
||||
1) **Local CLIs** (audio only; if installed)
|
||||
@@ -140,7 +140,7 @@ Note: Binary detection is best-effort across macOS/Linux/Windows; ensure the CLI
|
||||
|
||||
## Capabilities (optional)
|
||||
If you set `capabilities`, the entry only runs for those media types. For shared
|
||||
lists, Moltbot can infer defaults:
|
||||
lists, OpenClaw can infer defaults:
|
||||
- `openai`, `anthropic`, `minimax`: **image**
|
||||
- `google` (Gemini API): **image + audio + video**
|
||||
- `groq`: **audio**
|
||||
@@ -149,7 +149,7 @@ lists, Moltbot can infer defaults:
|
||||
For CLI entries, **set `capabilities` explicitly** to avoid surprising matches.
|
||||
If you omit `capabilities`, the entry is eligible for the list it appears in.
|
||||
|
||||
## Provider support matrix (Moltbot integrations)
|
||||
## Provider support matrix (OpenClaw integrations)
|
||||
| Capability | Provider integration | Notes |
|
||||
|------------|----------------------|-------|
|
||||
| Image | OpenAI / Anthropic / Google / others via `pi-ai` | Any image-capable model in the registry works. |
|
||||
|
||||
@@ -40,7 +40,7 @@ Supported keys:
|
||||
- `seed`, `normalize`, `lang`, `output_format`, `latency_tier`
|
||||
- `once`
|
||||
|
||||
## Config (`~/.clawdbot/moltbot.json`)
|
||||
## Config (`~/.openclaw/openclaw.json`)
|
||||
```json5
|
||||
{
|
||||
"talk": {
|
||||
|
||||
@@ -6,7 +6,7 @@ read_when:
|
||||
---
|
||||
# Voice Wake (Global Wake Words)
|
||||
|
||||
Moltbot treats **wake words as a single global list** owned by the **Gateway**.
|
||||
OpenClaw treats **wake words as a single global list** owned by the **Gateway**.
|
||||
|
||||
- There are **no per-node custom wake words**.
|
||||
- **Any node/app UI may edit** the list; changes are persisted by the Gateway and broadcast to everyone.
|
||||
@@ -16,12 +16,12 @@ Moltbot treats **wake words as a single global list** owned by the **Gateway**.
|
||||
|
||||
Wake words are stored on the gateway machine at:
|
||||
|
||||
- `~/.clawdbot/settings/voicewake.json`
|
||||
- `~/.openclaw/settings/voicewake.json`
|
||||
|
||||
Shape:
|
||||
|
||||
```json
|
||||
{ "triggers": ["clawd", "claude", "computer"], "updatedAtMs": 1730000000000 }
|
||||
{ "triggers": ["openclaw", "claude", "computer"], "updatedAtMs": 1730000000000 }
|
||||
```
|
||||
|
||||
## Protocol
|
||||
|
||||
Reference in New Issue
Block a user