Mission Control

Artifacts

K
← Back to artifacts

Browser (openclaw-managed)

OtherDraftCreated Apr 23, 202615 min readFull screen ↗

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:3

summary: "Complete reference for every OpenClaw config key, defaults, and channel settings"

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:11

Every field available in ~/.openclaw/openclaw.json. For a task-oriented overview, see [Configuration](/gateway/configuration).

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:13

Config format is JSON5 (comments + trailing commas allowed). All fields are optional — OpenClaw uses safe defaults when omitted.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:136

// authDir: "~/.openclaw/credentials/whatsapp/biz",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:146

  • Legacy single-account Baileys auth dir is migrated by openclaw doctor into whatsapp/default.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:207

  • In multi-account setups (2+ account ids), set an explicit default (channels.telegram.defaultAccount or channels.telegram.accounts.default) to avoid fallback routing; openclaw doctor warns when this is missing or invalid.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:243

dm: { enabled: true, groupEnabled: false, groupChannels: ["openclaw-dm"] },

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:246

slug: "friends-of-openclaw",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:322

  • OpenClaw additionally attempts voice receive recovery by leaving/rejoining a voice session after repeated decrypt failures.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:405

name: "openclaw",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:443

Mattermost ships as a plugin: openclaw plugins install @openclaw/mattermost.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:474

  • commands.callbackUrl must resolve to the OpenClaw gateway endpoint and be reachable from the Mattermost server.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:531

OpenClaw spawns imsg rpc (JSON-RPC over stdio). No daemon or port required.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:687

  • If you add a non-default account via openclaw channels add (or channel onboarding) while still on a single-account top-level channel config, OpenClaw moves account-scoped top-level single-account values into channels.<channel>.accounts.default first so the original account keeps working.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:689

  • openclaw doctor --fix also repairs mixed shapes by moving account-scoped top-level single-account values into accounts.default when named accounts exist but default is missing.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:712

list: [{ id: "main", groupChat: { mentionPatterns: ["@openclaw", "openclaw"] } }],

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:754

groupChat: { mentionPatterns: ["reisponde", "@openclaw"] },

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:789

  • config: true enables /config (reads/writes openclaw.json). For gateway chat.send clients, persistent /config set|unset writes also require operator.admin; read-only /config show stays available to normal write-scoped operator clients.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:803

Default: ~/.openclaw/workspace.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:807

agents: { defaults: { workspace: "~/.openclaw/workspace" } },

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:813

Optional repository root shown in the system prompt's Runtime line. If unset, OpenClaw auto-detects by walking upward from the workspace.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:817

agents: { defaults: { repoRoot: "~/Projects/openclaw" } },

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:958

  • elevatedDefault: default elevated-output level for agents. Values: "off", "on", "ask", "full". Default: "on".

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:959

  • model.primary: format provider/model (e.g. anthropic/claude-opus-4-6). If you omit the provider, OpenClaw assumes anthropic (deprecated).

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1080

  • timeoutSeconds: maximum seconds allowed for a single compaction operation before OpenClaw aborts it. Default: 900.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1186

workspaceRoot: "~/.openclaw/sandboxes",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1188

image: "openclaw-sandbox:bookworm-slim",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1189

containerPrefix: "openclaw-sbx-",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1207

apparmorProfile: "openclaw-sandbox",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1215

workspaceRoot: "/tmp/openclaw-sandboxes",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1228

image: "openclaw-sandbox-browser:bookworm-slim",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1229

network: "openclaw-sandbox-browser",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1230

cdpPort: 9222,

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1231

cdpSourceRange: "172.21.0.1/32",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1287

  • identityData / certificateData / knownHostsData: inline contents or SecretRefs that OpenClaw materializes into temp files at runtime

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1307

  • none: per-scope sandbox workspace under ~/.openclaw/sandboxes

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1327

from: "openclaw",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1348

In remote mode, host-local edits made outside OpenClaw are not synced into the sandbox automatically after the seed step.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1361

Sandboxed browser (sandbox.browser.enabled): Chromium + CDP in a container. noVNC URL injected into system prompt. Does not require browser.enabled in openclaw.json.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1362

noVNC observer access uses VNC auth by default and OpenClaw emits a short-lived token URL (instead of exposing the password in the shared URL).

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1365

  • network defaults to openclaw-sandbox-browser (dedicated bridge network). Set to bridge only when you explicitly want global bridge connectivity.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1366

  • cdpSourceRange optionally restricts CDP ingress at the container edge to a CIDR range (for example 172.21.0.1/32).

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1370

  • --remote-debugging-port=<derived from OPENCLAW_BROWSER_CDP_PORT>

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1388

OPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0 if WebGL/3D usage requires it.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1389

  • OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0 re-enables extensions if your workflow

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1392

OPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=<N>; set 0 to use Chromium's

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1419

workspace: "~/.openclaw/workspace",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1420

agentDir: "~/.openclaw/agents/main/agent",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1432

groupChat: { mentionPatterns: ["@openclaw"] },

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1440

cwd: "/workspace/openclaw",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1480

{ id: "home", default: true, workspace: "~/.openclaw/workspace-home" },

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1481

{ id: "work", workspace: "~/.openclaw/workspace-work" },

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1511

For type: "acp" entries, OpenClaw resolves by exact conversation identity (match.channel + account + match.peer.id) and does not use the route binding tier order above.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1523

workspace: "~/.openclaw/workspace-personal",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1541

workspace: "~/.openclaw/workspace-family",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1570

workspace: "~/.openclaw/workspace-public",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1633

store: "~/.openclaw/agents/{agentId}/sessions/sessions.json",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1673

  • If parent totalTokens is above this value, OpenClaw starts a fresh thread session instead of inheriting parent transcript history.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1768

prefsPath: "~/.openclaw/settings/tts.json",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1801

  • When openai.baseUrl points to a non-OpenAI endpoint, OpenClaw treats it as an OpenAI-compatible TTS server and relaxes model/voice validation.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1862

| group:openclaw | All built-in tools (excludes provider plugins) |

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:1909

  • /elevated on|off|ask|full stores state per session; inline directives apply to single message.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2106

  • Files are materialized into the child workspace at .openclaw/attachments/<uuid>/ with a .manifest.json.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2137

OpenClaw uses the built-in model catalog. Add custom providers via models.providers in config or ~/.openclaw/agents/<agentId>/agent/models.json.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2166

  • Override agent config root with OPENCLAW_AGENT_DIR (or PI_CODING_AGENT_DIR, a legacy environment variable alias).

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2189

  • models.providers.*.models.*.compat.supportsDeveloperRole: optional compatibility hint. For api: "openai-completions" with a non-empty non-native baseUrl (host not api.openai.com), OpenClaw forces this to false at runtime. Empty/omitted baseUrl keeps default OpenAI behavior.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2251

Set OPENCODE_API_KEY (or OPENCODE_ZEN_API_KEY). Use opencode/... refs for the Zen catalog or opencode-go/... refs for the Go catalog. Shortcut: openclaw onboard --auth-choice opencode-zen or openclaw onboard --auth-choice opencode-go.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2268

