@gguf/pigbot 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1206 -12
- package/LICENSE +2 -2
- package/README.md +347 -37
- package/assets/chrome-extension/README.md +5 -5
- package/assets/chrome-extension/background.js +5 -5
- package/assets/chrome-extension/manifest.json +3 -3
- package/assets/chrome-extension/options.html +5 -5
- package/assets/chrome-extension/options.js +1 -1
- package/dist/acp/client.js +5 -5
- package/dist/acp/server.js +3 -3
- package/dist/acp/types.js +2 -2
- package/dist/agents/agent-paths.js +6 -6
- package/dist/agents/agent-scope.js +1 -1
- package/dist/agents/anthropic-payload-log.js +2 -2
- package/dist/agents/auth-profiles/doctor.js +1 -1
- package/dist/agents/auth-profiles/paths.js +3 -3
- package/dist/agents/bash-tools.exec.js +1 -1
- package/dist/agents/bash-tools.shared.js +2 -2
- package/dist/agents/cache-trace.js +5 -5
- package/dist/agents/channel-tools.js +31 -2
- package/dist/agents/cli-runner/helpers.js +3 -3
- package/dist/agents/cli-runner.js +3 -3
- package/dist/agents/context.js +4 -4
- package/dist/agents/docs-path.js +3 -3
- package/dist/agents/identity.js +1 -1
- package/dist/agents/live-auth-keys.js +2 -2
- package/dist/agents/memory-search.js +5 -0
- package/dist/agents/minimax-vlm.js +1 -1
- package/dist/agents/model-auth.js +2 -1
- package/dist/agents/model-catalog.js +4 -4
- package/dist/agents/model-selection.js +1 -1
- package/dist/agents/models-config.js +3 -3
- package/dist/agents/models-config.providers.js +40 -8
- package/dist/agents/{moltbot-tools.js → openclaw-tools.js} +1 -1
- package/dist/agents/pi-embedded-helpers/errors.js +20 -0
- package/dist/agents/pi-embedded-helpers/openai.js +1 -1
- package/dist/agents/pi-embedded-helpers.js +1 -1
- package/dist/agents/pi-embedded-runner/cache-ttl.js +1 -1
- package/dist/agents/pi-embedded-runner/compact.js +8 -8
- package/dist/agents/pi-embedded-runner/model.js +2 -2
- package/dist/agents/pi-embedded-runner/run/attempt.js +6 -6
- package/dist/agents/pi-embedded-runner/run.js +31 -5
- package/dist/agents/pi-embedded-runner/session-manager-cache.js +1 -1
- package/dist/agents/pi-embedded-runner/utils.js +1 -1
- package/dist/agents/pi-embedded-subscribe.raw-stream.js +2 -2
- package/dist/agents/pi-tools.js +5 -5
- package/dist/agents/pi-tools.read.js +2 -2
- package/dist/agents/sandbox/browser.js +16 -11
- package/dist/agents/sandbox/constants.js +7 -7
- package/dist/agents/sandbox/docker.js +17 -14
- package/dist/agents/sandbox/runtime-status.js +1 -1
- package/dist/agents/session-transcript-repair.js +1 -1
- package/dist/agents/session-write-lock.js +2 -2
- package/dist/agents/skills/bundled-dir.js +1 -1
- package/dist/agents/skills/config.js +2 -1
- package/dist/agents/skills/frontmatter.js +11 -3
- package/dist/agents/skills/workspace.js +6 -6
- package/dist/agents/synthetic-models.js +8 -0
- package/dist/agents/system-prompt.js +21 -21
- package/dist/agents/tool-images.js +1 -1
- package/dist/agents/tool-policy.js +2 -2
- package/dist/agents/tools/browser-tool.js +5 -5
- package/dist/agents/tools/image-tool.js +2 -2
- package/dist/agents/tools/memory-tool.js +1 -1
- package/dist/agents/tools/sessions-send-tool.js +2 -2
- package/dist/agents/tools/web-search.js +7 -7
- package/dist/agents/transcript-policy.js +2 -1
- package/dist/agents/workspace.js +3 -3
- package/dist/auto-reply/commands-registry.data.js +1 -1
- package/dist/auto-reply/reply/agent-runner-execution.js +1 -1
- package/dist/auto-reply/reply/bash-command.js +2 -2
- package/dist/auto-reply/reply/commands-context-report.js +2 -2
- package/dist/auto-reply/reply/commands-session.js +4 -4
- package/dist/auto-reply/reply/directive-handling.shared.js +1 -1
- package/dist/auto-reply/reply/dispatch-from-config.js +21 -0
- package/dist/auto-reply/reply/get-reply-inline-actions.js +2 -2
- package/dist/auto-reply/reply/get-reply.js +1 -1
- package/dist/auto-reply/reply/groups.js +1 -1
- package/dist/auto-reply/reply/mentions.js +3 -2
- package/dist/auto-reply/reply/normalize-reply.js +12 -4
- package/dist/auto-reply/reply/reply-dispatcher.js +8 -1
- package/dist/auto-reply/reply/reply-elevated.js +1 -1
- package/dist/auto-reply/reply/stage-sandbox-media.js +1 -1
- package/dist/auto-reply/status.js +2 -2
- package/dist/browser/chrome.js +13 -13
- package/dist/browser/chrome.profile-decoration.js +5 -5
- package/dist/browser/client-fetch.js +3 -3
- package/dist/browser/config.js +11 -11
- package/dist/browser/constants.js +3 -3
- package/dist/browser/control-service.js +1 -1
- package/dist/browser/extension-relay.js +3 -3
- package/dist/browser/profiles-service.js +2 -2
- package/dist/browser/profiles.js +1 -1
- package/dist/browser/pw-tools-core.downloads.js +1 -1
- package/dist/browser/pw-tools-core.interactions.js +5 -5
- package/dist/browser/pw-tools-core.responses.js +1 -1
- package/dist/browser/routes/agent.act.js +2 -2
- package/dist/browser/routes/agent.debug.js +1 -1
- package/dist/browser/server-context.js +9 -9
- package/dist/browser/server.js +2 -2
- package/dist/build-info.json +2 -2
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/canvas-host/a2ui/a2ui.bundle.js +24 -19
- package/dist/canvas-host/a2ui/index.html +28 -28
- package/dist/canvas-host/a2ui.js +14 -18
- package/dist/canvas-host/server.js +33 -35
- package/dist/channels/plugins/catalog.js +7 -7
- package/dist/channels/plugins/helpers.js +2 -2
- package/dist/channels/plugins/onboarding/imessage.js +1 -1
- package/dist/channels/plugins/onboarding/signal.js +2 -2
- package/dist/channels/plugins/onboarding/slack.js +5 -5
- package/dist/channels/plugins/onboarding/telegram.js +3 -3
- package/dist/channels/plugins/onboarding/whatsapp.js +4 -4
- package/dist/channels/plugins/pairing-message.js +1 -1
- package/dist/channels/plugins/status-issues/bluebubbles.js +1 -1
- package/dist/channels/plugins/status-issues/whatsapp.js +2 -2
- package/dist/channels/registry.js +1 -1
- package/dist/cli/acp-cli.js +2 -2
- package/dist/cli/argv.js +2 -2
- package/dist/cli/banner.js +10 -11
- package/dist/cli/browser-cli-actions-input/register.files-downloads.js +1 -1
- package/dist/cli/browser-cli-examples.js +29 -29
- package/dist/cli/browser-cli-extension.js +5 -5
- package/dist/cli/browser-cli-manage.js +4 -4
- package/dist/cli/browser-cli.js +3 -3
- package/dist/cli/channel-options.js +1 -1
- package/dist/cli/channels-cli.js +1 -1
- package/dist/cli/cli-name.js +4 -8
- package/dist/cli/command-format.js +3 -3
- package/dist/cli/config-cli.js +2 -2
- package/dist/cli/cron-cli/register.js +1 -1
- package/dist/cli/daemon-cli/install.js +2 -2
- package/dist/cli/daemon-cli/register.js +1 -1
- package/dist/cli/daemon-cli/shared.js +11 -13
- package/dist/cli/daemon-cli/status.gather.js +2 -5
- package/dist/cli/daemon-cli/status.print.js +9 -17
- package/dist/cli/directory-cli.js +1 -1
- package/dist/cli/dns-cli.js +20 -13
- package/dist/cli/docs-cli.js +2 -2
- package/dist/cli/exec-approvals-cli.js +2 -2
- package/dist/cli/gateway-cli/dev.js +7 -5
- package/dist/cli/gateway-cli/register.js +12 -6
- package/dist/cli/gateway-cli/run.js +15 -14
- package/dist/cli/gateway-cli/shared.js +5 -5
- package/dist/cli/hooks-cli.js +3 -3
- package/dist/cli/logs-cli.js +3 -3
- package/dist/cli/memory-cli.js +36 -5
- package/dist/cli/models-cli.js +1 -1
- package/dist/cli/node-cli/daemon.js +3 -3
- package/dist/cli/node-cli/register.js +1 -1
- package/dist/cli/nodes-cli/register.canvas.js +1 -1
- package/dist/cli/nodes-cli/register.js +1 -1
- package/dist/cli/nodes-screen.js +1 -1
- package/dist/cli/pairing-cli.js +3 -3
- package/dist/cli/plugin-registry.js +2 -2
- package/dist/cli/plugins-cli.js +3 -3
- package/dist/cli/profile.js +9 -9
- package/dist/cli/program/config-guard.js +1 -1
- package/dist/cli/program/help.js +14 -11
- package/dist/cli/program/preaction.js +1 -1
- package/dist/cli/program/register.agent.js +15 -12
- package/dist/cli/program/register.configure.js +1 -1
- package/dist/cli/program/register.maintenance.js +4 -4
- package/dist/cli/program/register.message.js +5 -5
- package/dist/cli/program/register.onboard.js +5 -3
- package/dist/cli/program/register.setup.js +3 -3
- package/dist/cli/program/register.status-health-sessions.js +13 -13
- package/dist/cli/program/register.subclis.js +7 -2
- package/dist/cli/route.js +1 -1
- package/dist/cli/run-main.js +3 -3
- package/dist/cli/sandbox-cli.js +19 -19
- package/dist/cli/security-cli.js +4 -4
- package/dist/cli/skills-cli.js +3 -3
- package/dist/cli/system-cli.js +1 -1
- package/dist/cli/tagline.js +11 -9
- package/dist/cli/tui-cli.js +1 -1
- package/dist/cli/update-cli.js +48 -45
- package/dist/cli/webhooks-cli.js +6 -6
- package/dist/commands/agent-via-gateway.js +1 -1
- package/dist/commands/agent.js +1 -1
- package/dist/commands/agents.command-shared.js +1 -1
- package/dist/commands/agents.commands.add.js +2 -2
- package/dist/commands/agents.commands.list.js +1 -1
- package/dist/commands/auth-choice-options.js +10 -0
- package/dist/commands/auth-choice.apply.api-providers.js +49 -1
- package/dist/commands/auth-choice.apply.openai.js +1 -1
- package/dist/commands/auth-choice.apply.plugin-provider.js +2 -2
- package/dist/commands/auth-choice.preferred-provider.js +1 -0
- package/dist/commands/channels/shared.js +1 -1
- package/dist/commands/channels/status.js +1 -1
- package/dist/commands/chutes-oauth.js +1 -1
- package/dist/commands/configure.channels.js +2 -2
- package/dist/commands/configure.gateway.js +1 -1
- package/dist/commands/configure.wizard.js +21 -21
- package/dist/commands/daemon-install-helpers.js +2 -2
- package/dist/commands/dashboard.js +2 -2
- package/dist/commands/docs.js +5 -5
- package/dist/commands/doctor-auth.js +5 -5
- package/dist/commands/doctor-config-flow.js +64 -7
- package/dist/commands/doctor-format.js +5 -5
- package/dist/commands/doctor-gateway-daemon-flow.js +7 -4
- package/dist/commands/doctor-gateway-services.js +72 -65
- package/dist/commands/doctor-platform-notes.js +51 -9
- package/dist/commands/doctor-sandbox.js +4 -4
- package/dist/commands/doctor-security.js +7 -7
- package/dist/commands/doctor-state-integrity.js +9 -7
- package/dist/commands/doctor-state-migrations.js +1 -1
- package/dist/commands/doctor-ui.js +2 -2
- package/dist/commands/doctor-update.js +5 -5
- package/dist/commands/doctor-workspace-status.js +2 -2
- package/dist/commands/doctor-workspace.js +5 -27
- package/dist/commands/doctor.js +11 -11
- package/dist/commands/gateway-status/helpers.js +2 -2
- package/dist/commands/gateway-status.js +9 -3
- package/dist/commands/health.js +2 -2
- package/dist/commands/models/auth.js +1 -1
- package/dist/commands/models/list.probe.js +2 -2
- package/dist/commands/models/list.registry.js +4 -4
- package/dist/commands/models/list.status-command.js +4 -4
- package/dist/commands/node-daemon-install-helpers.js +1 -1
- package/dist/commands/onboard-auth.config-core.js +65 -1
- package/dist/commands/onboard-auth.credentials.js +14 -2
- package/dist/commands/onboard-auth.js +2 -2
- package/dist/commands/onboard-channels.js +5 -5
- package/dist/commands/onboard-helpers.js +9 -8
- package/dist/commands/onboard-hooks.js +4 -4
- package/dist/commands/onboard-non-interactive/local/auth-choice.js +21 -1
- package/dist/commands/onboard-non-interactive/local.js +1 -1
- package/dist/commands/onboard-non-interactive/remote.js +1 -1
- package/dist/commands/onboard-non-interactive.js +1 -1
- package/dist/commands/onboard-remote.js +7 -3
- package/dist/commands/onboard-skills.js +2 -2
- package/dist/commands/onboard.js +3 -3
- package/dist/commands/onboarding/plugin-install.js +2 -2
- package/dist/commands/reset.js +3 -3
- package/dist/commands/sandbox-display.js +1 -1
- package/dist/commands/sandbox-explain.js +2 -2
- package/dist/commands/setup.js +9 -7
- package/dist/commands/signal-install.js +2 -2
- package/dist/commands/status-all/diagnosis.js +1 -1
- package/dist/commands/status-all/report-lines.js +1 -1
- package/dist/commands/status-all.js +5 -5
- package/dist/commands/status.command.js +9 -9
- package/dist/commands/status.gateway-probe.js +2 -2
- package/dist/commands/status.scan.js +2 -2
- package/dist/commands/status.update.js +3 -3
- package/dist/commands/uninstall.js +4 -4
- package/dist/compat/legacy-names.js +8 -6
- package/dist/config/config.js +1 -1
- package/dist/config/io.js +13 -14
- package/dist/config/paths.js +107 -33
- package/dist/config/schema.js +14 -12
- package/dist/config/sessions/store.js +1 -1
- package/dist/config/sessions/transcript.js +1 -1
- package/dist/config/types.js +1 -1
- package/dist/config/validation.js +2 -2
- package/dist/config/version.js +4 -4
- package/dist/config/zod-schema.agent-runtime.js +1 -0
- package/dist/config/zod-schema.js +3 -2
- package/dist/config/zod-schema.session.js +6 -1
- package/dist/control-ui/apple-touch-icon.png +0 -0
- package/dist/control-ui/assets/index-BKPyesll.css +1 -0
- package/dist/control-ui/assets/{index-CxLFx0Ae.js → index-DFDgq9AK.js} +397 -366
- package/dist/control-ui/assets/index-DFDgq9AK.js.map +1 -0
- package/dist/control-ui/favicon-32.png +0 -0
- package/dist/control-ui/favicon.svg +22 -0
- package/dist/control-ui/index.html +7 -5
- package/dist/daemon/constants.js +19 -25
- package/dist/daemon/inspect.js +64 -28
- package/dist/daemon/launchd.js +7 -7
- package/dist/daemon/node-service.js +14 -14
- package/dist/daemon/paths.js +3 -3
- package/dist/daemon/program-args.js +1 -1
- package/dist/daemon/schtasks.js +6 -6
- package/dist/daemon/service-env.js +25 -21
- package/dist/daemon/systemd-hints.js +1 -1
- package/dist/daemon/systemd-unit.js +1 -1
- package/dist/daemon/systemd.js +6 -6
- package/dist/discord/send.outbound.js +4 -4
- package/dist/discord/send.shared.js +32 -1
- package/dist/discord/targets.js +79 -0
- package/dist/entry.js +9 -8
- package/dist/gateway/auth.js +6 -3
- package/dist/gateway/call.js +3 -1
- package/dist/gateway/control-ui.js +4 -4
- package/dist/gateway/hooks.js +3 -1
- package/dist/gateway/http-utils.js +5 -3
- package/dist/gateway/openai-http.js +3 -3
- package/dist/gateway/openresponses-http.js +4 -4
- package/dist/gateway/protocol/client-info.js +5 -5
- package/dist/gateway/server/ws-connection/message-handler.js +1 -1
- package/dist/gateway/server-browser.js +2 -2
- package/dist/gateway/server-constants.js +2 -2
- package/dist/gateway/server-cron.js +1 -1
- package/dist/gateway/server-discovery-runtime.js +12 -4
- package/dist/gateway/server-discovery.js +7 -7
- package/dist/gateway/server-http.js +1 -1
- package/dist/gateway/server-methods/config.js +2 -2
- package/dist/gateway/server-methods/logs.js +1 -1
- package/dist/gateway/server-methods/update.js +2 -2
- package/dist/gateway/server-plugins.js +2 -2
- package/dist/gateway/server-reload-handlers.js +5 -5
- package/dist/gateway/server-runtime-config.js +3 -3
- package/dist/gateway/server-startup.js +6 -6
- package/dist/gateway/server.impl.js +8 -7
- package/dist/gateway/session-utils.fs.js +2 -1
- package/dist/gateway/test-helpers.mocks.js +8 -6
- package/dist/gateway/test-helpers.server.js +28 -28
- package/dist/gateway/tools-invoke-http.js +40 -4
- package/dist/hooks/bundled/boot-md/HOOK.md +3 -3
- package/dist/hooks/bundled/command-logger/HOOK.md +12 -12
- package/dist/hooks/bundled/command-logger/handler.js +2 -1
- package/dist/hooks/bundled/session-memory/HOOK.md +30 -7
- package/dist/hooks/bundled/session-memory/handler.js +19 -12
- package/dist/hooks/bundled/soul-evil/HOOK.md +5 -5
- package/dist/hooks/bundled-dir.js +2 -2
- package/dist/hooks/config.js +1 -1
- package/dist/hooks/frontmatter.js +11 -3
- package/dist/hooks/gmail-ops.js +1 -1
- package/dist/hooks/gmail-watcher.js +1 -1
- package/dist/hooks/hooks-status.js +2 -2
- package/dist/hooks/install.js +8 -8
- package/dist/hooks/internal-hooks.js +1 -1
- package/dist/hooks/llm-slug-generator.js +1 -1
- package/dist/hooks/loader.js +1 -1
- package/dist/hooks/plugin-hooks.js +2 -2
- package/dist/hooks/workspace.js +9 -9
- package/dist/imessage/monitor/monitor-provider.js +2 -2
- package/dist/index.js +4 -4
- package/dist/infra/bonjour-discovery.js +21 -17
- package/dist/infra/bonjour.js +10 -9
- package/dist/infra/device-identity.js +1 -1
- package/dist/infra/diagnostic-flags.js +1 -1
- package/dist/infra/dotenv.js +1 -1
- package/dist/infra/exec-approvals.js +2 -2
- package/dist/infra/gateway-lock.js +3 -2
- package/dist/infra/machine-name.js +1 -1
- package/dist/infra/{moltbot-root.js → openclaw-root.js} +2 -2
- package/dist/infra/outbound/outbound-session.js +18 -0
- package/dist/infra/outbound/targets.js +1 -1
- package/dist/infra/path-env.js +10 -9
- package/dist/infra/ports-format.js +3 -2
- package/dist/infra/ports.js +2 -2
- package/dist/infra/provider-usage.auth.js +33 -0
- package/dist/infra/provider-usage.fetch.claude.js +1 -1
- package/dist/infra/provider-usage.fetch.minimax.js +1 -1
- package/dist/infra/provider-usage.load.js +6 -0
- package/dist/infra/provider-usage.shared.js +2 -0
- package/dist/infra/restart-sentinel.js +1 -1
- package/dist/infra/restart.js +4 -4
- package/dist/infra/runtime-guard.js +2 -2
- package/dist/infra/shell-env.js +4 -4
- package/dist/infra/ssh-config.js +2 -1
- package/dist/infra/ssh-tunnel.js +8 -1
- package/dist/infra/state-migrations.js +165 -6
- package/dist/infra/system-presence.js +1 -1
- package/dist/infra/tailscale.js +1 -1
- package/dist/infra/tls/gateway.js +1 -1
- package/dist/infra/unhandled-rejections.js +56 -33
- package/dist/infra/update-check.js +1 -1
- package/dist/infra/update-global.js +21 -11
- package/dist/infra/update-runner.js +7 -7
- package/dist/infra/update-startup.js +3 -3
- package/dist/infra/voicewake.js +1 -1
- package/dist/infra/warnings.js +1 -1
- package/dist/infra/widearea-dns.js +31 -14
- package/dist/logging/logger.js +4 -4
- package/dist/macos/gateway-daemon.js +9 -6
- package/dist/macos/relay-smoke.js +1 -1
- package/dist/macos/relay.js +6 -6
- package/dist/media/host.js +1 -1
- package/dist/media/image-ops.js +3 -3
- package/dist/media/input-files.js +1 -1
- package/dist/media/mime.js +3 -0
- package/dist/media-understanding/apply.js +278 -1
- package/dist/media-understanding/attachments.js +1 -1
- package/dist/media-understanding/providers/image.js +2 -2
- package/dist/media-understanding/runner.js +1 -1
- package/dist/memory/batch-gemini.js +2 -2
- package/dist/memory/batch-openai.js +1 -1
- package/dist/memory/embeddings-gemini.js +1 -1
- package/dist/memory/embeddings.js +1 -1
- package/dist/memory/internal.js +49 -16
- package/dist/memory/manager-cache-key.js +1 -0
- package/dist/memory/manager.js +62 -10
- package/dist/memory/sync-memory-files.js +1 -1
- package/dist/node-host/runner.js +6 -6
- package/dist/pairing/pairing-messages.js +2 -2
- package/dist/plugins/bundled-dir.js +1 -1
- package/dist/plugins/cli.js +2 -2
- package/dist/plugins/config-state.js +60 -0
- package/dist/plugins/discovery.js +14 -12
- package/dist/plugins/install.js +8 -8
- package/dist/plugins/loader.js +4 -7
- package/dist/plugins/manifest-registry.js +4 -4
- package/dist/plugins/manifest.js +4 -7
- package/dist/plugins/providers.js +2 -2
- package/dist/plugins/registry.js +2 -2
- package/dist/plugins/runtime.js +1 -1
- package/dist/plugins/status.js +2 -2
- package/dist/plugins/tools.js +2 -2
- package/dist/plugins/update.js +3 -3
- package/dist/providers/qwen-portal-oauth.js +1 -1
- package/dist/routing/resolve-route.js +2 -0
- package/dist/routing/session-key.js +5 -0
- package/dist/security/audit-extra.js +2 -2
- package/dist/security/audit.js +7 -7
- package/dist/shared/text/reasoning-tags.js +44 -3
- package/dist/slack/monitor/commands.js +4 -3
- package/dist/slack/monitor/slash.js +62 -59
- package/dist/slack/monitor.test-helpers.js +1 -1
- package/dist/telegram/accounts.js +1 -1
- package/dist/telegram/bot/delivery.js +26 -3
- package/dist/telegram/bot/helpers.js +13 -2
- package/dist/telegram/bot-message-context.js +8 -4
- package/dist/telegram/bot-message-dispatch.js +36 -5
- package/dist/telegram/bot-native-commands.js +50 -11
- package/dist/telegram/bot.js +7 -5
- package/dist/telegram/download.js +1 -1
- package/dist/telegram/monitor.js +19 -1
- package/dist/telegram/network-config.js +2 -2
- package/dist/telegram/network-errors.js +4 -0
- package/dist/terminal/links.js +1 -1
- package/dist/tts/tts.js +12 -6
- package/dist/tui/gateway-chat.js +3 -3
- package/dist/tui/tui.js +1 -1
- package/dist/utils.js +12 -3
- package/dist/version.js +3 -3
- package/dist/web/active-listener.js +1 -1
- package/dist/web/auth-store.js +1 -1
- package/dist/web/auto-reply/monitor/broadcast.js +2 -0
- package/dist/web/auto-reply/monitor/process-message.js +1 -1
- package/dist/web/auto-reply/monitor.js +1 -1
- package/dist/web/login.js +1 -1
- package/dist/web/session.js +2 -2
- package/dist/wizard/onboarding.finalize.js +24 -21
- package/dist/wizard/onboarding.gateway-config.js +1 -1
- package/dist/wizard/onboarding.js +11 -11
- package/docs/CNAME +1 -1
- package/docs/_config.yml +3 -3
- package/docs/_layouts/default.html +9 -9
- package/docs/assets/openclaw-logo-text-dark.png +0 -0
- package/docs/assets/openclaw-logo-text.png +0 -0
- package/docs/assets/theme.js +1 -1
- package/docs/automation/auth-monitoring.md +7 -7
- package/docs/automation/cron-jobs.md +19 -19
- package/docs/automation/cron-vs-heartbeat.md +7 -7
- package/docs/automation/gmail-pubsub.md +25 -25
- package/docs/automation/poll.md +7 -7
- package/docs/automation/webhook.md +5 -5
- package/docs/bedrock.md +10 -10
- package/docs/brave-search.md +1 -1
- package/docs/broadcast-groups.md +6 -6
- package/docs/channels/bluebubbles.md +12 -12
- package/docs/channels/discord.md +15 -15
- package/docs/channels/googlechat.md +16 -16
- package/docs/channels/imessage.md +13 -13
- package/docs/channels/index.md +4 -4
- package/docs/channels/line.md +6 -6
- package/docs/channels/location.md +1 -1
- package/docs/channels/matrix.md +14 -14
- package/docs/channels/mattermost.md +8 -8
- package/docs/channels/msteams.md +26 -26
- package/docs/channels/nextcloud-talk.md +7 -7
- package/docs/channels/nostr.md +9 -9
- package/docs/channels/signal.md +9 -9
- package/docs/channels/slack.md +16 -16
- package/docs/channels/telegram.md +23 -23
- package/docs/channels/tlon.md +5 -5
- package/docs/channels/troubleshooting.md +2 -2
- package/docs/channels/twitch.md +14 -14
- package/docs/channels/whatsapp.md +26 -26
- package/docs/channels/zalo.md +8 -8
- package/docs/channels/zalouser.md +12 -12
- package/docs/cli/acp.md +24 -24
- package/docs/cli/agent.md +6 -6
- package/docs/cli/agents.md +12 -12
- package/docs/cli/approvals.md +14 -14
- package/docs/cli/browser.md +24 -24
- package/docs/cli/channels.md +21 -21
- package/docs/cli/config.md +15 -15
- package/docs/cli/configure.md +6 -6
- package/docs/cli/cron.md +5 -5
- package/docs/cli/dashboard.md +4 -4
- package/docs/cli/devices.md +13 -13
- package/docs/cli/directory.md +12 -12
- package/docs/cli/dns.md +5 -6
- package/docs/cli/docs.md +5 -5
- package/docs/cli/doctor.md +11 -11
- package/docs/cli/gateway.md +26 -26
- package/docs/cli/health.md +5 -5
- package/docs/cli/hooks.md +35 -35
- package/docs/cli/index.md +42 -42
- package/docs/cli/logs.md +6 -6
- package/docs/cli/memory.md +12 -11
- package/docs/cli/message.md +11 -11
- package/docs/cli/models.md +15 -15
- package/docs/cli/node.md +14 -14
- package/docs/cli/nodes.md +14 -14
- package/docs/cli/onboard.md +7 -7
- package/docs/cli/pairing.md +4 -4
- package/docs/cli/plugins.md +16 -16
- package/docs/cli/reset.md +5 -5
- package/docs/cli/sandbox.md +28 -28
- package/docs/cli/security.md +6 -6
- package/docs/cli/sessions.md +5 -5
- package/docs/cli/setup.md +6 -6
- package/docs/cli/skills.md +6 -6
- package/docs/cli/status.md +7 -7
- package/docs/cli/system.md +6 -6
- package/docs/cli/tui.md +5 -5
- package/docs/cli/uninstall.md +5 -5
- package/docs/cli/update.md +20 -20
- package/docs/cli/voicecall.md +9 -9
- package/docs/cli/webhooks.md +5 -5
- package/docs/concepts/agent-loop.md +5 -5
- package/docs/concepts/agent-workspace.md +27 -27
- package/docs/concepts/agent.md +12 -12
- package/docs/concepts/architecture.md +2 -2
- package/docs/concepts/channel-routing.md +5 -5
- package/docs/concepts/compaction.md +5 -5
- package/docs/concepts/context.md +6 -6
- package/docs/concepts/group-messages.md +7 -7
- package/docs/concepts/groups.md +5 -5
- package/docs/concepts/markdown-formatting.md +3 -3
- package/docs/concepts/memory.md +41 -19
- package/docs/concepts/messages.md +4 -4
- package/docs/concepts/model-failover.md +14 -14
- package/docs/concepts/model-providers.md +25 -24
- package/docs/concepts/models.md +27 -27
- package/docs/concepts/multi-agent.md +31 -31
- package/docs/concepts/oauth.md +22 -22
- package/docs/concepts/presence.md +2 -2
- package/docs/concepts/retry.md +1 -1
- package/docs/concepts/session-pruning.md +1 -1
- package/docs/concepts/session-tool.md +4 -4
- package/docs/concepts/session.md +18 -16
- package/docs/concepts/streaming.md +3 -3
- package/docs/concepts/system-prompt.md +11 -11
- package/docs/concepts/timezone.md +2 -2
- package/docs/concepts/typebox.md +3 -3
- package/docs/concepts/typing-indicators.md +2 -2
- package/docs/concepts/usage-tracking.md +3 -3
- package/docs/date-time.md +2 -2
- package/docs/debug/node-issue.md +6 -6
- package/docs/debugging.md +18 -18
- package/docs/diagnostics/flags.md +7 -7
- package/docs/docs.json +21 -5
- package/docs/environment.md +7 -7
- package/docs/experiments/plans/cron-add-hardening.md +1 -1
- package/docs/experiments/plans/openresponses-gateway.md +2 -2
- package/docs/experiments/research/memory.md +12 -12
- package/docs/gateway/authentication.md +22 -22
- package/docs/gateway/background-process.md +2 -2
- package/docs/gateway/bonjour.md +25 -25
- package/docs/gateway/bridge-protocol.md +2 -2
- package/docs/gateway/cli-backends.md +12 -12
- package/docs/gateway/configuration-examples.md +26 -25
- package/docs/gateway/configuration.md +155 -153
- package/docs/gateway/discovery.md +10 -10
- package/docs/gateway/doctor.md +27 -27
- package/docs/gateway/gateway-lock.md +1 -1
- package/docs/gateway/health.md +11 -11
- package/docs/gateway/heartbeat.md +5 -5
- package/docs/gateway/index.md +63 -63
- package/docs/gateway/local-models.md +2 -2
- package/docs/gateway/logging.md +8 -8
- package/docs/gateway/multiple-gateways.md +24 -24
- package/docs/gateway/openai-http-api.md +12 -12
- package/docs/gateway/openresponses-http-api.md +12 -12
- package/docs/gateway/pairing.md +9 -9
- package/docs/gateway/protocol.md +4 -4
- package/docs/gateway/remote-gateway-readme.md +10 -10
- package/docs/gateway/remote.md +4 -4
- package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +7 -7
- package/docs/gateway/sandboxing.md +6 -6
- package/docs/gateway/security/formal-verification.md +67 -14
- package/docs/gateway/security/index.md +56 -59
- package/docs/gateway/tailscale.md +10 -10
- package/docs/gateway/tools-invoke-http-api.md +5 -5
- package/docs/gateway/troubleshooting.md +112 -112
- package/docs/help/faq.md +338 -338
- package/docs/help/troubleshooting.md +16 -16
- package/docs/hooks/soul-evil.md +2 -2
- package/docs/hooks.md +62 -62
- package/docs/index.md +45 -36
- package/docs/install/ansible.md +35 -35
- package/docs/install/development-channels.md +10 -10
- package/docs/install/docker.md +45 -45
- package/docs/install/index.md +33 -33
- package/docs/install/installer.md +24 -24
- package/docs/install/migrating.md +36 -36
- package/docs/install/nix.md +18 -18
- package/docs/install/node.md +4 -4
- package/docs/install/uninstall.md +29 -29
- package/docs/install/updating.md +51 -51
- package/docs/logging.md +59 -59
- package/docs/multi-agent-sandbox-tools.md +15 -15
- package/docs/network.md +1 -1
- package/docs/nodes/audio.md +2 -2
- package/docs/nodes/camera.md +18 -18
- package/docs/nodes/images.md +4 -4
- package/docs/nodes/index.md +57 -57
- package/docs/nodes/location-command.md +2 -2
- package/docs/nodes/media-understanding.md +5 -5
- package/docs/nodes/talk.md +1 -1
- package/docs/nodes/voicewake.md +3 -3
- package/docs/northflank.mdx +9 -9
- package/docs/perplexity.md +2 -2
- package/docs/platforms/android.md +14 -14
- package/docs/platforms/digitalocean.md +26 -26
- package/docs/platforms/exe-dev.md +68 -130
- package/docs/platforms/fly.md +33 -33
- package/docs/platforms/gcp.md +58 -58
- package/docs/platforms/hetzner.md +45 -45
- package/docs/platforms/index.md +8 -8
- package/docs/platforms/ios.md +13 -13
- package/docs/platforms/linux.md +11 -11
- package/docs/platforms/mac/bundled-gateway.md +14 -14
- package/docs/platforms/mac/canvas.md +14 -14
- package/docs/platforms/mac/child-process.md +5 -5
- package/docs/platforms/mac/dev-setup.md +10 -10
- package/docs/platforms/mac/health.md +2 -2
- package/docs/platforms/mac/icon.md +1 -1
- package/docs/platforms/mac/logging.md +4 -4
- package/docs/platforms/mac/menu-bar.md +1 -1
- package/docs/platforms/mac/peekaboo.md +9 -9
- package/docs/platforms/mac/permissions.md +1 -1
- package/docs/platforms/mac/release.md +18 -18
- package/docs/platforms/mac/remote.md +14 -14
- package/docs/platforms/mac/signing.md +7 -7
- package/docs/platforms/mac/skills.md +4 -4
- package/docs/platforms/mac/webchat.md +1 -1
- package/docs/platforms/mac/xpc.md +4 -4
- package/docs/platforms/macos-vm.md +27 -27
- package/docs/platforms/macos.md +16 -16
- package/docs/platforms/oracle.md +35 -35
- package/docs/platforms/raspberry-pi.md +22 -22
- package/docs/platforms/windows.md +11 -11
- package/docs/plugin.md +65 -65
- package/docs/plugins/agent-tools.md +1 -1
- package/docs/plugins/manifest.md +4 -4
- package/docs/plugins/voice-call.md +12 -12
- package/docs/plugins/zalouser.md +9 -9
- package/docs/prose.md +9 -9
- package/docs/providers/anthropic.md +16 -16
- package/docs/providers/claude-max-api-proxy.md +4 -4
- package/docs/providers/deepgram.md +2 -2
- package/docs/providers/github-copilot.md +11 -11
- package/docs/providers/glm.md +4 -4
- package/docs/providers/index.md +4 -3
- package/docs/providers/minimax.md +9 -9
- package/docs/providers/models.md +3 -3
- package/docs/providers/moonshot.md +15 -4
- package/docs/providers/ollama.md +11 -11
- package/docs/providers/openai.md +6 -6
- package/docs/providers/opencode.md +3 -3
- package/docs/providers/openrouter.md +3 -3
- package/docs/providers/qwen.md +6 -6
- package/docs/providers/synthetic.md +4 -4
- package/docs/providers/venice.md +23 -23
- package/docs/providers/vercel-ai-gateway.md +4 -4
- package/docs/providers/xiaomi.md +62 -0
- package/docs/providers/zai.md +5 -5
- package/docs/railway.mdx +8 -8
- package/docs/refactor/exec-host.md +5 -5
- package/docs/refactor/plugin-sdk.md +12 -12
- package/docs/refactor/strict-config.md +11 -11
- package/docs/reference/AGENTS.default.md +17 -17
- package/docs/reference/RELEASING.md +29 -29
- package/docs/reference/api-usage-costs.md +6 -6
- package/docs/reference/device-models.md +7 -7
- package/docs/reference/rpc.md +3 -3
- package/docs/reference/session-management-compaction.md +19 -19
- package/docs/reference/templates/AGENTS.dev.md +1 -1
- package/docs/reference/templates/BOOT.md +1 -1
- package/docs/reference/templates/IDENTITY.md +1 -1
- package/docs/reference/templates/TOOLS.dev.md +1 -1
- package/docs/reference/templates/USER.dev.md +2 -2
- package/docs/reference/test.md +2 -2
- package/docs/reference/transcript-hygiene.md +1 -1
- package/docs/render.mdx +13 -13
- package/docs/scripts.md +1 -1
- package/docs/security/formal-verification.md +66 -13
- package/docs/start/getting-started.md +29 -29
- package/docs/start/hubs.md +2 -2
- package/docs/start/lore.md +14 -14
- package/docs/start/onboarding.md +7 -7
- package/docs/start/{clawd.md → openclaw.md} +35 -35
- package/docs/start/pairing.md +10 -10
- package/docs/start/setup.md +22 -22
- package/docs/start/showcase.md +32 -32
- package/docs/start/wizard.md +30 -30
- package/docs/testing.md +56 -56
- package/docs/token-use.md +7 -7
- package/docs/tools/agent-send.md +10 -10
- package/docs/tools/browser-linux-troubleshooting.md +16 -16
- package/docs/tools/browser-login.md +6 -6
- package/docs/tools/browser.md +126 -126
- package/docs/tools/chrome-extension.md +17 -17
- package/docs/tools/clawdhub.md +7 -7
- package/docs/tools/creating-skills.md +6 -6
- package/docs/tools/exec-approvals.md +5 -5
- package/docs/tools/exec.md +4 -4
- package/docs/tools/firecrawl.md +2 -2
- package/docs/tools/index.md +13 -13
- package/docs/tools/llm-task.md +2 -2
- package/docs/tools/lobster.md +13 -13
- package/docs/tools/skills-config.md +2 -2
- package/docs/tools/skills.md +31 -31
- package/docs/tools/slash-commands.md +8 -8
- package/docs/tools/web.md +8 -8
- package/docs/tts.md +11 -11
- package/docs/tui.md +7 -7
- package/docs/vps.md +1 -1
- package/docs/web/control-ui.md +8 -8
- package/docs/web/dashboard.md +6 -6
- package/docs/web/index.md +5 -5
- package/extensions/bluebubbles/index.ts +3 -3
- package/extensions/bluebubbles/package.json +5 -5
- package/extensions/bluebubbles/src/accounts.ts +9 -9
- package/extensions/bluebubbles/src/actions.test.ts +22 -22
- package/extensions/bluebubbles/src/actions.ts +6 -6
- package/extensions/bluebubbles/src/attachments.ts +2 -2
- package/extensions/bluebubbles/src/channel.ts +17 -17
- package/extensions/bluebubbles/src/chat.ts +2 -2
- package/extensions/bluebubbles/src/config-schema.ts +1 -1
- package/extensions/bluebubbles/src/media-send.ts +2 -2
- package/extensions/bluebubbles/src/monitor.test.ts +48 -48
- package/extensions/bluebubbles/src/monitor.ts +6 -6
- package/extensions/bluebubbles/src/onboarding.ts +9 -9
- package/extensions/bluebubbles/src/reactions.ts +2 -2
- package/extensions/bluebubbles/src/runtime.ts +1 -1
- package/extensions/bluebubbles/src/send.ts +2 -2
- package/extensions/copilot-proxy/README.md +3 -3
- package/extensions/copilot-proxy/index.ts +1 -1
- package/extensions/copilot-proxy/package.json +4 -4
- package/extensions/diagnostics-otel/index.ts +3 -3
- package/extensions/diagnostics-otel/package.json +4 -4
- package/extensions/diagnostics-otel/src/service.test.ts +15 -15
- package/extensions/diagnostics-otel/src/service.ts +85 -85
- package/extensions/discord/index.ts +3 -3
- package/extensions/discord/package.json +4 -4
- package/extensions/discord/src/channel.ts +1 -1
- package/extensions/discord/src/runtime.ts +1 -1
- package/extensions/google-antigravity-auth/README.md +3 -3
- package/extensions/google-antigravity-auth/index.ts +2 -2
- package/extensions/google-antigravity-auth/package.json +4 -4
- package/extensions/google-gemini-cli-auth/README.md +5 -5
- package/extensions/google-gemini-cli-auth/index.ts +3 -3
- package/extensions/google-gemini-cli-auth/oauth.ts +4 -4
- package/extensions/google-gemini-cli-auth/package.json +4 -4
- package/extensions/googlechat/index.ts +4 -4
- package/extensions/googlechat/node_modules/.bin/openclaw +16 -0
- package/extensions/googlechat/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/googlechat/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/googlechat/package.json +7 -7
- package/extensions/googlechat/src/accounts.ts +9 -9
- package/extensions/googlechat/src/actions.ts +8 -8
- package/extensions/googlechat/src/api.ts +1 -1
- package/extensions/googlechat/src/channel.ts +23 -23
- package/extensions/googlechat/src/monitor.ts +9 -9
- package/extensions/googlechat/src/onboarding.ts +11 -11
- package/extensions/googlechat/src/runtime.ts +1 -1
- package/extensions/googlechat/src/types.config.ts +1 -1
- package/extensions/imessage/index.ts +3 -3
- package/extensions/imessage/package.json +4 -4
- package/extensions/imessage/src/channel.ts +1 -1
- package/extensions/imessage/src/runtime.ts +1 -1
- package/extensions/line/index.ts +3 -3
- package/extensions/line/node_modules/.bin/openclaw +16 -0
- package/extensions/line/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/line/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/line/package.json +6 -6
- package/extensions/line/src/card-command.ts +3 -3
- package/extensions/line/src/channel.logout.test.ts +4 -4
- package/extensions/line/src/channel.sendPayload.test.ts +8 -8
- package/extensions/line/src/channel.ts +5 -5
- package/extensions/line/src/runtime.ts +1 -1
- package/extensions/llm-task/README.md +4 -4
- package/extensions/llm-task/index.ts +2 -2
- package/extensions/llm-task/package.json +4 -4
- package/extensions/llm-task/src/llm-task-tool.ts +6 -6
- package/extensions/lobster/README.md +7 -7
- package/extensions/lobster/index.ts +2 -2
- package/extensions/lobster/package.json +3 -3
- package/extensions/lobster/src/lobster-tool.test.ts +7 -7
- package/extensions/lobster/src/lobster-tool.ts +2 -2
- package/extensions/matrix/CHANGELOG.md +14 -9
- package/extensions/matrix/index.ts +3 -3
- package/extensions/matrix/node_modules/.bin/markdown-it +0 -5
- package/extensions/matrix/node_modules/.bin/markdown-it.CMD +0 -5
- package/extensions/matrix/node_modules/.bin/markdown-it.ps1 +0 -13
- package/extensions/matrix/node_modules/.bin/openclaw +16 -0
- package/extensions/matrix/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/matrix/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/matrix/package.json +6 -6
- package/extensions/matrix/src/actions.ts +1 -1
- package/extensions/matrix/src/channel.directory.test.ts +1 -1
- package/extensions/matrix/src/channel.ts +1 -1
- package/extensions/matrix/src/config-schema.ts +1 -1
- package/extensions/matrix/src/directory-live.ts +1 -1
- package/extensions/matrix/src/group-mentions.ts +1 -1
- package/extensions/matrix/src/matrix/accounts.ts +1 -1
- package/extensions/matrix/src/matrix/actions/client.ts +1 -1
- package/extensions/matrix/src/matrix/client/config.ts +1 -1
- package/extensions/matrix/src/matrix/deps.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/allowlist.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/auto-join.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/events.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/handler.ts +5 -5
- package/extensions/matrix/src/matrix/monitor/index.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/location.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/media.test.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/replies.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/rooms.ts +1 -1
- package/extensions/matrix/src/matrix/poll-types.ts +1 -1
- package/extensions/matrix/src/matrix/send/client.ts +1 -1
- package/extensions/matrix/src/matrix/send.test.ts +1 -1
- package/extensions/matrix/src/matrix/send.ts +1 -1
- package/extensions/matrix/src/onboarding.ts +2 -2
- package/extensions/matrix/src/outbound.ts +1 -1
- package/extensions/matrix/src/resolve-targets.ts +1 -1
- package/extensions/matrix/src/runtime.ts +1 -1
- package/extensions/matrix/src/tool-actions.ts +1 -1
- package/extensions/mattermost/index.ts +3 -3
- package/extensions/mattermost/package.json +5 -5
- package/extensions/mattermost/src/channel.ts +1 -1
- package/extensions/mattermost/src/config-schema.ts +1 -1
- package/extensions/mattermost/src/group-mentions.ts +1 -1
- package/extensions/mattermost/src/mattermost/accounts.ts +9 -9
- package/extensions/mattermost/src/mattermost/monitor-helpers.ts +5 -5
- package/extensions/mattermost/src/mattermost/monitor.ts +4 -4
- package/extensions/mattermost/src/onboarding-helpers.ts +4 -4
- package/extensions/mattermost/src/onboarding.ts +4 -4
- package/extensions/mattermost/src/runtime.ts +1 -1
- package/extensions/mattermost/src/types.ts +1 -1
- package/extensions/memory-core/index.ts +3 -3
- package/extensions/memory-core/node_modules/.bin/openclaw +16 -0
- package/extensions/memory-core/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/memory-core/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/memory-core/package.json +6 -6
- package/extensions/memory-lancedb/config.ts +26 -2
- package/extensions/memory-lancedb/index.test.ts +3 -3
- package/extensions/memory-lancedb/index.ts +4 -4
- package/extensions/memory-lancedb/node_modules/.bin/openai +0 -5
- package/extensions/memory-lancedb/node_modules/.bin/openai.CMD +0 -5
- package/extensions/memory-lancedb/node_modules/.bin/openai.ps1 +0 -13
- package/extensions/memory-lancedb/{clawdbot.plugin.json → openclaw.plugin.json} +1 -1
- package/extensions/memory-lancedb/package.json +4 -4
- package/extensions/msteams/CHANGELOG.md +12 -7
- package/extensions/msteams/index.ts +3 -3
- package/extensions/msteams/node_modules/.bin/openclaw +16 -0
- package/extensions/msteams/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/msteams/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/msteams/package.json +6 -6
- package/extensions/msteams/src/attachments.test.ts +1 -1
- package/extensions/msteams/src/channel.directory.test.ts +2 -2
- package/extensions/msteams/src/channel.ts +3 -3
- package/extensions/msteams/src/conversation-store-fs.test.ts +6 -5
- package/extensions/msteams/src/directory-live.ts +1 -1
- package/extensions/msteams/src/graph-upload.ts +4 -4
- package/extensions/msteams/src/media-helpers.ts +1 -1
- package/extensions/msteams/src/messenger.test.ts +1 -1
- package/extensions/msteams/src/messenger.ts +1 -1
- package/extensions/msteams/src/monitor-handler/message-handler.ts +1 -1
- package/extensions/msteams/src/monitor-handler.ts +2 -2
- package/extensions/msteams/src/monitor.ts +3 -3
- package/extensions/msteams/src/onboarding.ts +11 -11
- package/extensions/msteams/src/outbound.ts +1 -1
- package/extensions/msteams/src/policy.test.ts +1 -1
- package/extensions/msteams/src/policy.ts +2 -2
- package/extensions/msteams/src/polls-store.test.ts +1 -1
- package/extensions/msteams/src/polls.test.ts +6 -5
- package/extensions/msteams/src/polls.ts +9 -8
- package/extensions/msteams/src/probe.test.ts +1 -1
- package/extensions/msteams/src/probe.ts +1 -1
- package/extensions/msteams/src/reply-dispatcher.ts +3 -3
- package/extensions/msteams/src/runtime.ts +1 -1
- package/extensions/msteams/src/send-context.ts +2 -2
- package/extensions/msteams/src/send.ts +5 -5
- package/extensions/msteams/src/token.ts +1 -1
- package/extensions/nextcloud-talk/index.ts +3 -3
- package/extensions/nextcloud-talk/package.json +5 -5
- package/extensions/nextcloud-talk/src/accounts.ts +2 -2
- package/extensions/nextcloud-talk/src/channel.ts +8 -8
- package/extensions/nextcloud-talk/src/config-schema.ts +1 -1
- package/extensions/nextcloud-talk/src/inbound.ts +8 -8
- package/extensions/nextcloud-talk/src/monitor.ts +1 -1
- package/extensions/nextcloud-talk/src/onboarding.ts +2 -2
- package/extensions/nextcloud-talk/src/policy.ts +2 -2
- package/extensions/nextcloud-talk/src/room-info.ts +1 -1
- package/extensions/nextcloud-talk/src/runtime.ts +1 -1
- package/extensions/nextcloud-talk/src/types.ts +1 -1
- package/extensions/nostr/CHANGELOG.md +9 -4
- package/extensions/nostr/README.md +5 -5
- package/extensions/nostr/index.ts +6 -6
- package/extensions/nostr/node_modules/.bin/openclaw +16 -0
- package/extensions/nostr/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/nostr/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/nostr/package.json +6 -6
- package/extensions/nostr/src/channel.ts +2 -2
- package/extensions/nostr/src/config-schema.ts +1 -1
- package/extensions/nostr/src/nostr-state-store.test.ts +9 -8
- package/extensions/nostr/src/runtime.ts +1 -1
- package/extensions/nostr/src/types.ts +4 -4
- package/extensions/open-prose/index.ts +2 -2
- package/extensions/open-prose/package.json +3 -3
- package/extensions/open-prose/skills/prose/SKILL.md +5 -5
- package/extensions/open-prose/skills/prose/prose.md +4 -4
- package/extensions/qwen-portal-auth/README.md +3 -3
- package/extensions/qwen-portal-auth/index.ts +1 -1
- package/extensions/signal/index.ts +3 -3
- package/extensions/signal/package.json +4 -4
- package/extensions/signal/src/channel.ts +1 -1
- package/extensions/signal/src/runtime.ts +1 -1
- package/extensions/slack/index.ts +3 -3
- package/extensions/slack/package.json +4 -4
- package/extensions/slack/src/channel.ts +1 -1
- package/extensions/slack/src/runtime.ts +1 -1
- package/extensions/telegram/index.ts +3 -3
- package/extensions/telegram/package.json +4 -4
- package/extensions/telegram/src/channel.ts +3 -3
- package/extensions/telegram/src/runtime.ts +1 -1
- package/extensions/tlon/README.md +3 -3
- package/extensions/tlon/index.ts +3 -3
- package/extensions/tlon/package.json +5 -5
- package/extensions/tlon/src/channel.ts +15 -15
- package/extensions/tlon/src/config-schema.ts +1 -1
- package/extensions/tlon/src/monitor/discovery.ts +1 -1
- package/extensions/tlon/src/monitor/history.ts +1 -1
- package/extensions/tlon/src/monitor/index.ts +3 -3
- package/extensions/tlon/src/onboarding.ts +4 -4
- package/extensions/tlon/src/runtime.ts +1 -1
- package/extensions/tlon/src/types.ts +3 -3
- package/extensions/twitch/CHANGELOG.md +6 -1
- package/extensions/twitch/README.md +8 -8
- package/extensions/twitch/index.ts +3 -3
- package/extensions/twitch/node_modules/.bin/openclaw +16 -0
- package/extensions/twitch/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/twitch/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/twitch/package.json +5 -5
- package/extensions/twitch/src/actions.ts +1 -1
- package/extensions/twitch/src/config-schema.ts +1 -1
- package/extensions/twitch/src/config.ts +3 -3
- package/extensions/twitch/src/monitor.ts +3 -3
- package/extensions/twitch/src/onboarding.test.ts +1 -1
- package/extensions/twitch/src/onboarding.ts +13 -13
- package/extensions/twitch/src/outbound.test.ts +2 -2
- package/extensions/twitch/src/outbound.ts +2 -2
- package/extensions/twitch/src/plugin.test.ts +2 -2
- package/extensions/twitch/src/plugin.ts +9 -9
- package/extensions/twitch/src/runtime.ts +1 -1
- package/extensions/twitch/src/send.test.ts +2 -2
- package/extensions/twitch/src/send.ts +5 -5
- package/extensions/twitch/src/token.test.ts +12 -12
- package/extensions/twitch/src/token.ts +7 -7
- package/extensions/twitch/src/twitch-client.ts +4 -4
- package/extensions/twitch/src/types.ts +3 -3
- package/extensions/twitch/src/utils/markdown.ts +1 -1
- package/extensions/voice-call/CHANGELOG.md +16 -11
- package/extensions/voice-call/README.md +16 -16
- package/extensions/voice-call/package.json +4 -4
- package/extensions/voice-call/src/cli.ts +16 -4
- package/extensions/voice-call/src/core-bridge.ts +5 -5
- package/extensions/voice-call/src/manager.test.ts +2 -2
- package/extensions/voice-call/src/manager.ts +17 -5
- package/extensions/voice-call/src/response-generator.ts +1 -1
- package/extensions/whatsapp/index.ts +3 -3
- package/extensions/whatsapp/package.json +4 -4
- package/extensions/whatsapp/src/channel.ts +1 -1
- package/extensions/whatsapp/src/runtime.ts +1 -1
- package/extensions/zalo/CHANGELOG.md +14 -9
- package/extensions/zalo/README.md +4 -4
- package/extensions/zalo/index.ts +3 -3
- package/extensions/zalo/node_modules/.bin/openclaw +16 -0
- package/extensions/zalo/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/zalo/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/zalo/package.json +6 -6
- package/extensions/zalo/src/accounts.ts +9 -9
- package/extensions/zalo/src/actions.ts +6 -6
- package/extensions/zalo/src/channel.directory.test.ts +2 -2
- package/extensions/zalo/src/channel.ts +20 -20
- package/extensions/zalo/src/config-schema.ts +1 -1
- package/extensions/zalo/src/monitor.ts +9 -9
- package/extensions/zalo/src/monitor.webhook.test.ts +2 -2
- package/extensions/zalo/src/onboarding.ts +27 -27
- package/extensions/zalo/src/runtime.ts +1 -1
- package/extensions/zalo/src/send.ts +2 -2
- package/extensions/zalo/src/status-issues.ts +1 -1
- package/extensions/zalo/src/token.ts +1 -1
- package/extensions/zalouser/CHANGELOG.md +9 -4
- package/extensions/zalouser/README.md +18 -18
- package/extensions/zalouser/index.ts +3 -3
- package/extensions/zalouser/node_modules/.bin/openclaw +16 -0
- package/extensions/zalouser/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/zalouser/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/zalouser/package.json +6 -6
- package/extensions/zalouser/src/accounts.ts +10 -10
- package/extensions/zalouser/src/channel.ts +27 -27
- package/extensions/zalouser/src/config-schema.ts +1 -1
- package/extensions/zalouser/src/monitor.ts +5 -5
- package/extensions/zalouser/src/onboarding.ts +32 -32
- package/extensions/zalouser/src/runtime.ts +1 -1
- package/extensions/zalouser/src/status-issues.ts +2 -2
- package/openclaw.mjs +14 -0
- package/package.json +35 -25
- package/scripts/postinstall.js +1 -0
- package/skills/1password/SKILL.md +3 -3
- package/skills/apple-notes/SKILL.md +2 -2
- package/skills/apple-reminders/SKILL.md +1 -1
- package/skills/bear-notes/SKILL.md +1 -1
- package/skills/bird/SKILL.md +1 -1
- package/skills/blogwatcher/SKILL.md +1 -1
- package/skills/blucli/SKILL.md +1 -1
- package/skills/bluebubbles/SKILL.md +1 -1
- package/skills/camsnap/SKILL.md +1 -1
- package/skills/canvas/SKILL.md +6 -6
- package/skills/clawdhub/SKILL.md +2 -2
- package/skills/coding-agent/SKILL.md +6 -6
- package/skills/discord/SKILL.md +5 -5
- package/skills/eightctl/SKILL.md +1 -1
- package/skills/food-order/SKILL.md +1 -1
- package/skills/gemini/SKILL.md +1 -1
- package/skills/gifgrep/SKILL.md +1 -1
- package/skills/github/SKILL.md +1 -1
- package/skills/gog/SKILL.md +1 -1
- package/skills/goplaces/SKILL.md +1 -1
- package/skills/himalaya/SKILL.md +1 -1
- package/skills/imsg/SKILL.md +1 -1
- package/skills/local-places/SKILL.md +1 -1
- package/skills/mcporter/SKILL.md +1 -1
- package/skills/model-usage/SKILL.md +1 -1
- package/skills/nano-banana-pro/SKILL.md +3 -3
- package/skills/nano-banana-pro/scripts/generate_image.py +1 -1
- package/skills/nano-pdf/SKILL.md +1 -1
- package/skills/notion/SKILL.md +1 -1
- package/skills/obsidian/SKILL.md +1 -1
- package/skills/openai-image-gen/SKILL.md +1 -1
- package/skills/openai-whisper/SKILL.md +1 -1
- package/skills/openai-whisper-api/SKILL.md +2 -2
- package/skills/openhue/SKILL.md +1 -1
- package/skills/oracle/SKILL.md +1 -1
- package/skills/ordercli/SKILL.md +1 -1
- package/skills/peekaboo/SKILL.md +1 -1
- package/skills/sag/SKILL.md +1 -1
- package/skills/session-logs/SKILL.md +1 -1
- package/skills/sherpa-onnx-tts/SKILL.md +2 -2
- package/skills/slack/SKILL.md +4 -4
- package/skills/songsee/SKILL.md +1 -1
- package/skills/sonoscli/SKILL.md +1 -1
- package/skills/spotify-player/SKILL.md +1 -1
- package/skills/summarize/SKILL.md +1 -1
- package/skills/things-mac/SKILL.md +3 -3
- package/skills/tmux/SKILL.md +7 -7
- package/skills/trello/SKILL.md +2 -2
- package/skills/video-frames/SKILL.md +1 -1
- package/skills/voice-call/SKILL.md +4 -4
- package/skills/wacli/SKILL.md +2 -2
- package/skills/weather/SKILL.md +1 -1
- package/assets/images/icon.png +0 -0
- package/dist/control-ui/assets/index-BAFzd9IE.css +0 -1
- package/dist/control-ui/assets/index-CxLFx0Ae.js.map +0 -1
- package/dist/control-ui/pixel_pig_icon.png +0 -0
- package/dist/daemon/legacy.js +0 -44
- package/dist/extension.js +0 -70
- /package/dist/config/{types.clawdbot.js → types.openclaw.js} +0 -0
- /package/docs/{whatsapp-clawd.jpg → whatsapp-openclaw.jpg} +0 -0
- /package/extensions/bluebubbles/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/copilot-proxy/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/diagnostics-otel/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/discord/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/google-antigravity-auth/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/google-gemini-cli-auth/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/googlechat/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/imessage/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/line/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/llm-task/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/lobster/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/matrix/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/mattermost/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/memory-core/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/msteams/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/nextcloud-talk/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/nostr/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/open-prose/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/qwen-portal-auth/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/signal/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/slack/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/telegram/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/tlon/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/twitch/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/voice-call/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/whatsapp/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/zalo/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/zalouser/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
package/docs/help/faq.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
summary: "Frequently asked questions about
|
|
2
|
+
summary: "Frequently asked questions about OpenClaw setup, configuration, and usage"
|
|
3
3
|
---
|
|
4
4
|
# FAQ
|
|
5
5
|
|
|
@@ -9,7 +9,7 @@ Quick answers plus deeper troubleshooting for real-world setups (local dev, VPS,
|
|
|
9
9
|
|
|
10
10
|
- [Quick start and first-run setup](#quick-start-and-firstrun-setup)
|
|
11
11
|
- [Im stuck whats the fastest way to get unstuck?](#im-stuck-whats-the-fastest-way-to-get-unstuck)
|
|
12
|
-
- [What’s the recommended way to install and set up
|
|
12
|
+
- [What’s the recommended way to install and set up OpenClaw?](#whats-the-recommended-way-to-install-and-set-up-openclaw)
|
|
13
13
|
- [How do I open the dashboard after onboarding?](#how-do-i-open-the-dashboard-after-onboarding)
|
|
14
14
|
- [How do I authenticate the dashboard (token) on localhost vs remote?](#how-do-i-authenticate-the-dashboard-token-on-localhost-vs-remote)
|
|
15
15
|
- [What runtime do I need?](#what-runtime-do-i-need)
|
|
@@ -18,18 +18,18 @@ Quick answers plus deeper troubleshooting for real-world setups (local dev, VPS,
|
|
|
18
18
|
- [It is stuck on "wake up my friend" / onboarding will not hatch. What now?](#it-is-stuck-on-wake-up-my-friend-onboarding-will-not-hatch-what-now)
|
|
19
19
|
- [Can I migrate my setup to a new machine (Mac mini) without redoing onboarding?](#can-i-migrate-my-setup-to-a-new-machine-mac-mini-without-redoing-onboarding)
|
|
20
20
|
- [Where do I see what’s new in the latest version?](#where-do-i-see-whats-new-in-the-latest-version)
|
|
21
|
-
- [I can't access docs.
|
|
21
|
+
- [I can't access docs.openclaw.ai (SSL error). What now?](#i-cant-access-docsopenclawai-ssl-error-what-now)
|
|
22
22
|
- [What’s the difference between stable and beta?](#whats-the-difference-between-stable-and-beta)
|
|
23
23
|
- [How do I install the beta version, and what’s the difference between beta and dev?](#how-do-i-install-the-beta-version-and-whats-the-difference-between-beta-and-dev)
|
|
24
24
|
- [How do I try the latest bits?](#how-do-i-try-the-latest-bits)
|
|
25
25
|
- [How long does install and onboarding usually take?](#how-long-does-install-and-onboarding-usually-take)
|
|
26
26
|
- [Installer stuck? How do I get more feedback?](#installer-stuck-how-do-i-get-more-feedback)
|
|
27
|
-
- [Windows install says git not found or
|
|
27
|
+
- [Windows install says git not found or openclaw not recognized](#windows-install-says-git-not-found-or-openclaw-not-recognized)
|
|
28
28
|
- [The docs didn’t answer my question - how do I get a better answer?](#the-docs-didnt-answer-my-question-how-do-i-get-a-better-answer)
|
|
29
|
-
- [How do I install
|
|
30
|
-
- [How do I install
|
|
29
|
+
- [How do I install OpenClaw on Linux?](#how-do-i-install-openclaw-on-linux)
|
|
30
|
+
- [How do I install OpenClaw on a VPS?](#how-do-i-install-openclaw-on-a-vps)
|
|
31
31
|
- [Where are the cloud/VPS install guides?](#where-are-the-cloudvps-install-guides)
|
|
32
|
-
- [Can I ask
|
|
32
|
+
- [Can I ask OpenClaw to update itself?](#can-i-ask-openclaw-to-update-itself)
|
|
33
33
|
- [What does the onboarding wizard actually do?](#what-does-the-onboarding-wizard-actually-do)
|
|
34
34
|
- [Do I need a Claude or OpenAI subscription to run this?](#do-i-need-a-claude-or-openai-subscription-to-run-this)
|
|
35
35
|
- [Can I use Claude Max subscription without an API key](#can-i-use-claude-max-subscription-without-an-api-key)
|
|
@@ -45,24 +45,24 @@ Quick answers plus deeper troubleshooting for real-world setups (local dev, VPS,
|
|
|
45
45
|
- [How do I keep hosted model traffic in a specific region?](#how-do-i-keep-hosted-model-traffic-in-a-specific-region)
|
|
46
46
|
- [Do I have to buy a Mac Mini to install this?](#do-i-have-to-buy-a-mac-mini-to-install-this)
|
|
47
47
|
- [Do I need a Mac mini for iMessage support?](#do-i-need-a-mac-mini-for-imessage-support)
|
|
48
|
-
- [If I buy a Mac mini to run
|
|
48
|
+
- [If I buy a Mac mini to run OpenClaw, can I connect it to my MacBook Pro?](#if-i-buy-a-mac-mini-to-run-openclaw-can-i-connect-it-to-my-macbook-pro)
|
|
49
49
|
- [Can I use Bun?](#can-i-use-bun)
|
|
50
50
|
- [Telegram: what goes in `allowFrom`?](#telegram-what-goes-in-allowfrom)
|
|
51
|
-
- [Can multiple people use one WhatsApp number with different
|
|
51
|
+
- [Can multiple people use one WhatsApp number with different OpenClaw instances?](#can-multiple-people-use-one-whatsapp-number-with-different-openclaw-instances)
|
|
52
52
|
- [Can I run a "fast chat" agent and an "Opus for coding" agent?](#can-i-run-a-fast-chat-agent-and-an-opus-for-coding-agent)
|
|
53
53
|
- [Does Homebrew work on Linux?](#does-homebrew-work-on-linux)
|
|
54
54
|
- [What’s the difference between the hackable (git) install and npm install?](#whats-the-difference-between-the-hackable-git-install-and-npm-install)
|
|
55
55
|
- [Can I switch between npm and git installs later?](#can-i-switch-between-npm-and-git-installs-later)
|
|
56
56
|
- [Should I run the Gateway on my laptop or a VPS?](#should-i-run-the-gateway-on-my-laptop-or-a-vps)
|
|
57
|
-
- [How important is it to run
|
|
57
|
+
- [How important is it to run OpenClaw on a dedicated machine?](#how-important-is-it-to-run-openclaw-on-a-dedicated-machine)
|
|
58
58
|
- [What are the minimum VPS requirements and recommended OS?](#what-are-the-minimum-vps-requirements-and-recommended-os)
|
|
59
|
-
- [Can I run
|
|
60
|
-
- [What is
|
|
61
|
-
- [What is
|
|
59
|
+
- [Can I run OpenClaw in a VM and what are the requirements](#can-i-run-openclaw-in-a-vm-and-what-are-the-requirements)
|
|
60
|
+
- [What is OpenClaw?](#what-is-openclaw)
|
|
61
|
+
- [What is OpenClaw, in one paragraph?](#what-is-openclaw-in-one-paragraph)
|
|
62
62
|
- [What’s the value proposition?](#whats-the-value-proposition)
|
|
63
63
|
- [I just set it up what should I do first](#i-just-set-it-up-what-should-i-do-first)
|
|
64
|
-
- [What are the top five everyday use cases for
|
|
65
|
-
- [Can
|
|
64
|
+
- [What are the top five everyday use cases for OpenClaw](#what-are-the-top-five-everyday-use-cases-for-openclaw)
|
|
65
|
+
- [Can OpenClaw help with lead gen outreach ads and blogs for a SaaS](#can-openclaw-help-with-lead-gen-outreach-ads-and-blogs-for-a-saas)
|
|
66
66
|
- [What are the advantages vs Claude Code for web development?](#what-are-the-advantages-vs-claude-code-for-web-development)
|
|
67
67
|
- [Skills and automation](#skills-and-automation)
|
|
68
68
|
- [How do I customize skills without keeping the repo dirty?](#how-do-i-customize-skills-without-keeping-the-repo-dirty)
|
|
@@ -71,7 +71,7 @@ Quick answers plus deeper troubleshooting for real-world setups (local dev, VPS,
|
|
|
71
71
|
- [The bot freezes while doing heavy work. How do I offload that?](#the-bot-freezes-while-doing-heavy-work-how-do-i-offload-that)
|
|
72
72
|
- [Cron or reminders do not fire. What should I check?](#cron-or-reminders-do-not-fire-what-should-i-check)
|
|
73
73
|
- [How do I install skills on Linux?](#how-do-i-install-skills-on-linux)
|
|
74
|
-
- [Can
|
|
74
|
+
- [Can OpenClaw run tasks on a schedule or continuously in the background?](#can-openclaw-run-tasks-on-a-schedule-or-continuously-in-the-background)
|
|
75
75
|
- [Can I run Apple/macOS-only skills from Linux?](#can-i-run-applemacosonly-skills-from-linux)
|
|
76
76
|
- [Do you have a Notion or HeyGen integration?](#do-you-have-a-notion-or-heygen-integration)
|
|
77
77
|
- [How do I install the Chrome extension for browser takeover?](#how-do-i-install-the-chrome-extension-for-browser-takeover)
|
|
@@ -83,11 +83,11 @@ Quick answers plus deeper troubleshooting for real-world setups (local dev, VPS,
|
|
|
83
83
|
- [Does memory persist forever? What are the limits?](#does-memory-persist-forever-what-are-the-limits)
|
|
84
84
|
- [Does semantic memory search require an OpenAI API key?](#does-semantic-memory-search-require-an-openai-api-key)
|
|
85
85
|
- [Where things live on disk](#where-things-live-on-disk)
|
|
86
|
-
- [Is all data used with
|
|
87
|
-
- [Where does
|
|
86
|
+
- [Is all data used with OpenClaw saved locally?](#is-all-data-used-with-openclaw-saved-locally)
|
|
87
|
+
- [Where does OpenClaw store its data?](#where-does-openclaw-store-its-data)
|
|
88
88
|
- [Where should AGENTS.md / SOUL.md / USER.md / MEMORY.md live?](#where-should-agentsmd-soulmd-usermd-memorymd-live)
|
|
89
89
|
- [What’s the recommended backup strategy?](#whats-the-recommended-backup-strategy)
|
|
90
|
-
- [How do I completely uninstall
|
|
90
|
+
- [How do I completely uninstall OpenClaw?](#how-do-i-completely-uninstall-openclaw)
|
|
91
91
|
- [Can agents work outside the workspace?](#can-agents-work-outside-the-workspace)
|
|
92
92
|
- [I’m in remote mode - where is the session store?](#im-in-remote-mode-where-is-the-session-store)
|
|
93
93
|
- [Config basics](#config-basics)
|
|
@@ -98,13 +98,13 @@ Quick answers plus deeper troubleshooting for real-world setups (local dev, VPS,
|
|
|
98
98
|
- [How do I enable web search (and web fetch)?](#how-do-i-enable-web-search-and-web-fetch)
|
|
99
99
|
- [config.apply wiped my config. How do I recover and avoid this?](#configapply-wiped-my-config-how-do-i-recover-and-avoid-this)
|
|
100
100
|
- [How do I run a central Gateway with specialized workers across devices?](#how-do-i-run-a-central-gateway-with-specialized-workers-across-devices)
|
|
101
|
-
- [Can the
|
|
101
|
+
- [Can the OpenClaw browser run headless?](#can-the-openclaw-browser-run-headless)
|
|
102
102
|
- [How do I use Brave for browser control?](#how-do-i-use-brave-for-browser-control)
|
|
103
103
|
- [Remote gateways + nodes](#remote-gateways-nodes)
|
|
104
104
|
- [How do commands propagate between Telegram, the gateway, and nodes?](#how-do-commands-propagate-between-telegram-the-gateway-and-nodes)
|
|
105
105
|
- [How can my agent access my computer if the Gateway is hosted remotely?](#how-can-my-agent-access-my-computer-if-the-gateway-is-hosted-remotely)
|
|
106
106
|
- [Tailscale is connected but I get no replies. What now?](#tailscale-is-connected-but-i-get-no-replies-what-now)
|
|
107
|
-
- [Can two
|
|
107
|
+
- [Can two OpenClaw instances talk to each other (local + VPS)?](#can-two-openclaw-instances-talk-to-each-other-local-vps)
|
|
108
108
|
- [Do I need separate VPSes for multiple agents](#do-i-need-separate-vpses-for-multiple-agents)
|
|
109
109
|
- [Is there a benefit to using a node on my personal laptop instead of SSH from a VPS?](#is-there-a-benefit-to-using-a-node-on-my-personal-laptop-instead-of-ssh-from-a-vps)
|
|
110
110
|
- [Do nodes run a gateway service?](#do-nodes-run-a-gateway-service)
|
|
@@ -114,21 +114,21 @@ Quick answers plus deeper troubleshooting for real-world setups (local dev, VPS,
|
|
|
114
114
|
- [How do I connect a Mac node to a remote Gateway (Tailscale Serve)?](#how-do-i-connect-a-mac-node-to-a-remote-gateway-tailscale-serve)
|
|
115
115
|
- [Should I install on a second laptop or just add a node?](#should-i-install-on-a-second-laptop-or-just-add-a-node)
|
|
116
116
|
- [Env vars and .env loading](#env-vars-and-env-loading)
|
|
117
|
-
- [How does
|
|
117
|
+
- [How does OpenClaw load environment variables?](#how-does-openclaw-load-environment-variables)
|
|
118
118
|
- [“I started the Gateway via the service and my env vars disappeared.” What now?](#i-started-the-gateway-via-the-service-and-my-env-vars-disappeared-what-now)
|
|
119
119
|
- [I set `COPILOT_GITHUB_TOKEN`, but models status shows “Shell env: off.” Why?](#i-set-copilotgithubtoken-but-models-status-shows-shell-env-off-why)
|
|
120
120
|
- [Sessions & multiple chats](#sessions-multiple-chats)
|
|
121
121
|
- [How do I start a fresh conversation?](#how-do-i-start-a-fresh-conversation)
|
|
122
122
|
- [Do sessions reset automatically if I never send `/new`?](#do-sessions-reset-automatically-if-i-never-send-new)
|
|
123
|
-
- [Is there a way to make a team of
|
|
123
|
+
- [Is there a way to make a team of OpenClaw instances one CEO and many agents](#is-there-a-way-to-make-a-team-of-openclaw-instances-one-ceo-and-many-agents)
|
|
124
124
|
- [Why did context get truncated mid-task? How do I prevent it?](#why-did-context-get-truncated-midtask-how-do-i-prevent-it)
|
|
125
|
-
- [How do I completely reset
|
|
125
|
+
- [How do I completely reset OpenClaw but keep it installed?](#how-do-i-completely-reset-openclaw-but-keep-it-installed)
|
|
126
126
|
- [I’m getting “context too large” errors - how do I reset or compact?](#im-getting-context-too-large-errors-how-do-i-reset-or-compact)
|
|
127
127
|
- [Why am I seeing “LLM request rejected: messages.N.content.X.tool_use.input: Field required”?](#why-am-i-seeing-llm-request-rejected-messagesncontentxtooluseinput-field-required)
|
|
128
128
|
- [Why am I getting heartbeat messages every 30 minutes?](#why-am-i-getting-heartbeat-messages-every-30-minutes)
|
|
129
129
|
- [Do I need to add a “bot account” to a WhatsApp group?](#do-i-need-to-add-a-bot-account-to-a-whatsapp-group)
|
|
130
130
|
- [How do I get the JID of a WhatsApp group?](#how-do-i-get-the-jid-of-a-whatsapp-group)
|
|
131
|
-
- [Why doesn’t
|
|
131
|
+
- [Why doesn’t OpenClaw reply in a group?](#why-doesnt-openclaw-reply-in-a-group)
|
|
132
132
|
- [Do groups/threads share context with DMs?](#do-groupsthreads-share-context-with-dms)
|
|
133
133
|
- [How many workspaces and agents can I create?](#how-many-workspaces-and-agents-can-i-create)
|
|
134
134
|
- [Can I run multiple bots or chats at the same time (Slack), and how should I set that up?](#can-i-run-multiple-bots-or-chats-at-the-same-time-slack-and-how-should-i-set-that-up)
|
|
@@ -137,7 +137,7 @@ Quick answers plus deeper troubleshooting for real-world setups (local dev, VPS,
|
|
|
137
137
|
- [What model do you recommend?](#what-model-do-you-recommend)
|
|
138
138
|
- [How do I switch models without wiping my config?](#how-do-i-switch-models-without-wiping-my-config)
|
|
139
139
|
- [Can I use self-hosted models (llama.cpp, vLLM, Ollama)?](#can-i-use-selfhosted-models-llamacpp-vllm-ollama)
|
|
140
|
-
- [What do
|
|
140
|
+
- [What do OpenClaw, Flawd, and Krill use for models?](#what-do-openclaw-flawd-and-krill-use-for-models)
|
|
141
141
|
- [How do I switch models on the fly (without restarting)?](#how-do-i-switch-models-on-the-fly-without-restarting)
|
|
142
142
|
- [Can I use GPT 5.2 for daily tasks and Codex 5.2 for coding](#can-i-use-gpt-52-for-daily-tasks-and-codex-52-for-coding)
|
|
143
143
|
- [Why do I see “Model … is not allowed” and then no reply?](#why-do-i-see-model-is-not-allowed-and-then-no-reply)
|
|
@@ -158,10 +158,10 @@ Quick answers plus deeper troubleshooting for real-world setups (local dev, VPS,
|
|
|
158
158
|
- [OAuth vs API key: what’s the difference?](#oauth-vs-api-key-whats-the-difference)
|
|
159
159
|
- [Gateway: ports, “already running”, and remote mode](#gateway-ports-already-running-and-remote-mode)
|
|
160
160
|
- [What port does the Gateway use?](#what-port-does-the-gateway-use)
|
|
161
|
-
- [Why does `
|
|
162
|
-
- [Why does `
|
|
161
|
+
- [Why does `openclaw gateway status` say `Runtime: running` but `RPC probe: failed`?](#why-does-openclaw-gateway-status-say-runtime-running-but-rpc-probe-failed)
|
|
162
|
+
- [Why does `openclaw gateway status` show `Config (cli)` and `Config (service)` different?](#why-does-openclaw-gateway-status-show-config-cli-and-config-service-different)
|
|
163
163
|
- [What does “another gateway instance is already listening” mean?](#what-does-another-gateway-instance-is-already-listening-mean)
|
|
164
|
-
- [How do I run
|
|
164
|
+
- [How do I run OpenClaw in remote mode (client connects to a Gateway elsewhere)?](#how-do-i-run-openclaw-in-remote-mode-client-connects-to-a-gateway-elsewhere)
|
|
165
165
|
- [The Control UI says “unauthorized” (or keeps reconnecting). What now?](#the-control-ui-says-unauthorized-or-keeps-reconnecting-what-now)
|
|
166
166
|
- [I set `gateway.bind: "tailnet"` but it can’t bind / nothing listens](#i-set-gatewaybind-tailnet-but-it-cant-bind-nothing-listens)
|
|
167
167
|
- [Can I run multiple Gateways on the same host?](#can-i-run-multiple-gateways-on-the-same-host)
|
|
@@ -169,18 +169,18 @@ Quick answers plus deeper troubleshooting for real-world setups (local dev, VPS,
|
|
|
169
169
|
- [Logging and debugging](#logging-and-debugging)
|
|
170
170
|
- [Where are logs?](#where-are-logs)
|
|
171
171
|
- [How do I start/stop/restart the Gateway service?](#how-do-i-startstoprestart-the-gateway-service)
|
|
172
|
-
- [I closed my terminal on Windows - how do I restart
|
|
172
|
+
- [I closed my terminal on Windows - how do I restart OpenClaw?](#i-closed-my-terminal-on-windows-how-do-i-restart-openclaw)
|
|
173
173
|
- [The Gateway is up but replies never arrive. What should I check?](#the-gateway-is-up-but-replies-never-arrive-what-should-i-check)
|
|
174
174
|
- ["Disconnected from gateway: no reason" - what now?](#disconnected-from-gateway-no-reason-what-now)
|
|
175
175
|
- [Telegram setMyCommands fails with network errors. What should I check?](#telegram-setmycommands-fails-with-network-errors-what-should-i-check)
|
|
176
176
|
- [TUI shows no output. What should I check?](#tui-shows-no-output-what-should-i-check)
|
|
177
177
|
- [How do I completely stop then start the Gateway?](#how-do-i-completely-stop-then-start-the-gateway)
|
|
178
|
-
- [ELI5: `
|
|
178
|
+
- [ELI5: `openclaw gateway restart` vs `openclaw gateway`](#eli5-openclaw-gateway-restart-vs-openclaw-gateway)
|
|
179
179
|
- [What’s the fastest way to get more details when something fails?](#whats-the-fastest-way-to-get-more-details-when-something-fails)
|
|
180
180
|
- [Media & attachments](#media-attachments)
|
|
181
181
|
- [My skill generated an image/PDF, but nothing was sent](#my-skill-generated-an-imagepdf-but-nothing-was-sent)
|
|
182
182
|
- [Security and access control](#security-and-access-control)
|
|
183
|
-
- [Is it safe to expose
|
|
183
|
+
- [Is it safe to expose OpenClaw to inbound DMs?](#is-it-safe-to-expose-openclaw-to-inbound-dms)
|
|
184
184
|
- [Is prompt injection only a concern for public bots?](#is-prompt-injection-only-a-concern-for-public-bots)
|
|
185
185
|
- [Should my bot have its own email GitHub account or phone number](#should-my-bot-have-its-own-email-github-account-or-phone-number)
|
|
186
186
|
- [Can I give it autonomy over my text messages and is that safe](#can-i-give-it-autonomy-over-my-text-messages-and-is-that-safe)
|
|
@@ -197,48 +197,48 @@ Quick answers plus deeper troubleshooting for real-world setups (local dev, VPS,
|
|
|
197
197
|
|
|
198
198
|
1) **Quick status (first check)**
|
|
199
199
|
```bash
|
|
200
|
-
|
|
200
|
+
openclaw status
|
|
201
201
|
```
|
|
202
202
|
Fast local summary: OS + update, gateway/service reachability, agents/sessions, provider config + runtime issues (when gateway is reachable).
|
|
203
203
|
|
|
204
204
|
2) **Pasteable report (safe to share)**
|
|
205
205
|
```bash
|
|
206
|
-
|
|
206
|
+
openclaw status --all
|
|
207
207
|
```
|
|
208
208
|
Read-only diagnosis with log tail (tokens redacted).
|
|
209
209
|
|
|
210
210
|
3) **Daemon + port state**
|
|
211
211
|
```bash
|
|
212
|
-
|
|
212
|
+
openclaw gateway status
|
|
213
213
|
```
|
|
214
214
|
Shows supervisor runtime vs RPC reachability, the probe target URL, and which config the service likely used.
|
|
215
215
|
|
|
216
216
|
4) **Deep probes**
|
|
217
217
|
```bash
|
|
218
|
-
|
|
218
|
+
openclaw status --deep
|
|
219
219
|
```
|
|
220
220
|
Runs gateway health checks + provider probes (requires a reachable gateway). See [Health](/gateway/health).
|
|
221
221
|
|
|
222
222
|
5) **Tail the latest log**
|
|
223
223
|
```bash
|
|
224
|
-
|
|
224
|
+
openclaw logs --follow
|
|
225
225
|
```
|
|
226
226
|
If RPC is down, fall back to:
|
|
227
227
|
```bash
|
|
228
|
-
tail -f "$(ls -t /tmp/
|
|
228
|
+
tail -f "$(ls -t /tmp/openclaw/openclaw-*.log | head -1)"
|
|
229
229
|
```
|
|
230
230
|
File logs are separate from service logs; see [Logging](/logging) and [Troubleshooting](/gateway/troubleshooting).
|
|
231
231
|
|
|
232
232
|
6) **Run the doctor (repairs)**
|
|
233
233
|
```bash
|
|
234
|
-
|
|
234
|
+
openclaw doctor
|
|
235
235
|
```
|
|
236
236
|
Repairs/migrates config/state + runs health checks. See [Doctor](/gateway/doctor).
|
|
237
237
|
|
|
238
238
|
7) **Gateway snapshot**
|
|
239
239
|
```bash
|
|
240
|
-
|
|
241
|
-
|
|
240
|
+
openclaw health --json
|
|
241
|
+
openclaw health --verbose # shows the target URL + config path on errors
|
|
242
242
|
```
|
|
243
243
|
Asks the running gateway for a full snapshot (WS-only). See [Health](/gateway/health).
|
|
244
244
|
|
|
@@ -258,10 +258,10 @@ setup (PATH, services, permissions, auth files). Give them the **full source che
|
|
|
258
258
|
the hackable (git) install:
|
|
259
259
|
|
|
260
260
|
```bash
|
|
261
|
-
curl -fsSL https://
|
|
261
|
+
curl -fsSL https://openclaw.bot/install.sh | bash -s -- --install-method git
|
|
262
262
|
```
|
|
263
263
|
|
|
264
|
-
This installs
|
|
264
|
+
This installs OpenClaw **from a git checkout**, so the agent can read the code + docs and
|
|
265
265
|
reason about the exact version you are running. You can always switch back to stable later
|
|
266
266
|
by re-running the installer without `--install-method git`.
|
|
267
267
|
|
|
@@ -269,35 +269,35 @@ Tip: ask the agent to **plan and supervise** the fix (step-by-step), then execut
|
|
|
269
269
|
necessary commands. That keeps changes small and easier to audit.
|
|
270
270
|
|
|
271
271
|
If you discover a real bug or fix, please file a GitHub issue or send a PR:
|
|
272
|
-
https://github.com/
|
|
273
|
-
https://github.com/
|
|
272
|
+
https://github.com/openclaw/openclaw/issues
|
|
273
|
+
https://github.com/openclaw/openclaw/pulls
|
|
274
274
|
|
|
275
275
|
Start with these commands (share outputs when asking for help):
|
|
276
276
|
|
|
277
277
|
```bash
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
278
|
+
openclaw status
|
|
279
|
+
openclaw models status
|
|
280
|
+
openclaw doctor
|
|
281
281
|
```
|
|
282
282
|
|
|
283
283
|
What they do:
|
|
284
|
-
- `
|
|
285
|
-
- `
|
|
286
|
-
- `
|
|
284
|
+
- `openclaw status`: quick snapshot of gateway/agent health + basic config.
|
|
285
|
+
- `openclaw models status`: checks provider auth + model availability.
|
|
286
|
+
- `openclaw doctor`: validates and repairs common config/state issues.
|
|
287
287
|
|
|
288
|
-
Other useful CLI checks: `
|
|
289
|
-
`
|
|
288
|
+
Other useful CLI checks: `openclaw status --all`, `openclaw logs --follow`,
|
|
289
|
+
`openclaw gateway status`, `openclaw health --verbose`.
|
|
290
290
|
|
|
291
291
|
Quick debug loop: [First 60 seconds if something's broken](#first-60-seconds-if-somethings-broken).
|
|
292
292
|
Install docs: [Install](/install), [Installer flags](/install/installer), [Updating](/install/updating).
|
|
293
293
|
|
|
294
|
-
### Whats the recommended way to install and set up
|
|
294
|
+
### Whats the recommended way to install and set up OpenClaw
|
|
295
295
|
|
|
296
296
|
The repo recommends running from source and using the onboarding wizard:
|
|
297
297
|
|
|
298
298
|
```bash
|
|
299
|
-
curl -fsSL https://
|
|
300
|
-
|
|
299
|
+
curl -fsSL https://openclaw.bot/install.sh | bash
|
|
300
|
+
openclaw onboard --install-daemon
|
|
301
301
|
```
|
|
302
302
|
|
|
303
303
|
The wizard can also build UI assets automatically. After onboarding, you typically run the Gateway on port **18789**.
|
|
@@ -305,15 +305,15 @@ The wizard can also build UI assets automatically. After onboarding, you typical
|
|
|
305
305
|
From source (contributors/dev):
|
|
306
306
|
|
|
307
307
|
```bash
|
|
308
|
-
git clone https://github.com/
|
|
309
|
-
cd
|
|
308
|
+
git clone https://github.com/openclaw/openclaw.git
|
|
309
|
+
cd openclaw
|
|
310
310
|
pnpm install
|
|
311
311
|
pnpm build
|
|
312
312
|
pnpm ui:build # auto-installs UI deps on first run
|
|
313
|
-
|
|
313
|
+
openclaw onboard
|
|
314
314
|
```
|
|
315
315
|
|
|
316
|
-
If you don’t have a global install yet, run it via `pnpm
|
|
316
|
+
If you don’t have a global install yet, run it via `pnpm openclaw onboard`.
|
|
317
317
|
|
|
318
318
|
### How do I open the dashboard after onboarding
|
|
319
319
|
|
|
@@ -323,13 +323,13 @@ The wizard now opens your browser with a tokenized dashboard URL right after onb
|
|
|
323
323
|
|
|
324
324
|
**Localhost (same machine):**
|
|
325
325
|
- Open `http://127.0.0.1:18789/`.
|
|
326
|
-
- If it asks for auth, run `
|
|
327
|
-
- The token is the same value as `gateway.auth.token` (or `
|
|
326
|
+
- If it asks for auth, run `openclaw dashboard` and use the tokenized link (`?token=...`).
|
|
327
|
+
- The token is the same value as `gateway.auth.token` (or `OPENCLAW_GATEWAY_TOKEN`) and is stored by the UI after first load.
|
|
328
328
|
|
|
329
329
|
**Not on localhost:**
|
|
330
|
-
- **Tailscale Serve** (recommended): keep bind loopback, run `
|
|
331
|
-
- **Tailnet bind**: run `
|
|
332
|
-
- **SSH tunnel**: `ssh -N -L 18789:127.0.0.1:18789 user@host` then open `http://127.0.0.1:18789/?token=...` from `
|
|
330
|
+
- **Tailscale Serve** (recommended): keep bind loopback, run `openclaw gateway --tailscale serve`, open `https://<magicdns>/`. If `gateway.auth.allowTailscale` is `true`, identity headers satisfy auth (no token).
|
|
331
|
+
- **Tailnet bind**: run `openclaw gateway --bind tailnet --token "<token>"`, open `http://<tailscale-ip>:18789/`, paste token in dashboard settings.
|
|
332
|
+
- **SSH tunnel**: `ssh -N -L 18789:127.0.0.1:18789 user@host` then open `http://127.0.0.1:18789/?token=...` from `openclaw dashboard`.
|
|
333
333
|
|
|
334
334
|
See [Dashboard](/web/dashboard) and [Web surfaces](/web) for bind modes and auth details.
|
|
335
335
|
|
|
@@ -367,17 +367,17 @@ and tokens stay at 0, the agent never ran.
|
|
|
367
367
|
|
|
368
368
|
1) Restart the Gateway:
|
|
369
369
|
```bash
|
|
370
|
-
|
|
370
|
+
openclaw gateway restart
|
|
371
371
|
```
|
|
372
372
|
2) Check status + auth:
|
|
373
373
|
```bash
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
374
|
+
openclaw status
|
|
375
|
+
openclaw models status
|
|
376
|
+
openclaw logs --follow
|
|
377
377
|
```
|
|
378
378
|
3) If it still hangs, run:
|
|
379
379
|
```bash
|
|
380
|
-
|
|
380
|
+
openclaw doctor
|
|
381
381
|
```
|
|
382
382
|
|
|
383
383
|
If the Gateway is remote, ensure the tunnel/Tailscale connection is up and that the UI
|
|
@@ -389,40 +389,40 @@ Yes. Copy the **state directory** and **workspace**, then run Doctor once. This
|
|
|
389
389
|
keeps your bot “exactly the same” (memory, session history, auth, and channel
|
|
390
390
|
state) as long as you copy **both** locations:
|
|
391
391
|
|
|
392
|
-
1) Install
|
|
393
|
-
2) Copy `$
|
|
394
|
-
3) Copy your workspace (default:
|
|
395
|
-
4) Run `
|
|
392
|
+
1) Install OpenClaw on the new machine.
|
|
393
|
+
2) Copy `$OPENCLAW_STATE_DIR` (default: `~/.openclaw`) from the old machine.
|
|
394
|
+
3) Copy your workspace (default: `~/.openclaw/workspace`).
|
|
395
|
+
4) Run `openclaw doctor` and restart the Gateway service.
|
|
396
396
|
|
|
397
397
|
That preserves config, auth profiles, WhatsApp creds, sessions, and memory. If you’re in
|
|
398
398
|
remote mode, remember the gateway host owns the session store and workspace.
|
|
399
399
|
|
|
400
400
|
**Important:** if you only commit/push your workspace to GitHub, you’re backing
|
|
401
401
|
up **memory + bootstrap files**, but **not** session history or auth. Those live
|
|
402
|
-
under `~/.
|
|
402
|
+
under `~/.openclaw/` (for example `~/.openclaw/agents/<agentId>/sessions/`).
|
|
403
403
|
|
|
404
|
-
Related: [Migrating](/install/migrating), [Where things live on disk](/help/faq#where-does-
|
|
404
|
+
Related: [Migrating](/install/migrating), [Where things live on disk](/help/faq#where-does-openclaw-store-its-data),
|
|
405
405
|
[Agent workspace](/concepts/agent-workspace), [Doctor](/gateway/doctor),
|
|
406
406
|
[Remote mode](/gateway/remote).
|
|
407
407
|
|
|
408
408
|
### Where do I see whats new in the latest version
|
|
409
409
|
|
|
410
410
|
Check the GitHub changelog:
|
|
411
|
-
https://github.com/
|
|
411
|
+
https://github.com/openclaw/openclaw/blob/main/CHANGELOG.md
|
|
412
412
|
|
|
413
413
|
Newest entries are at the top. If the top section is marked **Unreleased**, the next dated
|
|
414
414
|
section is the latest shipped version. Entries are grouped by **Highlights**, **Changes**, and
|
|
415
415
|
**Fixes** (plus docs/other sections when needed).
|
|
416
416
|
|
|
417
|
-
### I cant access
|
|
417
|
+
### I cant access docs.openclaw.ai SSL error What now
|
|
418
418
|
|
|
419
|
-
Some Comcast/Xfinity connections incorrectly block `docs.
|
|
420
|
-
Advanced Security. Disable it or allowlist `docs.
|
|
421
|
-
detail: [Troubleshooting](/help/troubleshooting#
|
|
419
|
+
Some Comcast/Xfinity connections incorrectly block `docs.openclaw.ai` via Xfinity
|
|
420
|
+
Advanced Security. Disable it or allowlist `docs.openclaw.ai`, then retry. More
|
|
421
|
+
detail: [Troubleshooting](/help/troubleshooting#docsopenclawai-shows-an-ssl-error-comcastxfinity).
|
|
422
422
|
Please help us unblock it by reporting here: https://spa.xfinity.com/check_url_status.
|
|
423
423
|
|
|
424
424
|
If you still can't reach the site, the docs are mirrored on GitHub:
|
|
425
|
-
https://github.com/
|
|
425
|
+
https://github.com/openclaw/openclaw/tree/main/docs
|
|
426
426
|
|
|
427
427
|
### Whats the difference between stable and beta
|
|
428
428
|
|
|
@@ -435,7 +435,7 @@ that same version to `latest`**. That’s why beta and stable can point at the
|
|
|
435
435
|
**same version**.
|
|
436
436
|
|
|
437
437
|
See what changed:
|
|
438
|
-
https://github.com/
|
|
438
|
+
https://github.com/openclaw/openclaw/blob/main/CHANGELOG.md
|
|
439
439
|
|
|
440
440
|
### How do I install the beta version and whats the difference between beta and dev
|
|
441
441
|
|
|
@@ -445,15 +445,15 @@ https://github.com/moltbot/moltbot/blob/main/CHANGELOG.md
|
|
|
445
445
|
One‑liners (macOS/Linux):
|
|
446
446
|
|
|
447
447
|
```bash
|
|
448
|
-
curl -fsSL --proto '=https' --tlsv1.2 https://
|
|
448
|
+
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.bot/install.sh | bash -s -- --beta
|
|
449
449
|
```
|
|
450
450
|
|
|
451
451
|
```bash
|
|
452
|
-
curl -fsSL --proto '=https' --tlsv1.2 https://
|
|
452
|
+
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.bot/install.sh | bash -s -- --install-method git
|
|
453
453
|
```
|
|
454
454
|
|
|
455
455
|
Windows installer (PowerShell):
|
|
456
|
-
https://
|
|
456
|
+
https://openclaw.ai/install.ps1
|
|
457
457
|
|
|
458
458
|
More detail: [Development channels](/install/development-channels) and [Installer flags](/install/installer).
|
|
459
459
|
|
|
@@ -472,20 +472,20 @@ Two options:
|
|
|
472
472
|
|
|
473
473
|
1) **Dev channel (git checkout):**
|
|
474
474
|
```bash
|
|
475
|
-
|
|
475
|
+
openclaw update --channel dev
|
|
476
476
|
```
|
|
477
477
|
This switches to the `main` branch and updates from source.
|
|
478
478
|
|
|
479
479
|
2) **Hackable install (from the installer site):**
|
|
480
480
|
```bash
|
|
481
|
-
curl -fsSL https://
|
|
481
|
+
curl -fsSL https://openclaw.bot/install.sh | bash -s -- --install-method git
|
|
482
482
|
```
|
|
483
483
|
That gives you a local repo you can edit, then update via git.
|
|
484
484
|
|
|
485
485
|
If you prefer a clean clone manually, use:
|
|
486
486
|
```bash
|
|
487
|
-
git clone https://github.com/
|
|
488
|
-
cd
|
|
487
|
+
git clone https://github.com/openclaw/openclaw.git
|
|
488
|
+
cd openclaw
|
|
489
489
|
pnpm install
|
|
490
490
|
pnpm build
|
|
491
491
|
```
|
|
@@ -498,24 +498,24 @@ Docs: [Update](/cli/update), [Development channels](/install/development-channel
|
|
|
498
498
|
Re-run the installer with **verbose output**:
|
|
499
499
|
|
|
500
500
|
```bash
|
|
501
|
-
curl -fsSL https://
|
|
501
|
+
curl -fsSL https://openclaw.bot/install.sh | bash -s -- --verbose
|
|
502
502
|
```
|
|
503
503
|
|
|
504
504
|
Beta install with verbose:
|
|
505
505
|
|
|
506
506
|
```bash
|
|
507
|
-
curl -fsSL https://
|
|
507
|
+
curl -fsSL https://openclaw.bot/install.sh | bash -s -- --beta --verbose
|
|
508
508
|
```
|
|
509
509
|
|
|
510
510
|
For a hackable (git) install:
|
|
511
511
|
|
|
512
512
|
```bash
|
|
513
|
-
curl -fsSL https://
|
|
513
|
+
curl -fsSL https://openclaw.bot/install.sh | bash -s -- --install-method git --verbose
|
|
514
514
|
```
|
|
515
515
|
|
|
516
516
|
More options: [Installer flags](/install/installer).
|
|
517
517
|
|
|
518
|
-
### Windows install says git not found or
|
|
518
|
+
### Windows install says git not found or openclaw not recognized
|
|
519
519
|
|
|
520
520
|
Two common Windows issues:
|
|
521
521
|
|
|
@@ -523,7 +523,7 @@ Two common Windows issues:
|
|
|
523
523
|
- Install **Git for Windows** and make sure `git` is on your PATH.
|
|
524
524
|
- Close and reopen PowerShell, then re-run the installer.
|
|
525
525
|
|
|
526
|
-
**2)
|
|
526
|
+
**2) openclaw is not recognized after install**
|
|
527
527
|
- Your npm global bin folder is not on PATH.
|
|
528
528
|
- Check the path:
|
|
529
529
|
```powershell
|
|
@@ -541,12 +541,12 @@ Use the **hackable (git) install** so you have the full source and docs locally,
|
|
|
541
541
|
your bot (or Claude/Codex) *from that folder* so it can read the repo and answer precisely.
|
|
542
542
|
|
|
543
543
|
```bash
|
|
544
|
-
curl -fsSL https://
|
|
544
|
+
curl -fsSL https://openclaw.bot/install.sh | bash -s -- --install-method git
|
|
545
545
|
```
|
|
546
546
|
|
|
547
547
|
More detail: [Install](/install) and [Installer flags](/install/installer).
|
|
548
548
|
|
|
549
|
-
### How do I install
|
|
549
|
+
### How do I install OpenClaw on Linux
|
|
550
550
|
|
|
551
551
|
Short answer: follow the Linux guide, then run the onboarding wizard.
|
|
552
552
|
|
|
@@ -554,7 +554,7 @@ Short answer: follow the Linux guide, then run the onboarding wizard.
|
|
|
554
554
|
- Full walkthrough: [Getting Started](/start/getting-started).
|
|
555
555
|
- Installer + updates: [Install & updates](/install/updating).
|
|
556
556
|
|
|
557
|
-
### How do I install
|
|
557
|
+
### How do I install OpenClaw on a VPS
|
|
558
558
|
|
|
559
559
|
Any Linux VPS works. Install on the server, then use SSH/Tailscale to reach the Gateway.
|
|
560
560
|
|
|
@@ -581,7 +581,7 @@ Gateway in the cloud.
|
|
|
581
581
|
Hub: [Platforms](/platforms). Remote access: [Gateway remote](/gateway/remote).
|
|
582
582
|
Nodes: [Nodes](/nodes), [Nodes CLI](/cli/nodes).
|
|
583
583
|
|
|
584
|
-
### Can I ask
|
|
584
|
+
### Can I ask OpenClaw to update itself
|
|
585
585
|
|
|
586
586
|
Short answer: **possible, not recommended**. The update flow can restart the
|
|
587
587
|
Gateway (which drops the active session), may need a clean git checkout, and
|
|
@@ -590,25 +590,25 @@ can prompt for confirmation. Safer: run updates from a shell as the operator.
|
|
|
590
590
|
Use the CLI:
|
|
591
591
|
|
|
592
592
|
```bash
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
593
|
+
openclaw update
|
|
594
|
+
openclaw update status
|
|
595
|
+
openclaw update --channel stable|beta|dev
|
|
596
|
+
openclaw update --tag <dist-tag|version>
|
|
597
|
+
openclaw update --no-restart
|
|
598
598
|
```
|
|
599
599
|
|
|
600
600
|
If you must automate from an agent:
|
|
601
601
|
|
|
602
602
|
```bash
|
|
603
|
-
|
|
604
|
-
|
|
603
|
+
openclaw update --yes --no-restart
|
|
604
|
+
openclaw gateway restart
|
|
605
605
|
```
|
|
606
606
|
|
|
607
607
|
Docs: [Update](/cli/update), [Updating](/install/updating).
|
|
608
608
|
|
|
609
609
|
### What does the onboarding wizard actually do
|
|
610
610
|
|
|
611
|
-
`
|
|
611
|
+
`openclaw onboard` is the recommended setup path. In **local mode** it walks you through:
|
|
612
612
|
|
|
613
613
|
- **Model/auth setup** (Anthropic **setup-token** recommended for Claude subscriptions, OpenAI Codex OAuth supported, API keys optional, LM Studio local models supported)
|
|
614
614
|
- **Workspace** location + bootstrap files
|
|
@@ -621,7 +621,7 @@ It also warns if your configured model is unknown or missing auth.
|
|
|
621
621
|
|
|
622
622
|
### Do I need a Claude or OpenAI subscription to run this
|
|
623
623
|
|
|
624
|
-
No. You can run
|
|
624
|
+
No. You can run OpenClaw with **API keys** (Anthropic/OpenAI/others) or with
|
|
625
625
|
**local‑only models** so your data stays on your device. Subscriptions (Claude
|
|
626
626
|
Pro/Max or OpenAI Codex) are optional ways to authenticate those providers.
|
|
627
627
|
|
|
@@ -640,7 +640,7 @@ If you want the most explicit, supported path, use an Anthropic API key.
|
|
|
640
640
|
|
|
641
641
|
### How does Anthropic setuptoken auth work
|
|
642
642
|
|
|
643
|
-
`claude setup-token` generates a **token string** via the Claude Code CLI (it is not available in the web console). You can run it on **any machine**. Choose **Anthropic token (paste setup-token)** in the wizard or paste it with `
|
|
643
|
+
`claude setup-token` generates a **token string** via the Claude Code CLI (it is not available in the web console). You can run it on **any machine**. Choose **Anthropic token (paste setup-token)** in the wizard or paste it with `openclaw models auth paste-token --provider anthropic`. The token is stored as an auth profile for the **anthropic** provider and used like an API key (no auto-refresh). More detail: [OAuth](/concepts/oauth).
|
|
644
644
|
|
|
645
645
|
### Where do I find an Anthropic setuptoken
|
|
646
646
|
|
|
@@ -650,11 +650,11 @@ It is **not** in the Anthropic Console. The setup-token is generated by the **Cl
|
|
|
650
650
|
claude setup-token
|
|
651
651
|
```
|
|
652
652
|
|
|
653
|
-
Copy the token it prints, then choose **Anthropic token (paste setup-token)** in the wizard. If you want to run it on the gateway host, use `
|
|
653
|
+
Copy the token it prints, then choose **Anthropic token (paste setup-token)** in the wizard. If you want to run it on the gateway host, use `openclaw models auth setup-token --provider anthropic`. If you ran `claude setup-token` elsewhere, paste it on the gateway host with `openclaw models auth paste-token --provider anthropic`. See [Anthropic](/providers/anthropic).
|
|
654
654
|
|
|
655
655
|
### Do you support Claude subscription auth (Claude Pro/Max)
|
|
656
656
|
|
|
657
|
-
Yes — via **setup-token**.
|
|
657
|
+
Yes — via **setup-token**. OpenClaw no longer reuses Claude Code CLI OAuth tokens; use a setup-token or an Anthropic API key. Generate the token anywhere and paste it on the gateway host. See [Anthropic](/providers/anthropic) and [OAuth](/concepts/oauth).
|
|
658
658
|
|
|
659
659
|
Note: Claude subscription access is governed by Anthropic’s terms. For production or multi‑user workloads, API keys are usually the safer choice.
|
|
660
660
|
|
|
@@ -665,7 +665,7 @@ use a **Claude subscription** (setup‑token or Claude Code OAuth), wait for the
|
|
|
665
665
|
reset or upgrade your plan. If you use an **Anthropic API key**, check the Anthropic Console
|
|
666
666
|
for usage/billing and raise limits as needed.
|
|
667
667
|
|
|
668
|
-
Tip: set a **fallback model** so
|
|
668
|
+
Tip: set a **fallback model** so OpenClaw can keep replying while a provider is rate‑limited.
|
|
669
669
|
See [Models](/cli/models) and [OAuth](/concepts/oauth).
|
|
670
670
|
|
|
671
671
|
### Is AWS Bedrock supported
|
|
@@ -674,28 +674,28 @@ Yes - via pi‑ai’s **Amazon Bedrock (Converse)** provider with **manual confi
|
|
|
674
674
|
|
|
675
675
|
### How does Codex auth work
|
|
676
676
|
|
|
677
|
-
|
|
677
|
+
OpenClaw supports **OpenAI Code (Codex)** via OAuth (ChatGPT sign-in). The wizard can run the OAuth flow and will set the default model to `openai-codex/gpt-5.2` when appropriate. See [Model providers](/concepts/model-providers) and [Wizard](/start/wizard).
|
|
678
678
|
|
|
679
679
|
### Do you support OpenAI subscription auth Codex OAuth
|
|
680
680
|
|
|
681
|
-
Yes.
|
|
681
|
+
Yes. OpenClaw fully supports **OpenAI Code (Codex) subscription OAuth**. The onboarding wizard
|
|
682
682
|
can run the OAuth flow for you.
|
|
683
683
|
|
|
684
684
|
See [OAuth](/concepts/oauth), [Model providers](/concepts/model-providers), and [Wizard](/start/wizard).
|
|
685
685
|
|
|
686
686
|
### How do I set up Gemini CLI OAuth
|
|
687
687
|
|
|
688
|
-
Gemini CLI uses a **plugin auth flow**, not a client id or secret in `
|
|
688
|
+
Gemini CLI uses a **plugin auth flow**, not a client id or secret in `openclaw.json`.
|
|
689
689
|
|
|
690
690
|
Steps:
|
|
691
|
-
1) Enable the plugin: `
|
|
692
|
-
2) Login: `
|
|
691
|
+
1) Enable the plugin: `openclaw plugins enable google-gemini-cli-auth`
|
|
692
|
+
2) Login: `openclaw models auth login --provider google-gemini-cli --set-default`
|
|
693
693
|
|
|
694
694
|
This stores OAuth tokens in auth profiles on the gateway host. Details: [Model providers](/concepts/model-providers).
|
|
695
695
|
|
|
696
696
|
### Is a local model OK for casual chats
|
|
697
697
|
|
|
698
|
-
Usually no.
|
|
698
|
+
Usually no. OpenClaw needs large context + strong safety; small cards truncate and leak. If you must, run the **largest** MiniMax M2.1 build you can locally (LM Studio) and see [/gateway/local-models](/gateway/local-models). Smaller/quantized models increase prompt-injection risk - see [Security](/gateway/security).
|
|
699
699
|
|
|
700
700
|
### How do I keep hosted model traffic in a specific region
|
|
701
701
|
|
|
@@ -703,7 +703,7 @@ Pick region-pinned endpoints. OpenRouter exposes US-hosted options for MiniMax,
|
|
|
703
703
|
|
|
704
704
|
### Do I have to buy a Mac Mini to install this
|
|
705
705
|
|
|
706
|
-
No.
|
|
706
|
+
No. OpenClaw runs on macOS or Linux (Windows via WSL2). A Mac mini is optional - some people
|
|
707
707
|
buy one as an always‑on host, but a small VPS, home server, or Raspberry Pi‑class box works too.
|
|
708
708
|
|
|
709
709
|
You only need a Mac **for macOS‑only tools**. For iMessage, you can keep the Gateway on Linux
|
|
@@ -715,7 +715,7 @@ Docs: [iMessage](/channels/imessage), [Nodes](/nodes), [Mac remote mode](/platfo
|
|
|
715
715
|
### Do I need a Mac mini for iMessage support
|
|
716
716
|
|
|
717
717
|
You need **some macOS device** signed into Messages. It does **not** have to be a Mac mini -
|
|
718
|
-
any Mac works.
|
|
718
|
+
any Mac works. OpenClaw’s iMessage integrations run on macOS (BlueBubbles or `imsg`), while
|
|
719
719
|
the Gateway can run elsewhere.
|
|
720
720
|
|
|
721
721
|
Common setups:
|
|
@@ -726,7 +726,7 @@ Common setups:
|
|
|
726
726
|
Docs: [iMessage](/channels/imessage), [BlueBubbles](/channels/bluebubbles),
|
|
727
727
|
[Mac remote mode](/platforms/mac/remote).
|
|
728
728
|
|
|
729
|
-
### If I buy a Mac mini to run
|
|
729
|
+
### If I buy a Mac mini to run OpenClaw can I connect it to my MacBook Pro
|
|
730
730
|
|
|
731
731
|
Yes. The **Mac mini can run the Gateway**, and your MacBook Pro can connect as a
|
|
732
732
|
**node** (companion device). Nodes don’t run the Gateway - they provide extra
|
|
@@ -735,7 +735,7 @@ capabilities like screen/camera/canvas and `system.run` on that device.
|
|
|
735
735
|
Common pattern:
|
|
736
736
|
- Gateway on the Mac mini (always‑on).
|
|
737
737
|
- MacBook Pro runs the macOS app or a node host and pairs to the Gateway.
|
|
738
|
-
- Use `
|
|
738
|
+
- Use `openclaw nodes status` / `openclaw nodes list` to see it.
|
|
739
739
|
|
|
740
740
|
Docs: [Nodes](/nodes), [Nodes CLI](/cli/nodes).
|
|
741
741
|
|
|
@@ -752,7 +752,7 @@ without WhatsApp/Telegram.
|
|
|
752
752
|
`channels.telegram.allowFrom` is **the human sender’s Telegram user ID** (numeric, recommended) or `@username`. It is not the bot username.
|
|
753
753
|
|
|
754
754
|
Safer (no third-party bot):
|
|
755
|
-
- DM your bot, then run `
|
|
755
|
+
- DM your bot, then run `openclaw logs --follow` and read `from.id`.
|
|
756
756
|
|
|
757
757
|
Official Bot API:
|
|
758
758
|
- DM your bot, then call `https://api.telegram.org/bot<bot_token>/getUpdates` and read `message.from.id`.
|
|
@@ -762,7 +762,7 @@ Third-party (less private):
|
|
|
762
762
|
|
|
763
763
|
See [/channels/telegram](/channels/telegram#access-control-dms--groups).
|
|
764
764
|
|
|
765
|
-
### Can multiple people use one WhatsApp number with different
|
|
765
|
+
### Can multiple people use one WhatsApp number with different OpenClaw instances
|
|
766
766
|
|
|
767
767
|
Yes, via **multi‑agent routing**. Bind each sender’s WhatsApp **DM** (peer `kind: "dm"`, sender E.164 like `+15551234567`) to a different `agentId`, so each person gets their own workspace and session store. Replies still come from the **same WhatsApp account**, and DM access control (`channels.whatsapp.dmPolicy` / `channels.whatsapp.allowFrom`) is global per WhatsApp account. See [Multi-Agent Routing](/concepts/multi-agent) and [WhatsApp](/channels/whatsapp).
|
|
768
768
|
|
|
@@ -781,7 +781,7 @@ eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
|
|
|
781
781
|
brew install <formula>
|
|
782
782
|
```
|
|
783
783
|
|
|
784
|
-
If you run
|
|
784
|
+
If you run OpenClaw via systemd, ensure the service PATH includes `/home/linuxbrew/.linuxbrew/bin` (or your brew prefix) so `brew`-installed tools resolve in non‑login shells.
|
|
785
785
|
Recent builds also prepend common user bin dirs on Linux systemd services (for example `~/.local/bin`, `~/.npm-global/bin`, `~/.local/share/pnpm`, `~/.bun/bin`) and honor `PNPM_HOME`, `NPM_CONFIG_PREFIX`, `BUN_INSTALL`, `VOLTA_HOME`, `ASDF_DATA_DIR`, `NVM_DIR`, and `FNM_DIR` when set.
|
|
786
786
|
|
|
787
787
|
### Whats the difference between the hackable git install and npm install
|
|
@@ -796,26 +796,26 @@ Docs: [Getting started](/start/getting-started), [Updating](/install/updating).
|
|
|
796
796
|
### Can I switch between npm and git installs later
|
|
797
797
|
|
|
798
798
|
Yes. Install the other flavor, then run Doctor so the gateway service points at the new entrypoint.
|
|
799
|
-
This **does not delete your data** - it only changes the
|
|
800
|
-
(`~/.
|
|
799
|
+
This **does not delete your data** - it only changes the OpenClaw code install. Your state
|
|
800
|
+
(`~/.openclaw`) and workspace (`~/.openclaw/workspace`) stay untouched.
|
|
801
801
|
|
|
802
802
|
From npm → git:
|
|
803
803
|
|
|
804
804
|
```bash
|
|
805
|
-
git clone https://github.com/
|
|
806
|
-
cd
|
|
805
|
+
git clone https://github.com/openclaw/openclaw.git
|
|
806
|
+
cd openclaw
|
|
807
807
|
pnpm install
|
|
808
808
|
pnpm build
|
|
809
|
-
|
|
810
|
-
|
|
809
|
+
openclaw doctor
|
|
810
|
+
openclaw gateway restart
|
|
811
811
|
```
|
|
812
812
|
|
|
813
813
|
From git → npm:
|
|
814
814
|
|
|
815
815
|
```bash
|
|
816
|
-
npm install -g
|
|
817
|
-
|
|
818
|
-
|
|
816
|
+
npm install -g openclaw@latest
|
|
817
|
+
openclaw doctor
|
|
818
|
+
openclaw gateway restart
|
|
819
819
|
```
|
|
820
820
|
|
|
821
821
|
Doctor detects a gateway service entrypoint mismatch and offers to rewrite the service config to match the current install (use `--repair` in automation).
|
|
@@ -835,11 +835,11 @@ lowest friction and you’re okay with sleep/restarts, run it locally.
|
|
|
835
835
|
- **Pros:** always‑on, stable network, no laptop sleep issues, easier to keep running.
|
|
836
836
|
- **Cons:** often run headless (use screenshots), remote file access only, you must SSH for updates.
|
|
837
837
|
|
|
838
|
-
**
|
|
838
|
+
**OpenClaw-specific note:** WhatsApp/Telegram/Slack/Mattermost (plugin)/Discord all work fine from a VPS. The only real trade-off is **headless browser** vs a visible window. See [Browser](/tools/browser).
|
|
839
839
|
|
|
840
840
|
**Recommended default:** VPS if you had gateway disconnects before. Local is great when you’re actively using the Mac and want local file access or UI automation with a visible browser.
|
|
841
841
|
|
|
842
|
-
### How important is it to run
|
|
842
|
+
### How important is it to run OpenClaw on a dedicated machine
|
|
843
843
|
|
|
844
844
|
Not required, but **recommended for reliability and isolation**.
|
|
845
845
|
|
|
@@ -851,7 +851,7 @@ For security guidance, read [Security](/gateway/security).
|
|
|
851
851
|
|
|
852
852
|
### What are the minimum VPS requirements and recommended OS
|
|
853
853
|
|
|
854
|
-
|
|
854
|
+
OpenClaw is lightweight. For a basic Gateway + one chat channel:
|
|
855
855
|
|
|
856
856
|
- **Absolute minimum:** 1 vCPU, 1GB RAM, ~500MB disk.
|
|
857
857
|
- **Recommended:** 1-2 vCPU, 2GB RAM or more for headroom (logs, media, multiple channels). Node tools and browser automation can be resource hungry.
|
|
@@ -860,7 +860,7 @@ OS: use **Ubuntu LTS** (or any modern Debian/Ubuntu). The Linux install path is
|
|
|
860
860
|
|
|
861
861
|
Docs: [Linux](/platforms/linux), [VPS hosting](/vps).
|
|
862
862
|
|
|
863
|
-
### Can I run
|
|
863
|
+
### Can I run OpenClaw in a VM and what are the requirements
|
|
864
864
|
|
|
865
865
|
Yes. Treat a VM the same as a VPS: it needs to be always on, reachable, and have enough
|
|
866
866
|
RAM for the Gateway and any channels you enable.
|
|
@@ -874,15 +874,15 @@ If you are on Windows, **WSL2 is the easiest VM style setup** and has the best t
|
|
|
874
874
|
compatibility. See [Windows](/platforms/windows), [VPS hosting](/vps).
|
|
875
875
|
If you are running macOS in a VM, see [macOS VM](/platforms/macos-vm).
|
|
876
876
|
|
|
877
|
-
## What is
|
|
877
|
+
## What is OpenClaw?
|
|
878
878
|
|
|
879
|
-
### What is
|
|
879
|
+
### What is OpenClaw in one paragraph
|
|
880
880
|
|
|
881
|
-
|
|
881
|
+
OpenClaw is a personal AI assistant you run on your own devices. It replies on the messaging surfaces you already use (WhatsApp, Telegram, Slack, Mattermost (plugin), Discord, Google Chat, Signal, iMessage, WebChat) and can also do voice + a live Canvas on supported platforms. The **Gateway** is the always-on control plane; the assistant is the product.
|
|
882
882
|
|
|
883
883
|
### Whats the value proposition
|
|
884
884
|
|
|
885
|
-
|
|
885
|
+
OpenClaw is not “just a Claude wrapper.” It’s a **local-first control plane** that lets you run a
|
|
886
886
|
capable assistant on **your own hardware**, reachable from the chat apps you already use, with
|
|
887
887
|
stateful sessions, memory, and tools - without handing control of your workflows to a hosted
|
|
888
888
|
SaaS.
|
|
@@ -913,7 +913,7 @@ Good first projects:
|
|
|
913
913
|
It can handle large tasks, but it works best when you split them into phases and
|
|
914
914
|
use sub agents for parallel work.
|
|
915
915
|
|
|
916
|
-
### What are the top five everyday use cases for
|
|
916
|
+
### What are the top five everyday use cases for OpenClaw
|
|
917
917
|
|
|
918
918
|
Everyday wins usually look like:
|
|
919
919
|
- **Personal briefings:** summaries of inbox, calendar, and news you care about.
|
|
@@ -922,21 +922,21 @@ Everyday wins usually look like:
|
|
|
922
922
|
- **Browser automation:** filling forms, collecting data, and repeating web tasks.
|
|
923
923
|
- **Cross device coordination:** send a task from your phone, let the Gateway run it on a server, and get the result back in chat.
|
|
924
924
|
|
|
925
|
-
### Can
|
|
925
|
+
### Can OpenClaw help with lead gen outreach ads and blogs for a SaaS
|
|
926
926
|
|
|
927
927
|
Yes for **research, qualification, and drafting**. It can scan sites, build shortlists,
|
|
928
928
|
summarize prospects, and write outreach or ad copy drafts.
|
|
929
929
|
|
|
930
930
|
For **outreach or ad runs**, keep a human in the loop. Avoid spam, follow local laws and
|
|
931
931
|
platform policies, and review anything before it is sent. The safest pattern is to let
|
|
932
|
-
|
|
932
|
+
OpenClaw draft and you approve.
|
|
933
933
|
|
|
934
934
|
Docs: [Security](/gateway/security).
|
|
935
935
|
|
|
936
936
|
### What are the advantages vs Claude Code for web development
|
|
937
937
|
|
|
938
|
-
|
|
939
|
-
Claude Code or Codex for the fastest direct coding loop inside a repo. Use
|
|
938
|
+
OpenClaw is a **personal assistant** and coordination layer, not an IDE replacement. Use
|
|
939
|
+
Claude Code or Codex for the fastest direct coding loop inside a repo. Use OpenClaw when you
|
|
940
940
|
want durable memory, cross-device access, and tool orchestration.
|
|
941
941
|
|
|
942
942
|
Advantages:
|
|
@@ -946,17 +946,17 @@ Advantages:
|
|
|
946
946
|
- **Always-on Gateway** (run on a VPS, interact from anywhere)
|
|
947
947
|
- **Nodes** for local browser/screen/camera/exec
|
|
948
948
|
|
|
949
|
-
Showcase: https://
|
|
949
|
+
Showcase: https://openclaw.ai/showcase
|
|
950
950
|
|
|
951
951
|
## Skills and automation
|
|
952
952
|
|
|
953
953
|
### How do I customize skills without keeping the repo dirty
|
|
954
954
|
|
|
955
|
-
Use managed overrides instead of editing the repo copy. Put your changes in `~/.
|
|
955
|
+
Use managed overrides instead of editing the repo copy. Put your changes in `~/.openclaw/skills/<name>/SKILL.md` (or add a folder via `skills.load.extraDirs` in `~/.openclaw/openclaw.json`). Precedence is `<workspace>/skills` > `~/.openclaw/skills` > bundled, so managed overrides win without touching git. Only upstream-worthy edits should live in the repo and go out as PRs.
|
|
956
956
|
|
|
957
957
|
### Can I load skills from a custom folder
|
|
958
958
|
|
|
959
|
-
Yes. Add extra directories via `skills.load.extraDirs` in `~/.
|
|
959
|
+
Yes. Add extra directories via `skills.load.extraDirs` in `~/.openclaw/openclaw.json` (lowest precedence). Default precedence remains: `<workspace>/skills` → `~/.openclaw/skills` → bundled → `skills.load.extraDirs`. `clawdhub` installs into `./skills` by default, which OpenClaw treats as `<workspace>/skills`.
|
|
960
960
|
|
|
961
961
|
### How can I use different models for different tasks
|
|
962
962
|
|
|
@@ -986,14 +986,14 @@ Cron runs inside the Gateway process. If the Gateway is not running continuously
|
|
|
986
986
|
scheduled jobs will not run.
|
|
987
987
|
|
|
988
988
|
Checklist:
|
|
989
|
-
- Confirm cron is enabled (`cron.enabled`) and `
|
|
989
|
+
- Confirm cron is enabled (`cron.enabled`) and `OPENCLAW_SKIP_CRON` is not set.
|
|
990
990
|
- Check the Gateway is running 24/7 (no sleep/restarts).
|
|
991
991
|
- Verify timezone settings for the job (`--tz` vs host timezone).
|
|
992
992
|
|
|
993
993
|
Debug:
|
|
994
994
|
```bash
|
|
995
|
-
|
|
996
|
-
|
|
995
|
+
openclaw cron run <jobId> --force
|
|
996
|
+
openclaw cron runs --id <jobId> --limit 50
|
|
997
997
|
```
|
|
998
998
|
|
|
999
999
|
Docs: [Cron jobs](/automation/cron-jobs), [Cron vs Heartbeat](/automation/cron-vs-heartbeat).
|
|
@@ -1013,7 +1013,7 @@ npm i -g clawdhub
|
|
|
1013
1013
|
pnpm add -g clawdhub
|
|
1014
1014
|
```
|
|
1015
1015
|
|
|
1016
|
-
### Can
|
|
1016
|
+
### Can OpenClaw run tasks on a schedule or continuously in the background
|
|
1017
1017
|
|
|
1018
1018
|
Yes. Use the Gateway scheduler:
|
|
1019
1019
|
|
|
@@ -1026,15 +1026,15 @@ Docs: [Cron jobs](/automation/cron-jobs), [Cron vs Heartbeat](/automation/cron-v
|
|
|
1026
1026
|
|
|
1027
1027
|
**Can I run Apple macOS only skills from Linux**
|
|
1028
1028
|
|
|
1029
|
-
Not directly. macOS skills are gated by `metadata.
|
|
1029
|
+
Not directly. macOS skills are gated by `metadata.openclaw.os` plus required binaries, and skills only appear in the system prompt when they are eligible on the **Gateway host**. On Linux, `darwin`-only skills (like `imsg`, `apple-notes`, `apple-reminders`) will not load unless you override the gating.
|
|
1030
1030
|
|
|
1031
1031
|
You have three supported patterns:
|
|
1032
1032
|
|
|
1033
1033
|
**Option A - run the Gateway on a Mac (simplest).**
|
|
1034
|
-
Run the Gateway where the macOS binaries exist, then connect from Linux in [remote mode](#how-do-i-run-
|
|
1034
|
+
Run the Gateway where the macOS binaries exist, then connect from Linux in [remote mode](#how-do-i-run-openclaw-in-remote-mode-client-connects-to-a-gateway-elsewhere) or over Tailscale. The skills load normally because the Gateway host is macOS.
|
|
1035
1035
|
|
|
1036
1036
|
**Option B - use a macOS node (no SSH).**
|
|
1037
|
-
Run the Gateway on Linux, pair a macOS node (menubar app), and set **Node Run Commands** to "Always Ask" or "Always Allow" on the Mac.
|
|
1037
|
+
Run the Gateway on Linux, pair a macOS node (menubar app), and set **Node Run Commands** to "Always Ask" or "Always Allow" on the Mac. OpenClaw can treat macOS-only skills as eligible when the required binaries exist on the node. The agent runs those skills via the `nodes` tool. If you choose "Always Ask", approving "Always Allow" in the prompt adds that command to the allowlist.
|
|
1038
1038
|
|
|
1039
1039
|
**Option C - proxy macOS binaries over SSH (advanced).**
|
|
1040
1040
|
Keep the Gateway on Linux, but make the required CLI binaries resolve to SSH wrappers that run on a Mac. Then override the skill to allow Linux so it stays eligible.
|
|
@@ -1046,17 +1046,17 @@ Keep the Gateway on Linux, but make the required CLI binaries resolve to SSH wra
|
|
|
1046
1046
|
exec ssh -T user@mac-host /opt/homebrew/bin/imsg "$@"
|
|
1047
1047
|
```
|
|
1048
1048
|
2) Put the wrapper on `PATH` on the Linux host (for example `~/bin/imsg`).
|
|
1049
|
-
3) Override the skill metadata (workspace or `~/.
|
|
1049
|
+
3) Override the skill metadata (workspace or `~/.openclaw/skills`) to allow Linux:
|
|
1050
1050
|
```markdown
|
|
1051
1051
|
---
|
|
1052
1052
|
name: imsg
|
|
1053
1053
|
description: iMessage/SMS CLI for listing chats, history, watch, and sending.
|
|
1054
|
-
metadata: {"
|
|
1054
|
+
metadata: {"openclaw":{"os":["darwin","linux"],"requires":{"bins":["imsg"]}}}
|
|
1055
1055
|
---
|
|
1056
1056
|
```
|
|
1057
1057
|
4) Start a new session so the skills snapshot refreshes.
|
|
1058
1058
|
|
|
1059
|
-
For iMessage specifically, you can also point `channels.imessage.cliPath` at an SSH wrapper (
|
|
1059
|
+
For iMessage specifically, you can also point `channels.imessage.cliPath` at an SSH wrapper (OpenClaw only needs stdio). See [iMessage](/channels/imessage).
|
|
1060
1060
|
|
|
1061
1061
|
### Do you have a Notion or HeyGen integration
|
|
1062
1062
|
|
|
@@ -1080,15 +1080,15 @@ clawdhub install <skill-slug>
|
|
|
1080
1080
|
clawdhub update --all
|
|
1081
1081
|
```
|
|
1082
1082
|
|
|
1083
|
-
ClawdHub installs into `./skills` under your current directory (or falls back to your configured
|
|
1083
|
+
ClawdHub installs into `./skills` under your current directory (or falls back to your configured OpenClaw workspace); OpenClaw treats that as `<workspace>/skills` on the next session. For shared skills across agents, place them in `~/.openclaw/skills/<name>/SKILL.md`. Some skills expect binaries installed via Homebrew; on Linux that means Linuxbrew (see the Homebrew Linux FAQ entry above). See [Skills](/tools/skills) and [ClawdHub](/tools/clawdhub).
|
|
1084
1084
|
|
|
1085
1085
|
### How do I install the Chrome extension for browser takeover
|
|
1086
1086
|
|
|
1087
1087
|
Use the built-in installer, then load the unpacked extension in Chrome:
|
|
1088
1088
|
|
|
1089
1089
|
```bash
|
|
1090
|
-
|
|
1091
|
-
|
|
1090
|
+
openclaw browser extension install
|
|
1091
|
+
openclaw browser extension path
|
|
1092
1092
|
```
|
|
1093
1093
|
|
|
1094
1094
|
Then Chrome → `chrome://extensions` → enable “Developer mode” → “Load unpacked” → pick that folder.
|
|
@@ -1121,11 +1121,11 @@ Set `agents.defaults.sandbox.docker.binds` to `["host:path:mode"]` (e.g., `"/hom
|
|
|
1121
1121
|
|
|
1122
1122
|
### How does memory work
|
|
1123
1123
|
|
|
1124
|
-
|
|
1124
|
+
OpenClaw memory is just Markdown files in the agent workspace:
|
|
1125
1125
|
- Daily notes in `memory/YYYY-MM-DD.md`
|
|
1126
1126
|
- Curated long-term notes in `MEMORY.md` (main/private sessions only)
|
|
1127
1127
|
|
|
1128
|
-
|
|
1128
|
+
OpenClaw also runs a **silent pre-compaction memory flush** to remind the model
|
|
1129
1129
|
to write durable notes before auto-compaction. This only runs when the workspace
|
|
1130
1130
|
is writable (read-only sandboxes skip it). See [Memory](/concepts/memory).
|
|
1131
1131
|
|
|
@@ -1147,11 +1147,11 @@ does **not** grant embeddings access, so **signing in with Codex (OAuth or the
|
|
|
1147
1147
|
Codex CLI login)** does not help for semantic memory search. OpenAI embeddings
|
|
1148
1148
|
still need a real API key (`OPENAI_API_KEY` or `models.providers.openai.apiKey`).
|
|
1149
1149
|
|
|
1150
|
-
If you don’t set a provider explicitly,
|
|
1150
|
+
If you don’t set a provider explicitly, OpenClaw auto-selects a provider when it
|
|
1151
1151
|
can resolve an API key (auth profiles, `models.providers.*.apiKey`, or env vars).
|
|
1152
1152
|
It prefers OpenAI if an OpenAI key resolves, otherwise Gemini if a Gemini key
|
|
1153
1153
|
resolves. If neither key is available, memory search stays disabled until you
|
|
1154
|
-
configure it. If you have a local model path configured and present,
|
|
1154
|
+
configure it. If you have a local model path configured and present, OpenClaw
|
|
1155
1155
|
prefers `local`.
|
|
1156
1156
|
|
|
1157
1157
|
If you’d rather stay local, set `memorySearch.provider = "local"` (and optionally
|
|
@@ -1171,12 +1171,12 @@ Docs: [Memory](/concepts/memory), [Context](/concepts/context).
|
|
|
1171
1171
|
|
|
1172
1172
|
## Where things live on disk
|
|
1173
1173
|
|
|
1174
|
-
### Is all data used with
|
|
1174
|
+
### Is all data used with OpenClaw saved locally
|
|
1175
1175
|
|
|
1176
|
-
No - **
|
|
1176
|
+
No - **OpenClaw’s state is local**, but **external services still see what you send them**.
|
|
1177
1177
|
|
|
1178
1178
|
- **Local by default:** sessions, memory files, config, and workspace live on the Gateway host
|
|
1179
|
-
(`~/.
|
|
1179
|
+
(`~/.openclaw` + your workspace directory).
|
|
1180
1180
|
- **Remote by necessity:** messages you send to model providers (Anthropic/OpenAI/etc.) go to
|
|
1181
1181
|
their APIs, and chat platforms (WhatsApp/Telegram/Slack/etc.) store message data on their
|
|
1182
1182
|
servers.
|
|
@@ -1185,39 +1185,39 @@ No - **Moltbot’s state is local**, but **external services still see what you
|
|
|
1185
1185
|
|
|
1186
1186
|
Related: [Agent workspace](/concepts/agent-workspace), [Memory](/concepts/memory).
|
|
1187
1187
|
|
|
1188
|
-
### Where does
|
|
1188
|
+
### Where does OpenClaw store its data
|
|
1189
1189
|
|
|
1190
|
-
Everything lives under `$
|
|
1190
|
+
Everything lives under `$OPENCLAW_STATE_DIR` (default: `~/.openclaw`):
|
|
1191
1191
|
|
|
1192
1192
|
| Path | Purpose |
|
|
1193
1193
|
|------|---------|
|
|
1194
|
-
| `$
|
|
1195
|
-
| `$
|
|
1196
|
-
| `$
|
|
1197
|
-
| `$
|
|
1198
|
-
| `$
|
|
1199
|
-
| `$
|
|
1200
|
-
| `$
|
|
1201
|
-
| `$
|
|
1194
|
+
| `$OPENCLAW_STATE_DIR/openclaw.json` | Main config (JSON5) |
|
|
1195
|
+
| `$OPENCLAW_STATE_DIR/credentials/oauth.json` | Legacy OAuth import (copied into auth profiles on first use) |
|
|
1196
|
+
| `$OPENCLAW_STATE_DIR/agents/<agentId>/agent/auth-profiles.json` | Auth profiles (OAuth + API keys) |
|
|
1197
|
+
| `$OPENCLAW_STATE_DIR/agents/<agentId>/agent/auth.json` | Runtime auth cache (managed automatically) |
|
|
1198
|
+
| `$OPENCLAW_STATE_DIR/credentials/` | Provider state (e.g. `whatsapp/<accountId>/creds.json`) |
|
|
1199
|
+
| `$OPENCLAW_STATE_DIR/agents/` | Per‑agent state (agentDir + sessions) |
|
|
1200
|
+
| `$OPENCLAW_STATE_DIR/agents/<agentId>/sessions/` | Conversation history & state (per agent) |
|
|
1201
|
+
| `$OPENCLAW_STATE_DIR/agents/<agentId>/sessions/sessions.json` | Session metadata (per agent) |
|
|
1202
1202
|
|
|
1203
|
-
Legacy single‑agent path: `~/.
|
|
1203
|
+
Legacy single‑agent path: `~/.openclaw/agent/*` (migrated by `openclaw doctor`).
|
|
1204
1204
|
|
|
1205
|
-
Your **workspace** (AGENTS.md, memory files, skills, etc.) is separate and configured via `agents.defaults.workspace` (default:
|
|
1205
|
+
Your **workspace** (AGENTS.md, memory files, skills, etc.) is separate and configured via `agents.defaults.workspace` (default: `~/.openclaw/workspace`).
|
|
1206
1206
|
|
|
1207
1207
|
### Where should AGENTSmd SOULmd USERmd MEMORYmd live
|
|
1208
1208
|
|
|
1209
|
-
These files live in the **agent workspace**, not `~/.
|
|
1209
|
+
These files live in the **agent workspace**, not `~/.openclaw`.
|
|
1210
1210
|
|
|
1211
1211
|
- **Workspace (per agent)**: `AGENTS.md`, `SOUL.md`, `IDENTITY.md`, `USER.md`,
|
|
1212
1212
|
`MEMORY.md` (or `memory.md`), `memory/YYYY-MM-DD.md`, optional `HEARTBEAT.md`.
|
|
1213
|
-
- **State dir (`~/.
|
|
1214
|
-
and shared skills (`~/.
|
|
1213
|
+
- **State dir (`~/.openclaw`)**: config, credentials, auth profiles, sessions, logs,
|
|
1214
|
+
and shared skills (`~/.openclaw/skills`).
|
|
1215
1215
|
|
|
1216
|
-
Default workspace is
|
|
1216
|
+
Default workspace is `~/.openclaw/workspace`, configurable via:
|
|
1217
1217
|
|
|
1218
1218
|
```json5
|
|
1219
1219
|
{
|
|
1220
|
-
agents: { defaults: { workspace: "
|
|
1220
|
+
agents: { defaults: { workspace: "~/.openclaw/workspace" } }
|
|
1221
1221
|
}
|
|
1222
1222
|
```
|
|
1223
1223
|
|
|
@@ -1236,13 +1236,13 @@ Put your **agent workspace** in a **private** git repo and back it up somewhere
|
|
|
1236
1236
|
private (for example GitHub private). This captures memory + AGENTS/SOUL/USER
|
|
1237
1237
|
files, and lets you restore the assistant’s “mind” later.
|
|
1238
1238
|
|
|
1239
|
-
Do **not** commit anything under `~/.
|
|
1239
|
+
Do **not** commit anything under `~/.openclaw` (credentials, sessions, tokens).
|
|
1240
1240
|
If you need a full restore, back up both the workspace and the state directory
|
|
1241
1241
|
separately (see the migration question above).
|
|
1242
1242
|
|
|
1243
1243
|
Docs: [Agent workspace](/concepts/agent-workspace).
|
|
1244
1244
|
|
|
1245
|
-
### How do I completely uninstall
|
|
1245
|
+
### How do I completely uninstall OpenClaw
|
|
1246
1246
|
|
|
1247
1247
|
See the dedicated guide: [Uninstall](/install/uninstall).
|
|
1248
1248
|
|
|
@@ -1253,7 +1253,7 @@ Relative paths resolve inside the workspace, but absolute paths can access other
|
|
|
1253
1253
|
host locations unless sandboxing is enabled. If you need isolation, use
|
|
1254
1254
|
[`agents.defaults.sandbox`](/gateway/sandboxing) or per‑agent sandbox settings. If you
|
|
1255
1255
|
want a repo to be the default working directory, point that agent’s
|
|
1256
|
-
`workspace` to the repo root. The
|
|
1256
|
+
`workspace` to the repo root. The OpenClaw repo is just source code; keep the
|
|
1257
1257
|
workspace separate unless you intentionally want the agent to work inside it.
|
|
1258
1258
|
|
|
1259
1259
|
Example (repo as default cwd):
|
|
@@ -1276,17 +1276,17 @@ Session state is owned by the **gateway host**. If you’re in remote mode, the
|
|
|
1276
1276
|
|
|
1277
1277
|
### What format is the config Where is it
|
|
1278
1278
|
|
|
1279
|
-
|
|
1279
|
+
OpenClaw reads an optional **JSON5** config from `$OPENCLAW_CONFIG_PATH` (default: `~/.openclaw/openclaw.json`):
|
|
1280
1280
|
|
|
1281
1281
|
```
|
|
1282
|
-
$
|
|
1282
|
+
$OPENCLAW_CONFIG_PATH
|
|
1283
1283
|
```
|
|
1284
1284
|
|
|
1285
|
-
If the file is missing, it uses safe‑ish defaults (including a default workspace of
|
|
1285
|
+
If the file is missing, it uses safe‑ish defaults (including a default workspace of `~/.openclaw/workspace`).
|
|
1286
1286
|
|
|
1287
1287
|
### I set gatewaybind lan or tailnet and now nothing listens the UI says unauthorized
|
|
1288
1288
|
|
|
1289
|
-
Non-loopback binds **require auth**. Configure `gateway.auth.mode` + `gateway.auth.token` (or use `
|
|
1289
|
+
Non-loopback binds **require auth**. Configure `gateway.auth.mode` + `gateway.auth.token` (or use `OPENCLAW_GATEWAY_TOKEN`).
|
|
1290
1290
|
|
|
1291
1291
|
```json5
|
|
1292
1292
|
{
|
|
@@ -1308,7 +1308,7 @@ Notes:
|
|
|
1308
1308
|
|
|
1309
1309
|
The wizard generates a gateway token by default (even on loopback) so **local WS clients must authenticate**. This blocks other local processes from calling the Gateway. Paste the token into the Control UI settings (or your client config) to connect.
|
|
1310
1310
|
|
|
1311
|
-
If you **really** want open loopback, remove `gateway.auth` from your config. Doctor can generate a token for you any time: `
|
|
1311
|
+
If you **really** want open loopback, remove `gateway.auth` from your config. Doctor can generate a token for you any time: `openclaw doctor --generate-gateway-token`.
|
|
1312
1312
|
|
|
1313
1313
|
### Do I have to restart after changing config
|
|
1314
1314
|
|
|
@@ -1320,7 +1320,7 @@ The Gateway watches the config and supports hot‑reload:
|
|
|
1320
1320
|
### How do I enable web search and web fetch
|
|
1321
1321
|
|
|
1322
1322
|
`web_fetch` works without an API key. `web_search` requires a Brave Search API
|
|
1323
|
-
key. **Recommended:** run `
|
|
1323
|
+
key. **Recommended:** run `openclaw configure --section web` to store it in
|
|
1324
1324
|
`tools.web.search.apiKey`. Environment alternative: set `BRAVE_API_KEY` for the
|
|
1325
1325
|
Gateway process.
|
|
1326
1326
|
|
|
@@ -1344,7 +1344,7 @@ Gateway process.
|
|
|
1344
1344
|
Notes:
|
|
1345
1345
|
- If you use allowlists, add `web_search`/`web_fetch` or `group:web`.
|
|
1346
1346
|
- `web_fetch` is enabled by default (unless explicitly disabled).
|
|
1347
|
-
- Daemons read env vars from `~/.
|
|
1347
|
+
- Daemons read env vars from `~/.openclaw/.env` (or the service environment).
|
|
1348
1348
|
|
|
1349
1349
|
Docs: [Web tools](/tools/web).
|
|
1350
1350
|
|
|
@@ -1360,7 +1360,7 @@ The common pattern is **one Gateway** (e.g. Raspberry Pi) plus **nodes** and **a
|
|
|
1360
1360
|
|
|
1361
1361
|
Docs: [Nodes](/nodes), [Remote access](/gateway/remote), [Multi-Agent Routing](/concepts/multi-agent), [Sub-agents](/tools/subagents), [TUI](/tui).
|
|
1362
1362
|
|
|
1363
|
-
### Can the
|
|
1363
|
+
### Can the OpenClaw browser run headless
|
|
1364
1364
|
|
|
1365
1365
|
Yes. It’s a config option:
|
|
1366
1366
|
|
|
@@ -1411,8 +1411,8 @@ Typical setup:
|
|
|
1411
1411
|
so it can register as a node.
|
|
1412
1412
|
5) Approve the node on the Gateway:
|
|
1413
1413
|
```bash
|
|
1414
|
-
|
|
1415
|
-
|
|
1414
|
+
openclaw nodes pending
|
|
1415
|
+
openclaw nodes approve <requestId>
|
|
1416
1416
|
```
|
|
1417
1417
|
|
|
1418
1418
|
No separate TCP bridge is required; nodes connect over the Gateway WebSocket.
|
|
@@ -1425,9 +1425,9 @@ Docs: [Nodes](/nodes), [Gateway protocol](/gateway/protocol), [macOS remote mode
|
|
|
1425
1425
|
### Tailscale is connected but I get no replies What now
|
|
1426
1426
|
|
|
1427
1427
|
Check the basics:
|
|
1428
|
-
- Gateway is running: `
|
|
1429
|
-
- Gateway health: `
|
|
1430
|
-
- Channel health: `
|
|
1428
|
+
- Gateway is running: `openclaw gateway status`
|
|
1429
|
+
- Gateway health: `openclaw status`
|
|
1430
|
+
- Channel health: `openclaw channels status`
|
|
1431
1431
|
|
|
1432
1432
|
Then verify auth and routing:
|
|
1433
1433
|
- If you use Tailscale Serve, make sure `gateway.auth.allowTailscale` is set correctly.
|
|
@@ -1436,7 +1436,7 @@ Then verify auth and routing:
|
|
|
1436
1436
|
|
|
1437
1437
|
Docs: [Tailscale](/gateway/tailscale), [Remote access](/gateway/remote), [Channels](/channels).
|
|
1438
1438
|
|
|
1439
|
-
### Can two
|
|
1439
|
+
### Can two OpenClaw instances talk to each other local VPS
|
|
1440
1440
|
|
|
1441
1441
|
Yes. There is no built-in "bot-to-bot" bridge, but you can wire it up in a few
|
|
1442
1442
|
reliable ways:
|
|
@@ -1445,13 +1445,13 @@ reliable ways:
|
|
|
1445
1445
|
Have Bot A send a message to Bot B, then let Bot B reply as usual.
|
|
1446
1446
|
|
|
1447
1447
|
**CLI bridge (generic):** run a script that calls the other Gateway with
|
|
1448
|
-
`
|
|
1448
|
+
`openclaw agent --message ... --deliver`, targeting a chat where the other bot
|
|
1449
1449
|
listens. If one bot is on a remote VPS, point your CLI at that remote Gateway
|
|
1450
1450
|
via SSH/Tailscale (see [Remote access](/gateway/remote)).
|
|
1451
1451
|
|
|
1452
1452
|
Example pattern (run from a machine that can reach the target Gateway):
|
|
1453
1453
|
```bash
|
|
1454
|
-
|
|
1454
|
+
openclaw agent --message "Hello from local bot" --deliver --channel telegram --reply-to <chat-id>
|
|
1455
1455
|
```
|
|
1456
1456
|
|
|
1457
1457
|
Tip: add a guardrail so the two bots do not loop endlessly (mention-only, channel
|
|
@@ -1515,14 +1515,14 @@ Yes. `config.apply` validates + writes the full config and restarts the Gateway
|
|
|
1515
1515
|
else is removed.
|
|
1516
1516
|
|
|
1517
1517
|
Recover:
|
|
1518
|
-
- Restore from backup (git or a copied `~/.
|
|
1519
|
-
- If you have no backup, re-run `
|
|
1518
|
+
- Restore from backup (git or a copied `~/.openclaw/openclaw.json`).
|
|
1519
|
+
- If you have no backup, re-run `openclaw doctor` and reconfigure channels/models.
|
|
1520
1520
|
- If this was unexpected, file a bug and include your last known config or any backup.
|
|
1521
1521
|
- A local coding agent can often reconstruct a working config from logs or history.
|
|
1522
1522
|
|
|
1523
1523
|
Avoid it:
|
|
1524
|
-
- Use `
|
|
1525
|
-
- Use `
|
|
1524
|
+
- Use `openclaw config set` for small changes.
|
|
1525
|
+
- Use `openclaw configure` for interactive edits.
|
|
1526
1526
|
|
|
1527
1527
|
Docs: [Config](/cli/config), [Configure](/cli/configure), [Doctor](/gateway/doctor).
|
|
1528
1528
|
|
|
@@ -1530,7 +1530,7 @@ Docs: [Config](/cli/config), [Configure](/cli/configure), [Doctor](/gateway/doct
|
|
|
1530
1530
|
|
|
1531
1531
|
```json5
|
|
1532
1532
|
{
|
|
1533
|
-
agents: { defaults: { workspace: "
|
|
1533
|
+
agents: { defaults: { workspace: "~/.openclaw/workspace" } },
|
|
1534
1534
|
channels: { whatsapp: { allowFrom: ["+15555550123"] } }
|
|
1535
1535
|
}
|
|
1536
1536
|
```
|
|
@@ -1556,7 +1556,7 @@ Minimal steps:
|
|
|
1556
1556
|
|
|
1557
1557
|
If you want the Control UI without SSH, use Tailscale Serve on the VPS:
|
|
1558
1558
|
```bash
|
|
1559
|
-
|
|
1559
|
+
openclaw gateway --tailscale serve
|
|
1560
1560
|
```
|
|
1561
1561
|
This keeps the gateway bound to loopback and exposes HTTPS via Tailscale. See [Tailscale](/gateway/tailscale).
|
|
1562
1562
|
|
|
@@ -1570,20 +1570,20 @@ Recommended setup:
|
|
|
1570
1570
|
The app will tunnel the Gateway port and connect as a node.
|
|
1571
1571
|
3) **Approve the node** on the gateway:
|
|
1572
1572
|
```bash
|
|
1573
|
-
|
|
1574
|
-
|
|
1573
|
+
openclaw nodes pending
|
|
1574
|
+
openclaw nodes approve <requestId>
|
|
1575
1575
|
```
|
|
1576
1576
|
|
|
1577
1577
|
Docs: [Gateway protocol](/gateway/protocol), [Discovery](/gateway/discovery), [macOS remote mode](/platforms/mac/remote).
|
|
1578
1578
|
|
|
1579
1579
|
## Env vars and .env loading
|
|
1580
1580
|
|
|
1581
|
-
### How does
|
|
1581
|
+
### How does OpenClaw load environment variables
|
|
1582
1582
|
|
|
1583
|
-
|
|
1583
|
+
OpenClaw reads env vars from the parent process (shell, launchd/systemd, CI, etc.) and additionally loads:
|
|
1584
1584
|
|
|
1585
1585
|
- `.env` from the current working directory
|
|
1586
|
-
- a global fallback `.env` from `~/.
|
|
1586
|
+
- a global fallback `.env` from `~/.openclaw/.env` (aka `$OPENCLAW_STATE_DIR/.env`)
|
|
1587
1587
|
|
|
1588
1588
|
Neither `.env` file overrides existing env vars.
|
|
1589
1589
|
|
|
@@ -1604,7 +1604,7 @@ See [/environment](/environment) for full precedence and sources.
|
|
|
1604
1604
|
|
|
1605
1605
|
Two common fixes:
|
|
1606
1606
|
|
|
1607
|
-
1) Put the missing keys in `~/.
|
|
1607
|
+
1) Put the missing keys in `~/.openclaw/.env` so they’re picked up even when the service doesn’t inherit your shell env.
|
|
1608
1608
|
2) Enable shell import (opt‑in convenience):
|
|
1609
1609
|
|
|
1610
1610
|
```json5
|
|
@@ -1619,18 +1619,18 @@ Two common fixes:
|
|
|
1619
1619
|
```
|
|
1620
1620
|
|
|
1621
1621
|
This runs your login shell and imports only missing expected keys (never overrides). Env var equivalents:
|
|
1622
|
-
`
|
|
1622
|
+
`OPENCLAW_LOAD_SHELL_ENV=1`, `OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000`.
|
|
1623
1623
|
|
|
1624
1624
|
### I set COPILOTGITHUBTOKEN but models status shows Shell env off Why
|
|
1625
1625
|
|
|
1626
|
-
`
|
|
1627
|
-
does **not** mean your env vars are missing - it just means
|
|
1626
|
+
`openclaw models status` reports whether **shell env import** is enabled. “Shell env: off”
|
|
1627
|
+
does **not** mean your env vars are missing - it just means OpenClaw won’t load
|
|
1628
1628
|
your login shell automatically.
|
|
1629
1629
|
|
|
1630
1630
|
If the Gateway runs as a service (launchd/systemd), it won’t inherit your shell
|
|
1631
1631
|
environment. Fix by doing one of these:
|
|
1632
1632
|
|
|
1633
|
-
1) Put the token in `~/.
|
|
1633
|
+
1) Put the token in `~/.openclaw/.env`:
|
|
1634
1634
|
```
|
|
1635
1635
|
COPILOT_GITHUB_TOKEN=...
|
|
1636
1636
|
```
|
|
@@ -1639,7 +1639,7 @@ environment. Fix by doing one of these:
|
|
|
1639
1639
|
|
|
1640
1640
|
Then restart the gateway and recheck:
|
|
1641
1641
|
```bash
|
|
1642
|
-
|
|
1642
|
+
openclaw models status
|
|
1643
1643
|
```
|
|
1644
1644
|
|
|
1645
1645
|
Copilot tokens are read from `COPILOT_GITHUB_TOKEN` (also `GH_TOKEN` / `GITHUB_TOKEN`).
|
|
@@ -1665,7 +1665,7 @@ transcripts - it just starts a new session.
|
|
|
1665
1665
|
}
|
|
1666
1666
|
```
|
|
1667
1667
|
|
|
1668
|
-
### Is there a way to make a team of
|
|
1668
|
+
### Is there a way to make a team of OpenClaw instances one CEO and many agents
|
|
1669
1669
|
|
|
1670
1670
|
Yes, via **multi-agent routing** and **sub-agents**. You can create one coordinator
|
|
1671
1671
|
agent and several worker agents with their own workspaces and models.
|
|
@@ -1689,30 +1689,30 @@ What helps:
|
|
|
1689
1689
|
- Use sub-agents for long or parallel work so the main chat stays smaller.
|
|
1690
1690
|
- Pick a model with a larger context window if this happens often.
|
|
1691
1691
|
|
|
1692
|
-
### How do I completely reset
|
|
1692
|
+
### How do I completely reset OpenClaw but keep it installed
|
|
1693
1693
|
|
|
1694
1694
|
Use the reset command:
|
|
1695
1695
|
|
|
1696
1696
|
```bash
|
|
1697
|
-
|
|
1697
|
+
openclaw reset
|
|
1698
1698
|
```
|
|
1699
1699
|
|
|
1700
1700
|
Non-interactive full reset:
|
|
1701
1701
|
|
|
1702
1702
|
```bash
|
|
1703
|
-
|
|
1703
|
+
openclaw reset --scope full --yes --non-interactive
|
|
1704
1704
|
```
|
|
1705
1705
|
|
|
1706
1706
|
Then re-run onboarding:
|
|
1707
1707
|
|
|
1708
1708
|
```bash
|
|
1709
|
-
|
|
1709
|
+
openclaw onboard --install-daemon
|
|
1710
1710
|
```
|
|
1711
1711
|
|
|
1712
1712
|
Notes:
|
|
1713
1713
|
- The onboarding wizard also offers **Reset** if it sees an existing config. See [Wizard](/start/wizard).
|
|
1714
|
-
- If you used profiles (`--profile` / `
|
|
1715
|
-
- Dev reset: `
|
|
1714
|
+
- If you used profiles (`--profile` / `OPENCLAW_PROFILE`), reset each state dir (defaults are `~/.openclaw-<profile>`).
|
|
1715
|
+
- Dev reset: `openclaw gateway --dev --reset` (dev-only; wipes dev config + credentials + sessions + workspace).
|
|
1716
1716
|
|
|
1717
1717
|
### Im getting context too large errors how do I reset or compact
|
|
1718
1718
|
|
|
@@ -1761,14 +1761,14 @@ Heartbeats run every **30m** by default. Tune or disable them:
|
|
|
1761
1761
|
```
|
|
1762
1762
|
|
|
1763
1763
|
If `HEARTBEAT.md` exists but is effectively empty (only blank lines and markdown
|
|
1764
|
-
headers like `# Heading`),
|
|
1764
|
+
headers like `# Heading`), OpenClaw skips the heartbeat run to save API calls.
|
|
1765
1765
|
If the file is missing, the heartbeat still runs and the model decides what to do.
|
|
1766
1766
|
|
|
1767
1767
|
Per-agent overrides use `agents.list[].heartbeat`. Docs: [Heartbeat](/gateway/heartbeat).
|
|
1768
1768
|
|
|
1769
1769
|
### Do I need to add a bot account to a WhatsApp group
|
|
1770
1770
|
|
|
1771
|
-
No.
|
|
1771
|
+
No. OpenClaw runs on **your own account**, so if you’re in the group, OpenClaw can see it.
|
|
1772
1772
|
By default, group replies are blocked until you allow senders (`groupPolicy: "allowlist"`).
|
|
1773
1773
|
|
|
1774
1774
|
If you want only **you** to be able to trigger group replies:
|
|
@@ -1789,7 +1789,7 @@ If you want only **you** to be able to trigger group replies:
|
|
|
1789
1789
|
Option 1 (fastest): tail logs and send a test message in the group:
|
|
1790
1790
|
|
|
1791
1791
|
```bash
|
|
1792
|
-
|
|
1792
|
+
openclaw logs --follow --json
|
|
1793
1793
|
```
|
|
1794
1794
|
|
|
1795
1795
|
Look for `chatId` (or `from`) ending in `@g.us`, like:
|
|
@@ -1798,12 +1798,12 @@ Look for `chatId` (or `from`) ending in `@g.us`, like:
|
|
|
1798
1798
|
Option 2 (if already configured/allowlisted): list groups from config:
|
|
1799
1799
|
|
|
1800
1800
|
```bash
|
|
1801
|
-
|
|
1801
|
+
openclaw directory groups list --channel whatsapp
|
|
1802
1802
|
```
|
|
1803
1803
|
|
|
1804
1804
|
Docs: [WhatsApp](/channels/whatsapp), [Directory](/cli/directory), [Logs](/cli/logs).
|
|
1805
1805
|
|
|
1806
|
-
### Why doesnt
|
|
1806
|
+
### Why doesnt OpenClaw reply in a group
|
|
1807
1807
|
|
|
1808
1808
|
Two common causes:
|
|
1809
1809
|
- Mention gating is on (default). You must @mention the bot (or match `mentionPatterns`).
|
|
@@ -1819,14 +1819,14 @@ Direct chats collapse to the main session by default. Groups/channels have their
|
|
|
1819
1819
|
|
|
1820
1820
|
No hard limits. Dozens (even hundreds) are fine, but watch for:
|
|
1821
1821
|
|
|
1822
|
-
- **Disk growth:** sessions + transcripts live under `~/.
|
|
1822
|
+
- **Disk growth:** sessions + transcripts live under `~/.openclaw/agents/<agentId>/sessions/`.
|
|
1823
1823
|
- **Token cost:** more agents means more concurrent model usage.
|
|
1824
1824
|
- **Ops overhead:** per-agent auth profiles, workspaces, and channel routing.
|
|
1825
1825
|
|
|
1826
1826
|
Tips:
|
|
1827
1827
|
- Keep one **active** workspace per agent (`agents.defaults.workspace`).
|
|
1828
1828
|
- Prune old sessions (delete JSONL or store entries) if disk grows.
|
|
1829
|
-
- Use `
|
|
1829
|
+
- Use `openclaw doctor` to spot stray workspaces and profile mismatches.
|
|
1830
1830
|
|
|
1831
1831
|
### Can I run multiple bots or chats at the same time Slack and how should I set that up
|
|
1832
1832
|
|
|
@@ -1850,13 +1850,13 @@ Docs: [Multi‑Agent Routing](/concepts/multi-agent), [Slack](/channels/slack),
|
|
|
1850
1850
|
|
|
1851
1851
|
### What is the default model
|
|
1852
1852
|
|
|
1853
|
-
|
|
1853
|
+
OpenClaw’s default model is whatever you set as:
|
|
1854
1854
|
|
|
1855
1855
|
```
|
|
1856
1856
|
agents.defaults.model.primary
|
|
1857
1857
|
```
|
|
1858
1858
|
|
|
1859
|
-
Models are referenced as `provider/model` (example: `anthropic/claude-opus-4-5`). If you omit the provider,
|
|
1859
|
+
Models are referenced as `provider/model` (example: `anthropic/claude-opus-4-5`). If you omit the provider, OpenClaw currently assumes `anthropic` as a temporary deprecation fallback - but you should still **explicitly** set `provider/model`.
|
|
1860
1860
|
|
|
1861
1861
|
### What model do you recommend
|
|
1862
1862
|
|
|
@@ -1897,18 +1897,18 @@ Use **model commands** or edit only the **model** fields. Avoid full config repl
|
|
|
1897
1897
|
|
|
1898
1898
|
Safe options:
|
|
1899
1899
|
- `/model` in chat (quick, per-session)
|
|
1900
|
-
- `
|
|
1901
|
-
- `
|
|
1902
|
-
- edit `agents.defaults.model` in `~/.
|
|
1900
|
+
- `openclaw models set ...` (updates just model config)
|
|
1901
|
+
- `openclaw configure --section models` (interactive)
|
|
1902
|
+
- edit `agents.defaults.model` in `~/.openclaw/openclaw.json`
|
|
1903
1903
|
|
|
1904
1904
|
Avoid `config.apply` with a partial object unless you intend to replace the whole config.
|
|
1905
|
-
If you did overwrite config, restore from backup or re-run `
|
|
1905
|
+
If you did overwrite config, restore from backup or re-run `openclaw doctor` to repair.
|
|
1906
1906
|
|
|
1907
1907
|
Docs: [Models](/concepts/models), [Configure](/cli/configure), [Config](/cli/config), [Doctor](/gateway/doctor).
|
|
1908
1908
|
|
|
1909
|
-
### What do
|
|
1909
|
+
### What do OpenClaw, Flawd, and Krill use for models
|
|
1910
1910
|
|
|
1911
|
-
- **
|
|
1911
|
+
- **OpenClaw + Flawd:** Anthropic Opus (`anthropic/claude-opus-4-5`) - see [Anthropic](/providers/anthropic).
|
|
1912
1912
|
- **Krill:** MiniMax M2.1 (`minimax/MiniMax-M2.1`) - see [MiniMax](/providers/minimax).
|
|
1913
1913
|
|
|
1914
1914
|
### How do I switch models on the fly without restarting
|
|
@@ -1990,7 +1990,7 @@ Fix checklist:
|
|
|
1990
1990
|
`minimax/MiniMax-M2.1-lightning`.
|
|
1991
1991
|
4) Run:
|
|
1992
1992
|
```bash
|
|
1993
|
-
|
|
1993
|
+
openclaw models list
|
|
1994
1994
|
```
|
|
1995
1995
|
and pick from the list (or `/model list` in chat).
|
|
1996
1996
|
|
|
@@ -2031,7 +2031,7 @@ Docs: [Models](/concepts/models), [Multi-Agent Routing](/concepts/multi-agent),
|
|
|
2031
2031
|
|
|
2032
2032
|
### Are opus sonnet gpt builtin shortcuts
|
|
2033
2033
|
|
|
2034
|
-
Yes.
|
|
2034
|
+
Yes. OpenClaw ships a few default shorthands (only applied when the model exists in `agents.defaults.models`):
|
|
2035
2035
|
|
|
2036
2036
|
- `opus` → `anthropic/claude-opus-4-5`
|
|
2037
2037
|
- `sonnet` → `anthropic/claude-sonnet-4-5`
|
|
@@ -2101,11 +2101,11 @@ This usually means the **new agent** has an empty auth store. Auth is per-agent
|
|
|
2101
2101
|
stored in:
|
|
2102
2102
|
|
|
2103
2103
|
```
|
|
2104
|
-
~/.
|
|
2104
|
+
~/.openclaw/agents/<agentId>/agent/auth-profiles.json
|
|
2105
2105
|
```
|
|
2106
2106
|
|
|
2107
2107
|
Fix options:
|
|
2108
|
-
- Run `
|
|
2108
|
+
- Run `openclaw agents add <id>` and configure auth during the wizard.
|
|
2109
2109
|
- Or copy `auth-profiles.json` from the main agent’s `agentDir` into the new agent’s `agentDir`.
|
|
2110
2110
|
|
|
2111
2111
|
Do **not** reuse `agentDir` across agents; it causes auth/session collisions.
|
|
@@ -2119,7 +2119,7 @@ Failover happens in two stages:
|
|
|
2119
2119
|
1) **Auth profile rotation** within the same provider.
|
|
2120
2120
|
2) **Model fallback** to the next model in `agents.defaults.model.fallbacks`.
|
|
2121
2121
|
|
|
2122
|
-
Cooldowns apply to failing profiles (exponential backoff), so
|
|
2122
|
+
Cooldowns apply to failing profiles (exponential backoff), so OpenClaw can keep responding even when a provider is rate‑limited or temporarily failing.
|
|
2123
2123
|
|
|
2124
2124
|
### What does this error mean
|
|
2125
2125
|
|
|
@@ -2132,14 +2132,14 @@ It means the system attempted to use the auth profile ID `anthropic:default`, bu
|
|
|
2132
2132
|
### Fix checklist for No credentials found for profile anthropicdefault
|
|
2133
2133
|
|
|
2134
2134
|
- **Confirm where auth profiles live** (new vs legacy paths)
|
|
2135
|
-
- Current: `~/.
|
|
2136
|
-
- Legacy: `~/.
|
|
2135
|
+
- Current: `~/.openclaw/agents/<agentId>/agent/auth-profiles.json`
|
|
2136
|
+
- Legacy: `~/.openclaw/agent/*` (migrated by `openclaw doctor`)
|
|
2137
2137
|
- **Confirm your env var is loaded by the Gateway**
|
|
2138
|
-
- If you set `ANTHROPIC_API_KEY` in your shell but run the Gateway via systemd/launchd, it may not inherit it. Put it in `~/.
|
|
2138
|
+
- If you set `ANTHROPIC_API_KEY` in your shell but run the Gateway via systemd/launchd, it may not inherit it. Put it in `~/.openclaw/.env` or enable `env.shellEnv`.
|
|
2139
2139
|
- **Make sure you’re editing the correct agent**
|
|
2140
2140
|
- Multi‑agent setups mean there can be multiple `auth-profiles.json` files.
|
|
2141
2141
|
- **Sanity‑check model/auth status**
|
|
2142
|
-
- Use `
|
|
2142
|
+
- Use `openclaw models status` to see configured models and whether providers are authenticated.
|
|
2143
2143
|
|
|
2144
2144
|
**Fix checklist for No credentials found for profile anthropic**
|
|
2145
2145
|
|
|
@@ -2147,20 +2147,20 @@ This means the run is pinned to an Anthropic auth profile, but the Gateway
|
|
|
2147
2147
|
can’t find it in its auth store.
|
|
2148
2148
|
|
|
2149
2149
|
- **Use a setup-token**
|
|
2150
|
-
- Run `claude setup-token`, then paste it with `
|
|
2151
|
-
- If the token was created on another machine, use `
|
|
2150
|
+
- Run `claude setup-token`, then paste it with `openclaw models auth setup-token --provider anthropic`.
|
|
2151
|
+
- If the token was created on another machine, use `openclaw models auth paste-token --provider anthropic`.
|
|
2152
2152
|
- **If you want to use an API key instead**
|
|
2153
|
-
- Put `ANTHROPIC_API_KEY` in `~/.
|
|
2153
|
+
- Put `ANTHROPIC_API_KEY` in `~/.openclaw/.env` on the **gateway host**.
|
|
2154
2154
|
- Clear any pinned order that forces a missing profile:
|
|
2155
2155
|
```bash
|
|
2156
|
-
|
|
2156
|
+
openclaw models auth order clear --provider anthropic
|
|
2157
2157
|
```
|
|
2158
2158
|
- **Confirm you’re running commands on the gateway host**
|
|
2159
2159
|
- In remote mode, auth profiles live on the gateway machine, not your laptop.
|
|
2160
2160
|
|
|
2161
2161
|
### Why did it also try Google Gemini and fail
|
|
2162
2162
|
|
|
2163
|
-
If your model config includes Google Gemini as a fallback (or you switched to a Gemini shorthand),
|
|
2163
|
+
If your model config includes Google Gemini as a fallback (or you switched to a Gemini shorthand), OpenClaw will try it during model fallback. If you haven’t configured Google credentials, you’ll see `No API key found for provider "google"`.
|
|
2164
2164
|
|
|
2165
2165
|
Fix: either provide Google auth, or remove/avoid Google models in `agents.defaults.model.fallbacks` / aliases so fallback doesn’t route there.
|
|
2166
2166
|
|
|
@@ -2169,7 +2169,7 @@ Fix: either provide Google auth, or remove/avoid Google models in `agents.defaul
|
|
|
2169
2169
|
Cause: the session history contains **thinking blocks without signatures** (often from
|
|
2170
2170
|
an aborted/partial stream). Google Antigravity requires signatures for thinking blocks.
|
|
2171
2171
|
|
|
2172
|
-
Fix:
|
|
2172
|
+
Fix: OpenClaw now strips unsigned thinking blocks for Google Antigravity Claude. If it still appears, start a **new session** or set `/thinking off` for that agent.
|
|
2173
2173
|
|
|
2174
2174
|
## Auth profiles: what they are and how to manage them
|
|
2175
2175
|
|
|
@@ -2180,12 +2180,12 @@ Related: [/concepts/oauth](/concepts/oauth) (OAuth flows, token storage, multi-a
|
|
|
2180
2180
|
An auth profile is a named credential record (OAuth or API key) tied to a provider. Profiles live in:
|
|
2181
2181
|
|
|
2182
2182
|
```
|
|
2183
|
-
~/.
|
|
2183
|
+
~/.openclaw/agents/<agentId>/agent/auth-profiles.json
|
|
2184
2184
|
```
|
|
2185
2185
|
|
|
2186
2186
|
### What are typical profile IDs
|
|
2187
2187
|
|
|
2188
|
-
|
|
2188
|
+
OpenClaw uses provider‑prefixed IDs like:
|
|
2189
2189
|
|
|
2190
2190
|
- `anthropic:default` (common when no email identity exists)
|
|
2191
2191
|
- `anthropic:<email>` for OAuth identities
|
|
@@ -2195,33 +2195,33 @@ Moltbot uses provider‑prefixed IDs like:
|
|
|
2195
2195
|
|
|
2196
2196
|
Yes. Config supports optional metadata for profiles and an ordering per provider (`auth.order.<provider>`). This does **not** store secrets; it maps IDs to provider/mode and sets rotation order.
|
|
2197
2197
|
|
|
2198
|
-
|
|
2198
|
+
OpenClaw may temporarily skip a profile if it’s in a short **cooldown** (rate limits/timeouts/auth failures) or a longer **disabled** state (billing/insufficient credits). To inspect this, run `openclaw models status --json` and check `auth.unusableProfiles`. Tuning: `auth.cooldowns.billingBackoffHours*`.
|
|
2199
2199
|
|
|
2200
2200
|
You can also set a **per-agent** order override (stored in that agent’s `auth-profiles.json`) via the CLI:
|
|
2201
2201
|
|
|
2202
2202
|
```bash
|
|
2203
2203
|
# Defaults to the configured default agent (omit --agent)
|
|
2204
|
-
|
|
2204
|
+
openclaw models auth order get --provider anthropic
|
|
2205
2205
|
|
|
2206
2206
|
# Lock rotation to a single profile (only try this one)
|
|
2207
|
-
|
|
2207
|
+
openclaw models auth order set --provider anthropic anthropic:default
|
|
2208
2208
|
|
|
2209
2209
|
# Or set an explicit order (fallback within provider)
|
|
2210
|
-
|
|
2210
|
+
openclaw models auth order set --provider anthropic anthropic:work anthropic:default
|
|
2211
2211
|
|
|
2212
2212
|
# Clear override (fall back to config auth.order / round-robin)
|
|
2213
|
-
|
|
2213
|
+
openclaw models auth order clear --provider anthropic
|
|
2214
2214
|
```
|
|
2215
2215
|
|
|
2216
2216
|
To target a specific agent:
|
|
2217
2217
|
|
|
2218
2218
|
```bash
|
|
2219
|
-
|
|
2219
|
+
openclaw models auth order set --provider anthropic --agent main anthropic:default
|
|
2220
2220
|
```
|
|
2221
2221
|
|
|
2222
2222
|
### OAuth vs API key whats the difference
|
|
2223
2223
|
|
|
2224
|
-
|
|
2224
|
+
OpenClaw supports both:
|
|
2225
2225
|
|
|
2226
2226
|
- **OAuth** often leverages subscription access (where applicable).
|
|
2227
2227
|
- **API keys** use pay‑per‑token billing.
|
|
@@ -2237,35 +2237,35 @@ The wizard explicitly supports Anthropic setup-token and OpenAI Codex OAuth and
|
|
|
2237
2237
|
Precedence:
|
|
2238
2238
|
|
|
2239
2239
|
```
|
|
2240
|
-
--port >
|
|
2240
|
+
--port > OPENCLAW_GATEWAY_PORT > gateway.port > default 18789
|
|
2241
2241
|
```
|
|
2242
2242
|
|
|
2243
|
-
### Why does
|
|
2243
|
+
### Why does openclaw gateway status say Runtime running but RPC probe failed
|
|
2244
2244
|
|
|
2245
2245
|
Because “running” is the **supervisor’s** view (launchd/systemd/schtasks). The RPC probe is the CLI actually connecting to the gateway WebSocket and calling `status`.
|
|
2246
2246
|
|
|
2247
|
-
Use `
|
|
2247
|
+
Use `openclaw gateway status` and trust these lines:
|
|
2248
2248
|
- `Probe target:` (the URL the probe actually used)
|
|
2249
2249
|
- `Listening:` (what’s actually bound on the port)
|
|
2250
2250
|
- `Last gateway error:` (common root cause when the process is alive but the port isn’t listening)
|
|
2251
2251
|
|
|
2252
|
-
### Why does
|
|
2252
|
+
### Why does openclaw gateway status show Config cli and Config service different
|
|
2253
2253
|
|
|
2254
|
-
You’re editing one config file while the service is running another (often a `--profile` / `
|
|
2254
|
+
You’re editing one config file while the service is running another (often a `--profile` / `OPENCLAW_STATE_DIR` mismatch).
|
|
2255
2255
|
|
|
2256
2256
|
Fix:
|
|
2257
2257
|
```bash
|
|
2258
|
-
|
|
2258
|
+
openclaw gateway install --force
|
|
2259
2259
|
```
|
|
2260
2260
|
Run that from the same `--profile` / environment you want the service to use.
|
|
2261
2261
|
|
|
2262
2262
|
### What does another gateway instance is already listening mean
|
|
2263
2263
|
|
|
2264
|
-
|
|
2264
|
+
OpenClaw enforces a runtime lock by binding the WebSocket listener immediately on startup (default `ws://127.0.0.1:18789`). If the bind fails with `EADDRINUSE`, it throws `GatewayLockError` indicating another instance is already listening.
|
|
2265
2265
|
|
|
2266
|
-
Fix: stop the other instance, free the port, or run with `
|
|
2266
|
+
Fix: stop the other instance, free the port, or run with `openclaw gateway --port <port>`.
|
|
2267
2267
|
|
|
2268
|
-
### How do I run
|
|
2268
|
+
### How do I run OpenClaw in remote mode client connects to a Gateway elsewhere
|
|
2269
2269
|
|
|
2270
2270
|
Set `gateway.mode: "remote"` and point to a remote WebSocket URL, optionally with a token/password:
|
|
2271
2271
|
|
|
@@ -2283,7 +2283,7 @@ Set `gateway.mode: "remote"` and point to a remote WebSocket URL, optionally wit
|
|
|
2283
2283
|
```
|
|
2284
2284
|
|
|
2285
2285
|
Notes:
|
|
2286
|
-
- `
|
|
2286
|
+
- `openclaw gateway` only starts when `gateway.mode` is `local` (or you pass the override flag).
|
|
2287
2287
|
- The macOS app watches the config file and switches modes live when these values change.
|
|
2288
2288
|
|
|
2289
2289
|
### The Control UI says unauthorized or keeps reconnecting What now
|
|
@@ -2291,16 +2291,16 @@ Notes:
|
|
|
2291
2291
|
Your gateway is running with auth enabled (`gateway.auth.*`), but the UI is not sending the matching token/password.
|
|
2292
2292
|
|
|
2293
2293
|
Facts (from code):
|
|
2294
|
-
- The Control UI stores the token in browser localStorage key `
|
|
2294
|
+
- The Control UI stores the token in browser localStorage key `openclaw.control.settings.v1`.
|
|
2295
2295
|
- The UI can import `?token=...` (and/or `?password=...`) once, then strips it from the URL.
|
|
2296
2296
|
|
|
2297
2297
|
Fix:
|
|
2298
|
-
- Fastest: `
|
|
2299
|
-
- If you don’t have a token yet: `
|
|
2298
|
+
- Fastest: `openclaw dashboard` (prints + copies tokenized link, tries to open; shows SSH hint if headless).
|
|
2299
|
+
- If you don’t have a token yet: `openclaw doctor --generate-gateway-token`.
|
|
2300
2300
|
- If remote, tunnel first: `ssh -N -L 18789:127.0.0.1:18789 user@host` then open `http://127.0.0.1:18789/?token=...`.
|
|
2301
|
-
- Set `gateway.auth.token` (or `
|
|
2301
|
+
- Set `gateway.auth.token` (or `OPENCLAW_GATEWAY_TOKEN`) on the gateway host.
|
|
2302
2302
|
- In the Control UI settings, paste the same token (or refresh with a one-time `?token=...` link).
|
|
2303
|
-
- Still stuck? Run `
|
|
2303
|
+
- Still stuck? Run `openclaw status --all` and follow [Troubleshooting](/gateway/troubleshooting). See [Dashboard](/web/dashboard) for auth details.
|
|
2304
2304
|
|
|
2305
2305
|
### I set gatewaybind tailnet but it cant bind nothing listens
|
|
2306
2306
|
|
|
@@ -2318,17 +2318,17 @@ Usually no - one Gateway can run multiple messaging channels and agents. Use mul
|
|
|
2318
2318
|
|
|
2319
2319
|
Yes, but you must isolate:
|
|
2320
2320
|
|
|
2321
|
-
- `
|
|
2322
|
-
- `
|
|
2321
|
+
- `OPENCLAW_CONFIG_PATH` (per‑instance config)
|
|
2322
|
+
- `OPENCLAW_STATE_DIR` (per‑instance state)
|
|
2323
2323
|
- `agents.defaults.workspace` (workspace isolation)
|
|
2324
2324
|
- `gateway.port` (unique ports)
|
|
2325
2325
|
|
|
2326
2326
|
Quick setup (recommended):
|
|
2327
|
-
- Use `
|
|
2327
|
+
- Use `openclaw --profile <name> …` per instance (auto-creates `~/.openclaw-<name>`).
|
|
2328
2328
|
- Set a unique `gateway.port` in each profile config (or pass `--port` for manual runs).
|
|
2329
|
-
- Install a per-profile service: `
|
|
2329
|
+
- Install a per-profile service: `openclaw --profile <name> gateway install`.
|
|
2330
2330
|
|
|
2331
|
-
Profiles also suffix service names (`bot.molt.<profile>`; legacy `com.
|
|
2331
|
+
Profiles also suffix service names (`bot.molt.<profile>`; legacy `com.openclaw.*`, `openclaw-gateway-<profile>.service`, `OpenClaw Gateway (<profile>)`).
|
|
2332
2332
|
Full guide: [Multiple gateways](/gateway/multiple-gateways).
|
|
2333
2333
|
|
|
2334
2334
|
### What does invalid handshake code 1008 mean
|
|
@@ -2349,7 +2349,7 @@ Quick fixes:
|
|
|
2349
2349
|
|
|
2350
2350
|
If you’re using the CLI or TUI, the URL should look like:
|
|
2351
2351
|
```
|
|
2352
|
-
|
|
2352
|
+
openclaw tui --url ws://<host>:18789 --token <token>
|
|
2353
2353
|
```
|
|
2354
2354
|
|
|
2355
2355
|
Protocol details: [Gateway protocol](/gateway/protocol).
|
|
@@ -2361,7 +2361,7 @@ Protocol details: [Gateway protocol](/gateway/protocol).
|
|
|
2361
2361
|
File logs (structured):
|
|
2362
2362
|
|
|
2363
2363
|
```
|
|
2364
|
-
/tmp/
|
|
2364
|
+
/tmp/openclaw/openclaw-YYYY-MM-DD.log
|
|
2365
2365
|
```
|
|
2366
2366
|
|
|
2367
2367
|
You can set a stable path via `logging.file`. File log level is controlled by `logging.level`. Console verbosity is controlled by `--verbose` and `logging.consoleLevel`.
|
|
@@ -2369,13 +2369,13 @@ You can set a stable path via `logging.file`. File log level is controlled by `l
|
|
|
2369
2369
|
Fastest log tail:
|
|
2370
2370
|
|
|
2371
2371
|
```bash
|
|
2372
|
-
|
|
2372
|
+
openclaw logs --follow
|
|
2373
2373
|
```
|
|
2374
2374
|
|
|
2375
2375
|
Service/supervisor logs (when the gateway runs via launchd/systemd):
|
|
2376
|
-
- macOS: `$
|
|
2377
|
-
- Linux: `journalctl --user -u
|
|
2378
|
-
- Windows: `schtasks /Query /TN "
|
|
2376
|
+
- macOS: `$OPENCLAW_STATE_DIR/logs/gateway.log` and `gateway.err.log` (default: `~/.openclaw/logs/...`; profiles use `~/.openclaw-<profile>/logs/...`)
|
|
2377
|
+
- Linux: `journalctl --user -u openclaw-gateway[-<profile>].service -n 200 --no-pager`
|
|
2378
|
+
- Windows: `schtasks /Query /TN "OpenClaw Gateway (<profile>)" /V /FO LIST`
|
|
2379
2379
|
|
|
2380
2380
|
See [Troubleshooting](/gateway/troubleshooting#log-locations) for more.
|
|
2381
2381
|
|
|
@@ -2384,13 +2384,13 @@ See [Troubleshooting](/gateway/troubleshooting#log-locations) for more.
|
|
|
2384
2384
|
Use the gateway helpers:
|
|
2385
2385
|
|
|
2386
2386
|
```bash
|
|
2387
|
-
|
|
2388
|
-
|
|
2387
|
+
openclaw gateway status
|
|
2388
|
+
openclaw gateway restart
|
|
2389
2389
|
```
|
|
2390
2390
|
|
|
2391
|
-
If you run the gateway manually, `
|
|
2391
|
+
If you run the gateway manually, `openclaw gateway --force` can reclaim the port. See [Gateway](/gateway).
|
|
2392
2392
|
|
|
2393
|
-
### I closed my terminal on Windows how do I restart
|
|
2393
|
+
### I closed my terminal on Windows how do I restart OpenClaw
|
|
2394
2394
|
|
|
2395
2395
|
There are **two Windows install modes**:
|
|
2396
2396
|
|
|
@@ -2400,14 +2400,14 @@ Open PowerShell, enter WSL, then restart:
|
|
|
2400
2400
|
|
|
2401
2401
|
```powershell
|
|
2402
2402
|
wsl
|
|
2403
|
-
|
|
2404
|
-
|
|
2403
|
+
openclaw gateway status
|
|
2404
|
+
openclaw gateway restart
|
|
2405
2405
|
```
|
|
2406
2406
|
|
|
2407
2407
|
If you never installed the service, start it in the foreground:
|
|
2408
2408
|
|
|
2409
2409
|
```bash
|
|
2410
|
-
|
|
2410
|
+
openclaw gateway run
|
|
2411
2411
|
```
|
|
2412
2412
|
|
|
2413
2413
|
**2) Native Windows (not recommended):** the Gateway runs directly in Windows.
|
|
@@ -2415,14 +2415,14 @@ moltbot gateway run
|
|
|
2415
2415
|
Open PowerShell and run:
|
|
2416
2416
|
|
|
2417
2417
|
```powershell
|
|
2418
|
-
|
|
2419
|
-
|
|
2418
|
+
openclaw gateway status
|
|
2419
|
+
openclaw gateway restart
|
|
2420
2420
|
```
|
|
2421
2421
|
|
|
2422
2422
|
If you run it manually (no service), use:
|
|
2423
2423
|
|
|
2424
2424
|
```powershell
|
|
2425
|
-
|
|
2425
|
+
openclaw gateway run
|
|
2426
2426
|
```
|
|
2427
2427
|
|
|
2428
2428
|
Docs: [Windows (WSL2)](/platforms/windows), [Gateway service runbook](/gateway).
|
|
@@ -2432,10 +2432,10 @@ Docs: [Windows (WSL2)](/platforms/windows), [Gateway service runbook](/gateway).
|
|
|
2432
2432
|
Start with a quick health sweep:
|
|
2433
2433
|
|
|
2434
2434
|
```bash
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2435
|
+
openclaw status
|
|
2436
|
+
openclaw models status
|
|
2437
|
+
openclaw channels status
|
|
2438
|
+
openclaw logs --follow
|
|
2439
2439
|
```
|
|
2440
2440
|
|
|
2441
2441
|
Common causes:
|
|
@@ -2452,15 +2452,15 @@ Docs: [Channels](/channels), [Troubleshooting](/gateway/troubleshooting), [Remot
|
|
|
2452
2452
|
|
|
2453
2453
|
This usually means the UI lost the WebSocket connection. Check:
|
|
2454
2454
|
|
|
2455
|
-
1) Is the Gateway running? `
|
|
2456
|
-
2) Is the Gateway healthy? `
|
|
2457
|
-
3) Does the UI have the right token? `
|
|
2455
|
+
1) Is the Gateway running? `openclaw gateway status`
|
|
2456
|
+
2) Is the Gateway healthy? `openclaw status`
|
|
2457
|
+
3) Does the UI have the right token? `openclaw dashboard`
|
|
2458
2458
|
4) If remote, is the tunnel/Tailscale link up?
|
|
2459
2459
|
|
|
2460
2460
|
Then tail logs:
|
|
2461
2461
|
|
|
2462
2462
|
```bash
|
|
2463
|
-
|
|
2463
|
+
openclaw logs --follow
|
|
2464
2464
|
```
|
|
2465
2465
|
|
|
2466
2466
|
Docs: [Dashboard](/web/dashboard), [Remote access](/gateway/remote), [Troubleshooting](/gateway/troubleshooting).
|
|
@@ -2470,8 +2470,8 @@ Docs: [Dashboard](/web/dashboard), [Remote access](/gateway/remote), [Troublesho
|
|
|
2470
2470
|
Start with logs and channel status:
|
|
2471
2471
|
|
|
2472
2472
|
```bash
|
|
2473
|
-
|
|
2474
|
-
|
|
2473
|
+
openclaw channels status
|
|
2474
|
+
openclaw channels logs --channel telegram
|
|
2475
2475
|
```
|
|
2476
2476
|
|
|
2477
2477
|
If you are on a VPS or behind a proxy, confirm outbound HTTPS is allowed and DNS works.
|
|
@@ -2484,9 +2484,9 @@ Docs: [Telegram](/channels/telegram), [Channel troubleshooting](/channels/troubl
|
|
|
2484
2484
|
First confirm the Gateway is reachable and the agent can run:
|
|
2485
2485
|
|
|
2486
2486
|
```bash
|
|
2487
|
-
|
|
2488
|
-
|
|
2489
|
-
|
|
2487
|
+
openclaw status
|
|
2488
|
+
openclaw models status
|
|
2489
|
+
openclaw logs --follow
|
|
2490
2490
|
```
|
|
2491
2491
|
|
|
2492
2492
|
In the TUI, use `/status` to see the current state. If you expect replies in a chat
|
|
@@ -2499,8 +2499,8 @@ Docs: [TUI](/tui), [Slash commands](/tools/slash-commands).
|
|
|
2499
2499
|
If you installed the service:
|
|
2500
2500
|
|
|
2501
2501
|
```bash
|
|
2502
|
-
|
|
2503
|
-
|
|
2502
|
+
openclaw gateway stop
|
|
2503
|
+
openclaw gateway start
|
|
2504
2504
|
```
|
|
2505
2505
|
|
|
2506
2506
|
This stops/starts the **supervised service** (launchd on macOS, systemd on Linux).
|
|
@@ -2509,17 +2509,17 @@ Use this when the Gateway runs in the background as a daemon.
|
|
|
2509
2509
|
If you’re running in the foreground, stop with Ctrl‑C, then:
|
|
2510
2510
|
|
|
2511
2511
|
```bash
|
|
2512
|
-
|
|
2512
|
+
openclaw gateway run
|
|
2513
2513
|
```
|
|
2514
2514
|
|
|
2515
2515
|
Docs: [Gateway service runbook](/gateway).
|
|
2516
2516
|
|
|
2517
|
-
### ELI5
|
|
2517
|
+
### ELI5 openclaw gateway restart vs openclaw gateway
|
|
2518
2518
|
|
|
2519
|
-
- `
|
|
2520
|
-
- `
|
|
2519
|
+
- `openclaw gateway restart`: restarts the **background service** (launchd/systemd).
|
|
2520
|
+
- `openclaw gateway`: runs the gateway **in the foreground** for this terminal session.
|
|
2521
2521
|
|
|
2522
|
-
If you installed the service, use the gateway commands. Use `
|
|
2522
|
+
If you installed the service, use the gateway commands. Use `openclaw gateway` when
|
|
2523
2523
|
you want a one-off, foreground run.
|
|
2524
2524
|
|
|
2525
2525
|
### Whats the fastest way to get more details when something fails
|
|
@@ -2530,12 +2530,12 @@ Start the Gateway with `--verbose` to get more console detail. Then inspect the
|
|
|
2530
2530
|
|
|
2531
2531
|
### My skill generated an imagePDF but nothing was sent
|
|
2532
2532
|
|
|
2533
|
-
Outbound attachments from the agent must include a `MEDIA:<path-or-url>` line (on its own line). See [
|
|
2533
|
+
Outbound attachments from the agent must include a `MEDIA:<path-or-url>` line (on its own line). See [OpenClaw assistant setup](/start/openclaw) and [Agent send](/tools/agent-send).
|
|
2534
2534
|
|
|
2535
2535
|
CLI sending:
|
|
2536
2536
|
|
|
2537
2537
|
```bash
|
|
2538
|
-
|
|
2538
|
+
openclaw message send --target +15555550123 --message "Here you go" --media /path/to/file.png
|
|
2539
2539
|
```
|
|
2540
2540
|
|
|
2541
2541
|
Also check:
|
|
@@ -2546,17 +2546,17 @@ See [Images](/nodes/images).
|
|
|
2546
2546
|
|
|
2547
2547
|
## Security and access control
|
|
2548
2548
|
|
|
2549
|
-
### Is it safe to expose
|
|
2549
|
+
### Is it safe to expose OpenClaw to inbound DMs
|
|
2550
2550
|
|
|
2551
2551
|
Treat inbound DMs as untrusted input. Defaults are designed to reduce risk:
|
|
2552
2552
|
|
|
2553
2553
|
- Default behavior on DM‑capable channels is **pairing**:
|
|
2554
2554
|
- Unknown senders receive a pairing code; the bot does not process their message.
|
|
2555
|
-
- Approve with: `
|
|
2556
|
-
- Pending requests are capped at **3 per channel**; check `
|
|
2555
|
+
- Approve with: `openclaw pairing approve <channel> <code>`
|
|
2556
|
+
- Pending requests are capped at **3 per channel**; check `openclaw pairing list <channel>` if a code didn’t arrive.
|
|
2557
2557
|
- Opening DMs publicly requires explicit opt‑in (`dmPolicy: "open"` and allowlist `"*"`).
|
|
2558
2558
|
|
|
2559
|
-
Run `
|
|
2559
|
+
Run `openclaw doctor` to surface risky DM policies.
|
|
2560
2560
|
|
|
2561
2561
|
### Is prompt injection only a concern for public bots
|
|
2562
2562
|
|
|
@@ -2608,7 +2608,7 @@ Pairing codes are sent **only** when an unknown sender messages the bot and
|
|
|
2608
2608
|
|
|
2609
2609
|
Check pending requests:
|
|
2610
2610
|
```bash
|
|
2611
|
-
|
|
2611
|
+
openclaw pairing list telegram
|
|
2612
2612
|
```
|
|
2613
2613
|
|
|
2614
2614
|
If you want immediate access, allowlist your sender id or set `dmPolicy: "open"`
|
|
@@ -2616,18 +2616,18 @@ for that account.
|
|
|
2616
2616
|
|
|
2617
2617
|
### WhatsApp will it message my contacts How does pairing work
|
|
2618
2618
|
|
|
2619
|
-
No. Default WhatsApp DM policy is **pairing**. Unknown senders only get a pairing code and their message is **not processed**.
|
|
2619
|
+
No. Default WhatsApp DM policy is **pairing**. Unknown senders only get a pairing code and their message is **not processed**. OpenClaw only replies to chats it receives or to explicit sends you trigger.
|
|
2620
2620
|
|
|
2621
2621
|
Approve pairing with:
|
|
2622
2622
|
|
|
2623
2623
|
```bash
|
|
2624
|
-
|
|
2624
|
+
openclaw pairing approve whatsapp <code>
|
|
2625
2625
|
```
|
|
2626
2626
|
|
|
2627
2627
|
List pending requests:
|
|
2628
2628
|
|
|
2629
2629
|
```bash
|
|
2630
|
-
|
|
2630
|
+
openclaw pairing list whatsapp
|
|
2631
2631
|
```
|
|
2632
2632
|
|
|
2633
2633
|
Wizard phone number prompt: it’s used to set your **allowlist/owner** so your own DMs are permitted. It’s not used for auto-sending. If you run on your personal WhatsApp number, use that number and enable `channels.whatsapp.selfChatMode`.
|
|
@@ -2678,7 +2678,7 @@ Most commands must be sent as a **standalone** message that starts with `/`, but
|
|
|
2678
2678
|
|
|
2679
2679
|
### How do I send a Discord message from Telegram Crosscontext messaging denied
|
|
2680
2680
|
|
|
2681
|
-
|
|
2681
|
+
OpenClaw blocks **cross‑provider** messaging by default. If a tool call is bound
|
|
2682
2682
|
to Telegram, it won’t send to Discord unless you explicitly allow it.
|
|
2683
2683
|
|
|
2684
2684
|
Enable cross‑provider messaging for the agent:
|
|
@@ -2719,8 +2719,8 @@ You can add options like `debounce:2s cap:25 drop:summarize` for followup modes.
|
|
|
2719
2719
|
|
|
2720
2720
|
**Q: “What’s the default model for Anthropic with an API key?”**
|
|
2721
2721
|
|
|
2722
|
-
**A:** In
|
|
2722
|
+
**A:** In OpenClaw, credentials and model selection are separate. Setting `ANTHROPIC_API_KEY` (or storing an Anthropic API key in auth profiles) enables authentication, but the actual default model is whatever you configure in `agents.defaults.model.primary` (for example, `anthropic/claude-sonnet-4-5` or `anthropic/claude-opus-4-5`). If you see `No credentials found for profile "anthropic:default"`, it means the Gateway couldn’t find Anthropic credentials in the expected `auth-profiles.json` for the agent that’s running.
|
|
2723
2723
|
|
|
2724
2724
|
---
|
|
2725
2725
|
|
|
2726
|
-
Still stuck? Ask in [Discord](https://discord.com/invite/clawd) or open a [GitHub discussion](https://github.com/
|
|
2726
|
+
Still stuck? Ask in [Discord](https://discord.com/invite/clawd) or open a [GitHub discussion](https://github.com/openclaw/openclaw/discussions).
|