Set ZAI_API_KEY. z.ai/* and z-ai/* are accepted aliases. Shortcut: openclaw onboard --auth-choice zai-api-key.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2311

For the China endpoint: baseUrl: "https://api.moonshot.cn/v1" or openclaw onboard --auth-choice moonshot-api-key-cn.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2329

Anthropic-compatible, built-in provider. Shortcut: openclaw onboard --auth-choice kimi-code-api-key.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2368

Base URL should omit /v1 (Anthropic client appends it). Shortcut: openclaw onboard --auth-choice synthetic-api-key.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2408

Set MINIMAX_API_KEY. Shortcut: openclaw onboard --auth-choice minimax-api.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2476

  • Loaded from ~/.openclaw/extensions, <workspace>/.openclaw/extensions, plus plugins.load.paths.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2477

  • Discovery accepts native OpenClaw plugins plus compatible Codex bundles and Claude bundles, including manifestless Claude default-layout bundles.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2485

  • plugins.entries.<id>.config: plugin-defined config object (validated by native OpenClaw plugin schema when available).

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2486

  • Enabled Claude bundle plugins can also contribute embedded Pi defaults from settings.json; OpenClaw applies those as sanitized agent settings, not as raw OpenClaw config patches.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2489

  • plugins.installs: CLI-managed install metadata used by openclaw plugins update.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2512

openclaw: { cdpPort: 18800, color: "#FF4500" },

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2513

work: { cdpPort: 18801, color: "#0066CC" },

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2521

remote: { cdpUrl: "http://10.0.0.42:9222", color: "#00AA00" },

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2536

  • In strict mode, remote CDP profile endpoints (profiles.*.cdpUrl) are subject to the same private-network blocking during reachability/discovery checks.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2540

  • existing-session profiles are host-only and use Chrome MCP instead of CDP.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2557

name: "OpenClaw",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2580

// password: "your-password", // or OPENCLAW_GATEWAY_PASSWORD

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2596

basePath: "/openclaw",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2633

  • port: single multiplexed port for WS + HTTP. Precedence: --port > OPENCLAW_GATEWAY_PORT > gateway.port > 18789.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2649

  • OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1: client-side break-glass override that allows plaintext ws:// to trusted private-network IPs; default remains loopback-only for plaintext.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2654

  • OPENCLAW_APNS_RELAY_BASE_URL / OPENCLAW_APNS_RELAY_TIMEOUT_MS: temporary env overrides for the relay config above.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2655

  • OPENCLAW_APNS_RELAY_ALLOW_HTTP=true: development-only escape hatch for loopback HTTP relay URLs. Production relay URLs should stay on HTTPS.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2662

  • If gateway.auth.token / gateway.auth.password is explicitly configured via SecretRef and unresolved, resolution fails closed (no remote fallback masking).

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2681

  • gateway.http.securityHeaders.strictTransportSecurity (set only for HTTPS origins you control; see [Trusted Proxy Auth](/gateway/trusted-proxy-auth#tls-termination-and-hsts))

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2688

OPENCLAW_CONFIG_PATH=~/.openclaw/a.json \

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2689

OPENCLAW_STATE_DIR=~/.openclaw-a \

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2690

openclaw gateway --port 19001

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2693

Convenience flags: --dev (uses ~/.openclaw-dev + port 19001), --profile <name> (uses ~/.openclaw-<name>).

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2705

certPath: "/etc/openclaw/tls/server.crt",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2706

keyPath: "/etc/openclaw/tls/server.key",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2707

caPath: "/etc/openclaw/tls/ca-bundle.crt",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2757

transformsDir: "~/.openclaw/hooks/transforms",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2776

Auth: Authorization: Bearer <token> or x-openclaw-token: <token>.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2808

account: "openclaw@gmail.com",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2825

  • Gateway auto-starts gog gmail watch serve on boot when configured. Set OPENCLAW_SKIP_GMAIL_WATCHER=1 to disable.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2835

root: "~/.openclaw/workspace/canvas",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2837

// enabled: false, // or OPENCLAW_SKIP_CANVAS_HOST=1

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2843

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2844

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2851

  • Also serves A2UI at /__openclaw__/a2ui/.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2873

  • Hostname defaults to openclaw. Override with OPENCLAW_MDNS_HOSTNAME.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2885

Writes a unicast DNS-SD zone under ~/.openclaw/dns/. For cross-network discovery, pair with a DNS server (CoreDNS recommended) + Tailscale split DNS.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2887

Setup: openclaw dns setup --apply.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2911

  • .env files: CWD .env + ~/.openclaw/.env (neither overrides existing vars).

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2922

auth: { token: "${OPENCLAW_GATEWAY_TOKEN}" },

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2957

  • secrets apply targets supported openclaw.json credential paths.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2969

path: "~/.openclaw/secrets.json",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:2975

command: "/usr/local/bin/openclaw-vault-resolver",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:3020

  • Legacy OAuth imports from ~/.openclaw/credentials/oauth.json.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:3058

file: "/tmp/openclaw/openclaw.log",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:3067

  • Default log file: /tmp/openclaw/openclaw-YYYY-MM-DD.log.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:3088

serviceName: "openclaw-gateway",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:3209

  • "default": fixed neutral tagline (All your chats, one OpenClaw.).

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:3211

  • To hide the entire banner (not just taglines), set env OPENCLAW_HIDE_BANNER=1.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:3241

Current builds no longer include the TCP bridge. Nodes connect over the Gateway WebSocket. bridge.* keys are no longer part of the config schema (validation fails until removed; openclaw doctor --fix can strip unknown keys).

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:3329

See [Cron Jobs](/automation/cron-jobs). Isolated cron executions are tracked as [background tasks](/automation/tasks).

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:3367

// ~/.openclaw/openclaw.json

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration-reference.md:3383

  • Paths: resolved relative to the including file, but must stay inside the top-level config directory (dirname of openclaw.json). Absolute/../ forms are allowed only when they still resolve inside that boundary.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:2

summary: "Configuration overview: common tasks, quick setup, and links to the full reference"

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:4

  • Setting up OpenClaw for the first time

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:12

OpenClaw reads an optional <Tooltip tip="JSON5 supports comments and trailing commas">JSON5</Tooltip> config from ~/.openclaw/openclaw.json.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:14

If the file is missing, OpenClaw uses safe defaults. Common reasons to add a config:

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:23

New to configuration? Start with openclaw onboard for interactive setup, or check out the [Configuration Examples](/gateway/configuration-examples) guide for complete copy-paste configs.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:29

// ~/.openclaw/openclaw.json

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:31

agents: { defaults: { workspace: "~/.openclaw/workspace" } },

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:41

openclaw onboard # full onboarding flow

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:42

openclaw configure # config wizard

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:47

openclaw config get agents.defaults.workspace

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:48

openclaw config set agents.defaults.heartbeat.every "2h"

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:49

openclaw config unset plugins.entries.brave.config.webSearch.apiKey

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:57

Edit ~/.openclaw/openclaw.json directly. The Gateway watches the file and applies changes automatically (see [hot reload](#config-hot-reload)).

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:64

OpenClaw only accepts configurations that fully match the schema. Unknown keys, malformed types, or invalid values cause the Gateway to refuse to start. The only root-level exception is $schema (string), so editors can attach JSON Schema metadata.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:70

  • Only diagnostic commands work (openclaw doctor, openclaw logs, openclaw health, openclaw status)

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:71

  • Run openclaw doctor to see exact issues

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:72

  • Run openclaw doctor --fix (or --yes) to apply repairs

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:74

Common tasks

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:159

mentionPatterns: ["@openclaw", "openclaw"],

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:259

Relay-backed push is configured in openclaw.json.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:282

openclaw config set gateway.push.apns.relay.baseUrl https://relay.example.com

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:308

  • OPENCLAW_APNS_RELAY_BASE_URL and OPENCLAW_APNS_RELAY_TIMEOUT_MS still work as temporary env overrides.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:309

  • OPENCLAW_APNS_RELAY_ALLOW_HTTP=true remains a loopback-only development escape hatch; do not persist HTTP relay URLs in config.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:311

See [iOS App](/platforms/ios#relay-backed-push-for-official-builds) for the end-to-end flow and [Authentication and trust flow](/platforms/ios#authentication-and-trust-flow) for the relay security model.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:381

Security note:

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:397

{ id: "home", default: true, workspace: "~/.openclaw/workspace-home" },

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:398

{ id: "work", workspace: "~/.openclaw/workspace-work" },

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:416

// ~/.openclaw/openclaw.json

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:438

The Gateway watches ~/.openclaw/openclaw.json and applies changes automatically — no manual restart needed for most settings.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:487

config.apply replaces the entire config. Use config.patch for partial updates, or openclaw config set for single keys.

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:501

openclaw gateway call config.get --params '{}' # capture payload.hash

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:502

openclaw gateway call config.apply --params '{

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:503

"raw": "{ agents: { defaults: { workspace: \"~/.openclaw/workspace\" } } }",

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:527

openclaw gateway call config.patch --params '{

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:538

OpenClaw reads env vars from the parent process plus:

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:541

  • ~/.openclaw/.env (global fallback)

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:555

If enabled and expected keys aren't set, OpenClaw runs your login shell and imports only the missing keys:

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:565

Env var equivalent: OPENCLAW_LOAD_SHELL_ENV=1

/opt/homebrew/lib/node_modules/openclaw/docs/gateway/configuration.md:573

gateway: { auth: { token: "${OPENCLAW_GATEWAY_TOKEN}" } },

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:5

  • Debugging why openclaw is interfering with your own Chrome

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:7

title: "Browser (OpenClaw-managed)"

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:10

Browser (openclaw-managed)

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:12

OpenClaw can run a dedicated Chrome/Brave/Edge/Chromium profile that the agent controls.

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:19

  • The openclaw profile does not touch your personal browser profile.

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:25

  • A separate browser profile named openclaw (orange accent by default).

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:28

  • Optional multi-profile support (openclaw, work, remote, ...).

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:36

openclaw browser --browser-profile openclaw status

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:37

openclaw browser --browser-profile openclaw start

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:38

openclaw browser --browser-profile openclaw open https://example.com

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:39

openclaw browser --browser-profile openclaw snapshot

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:45

If openclaw browser is missing entirely, or the agent says the browser tool

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:52

OpenClaw's plugin system:

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:72

If you turn off only the plugin, the bundled browser CLI (openclaw browser),

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:88

If openclaw browser suddenly becomes an unknown command after an upgrade, or

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:121

  • openclaw browser is an unknown command.

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:125

Profiles: openclaw vs user

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:127

  • openclaw: managed, isolated browser (no extension required).

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:133

  • Default: use the isolated openclaw browser.

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:134

  • Prefer profile="user" when existing logged-in sessions matter and the user

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:138

Set browser.defaultProfile: "openclaw" if you want managed mode by default.

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:142

Browser settings live in ~/.openclaw/openclaw.json.

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:154

// cdpUrl: "http://127.0.0.1:18792", // legacy single-profile override

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:155

remoteCdpTimeoutMs: 1500, // remote CDP HTTP timeout (ms)

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:156

remoteCdpHandshakeTimeoutMs: 3000, // remote CDP WebSocket handshake timeout (ms)

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:157

defaultProfile: "openclaw",

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:164

openclaw: { cdpPort: 18800, color: "#FF4500" },

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:165

work: { cdpPort: 18801, color: "#0066CC" },

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:177

remote: { cdpUrl: "http://10.0.0.42:9222", color: "#00AA00" },

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:187

  • If you override the Gateway port (gateway.port or OPENCLAW_GATEWAY_PORT),

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:189

  • cdpUrl defaults to the managed local CDP port when unset.

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:190

  • remoteCdpTimeoutMs applies to remote (non-loopback) CDP reachability checks.

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:191

  • remoteCdpHandshakeTimeoutMs applies to remote CDP WebSocket reachability checks.

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:193

  • In strict SSRF mode, remote CDP endpoint discovery/probes (cdpUrl, including /json/version lookups) are checked too.

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:198

  • Default profile is openclaw (OpenClaw-managed standalone browser). Use defaultProfile: "user" to opt into the signed-in user browser.

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:200

  • Local openclaw profiles auto-assign cdpPort/cdpUrl — set those only for remote CDP.

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:201

  • driver: "existing-session" uses Chrome DevTools MCP instead of raw CDP. Do

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:202

not set cdpUrl for that driver.

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:209

OpenClaw uses it automatically. Set browser.executablePath to override

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:215

openclaw config set browser.executablePath "/usr/bin/google-chrome"

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:245

  • Remote CDP: set browser.profiles.<name>.cdpUrl (or browser.cdpUrl) to

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:246

attach to a remote Chromium-based browser. In this case, OpenClaw will not launch a local browser.

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:248

Remote CDP URLs can include auth:

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:253

OpenClaw preserves the auth when calling /json/* endpoints and when connecting

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:254

to the CDP WebSocket. Prefer environment variables or secrets managers for

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:259

If you run a node host on the machine that has your browser, OpenClaw can

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:268

  • If you set nodeHost.browserProxy.allowProfiles, OpenClaw treats it as a least-privilege boundary: only allowlisted profiles can be targeted, and persistent profile create/delete routes are blocked on the proxy surface.

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:273

Browserless (hosted remote CDP)

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:276

CDP connection URLs over HTTPS and WebSocket. OpenClaw can use either form, but

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:287

remoteCdpTimeoutMs: 2000,

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:288

remoteCdpHandshakeTimeoutMs: 4000,

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:291

cdpUrl: "wss://production-sfo.browserless.io?token=<BROWSERLESS_API_KEY>",

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:304

wss:// for a direct CDP connection or keep the HTTPS URL and let OpenClaw

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:307

Direct WebSocket CDP providers

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:310

the standard HTTP-based CDP discovery (/json/version). OpenClaw supports both:

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:312

  • HTTP(S) endpoints — OpenClaw calls /json/version to discover the

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:314

  • WebSocket endpoints (ws:// / wss://) — OpenClaw connects directly,

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:331

remoteCdpTimeoutMs: 3000,

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:332

remoteCdpHandshakeTimeoutMs: 5000,

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:335

cdpUrl: "wss://connect.browserbase.com?apiKey=<BROWSERBASE_API_KEY>",

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:355

Security

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:360

  • If browser control is enabled and no auth is configured, OpenClaw auto-generates gateway.auth.token on startup and persists it to config.

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:362

  • Treat remote CDP URLs/tokens as secrets; prefer env vars or a secrets manager.

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:364

Remote CDP tips:

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:371

OpenClaw supports multiple named profiles (routing configs). Profiles can be:

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:373

  • openclaw-managed: a dedicated Chromium-based browser instance with its own user data directory + CDP port

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:374

  • remote: an explicit CDP URL (Chromium-based browser running elsewhere)

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:379

  • The openclaw profile is auto-created if missing.

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:382

  • Local CDP ports allocate from 18800–18899 by default.

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:389

OpenClaw can also attach to a running Chromium-based browser profile through the

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:429

  1. Open that browser's inspect page for remote debugging.

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:430

  1. Enable remote debugging.

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:431

  1. Keep the browser running and approve the connection prompt when OpenClaw attaches.

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:442

openclaw browser --browser-profile user start

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:443

openclaw browser --browser-profile user status

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:444

openclaw browser --browser-profile user tabs

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:445

openclaw browser --browser-profile user snapshot --format ai

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:459

  • remote debugging is enabled in that browser's inspect page

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:461

  • openclaw doctor migrates old extension-based browser config and checks that

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:463

enable browser-side remote debugging for you

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:467

  • Use profile="user" when you need the user’s logged-in browser state.

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:475

  • This path is higher-risk than the isolated openclaw profile because it can

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:477

  • OpenClaw does not launch the browser for this driver; it attaches to an

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:479

  • OpenClaw uses the official Chrome DevTools MCP --autoConnect flow here. If

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:480

userDataDir is set, OpenClaw passes it through to target that explicit

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:486

  • Some features still require the managed browser path, such as PDF export and

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:489

different network namespace, use remote CDP or a node host instead.

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:499

When launching locally, OpenClaw picks the first available:

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:537

  • x-openclaw-password: <gateway password> or HTTP Basic auth with that password

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:543

error. ARIA snapshots and basic screenshots still work for openclaw-managed Chrome.

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:547

OpenClaw with browser support.

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:555

docker compose run --rm openclaw-cli \

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:561

OPENCLAW_HOME_VOLUME or a bind mount. See [Docker](/install/docker).

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:568

  • It connects to Chromium-based browsers (Chrome/Brave/Edge/Chromium) via CDP.

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:570

of CDP.

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:583

  • openclaw browser status

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:584

  • openclaw browser start

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:585

  • openclaw browser stop

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:586

  • openclaw browser tabs

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:587

  • openclaw browser tab

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:588

  • openclaw browser tab new

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:589

  • openclaw browser tab select 2

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:590

  • openclaw browser tab close 2

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:591

  • openclaw browser open https://example.com

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:592

  • openclaw browser focus abcd1234

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:593

  • openclaw browser close abcd1234

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:597

  • openclaw browser screenshot

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:598

  • openclaw browser screenshot --full-page

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:599

  • openclaw browser screenshot --ref 12

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:600

  • openclaw browser screenshot --ref e12

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:601

  • openclaw browser snapshot

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:602

  • openclaw browser snapshot --format aria --limit 200

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:603

  • openclaw browser snapshot --interactive --compact --depth 6

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:604

  • openclaw browser snapshot --efficient

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:605

  • openclaw browser snapshot --labels

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:606

  • openclaw browser snapshot --selector "#main" --interactive

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:607

  • openclaw browser snapshot --frame "iframe#main" --interactive

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:608

  • openclaw browser console --level error

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:609

  • openclaw browser errors --clear

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:610

  • openclaw browser requests --filter api --clear

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:611

  • openclaw browser pdf

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:612

  • openclaw browser responsebody "**/api" --max-chars 5000

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:616

  • openclaw browser navigate https://example.com

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:617

  • openclaw browser resize 1280 720

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:618

  • openclaw browser click 12 --double

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:619

  • openclaw browser click e12 --double

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:620

  • openclaw browser type 23 "hello" --submit

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:621

  • openclaw browser press Enter

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:622

  • openclaw browser hover 44

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:623

  • openclaw browser scrollintoview e12

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:624

  • openclaw browser drag 10 11

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:625

  • openclaw browser select 9 OptionA OptionB

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:626

  • openclaw browser download e12 report.pdf

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:627

  • openclaw browser waitfordownload report.pdf

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:628

  • openclaw browser upload /tmp/openclaw/uploads/file.pdf

/opt/homebrew/lib/node_modules/openclaw/docs/tools/browser.md:629

  • openclaw browser fill --fields '[{"ref":"1","type":"text","value":"Ada"}]'