@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
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
|
-
summary: "All configuration options for ~/.
|
|
2
|
+
summary: "All configuration options for ~/.openclaw/openclaw.json with examples"
|
|
3
3
|
read_when:
|
|
4
4
|
- Adding or modifying config fields
|
|
5
5
|
---
|
|
6
6
|
# Configuration 🔧
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
OpenClaw reads an optional **JSON5** config from `~/.openclaw/openclaw.json` (comments + trailing commas allowed).
|
|
9
9
|
|
|
10
|
-
If the file is missing,
|
|
10
|
+
If the file is missing, OpenClaw uses safe-ish defaults (embedded Pi agent + per-sender sessions + workspace `~/.openclaw/workspace`). You usually only need a config to:
|
|
11
11
|
- restrict who can trigger the bot (`channels.whatsapp.allowFrom`, `channels.telegram.allowFrom`, etc.)
|
|
12
12
|
- control group allowlists + mention behavior (`channels.whatsapp.groups`, `channels.telegram.groups`, `channels.discord.guilds`, `agents.list[].groupChat`)
|
|
13
13
|
- customize message prefixes (`messages`)
|
|
@@ -19,14 +19,14 @@ If the file is missing, Moltbot uses safe-ish defaults (embedded Pi agent + per-
|
|
|
19
19
|
|
|
20
20
|
## Strict config validation
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
OpenClaw only accepts configurations that fully match the schema.
|
|
23
23
|
Unknown keys, malformed types, or invalid values cause the Gateway to **refuse to start** for safety.
|
|
24
24
|
|
|
25
25
|
When validation fails:
|
|
26
26
|
- The Gateway does not boot.
|
|
27
|
-
- Only diagnostic commands are allowed (for example: `
|
|
28
|
-
- Run `
|
|
29
|
-
- Run `
|
|
27
|
+
- Only diagnostic commands are allowed (for example: `openclaw doctor`, `openclaw logs`, `openclaw health`, `openclaw status`, `openclaw service`, `openclaw help`).
|
|
28
|
+
- Run `openclaw doctor` to see the exact issues.
|
|
29
|
+
- Run `openclaw doctor --fix` (or `--yes`) to apply migrations/repairs.
|
|
30
30
|
|
|
31
31
|
Doctor never writes changes unless you explicitly opt into `--fix`/`--yes`.
|
|
32
32
|
|
|
@@ -47,7 +47,7 @@ Use `config.apply` to validate + write the full config and restart the Gateway i
|
|
|
47
47
|
It writes a restart sentinel and pings the last active session after the Gateway comes back.
|
|
48
48
|
|
|
49
49
|
Warning: `config.apply` replaces the **entire config**. If you want to change only a few keys,
|
|
50
|
-
use `config.patch` or `
|
|
50
|
+
use `config.patch` or `openclaw config set`. Keep a backup of `~/.openclaw/openclaw.json`.
|
|
51
51
|
|
|
52
52
|
Params:
|
|
53
53
|
- `raw` (string) — JSON5 payload for the entire config
|
|
@@ -59,9 +59,9 @@ Params:
|
|
|
59
59
|
Example (via `gateway call`):
|
|
60
60
|
|
|
61
61
|
```bash
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
"raw": "{\\n agents: { defaults: { workspace: \\"
|
|
62
|
+
openclaw gateway call config.get --params '{}' # capture payload.hash
|
|
63
|
+
openclaw gateway call config.apply --params '{
|
|
64
|
+
"raw": "{\\n agents: { defaults: { workspace: \\"~/.openclaw/workspace\\" } }\\n}\\n",
|
|
65
65
|
"baseHash": "<hash-from-config.get>",
|
|
66
66
|
"sessionKey": "agent:main:whatsapp:dm:+15555550123",
|
|
67
67
|
"restartDelayMs": 1000
|
|
@@ -88,8 +88,8 @@ Params:
|
|
|
88
88
|
Example:
|
|
89
89
|
|
|
90
90
|
```bash
|
|
91
|
-
|
|
92
|
-
|
|
91
|
+
openclaw gateway call config.get --params '{}' # capture payload.hash
|
|
92
|
+
openclaw gateway call config.patch --params '{
|
|
93
93
|
"raw": "{\\n channels: { telegram: { groups: { \\"*\\": { requireMention: false } } } }\\n}\\n",
|
|
94
94
|
"baseHash": "<hash-from-config.get>",
|
|
95
95
|
"sessionKey": "agent:main:whatsapp:dm:+15555550123",
|
|
@@ -101,7 +101,7 @@ moltbot gateway call config.patch --params '{
|
|
|
101
101
|
|
|
102
102
|
```json5
|
|
103
103
|
{
|
|
104
|
-
agents: { defaults: { workspace: "
|
|
104
|
+
agents: { defaults: { workspace: "~/.openclaw/workspace" } },
|
|
105
105
|
channels: { whatsapp: { allowFrom: ["+15555550123"] } }
|
|
106
106
|
}
|
|
107
107
|
```
|
|
@@ -118,11 +118,11 @@ To prevent the bot from responding to WhatsApp @-mentions in groups (only respon
|
|
|
118
118
|
```json5
|
|
119
119
|
{
|
|
120
120
|
agents: {
|
|
121
|
-
defaults: { workspace: "
|
|
121
|
+
defaults: { workspace: "~/.openclaw/workspace" },
|
|
122
122
|
list: [
|
|
123
123
|
{
|
|
124
124
|
id: "main",
|
|
125
|
-
groupChat: { mentionPatterns: ["@
|
|
125
|
+
groupChat: { mentionPatterns: ["@openclaw", "reisponde"] }
|
|
126
126
|
}
|
|
127
127
|
]
|
|
128
128
|
},
|
|
@@ -146,7 +146,7 @@ Split your config into multiple files using the `$include` directive. This is us
|
|
|
146
146
|
### Basic usage
|
|
147
147
|
|
|
148
148
|
```json5
|
|
149
|
-
// ~/.
|
|
149
|
+
// ~/.openclaw/openclaw.json
|
|
150
150
|
{
|
|
151
151
|
gateway: { port: 18789 },
|
|
152
152
|
|
|
@@ -164,11 +164,11 @@ Split your config into multiple files using the `$include` directive. This is us
|
|
|
164
164
|
```
|
|
165
165
|
|
|
166
166
|
```json5
|
|
167
|
-
// ~/.
|
|
167
|
+
// ~/.openclaw/agents.json5
|
|
168
168
|
{
|
|
169
169
|
defaults: { sandbox: { mode: "all", scope: "session" } },
|
|
170
170
|
list: [
|
|
171
|
-
{ id: "main", workspace: "
|
|
171
|
+
{ id: "main", workspace: "~/.openclaw/workspace" }
|
|
172
172
|
]
|
|
173
173
|
}
|
|
174
174
|
```
|
|
@@ -208,7 +208,7 @@ Included files can themselves contain `$include` directives (up to 10 levels dee
|
|
|
208
208
|
|
|
209
209
|
```json5
|
|
210
210
|
{ "$include": "./sub/config.json5" } // relative
|
|
211
|
-
{ "$include": "/etc/
|
|
211
|
+
{ "$include": "/etc/openclaw/base.json5" } // absolute
|
|
212
212
|
{ "$include": "../shared/common.json5" } // parent dir
|
|
213
213
|
```
|
|
214
214
|
|
|
@@ -221,7 +221,7 @@ Included files can themselves contain `$include` directives (up to 10 levels dee
|
|
|
221
221
|
### Example: Multi-client legal setup
|
|
222
222
|
|
|
223
223
|
```json5
|
|
224
|
-
// ~/.
|
|
224
|
+
// ~/.openclaw/openclaw.json
|
|
225
225
|
{
|
|
226
226
|
gateway: { port: 18789, auth: { token: "secret" } },
|
|
227
227
|
|
|
@@ -248,7 +248,7 @@ Included files can themselves contain `$include` directives (up to 10 levels dee
|
|
|
248
248
|
```
|
|
249
249
|
|
|
250
250
|
```json5
|
|
251
|
-
// ~/.
|
|
251
|
+
// ~/.openclaw/clients/mueller/agents.json5
|
|
252
252
|
[
|
|
253
253
|
{ id: "mueller-transcribe", workspace: "~/clients/mueller/transcribe" },
|
|
254
254
|
{ id: "mueller-docs", workspace: "~/clients/mueller/docs" }
|
|
@@ -256,7 +256,7 @@ Included files can themselves contain `$include` directives (up to 10 levels dee
|
|
|
256
256
|
```
|
|
257
257
|
|
|
258
258
|
```json5
|
|
259
|
-
// ~/.
|
|
259
|
+
// ~/.openclaw/clients/mueller/broadcast.json5
|
|
260
260
|
{
|
|
261
261
|
"120363403215116621@g.us": ["mueller-transcribe", "mueller-docs"]
|
|
262
262
|
}
|
|
@@ -266,11 +266,11 @@ Included files can themselves contain `$include` directives (up to 10 levels dee
|
|
|
266
266
|
|
|
267
267
|
### Env vars + `.env`
|
|
268
268
|
|
|
269
|
-
|
|
269
|
+
OpenClaw reads env vars from the parent process (shell, launchd/systemd, CI, etc.).
|
|
270
270
|
|
|
271
271
|
Additionally, it loads:
|
|
272
272
|
- `.env` from the current working directory (if present)
|
|
273
|
-
- a global fallback `.env` from `~/.
|
|
273
|
+
- a global fallback `.env` from `~/.openclaw/.env` (aka `$OPENCLAW_STATE_DIR/.env`)
|
|
274
274
|
|
|
275
275
|
Neither `.env` file overrides existing env vars.
|
|
276
276
|
|
|
@@ -292,7 +292,7 @@ See [/environment](/environment) for full precedence and sources.
|
|
|
292
292
|
|
|
293
293
|
### `env.shellEnv` (optional)
|
|
294
294
|
|
|
295
|
-
Opt-in convenience: if enabled and none of the expected keys are set yet,
|
|
295
|
+
Opt-in convenience: if enabled and none of the expected keys are set yet, OpenClaw runs your login shell and imports only the missing expected keys (never overrides).
|
|
296
296
|
This effectively sources your shell profile.
|
|
297
297
|
|
|
298
298
|
```json5
|
|
@@ -307,8 +307,8 @@ This effectively sources your shell profile.
|
|
|
307
307
|
```
|
|
308
308
|
|
|
309
309
|
Env var equivalent:
|
|
310
|
-
- `
|
|
311
|
-
- `
|
|
310
|
+
- `OPENCLAW_LOAD_SHELL_ENV=1`
|
|
311
|
+
- `OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000`
|
|
312
312
|
|
|
313
313
|
### Env var substitution in config
|
|
314
314
|
|
|
@@ -326,7 +326,7 @@ You can reference environment variables directly in any config string value usin
|
|
|
326
326
|
},
|
|
327
327
|
gateway: {
|
|
328
328
|
auth: {
|
|
329
|
-
token: "${
|
|
329
|
+
token: "${OPENCLAW_GATEWAY_TOKEN}"
|
|
330
330
|
}
|
|
331
331
|
}
|
|
332
332
|
}
|
|
@@ -354,25 +354,25 @@ You can reference environment variables directly in any config string value usin
|
|
|
354
354
|
|
|
355
355
|
### Auth storage (OAuth + API keys)
|
|
356
356
|
|
|
357
|
-
|
|
358
|
-
- `<agentDir>/auth-profiles.json` (default: `~/.
|
|
357
|
+
OpenClaw stores **per-agent** auth profiles (OAuth + API keys) in:
|
|
358
|
+
- `<agentDir>/auth-profiles.json` (default: `~/.openclaw/agents/<agentId>/agent/auth-profiles.json`)
|
|
359
359
|
|
|
360
360
|
See also: [/concepts/oauth](/concepts/oauth)
|
|
361
361
|
|
|
362
362
|
Legacy OAuth imports:
|
|
363
|
-
- `~/.
|
|
363
|
+
- `~/.openclaw/credentials/oauth.json` (or `$OPENCLAW_STATE_DIR/credentials/oauth.json`)
|
|
364
364
|
|
|
365
365
|
The embedded Pi agent maintains a runtime cache at:
|
|
366
366
|
- `<agentDir>/auth.json` (managed automatically; don’t edit manually)
|
|
367
367
|
|
|
368
368
|
Legacy agent dir (pre multi-agent):
|
|
369
|
-
- `~/.
|
|
369
|
+
- `~/.openclaw/agent/*` (migrated by `openclaw doctor` into `~/.openclaw/agents/<defaultAgentId>/agent/*`)
|
|
370
370
|
|
|
371
371
|
Overrides:
|
|
372
|
-
- OAuth dir (legacy import only): `
|
|
373
|
-
- Agent dir (default agent root override): `
|
|
372
|
+
- OAuth dir (legacy import only): `OPENCLAW_OAUTH_DIR`
|
|
373
|
+
- Agent dir (default agent root override): `OPENCLAW_AGENT_DIR` (preferred), `PI_CODING_AGENT_DIR` (legacy)
|
|
374
374
|
|
|
375
|
-
On first use,
|
|
375
|
+
On first use, OpenClaw imports `oauth.json` entries into `auth-profiles.json`.
|
|
376
376
|
|
|
377
377
|
### `auth`
|
|
378
378
|
|
|
@@ -398,7 +398,7 @@ rotation order used for failover.
|
|
|
398
398
|
|
|
399
399
|
Optional per-agent identity used for defaults and UX. This is written by the macOS onboarding assistant.
|
|
400
400
|
|
|
401
|
-
If set,
|
|
401
|
+
If set, OpenClaw derives defaults (only when you haven’t set them explicitly):
|
|
402
402
|
- `messages.ackReaction` from the **active agent**’s `identity.emoji` (falls back to 👀)
|
|
403
403
|
- `agents.list[].groupChat.mentionPatterns` from the agent’s `identity.name`/`identity.emoji` (so “@Samantha” works in groups across Telegram/Slack/Discord/Google Chat/iMessage/WhatsApp)
|
|
404
404
|
- `identity.avatar` accepts a workspace-relative image path or a remote URL/data URL. Local files must live inside the agent workspace.
|
|
@@ -444,8 +444,8 @@ Metadata written by CLI wizards (`onboard`, `configure`, `doctor`).
|
|
|
444
444
|
|
|
445
445
|
### `logging`
|
|
446
446
|
|
|
447
|
-
- Default log file: `/tmp/
|
|
448
|
-
- If you want a stable path, set `logging.file` to `/tmp/
|
|
447
|
+
- Default log file: `/tmp/openclaw/openclaw-YYYY-MM-DD.log`
|
|
448
|
+
- If you want a stable path, set `logging.file` to `/tmp/openclaw/openclaw.log`.
|
|
449
449
|
- Console output can be tuned separately via:
|
|
450
450
|
- `logging.consoleLevel` (defaults to `info`, bumps to `debug` when `--verbose`)
|
|
451
451
|
- `logging.consoleStyle` (`pretty` | `compact` | `json`)
|
|
@@ -457,7 +457,7 @@ Metadata written by CLI wizards (`onboard`, `configure`, `doctor`).
|
|
|
457
457
|
{
|
|
458
458
|
logging: {
|
|
459
459
|
level: "info",
|
|
460
|
-
file: "/tmp/
|
|
460
|
+
file: "/tmp/openclaw/openclaw.log",
|
|
461
461
|
consoleLevel: "info",
|
|
462
462
|
consoleStyle: "pretty",
|
|
463
463
|
redactSensitive: "tools",
|
|
@@ -481,8 +481,8 @@ Controls how WhatsApp direct chats (DMs) are handled:
|
|
|
481
481
|
Pairing codes expire after 1 hour; the bot only sends a pairing code when a new request is created. Pending DM pairing requests are capped at **3 per channel** by default.
|
|
482
482
|
|
|
483
483
|
Pairing approvals:
|
|
484
|
-
- `
|
|
485
|
-
- `
|
|
484
|
+
- `openclaw pairing list whatsapp`
|
|
485
|
+
- `openclaw pairing approve whatsapp <code>`
|
|
486
486
|
|
|
487
487
|
### `channels.whatsapp.allowFrom`
|
|
488
488
|
|
|
@@ -532,8 +532,8 @@ Run multiple WhatsApp accounts in one gateway:
|
|
|
532
532
|
default: {}, // optional; keeps the default id stable
|
|
533
533
|
personal: {},
|
|
534
534
|
biz: {
|
|
535
|
-
// Optional override. Default: ~/.
|
|
536
|
-
// authDir: "~/.
|
|
535
|
+
// Optional override. Default: ~/.openclaw/credentials/whatsapp/biz
|
|
536
|
+
// authDir: "~/.openclaw/credentials/whatsapp/biz",
|
|
537
537
|
}
|
|
538
538
|
}
|
|
539
539
|
}
|
|
@@ -543,7 +543,7 @@ Run multiple WhatsApp accounts in one gateway:
|
|
|
543
543
|
|
|
544
544
|
Notes:
|
|
545
545
|
- Outbound commands default to account `default` if present; otherwise the first configured account id (sorted).
|
|
546
|
-
- The legacy single-account Baileys auth dir is migrated by `
|
|
546
|
+
- The legacy single-account Baileys auth dir is migrated by `openclaw doctor` into `whatsapp/default`.
|
|
547
547
|
|
|
548
548
|
### `channels.telegram.accounts` / `channels.discord.accounts` / `channels.googlechat.accounts` / `channels.slack.accounts` / `channels.mattermost.accounts` / `channels.signal.accounts` / `channels.imessage.accounts`
|
|
549
549
|
|
|
@@ -590,7 +590,7 @@ Group messages default to **require mention** (either metadata mention or regex
|
|
|
590
590
|
},
|
|
591
591
|
agents: {
|
|
592
592
|
list: [
|
|
593
|
-
{ id: "main", groupChat: { mentionPatterns: ["@
|
|
593
|
+
{ id: "main", groupChat: { mentionPatterns: ["@openclaw", "openclaw"] } }
|
|
594
594
|
]
|
|
595
595
|
}
|
|
596
596
|
}
|
|
@@ -652,7 +652,7 @@ To respond **only** to specific text triggers (ignoring native @-mentions):
|
|
|
652
652
|
id: "main",
|
|
653
653
|
groupChat: {
|
|
654
654
|
// Only these text patterns will trigger responses
|
|
655
|
-
mentionPatterns: ["reisponde", "@
|
|
655
|
+
mentionPatterns: ["reisponde", "@openclaw"]
|
|
656
656
|
}
|
|
657
657
|
}
|
|
658
658
|
]
|
|
@@ -723,8 +723,8 @@ Inbound messages are routed to an agent via bindings.
|
|
|
723
723
|
- `default`: optional; when multiple are set, the first wins and a warning is logged.
|
|
724
724
|
If none are set, the **first entry** in the list is the default agent.
|
|
725
725
|
- `name`: display name for the agent.
|
|
726
|
-
- `workspace`: default
|
|
727
|
-
- `agentDir`: default `~/.
|
|
726
|
+
- `workspace`: default `~/.openclaw/workspace-<agentId>` (for `main`, falls back to `agents.defaults.workspace`).
|
|
727
|
+
- `agentDir`: default `~/.openclaw/agents/<agentId>/agent`.
|
|
728
728
|
- `model`: per-agent default model, overrides `agents.defaults.model` for that agent.
|
|
729
729
|
- string form: `"provider/model"`, overrides only `agents.defaults.model.primary`
|
|
730
730
|
- object form: `{ primary, fallbacks }` (fallbacks override `agents.defaults.model.fallbacks`; `[]` disables global fallbacks for that agent)
|
|
@@ -779,7 +779,7 @@ Full access (no sandbox):
|
|
|
779
779
|
list: [
|
|
780
780
|
{
|
|
781
781
|
id: "personal",
|
|
782
|
-
workspace: "
|
|
782
|
+
workspace: "~/.openclaw/workspace-personal",
|
|
783
783
|
sandbox: { mode: "off" }
|
|
784
784
|
}
|
|
785
785
|
]
|
|
@@ -794,7 +794,7 @@ Read-only tools + read-only workspace:
|
|
|
794
794
|
list: [
|
|
795
795
|
{
|
|
796
796
|
id: "family",
|
|
797
|
-
workspace: "
|
|
797
|
+
workspace: "~/.openclaw/workspace-family",
|
|
798
798
|
sandbox: {
|
|
799
799
|
mode: "all",
|
|
800
800
|
scope: "agent",
|
|
@@ -817,7 +817,7 @@ No filesystem access (messaging/session tools enabled):
|
|
|
817
817
|
list: [
|
|
818
818
|
{
|
|
819
819
|
id: "public",
|
|
820
|
-
workspace: "
|
|
820
|
+
workspace: "~/.openclaw/workspace-public",
|
|
821
821
|
sandbox: {
|
|
822
822
|
mode: "all",
|
|
823
823
|
scope: "agent",
|
|
@@ -839,8 +839,8 @@ Example: two WhatsApp accounts → two agents:
|
|
|
839
839
|
{
|
|
840
840
|
agents: {
|
|
841
841
|
list: [
|
|
842
|
-
{ id: "home", default: true, workspace: "
|
|
843
|
-
{ id: "work", workspace: "
|
|
842
|
+
{ id: "home", default: true, workspace: "~/.openclaw/workspace-home" },
|
|
843
|
+
{ id: "work", workspace: "~/.openclaw/workspace-work" }
|
|
844
844
|
]
|
|
845
845
|
},
|
|
846
846
|
bindings: [
|
|
@@ -949,7 +949,7 @@ Notes:
|
|
|
949
949
|
- `channels.telegram.customCommands` adds extra Telegram bot menu entries. Names are normalized; conflicts with native commands are ignored.
|
|
950
950
|
- `commands.bash: true` enables `! <cmd>` to run host shell commands (`/bash <cmd>` also works as an alias). Requires `tools.elevated.enabled` and allowlisting the sender in `tools.elevated.allowFrom.<channel>`.
|
|
951
951
|
- `commands.bashForegroundMs` controls how long bash waits before backgrounding. While a bash job is running, new `! <cmd>` requests are rejected (one at a time).
|
|
952
|
-
- `commands.config: true` enables `/config` (reads/writes `
|
|
952
|
+
- `commands.config: true` enables `/config` (reads/writes `openclaw.json`).
|
|
953
953
|
- `channels.<provider>.configWrites` gates config mutations initiated by that channel (default: true). This applies to `/config set|unset` plus provider-specific auto-migrations (Telegram supergroup ID changes, Slack channel ID changes).
|
|
954
954
|
- `commands.debug: true` enables `/debug` (runtime-only overrides).
|
|
955
955
|
- `commands.restart: true` enables `/restart` and the gateway tool restart action.
|
|
@@ -980,7 +980,7 @@ Set `web.enabled: false` to keep it off by default.
|
|
|
980
980
|
|
|
981
981
|
### `channels.telegram` (bot transport)
|
|
982
982
|
|
|
983
|
-
|
|
983
|
+
OpenClaw starts Telegram only when a `channels.telegram` config section exists. The bot token is resolved from `channels.telegram.botToken` (or `channels.telegram.tokenFile`), with `TELEGRAM_BOT_TOKEN` as a fallback for the default account.
|
|
984
984
|
Set `channels.telegram.enabled: false` to disable automatic startup.
|
|
985
985
|
Multi-account support lives under `channels.telegram.accounts` (see the multi-account section above). Env tokens only apply to the default account.
|
|
986
986
|
Set `channels.telegram.configWrites: false` to block Telegram-initiated config writes (including supergroup ID migrations and `/config set|unset`).
|
|
@@ -1083,11 +1083,11 @@ Multi-account support lives under `channels.discord.accounts` (see the multi-acc
|
|
|
1083
1083
|
policy: "pairing", // pairing | allowlist | open | disabled
|
|
1084
1084
|
allowFrom: ["1234567890", "steipete"], // optional DM allowlist ("open" requires ["*"])
|
|
1085
1085
|
groupEnabled: false, // enable group DMs
|
|
1086
|
-
groupChannels: ["
|
|
1086
|
+
groupChannels: ["openclaw-dm"] // optional group DM allowlist
|
|
1087
1087
|
},
|
|
1088
1088
|
guilds: {
|
|
1089
1089
|
"123456789012345678": { // guild id (preferred) or slug
|
|
1090
|
-
slug: "friends-of-
|
|
1090
|
+
slug: "friends-of-openclaw",
|
|
1091
1091
|
requireMention: false, // per-guild default
|
|
1092
1092
|
reactionNotifications: "own", // off | own | all | allowlist
|
|
1093
1093
|
users: ["987654321098765432"], // optional per-guild user allowlist
|
|
@@ -1118,7 +1118,7 @@ Multi-account support lives under `channels.discord.accounts` (see the multi-acc
|
|
|
1118
1118
|
}
|
|
1119
1119
|
```
|
|
1120
1120
|
|
|
1121
|
-
|
|
1121
|
+
OpenClaw starts Discord only when a `channels.discord` config section exists. The token is resolved from `channels.discord.token`, with `DISCORD_BOT_TOKEN` as a fallback for the default account (unless `channels.discord.enabled` is `false`). Use `user:<id>` (DM) or `channel:<id>` (guild channel) when specifying delivery targets for cron/CLI commands; bare numeric IDs are ambiguous and rejected.
|
|
1122
1122
|
Guild slugs are lowercase with spaces replaced by `-`; channel keys use the slugged channel name (no leading `#`). Prefer guild ids as keys to avoid rename ambiguity.
|
|
1123
1123
|
Bot-authored messages are ignored by default. Enable with `channels.discord.allowBots` (own messages are still filtered to prevent self-reply loops).
|
|
1124
1124
|
Reaction notification modes:
|
|
@@ -1214,7 +1214,7 @@ Slack runs in Socket Mode and requires both a bot token and app token:
|
|
|
1214
1214
|
},
|
|
1215
1215
|
slashCommand: {
|
|
1216
1216
|
enabled: true,
|
|
1217
|
-
name: "
|
|
1217
|
+
name: "openclaw",
|
|
1218
1218
|
sessionPrefix: "slack:slash",
|
|
1219
1219
|
ephemeral: true
|
|
1220
1220
|
},
|
|
@@ -1228,7 +1228,7 @@ Slack runs in Socket Mode and requires both a bot token and app token:
|
|
|
1228
1228
|
|
|
1229
1229
|
Multi-account support lives under `channels.slack.accounts` (see the multi-account section above). Env tokens only apply to the default account.
|
|
1230
1230
|
|
|
1231
|
-
|
|
1231
|
+
OpenClaw starts Slack when the provider is enabled and both tokens are set (via config or `SLACK_BOT_TOKEN` + `SLACK_APP_TOKEN`). Use `user:<id>` (DM) or `channel:<id>` when specifying delivery targets for cron/CLI commands.
|
|
1232
1232
|
Set `channels.slack.configWrites: false` to block Slack-initiated config writes (including channel ID migrations and `/config set|unset`).
|
|
1233
1233
|
|
|
1234
1234
|
Bot-authored messages are ignored by default. Enable with `channels.slack.allowBots` or `channels.slack.channels.<id>.allowBots`.
|
|
@@ -1255,7 +1255,7 @@ Slack action groups (gate `slack` tool actions):
|
|
|
1255
1255
|
### `channels.mattermost` (bot token)
|
|
1256
1256
|
|
|
1257
1257
|
Mattermost ships as a plugin and is not bundled with the core install.
|
|
1258
|
-
Install it first: `
|
|
1258
|
+
Install it first: `openclaw plugins install @openclaw/mattermost` (or `./extensions/mattermost` from a git checkout).
|
|
1259
1259
|
|
|
1260
1260
|
Mattermost requires a bot token plus the base URL for your server:
|
|
1261
1261
|
|
|
@@ -1276,7 +1276,7 @@ Mattermost requires a bot token plus the base URL for your server:
|
|
|
1276
1276
|
}
|
|
1277
1277
|
```
|
|
1278
1278
|
|
|
1279
|
-
|
|
1279
|
+
OpenClaw starts Mattermost when the account is configured (bot token + base URL) and enabled. The token + base URL are resolved from `channels.mattermost.botToken` + `channels.mattermost.baseUrl` or `MATTERMOST_BOT_TOKEN` + `MATTERMOST_URL` for the default account (unless `channels.mattermost.enabled` is `false`).
|
|
1280
1280
|
|
|
1281
1281
|
Chat modes:
|
|
1282
1282
|
- `oncall` (default): respond to channel messages only when @mentioned.
|
|
@@ -1315,7 +1315,7 @@ Reaction notification modes:
|
|
|
1315
1315
|
|
|
1316
1316
|
### `channels.imessage` (imsg CLI)
|
|
1317
1317
|
|
|
1318
|
-
|
|
1318
|
+
OpenClaw spawns `imsg rpc` (JSON-RPC over stdio). No daemon or port required.
|
|
1319
1319
|
|
|
1320
1320
|
```json5
|
|
1321
1321
|
{
|
|
@@ -1356,11 +1356,11 @@ exec ssh -T gateway-host imsg "$@"
|
|
|
1356
1356
|
|
|
1357
1357
|
Sets the **single global workspace directory** used by the agent for file operations.
|
|
1358
1358
|
|
|
1359
|
-
Default:
|
|
1359
|
+
Default: `~/.openclaw/workspace`.
|
|
1360
1360
|
|
|
1361
1361
|
```json5
|
|
1362
1362
|
{
|
|
1363
|
-
agents: { defaults: { workspace: "
|
|
1363
|
+
agents: { defaults: { workspace: "~/.openclaw/workspace" } }
|
|
1364
1364
|
}
|
|
1365
1365
|
```
|
|
1366
1366
|
|
|
@@ -1369,13 +1369,13 @@ own per-scope workspaces under `agents.defaults.sandbox.workspaceRoot`.
|
|
|
1369
1369
|
|
|
1370
1370
|
### `agents.defaults.repoRoot`
|
|
1371
1371
|
|
|
1372
|
-
Optional repository root to show in the system prompt’s Runtime line. If unset,
|
|
1372
|
+
Optional repository root to show in the system prompt’s Runtime line. If unset, OpenClaw
|
|
1373
1373
|
tries to detect a `.git` directory by walking upward from the workspace (and current
|
|
1374
1374
|
working directory). The path must exist to be used.
|
|
1375
1375
|
|
|
1376
1376
|
```json5
|
|
1377
1377
|
{
|
|
1378
|
-
agents: { defaults: { repoRoot: "~/Projects/
|
|
1378
|
+
agents: { defaults: { repoRoot: "~/Projects/openclaw" } }
|
|
1379
1379
|
}
|
|
1380
1380
|
```
|
|
1381
1381
|
|
|
@@ -1396,7 +1396,7 @@ Use this for pre-seeded deployments where your workspace files come from a repo.
|
|
|
1396
1396
|
Max characters of each workspace bootstrap file injected into the system prompt
|
|
1397
1397
|
before truncation. Default: `20000`.
|
|
1398
1398
|
|
|
1399
|
-
When a file exceeds this limit,
|
|
1399
|
+
When a file exceeds this limit, OpenClaw logs a warning and injects a truncated
|
|
1400
1400
|
head/tail with a marker.
|
|
1401
1401
|
|
|
1402
1402
|
```json5
|
|
@@ -1408,7 +1408,7 @@ head/tail with a marker.
|
|
|
1408
1408
|
### `agents.defaults.userTimezone`
|
|
1409
1409
|
|
|
1410
1410
|
Sets the user’s timezone for **system prompt context** (not for timestamps in
|
|
1411
|
-
message envelopes). If unset,
|
|
1411
|
+
message envelopes). If unset, OpenClaw uses the host timezone at runtime.
|
|
1412
1412
|
|
|
1413
1413
|
```json5
|
|
1414
1414
|
{
|
|
@@ -1448,7 +1448,7 @@ streaming, final replies) across channels unless already present.
|
|
|
1448
1448
|
|
|
1449
1449
|
If `messages.responsePrefix` is unset, no prefix is applied by default. WhatsApp self-chat
|
|
1450
1450
|
replies are the exception: they default to `[{identity.name}]` when set, otherwise
|
|
1451
|
-
`[
|
|
1451
|
+
`[openclaw]`, so same-phone conversations stay legible.
|
|
1452
1452
|
Set it to `"auto"` to derive `[{identity.name}]` for the routed agent (when set).
|
|
1453
1453
|
|
|
1454
1454
|
#### Template variables
|
|
@@ -1477,9 +1477,9 @@ Unresolved variables remain as literal text.
|
|
|
1477
1477
|
Example output: `[claude-opus-4-5 | think:high] Here's my response...`
|
|
1478
1478
|
|
|
1479
1479
|
WhatsApp inbound prefix is configured via `channels.whatsapp.messagePrefix` (deprecated:
|
|
1480
|
-
`messages.messagePrefix`). Default stays **unchanged**: `"[
|
|
1480
|
+
`messages.messagePrefix`). Default stays **unchanged**: `"[openclaw]"` when
|
|
1481
1481
|
`channels.whatsapp.allowFrom` is empty, otherwise `""` (no prefix). When using
|
|
1482
|
-
`"[
|
|
1482
|
+
`"[openclaw]"`, OpenClaw will instead use `[{identity.name}]` when the routed
|
|
1483
1483
|
agent has `identity.name` set.
|
|
1484
1484
|
|
|
1485
1485
|
`ackReaction` sends a best-effort emoji reaction to acknowledge inbound messages
|
|
@@ -1497,7 +1497,7 @@ active agent’s `identity.emoji` when set, otherwise `"👀"`. Set it to `""` t
|
|
|
1497
1497
|
|
|
1498
1498
|
#### `messages.tts`
|
|
1499
1499
|
|
|
1500
|
-
Enable text-to-speech for outbound replies. When on,
|
|
1500
|
+
Enable text-to-speech for outbound replies. When on, OpenClaw generates audio
|
|
1501
1501
|
using ElevenLabs or OpenAI and attaches it to responses. Telegram uses Opus
|
|
1502
1502
|
voice notes; other channels send MP3 audio.
|
|
1503
1503
|
|
|
@@ -1514,7 +1514,7 @@ voice notes; other channels send MP3 audio.
|
|
|
1514
1514
|
},
|
|
1515
1515
|
maxTextLength: 4000,
|
|
1516
1516
|
timeoutMs: 30000,
|
|
1517
|
-
prefsPath: "~/.
|
|
1517
|
+
prefsPath: "~/.openclaw/settings/tts.json",
|
|
1518
1518
|
elevenlabs: {
|
|
1519
1519
|
apiKey: "elevenlabs_api_key",
|
|
1520
1520
|
baseUrl: "https://api.elevenlabs.io",
|
|
@@ -1613,7 +1613,7 @@ Z.AI GLM-4.x models automatically enable thinking mode unless you:
|
|
|
1613
1613
|
- set `--thinking off`, or
|
|
1614
1614
|
- define `agents.defaults.models["zai/<model>"].params.thinking` yourself.
|
|
1615
1615
|
|
|
1616
|
-
|
|
1616
|
+
OpenClaw also ships a few built-in alias shorthands. Defaults only apply when the model
|
|
1617
1617
|
is already present in `agents.defaults.models`:
|
|
1618
1618
|
|
|
1619
1619
|
- `opus` -> `anthropic/claude-opus-4-5`
|
|
@@ -1908,7 +1908,7 @@ See [/concepts/typing-indicators](/concepts/typing-indicators) for behavior deta
|
|
|
1908
1908
|
|
|
1909
1909
|
`agents.defaults.model.primary` should be set as `provider/model` (e.g. `anthropic/claude-opus-4-5`).
|
|
1910
1910
|
Aliases come from `agents.defaults.models.*.alias` (e.g. `Opus`).
|
|
1911
|
-
If you omit the provider,
|
|
1911
|
+
If you omit the provider, OpenClaw currently assumes `anthropic` as a temporary
|
|
1912
1912
|
deprecation fallback.
|
|
1913
1913
|
Z.AI models are available as `zai/<model>` (e.g. `zai/glm-4.7`) and require
|
|
1914
1914
|
`ZAI_API_KEY` (or legacy `Z_AI_API_KEY`) in the environment.
|
|
@@ -1943,7 +1943,7 @@ Note: `applyPatch` is only under `tools.exec`.
|
|
|
1943
1943
|
|
|
1944
1944
|
`tools.web` configures web search + fetch tools:
|
|
1945
1945
|
- `tools.web.search.enabled` (default: true when key is present)
|
|
1946
|
-
- `tools.web.search.apiKey` (recommended: set via `
|
|
1946
|
+
- `tools.web.search.apiKey` (recommended: set via `openclaw configure --section web`, or use `BRAVE_API_KEY` env var)
|
|
1947
1947
|
- `tools.web.search.maxResults` (1–10, default 5)
|
|
1948
1948
|
- `tools.web.search.timeoutSeconds` (default 30)
|
|
1949
1949
|
- `tools.web.search.cacheTtlMinutes` (default 15)
|
|
@@ -2101,7 +2101,7 @@ Tool groups (shorthands) work in **global** and **per-agent** tool policies:
|
|
|
2101
2101
|
- `group:automation`: `cron`, `gateway`
|
|
2102
2102
|
- `group:messaging`: `message`
|
|
2103
2103
|
- `group:nodes`: `nodes`
|
|
2104
|
-
- `group:
|
|
2104
|
+
- `group:openclaw`: all built-in OpenClaw tools (excludes provider plugins)
|
|
2105
2105
|
|
|
2106
2106
|
`tools.elevated` controls elevated (host) exec access:
|
|
2107
2107
|
- `enabled`: allow elevated mode (default true)
|
|
@@ -2165,7 +2165,7 @@ Defaults (if enabled):
|
|
|
2165
2165
|
- scope: `"agent"` (one container + workspace per agent)
|
|
2166
2166
|
- Debian bookworm-slim based image
|
|
2167
2167
|
- agent workspace access: `workspaceAccess: "none"` (default)
|
|
2168
|
-
- `"none"`: use a per-scope sandbox workspace under `~/.
|
|
2168
|
+
- `"none"`: use a per-scope sandbox workspace under `~/.openclaw/sandboxes`
|
|
2169
2169
|
- `"ro"`: keep the sandbox workspace at `/workspace`, and mount the agent workspace read-only at `/agent` (disables `write`/`edit`/`apply_patch`)
|
|
2170
2170
|
- `"rw"`: mount the agent workspace read/write at `/workspace`
|
|
2171
2171
|
- auto-prune: idle > 24h OR age > 7d
|
|
@@ -2192,10 +2192,10 @@ For package installs, ensure network egress, a writable root FS, and a root user
|
|
|
2192
2192
|
mode: "non-main", // off | non-main | all
|
|
2193
2193
|
scope: "agent", // session | agent | shared (agent is default)
|
|
2194
2194
|
workspaceAccess: "none", // none | ro | rw
|
|
2195
|
-
workspaceRoot: "~/.
|
|
2195
|
+
workspaceRoot: "~/.openclaw/sandboxes",
|
|
2196
2196
|
docker: {
|
|
2197
|
-
image: "
|
|
2198
|
-
containerPrefix: "
|
|
2197
|
+
image: "openclaw-sandbox:bookworm-slim",
|
|
2198
|
+
containerPrefix: "openclaw-sbx-",
|
|
2199
2199
|
workdir: "/workspace",
|
|
2200
2200
|
readOnlyRoot: true,
|
|
2201
2201
|
tmpfs: ["/tmp", "/var/tmp", "/run"],
|
|
@@ -2214,15 +2214,15 @@ For package installs, ensure network egress, a writable root FS, and a root user
|
|
|
2214
2214
|
nproc: 256
|
|
2215
2215
|
},
|
|
2216
2216
|
seccompProfile: "/path/to/seccomp.json",
|
|
2217
|
-
apparmorProfile: "
|
|
2217
|
+
apparmorProfile: "openclaw-sandbox",
|
|
2218
2218
|
dns: ["1.1.1.1", "8.8.8.8"],
|
|
2219
2219
|
extraHosts: ["internal.service:10.0.0.5"],
|
|
2220
2220
|
binds: ["/var/run/docker.sock:/var/run/docker.sock", "/home/user/source:/source:rw"]
|
|
2221
2221
|
},
|
|
2222
2222
|
browser: {
|
|
2223
2223
|
enabled: false,
|
|
2224
|
-
image: "
|
|
2225
|
-
containerPrefix: "
|
|
2224
|
+
image: "openclaw-sandbox-browser:bookworm-slim",
|
|
2225
|
+
containerPrefix: "openclaw-sbx-browser-",
|
|
2226
2226
|
cdpPort: 9222,
|
|
2227
2227
|
vncPort: 5900,
|
|
2228
2228
|
noVncPort: 6080,
|
|
@@ -2289,14 +2289,14 @@ Defaults: all allowlists are unset (no restriction). `allowHostControl` defaults
|
|
|
2289
2289
|
|
|
2290
2290
|
### `models` (custom providers + base URLs)
|
|
2291
2291
|
|
|
2292
|
-
|
|
2292
|
+
OpenClaw uses the **pi-coding-agent** model catalog. You can add custom providers
|
|
2293
2293
|
(LiteLLM, local OpenAI-compatible servers, Anthropic proxies, etc.) by writing
|
|
2294
|
-
`~/.
|
|
2295
|
-
|
|
2294
|
+
`~/.openclaw/agents/<agentId>/agent/models.json` or by defining the same schema inside your
|
|
2295
|
+
OpenClaw config under `models.providers`.
|
|
2296
2296
|
Provider-by-provider overview + examples: [/concepts/model-providers](/concepts/model-providers).
|
|
2297
2297
|
|
|
2298
|
-
When `models.providers` is present,
|
|
2299
|
-
`~/.
|
|
2298
|
+
When `models.providers` is present, OpenClaw writes/merges a `models.json` into
|
|
2299
|
+
`~/.openclaw/agents/<agentId>/agent/` on startup:
|
|
2300
2300
|
- default behavior: **merge** (keeps existing providers, overrides on name)
|
|
2301
2301
|
- set `models.mode: "replace"` to overwrite the file contents
|
|
2302
2302
|
|
|
@@ -2338,14 +2338,14 @@ Select the model via `agents.defaults.model.primary` (provider/model).
|
|
|
2338
2338
|
|
|
2339
2339
|
### OpenCode Zen (multi-model proxy)
|
|
2340
2340
|
|
|
2341
|
-
OpenCode Zen is a multi-model gateway with per-model endpoints.
|
|
2341
|
+
OpenCode Zen is a multi-model gateway with per-model endpoints. OpenClaw uses
|
|
2342
2342
|
the built-in `opencode` provider from pi-ai; set `OPENCODE_API_KEY` (or
|
|
2343
2343
|
`OPENCODE_ZEN_API_KEY`) from https://opencode.ai/auth.
|
|
2344
2344
|
|
|
2345
2345
|
Notes:
|
|
2346
2346
|
- Model refs use `opencode/<modelId>` (example: `opencode/claude-opus-4-5`).
|
|
2347
2347
|
- If you enable an allowlist via `agents.defaults.models`, add each model you plan to use.
|
|
2348
|
-
- Shortcut: `
|
|
2348
|
+
- Shortcut: `openclaw onboard --auth-choice opencode-zen`.
|
|
2349
2349
|
|
|
2350
2350
|
```json5
|
|
2351
2351
|
{
|
|
@@ -2363,7 +2363,7 @@ Notes:
|
|
|
2363
2363
|
Z.AI models are available via the built-in `zai` provider. Set `ZAI_API_KEY`
|
|
2364
2364
|
in your environment and reference the model by provider/model.
|
|
2365
2365
|
|
|
2366
|
-
Shortcut: `
|
|
2366
|
+
Shortcut: `openclaw onboard --auth-choice zai-api-key`.
|
|
2367
2367
|
|
|
2368
2368
|
```json5
|
|
2369
2369
|
{
|
|
@@ -2396,8 +2396,8 @@ Use Moonshot's OpenAI-compatible endpoint:
|
|
|
2396
2396
|
env: { MOONSHOT_API_KEY: "sk-..." },
|
|
2397
2397
|
agents: {
|
|
2398
2398
|
defaults: {
|
|
2399
|
-
model: { primary: "moonshot/kimi-k2
|
|
2400
|
-
models: { "moonshot/kimi-k2
|
|
2399
|
+
model: { primary: "moonshot/kimi-k2.5" },
|
|
2400
|
+
models: { "moonshot/kimi-k2.5": { alias: "Kimi K2.5" } }
|
|
2401
2401
|
}
|
|
2402
2402
|
},
|
|
2403
2403
|
models: {
|
|
@@ -2409,8 +2409,8 @@ Use Moonshot's OpenAI-compatible endpoint:
|
|
|
2409
2409
|
api: "openai-completions",
|
|
2410
2410
|
models: [
|
|
2411
2411
|
{
|
|
2412
|
-
id: "kimi-k2
|
|
2413
|
-
name: "Kimi K2
|
|
2412
|
+
id: "kimi-k2.5",
|
|
2413
|
+
name: "Kimi K2.5",
|
|
2414
2414
|
reasoning: false,
|
|
2415
2415
|
input: ["text"],
|
|
2416
2416
|
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
@@ -2425,8 +2425,8 @@ Use Moonshot's OpenAI-compatible endpoint:
|
|
|
2425
2425
|
```
|
|
2426
2426
|
|
|
2427
2427
|
Notes:
|
|
2428
|
-
- Set `MOONSHOT_API_KEY` in the environment or use `
|
|
2429
|
-
- Model ref: `moonshot/kimi-k2
|
|
2428
|
+
- Set `MOONSHOT_API_KEY` in the environment or use `openclaw onboard --auth-choice moonshot-api-key`.
|
|
2429
|
+
- Model ref: `moonshot/kimi-k2.5`.
|
|
2430
2430
|
- Use `https://api.moonshot.cn/v1` if you need the China endpoint.
|
|
2431
2431
|
|
|
2432
2432
|
### Kimi Code
|
|
@@ -2469,7 +2469,7 @@ Use Kimi Code's dedicated OpenAI-compatible endpoint (separate from Moonshot):
|
|
|
2469
2469
|
```
|
|
2470
2470
|
|
|
2471
2471
|
Notes:
|
|
2472
|
-
- Set `KIMICODE_API_KEY` in the environment or use `
|
|
2472
|
+
- Set `KIMICODE_API_KEY` in the environment or use `openclaw onboard --auth-choice kimi-code-api-key`.
|
|
2473
2473
|
- Model ref: `kimi-code/kimi-for-coding`.
|
|
2474
2474
|
|
|
2475
2475
|
### Synthetic (Anthropic-compatible)
|
|
@@ -2510,7 +2510,7 @@ Use Synthetic's Anthropic-compatible endpoint:
|
|
|
2510
2510
|
```
|
|
2511
2511
|
|
|
2512
2512
|
Notes:
|
|
2513
|
-
- Set `SYNTHETIC_API_KEY` or use `
|
|
2513
|
+
- Set `SYNTHETIC_API_KEY` or use `openclaw onboard --auth-choice synthetic-api-key`.
|
|
2514
2514
|
- Model ref: `synthetic/hf:MiniMaxAI/MiniMax-M2.1`.
|
|
2515
2515
|
- Base URL should omit `/v1` because the Anthropic client appends it.
|
|
2516
2516
|
|
|
@@ -2557,7 +2557,7 @@ Use MiniMax M2.1 directly without LM Studio:
|
|
|
2557
2557
|
```
|
|
2558
2558
|
|
|
2559
2559
|
Notes:
|
|
2560
|
-
- Set `MINIMAX_API_KEY` environment variable or use `
|
|
2560
|
+
- Set `MINIMAX_API_KEY` environment variable or use `openclaw onboard --auth-choice minimax-api`.
|
|
2561
2561
|
- Available model: `MiniMax-M2.1` (default).
|
|
2562
2562
|
- Update pricing in `models.json` if you need exact cost tracking.
|
|
2563
2563
|
|
|
@@ -2605,8 +2605,8 @@ Notes:
|
|
|
2605
2605
|
- Supported APIs: `openai-completions`, `openai-responses`, `anthropic-messages`,
|
|
2606
2606
|
`google-generative-ai`
|
|
2607
2607
|
- Use `authHeader: true` + `headers` for custom auth needs.
|
|
2608
|
-
- Override the agent config root with `
|
|
2609
|
-
if you want `models.json` stored elsewhere (default: `~/.
|
|
2608
|
+
- Override the agent config root with `OPENCLAW_AGENT_DIR` (or `PI_CODING_AGENT_DIR`)
|
|
2609
|
+
if you want `models.json` stored elsewhere (default: `~/.openclaw/agents/main/agent`).
|
|
2610
2610
|
|
|
2611
2611
|
### `session`
|
|
2612
2612
|
|
|
@@ -2631,9 +2631,9 @@ Controls session scoping, reset policy, reset triggers, and where the session st
|
|
|
2631
2631
|
group: { mode: "idle", idleMinutes: 120 }
|
|
2632
2632
|
},
|
|
2633
2633
|
resetTriggers: ["/new", "/reset"],
|
|
2634
|
-
// Default is already per-agent under ~/.
|
|
2634
|
+
// Default is already per-agent under ~/.openclaw/agents/<agentId>/sessions/sessions.json
|
|
2635
2635
|
// You can override with {agentId} templating:
|
|
2636
|
-
store: "~/.
|
|
2636
|
+
store: "~/.openclaw/agents/{agentId}/sessions/sessions.json",
|
|
2637
2637
|
// Direct chats collapse to agent:<agentId>:<mainKey> (default: "main").
|
|
2638
2638
|
mainKey: "main",
|
|
2639
2639
|
agentToAgent: {
|
|
@@ -2657,14 +2657,15 @@ Fields:
|
|
|
2657
2657
|
- `main`: all DMs share the main session for continuity.
|
|
2658
2658
|
- `per-peer`: isolate DMs by sender id across channels.
|
|
2659
2659
|
- `per-channel-peer`: isolate DMs per channel + sender (recommended for multi-user inboxes).
|
|
2660
|
-
- `
|
|
2660
|
+
- `per-account-channel-peer`: isolate DMs per account + channel + sender (recommended for multi-account inboxes).
|
|
2661
|
+
- `identityLinks`: map canonical ids to provider-prefixed peers so the same person shares a DM session across channels when using `per-peer`, `per-channel-peer`, or `per-account-channel-peer`.
|
|
2661
2662
|
- Example: `alice: ["telegram:123456789", "discord:987654321012345678"]`.
|
|
2662
2663
|
- `reset`: primary reset policy. Defaults to daily resets at 4:00 AM local time on the gateway host.
|
|
2663
2664
|
- `mode`: `daily` or `idle` (default: `daily` when `reset` is present).
|
|
2664
2665
|
- `atHour`: local hour (0-23) for the daily reset boundary.
|
|
2665
2666
|
- `idleMinutes`: sliding idle window in minutes. When daily + idle are both configured, whichever expires first wins.
|
|
2666
2667
|
- `resetByType`: per-session overrides for `dm`, `group`, and `thread`.
|
|
2667
|
-
- If you only set legacy `session.idleMinutes` without any `reset`/`resetByType`,
|
|
2668
|
+
- If you only set legacy `session.idleMinutes` without any `reset`/`resetByType`, OpenClaw stays in idle-only mode for backward compatibility.
|
|
2668
2669
|
- `heartbeatIdleMinutes`: optional idle override for heartbeat checks (daily reset still applies when enabled).
|
|
2669
2670
|
- `agentToAgent.maxPingPongTurns`: max reply-back turns between requester/target (0–5, default 5).
|
|
2670
2671
|
- `sendPolicy.default`: `allow` or `deny` fallback when no rule matches.
|
|
@@ -2673,7 +2674,7 @@ Fields:
|
|
|
2673
2674
|
### `skills` (skills config)
|
|
2674
2675
|
|
|
2675
2676
|
Controls bundled allowlist, install preferences, extra skill folders, and per-skill
|
|
2676
|
-
overrides. Applies to **bundled** skills and `~/.
|
|
2677
|
+
overrides. Applies to **bundled** skills and `~/.openclaw/skills` (workspace skills
|
|
2677
2678
|
still win on name conflicts).
|
|
2678
2679
|
|
|
2679
2680
|
Fields:
|
|
@@ -2722,7 +2723,7 @@ Example:
|
|
|
2722
2723
|
### `plugins` (extensions)
|
|
2723
2724
|
|
|
2724
2725
|
Controls plugin discovery, allow/deny, and per-plugin config. Plugins are loaded
|
|
2725
|
-
from `~/.
|
|
2726
|
+
from `~/.openclaw/extensions`, `<workspace>/.openclaw/extensions`, plus any
|
|
2726
2727
|
`plugins.load.paths` entries. **Config changes require a gateway restart.**
|
|
2727
2728
|
See [/plugin](/plugin) for full usage.
|
|
2728
2729
|
|
|
@@ -2757,9 +2758,9 @@ Example:
|
|
|
2757
2758
|
}
|
|
2758
2759
|
```
|
|
2759
2760
|
|
|
2760
|
-
### `browser` (
|
|
2761
|
+
### `browser` (openclaw-managed browser)
|
|
2761
2762
|
|
|
2762
|
-
|
|
2763
|
+
OpenClaw can start a **dedicated, isolated** Chrome/Brave/Edge/Chromium instance for openclaw and expose a small loopback control service.
|
|
2763
2764
|
Profiles can point at a **remote** Chromium-based browser via `profiles.<name>.cdpUrl`. Remote
|
|
2764
2765
|
profiles are attach-only (start/stop/reset are disabled).
|
|
2765
2766
|
|
|
@@ -2772,7 +2773,7 @@ Defaults:
|
|
|
2772
2773
|
- control service: loopback only (port derived from `gateway.port`, default `18791`)
|
|
2773
2774
|
- CDP URL: `http://127.0.0.1:18792` (control service + 1, legacy single-profile)
|
|
2774
2775
|
- profile color: `#FF4500` (lobster-orange)
|
|
2775
|
-
- Note: the control server is started by the running gateway (
|
|
2776
|
+
- Note: the control server is started by the running gateway (OpenClaw.app menubar, or `openclaw gateway`).
|
|
2776
2777
|
- Auto-detect order: default browser if Chromium-based; otherwise Chrome → Brave → Edge → Chromium → Chrome Canary.
|
|
2777
2778
|
|
|
2778
2779
|
```json5
|
|
@@ -2783,7 +2784,7 @@ Defaults:
|
|
|
2783
2784
|
// cdpUrl: "http://127.0.0.1:18792", // legacy single-profile override
|
|
2784
2785
|
defaultProfile: "chrome",
|
|
2785
2786
|
profiles: {
|
|
2786
|
-
|
|
2787
|
+
openclaw: { cdpPort: 18800, color: "#FF4500" },
|
|
2787
2788
|
work: { cdpPort: 18801, color: "#0066CC" },
|
|
2788
2789
|
remote: { cdpUrl: "http://10.0.0.42:9222", color: "#00AA00" }
|
|
2789
2790
|
},
|
|
@@ -2810,7 +2811,7 @@ If unset, clients fall back to a muted light-blue.
|
|
|
2810
2811
|
// Optional: Control UI assistant identity override.
|
|
2811
2812
|
// If unset, the Control UI uses the active agent identity (config or IDENTITY.md).
|
|
2812
2813
|
assistant: {
|
|
2813
|
-
name: "
|
|
2814
|
+
name: "OpenClaw",
|
|
2814
2815
|
avatar: "CB" // emoji, short text, or image URL/data URI
|
|
2815
2816
|
}
|
|
2816
2817
|
}
|
|
@@ -2832,7 +2833,7 @@ Defaults:
|
|
|
2832
2833
|
mode: "local", // or "remote"
|
|
2833
2834
|
port: 18789, // WS + HTTP multiplex
|
|
2834
2835
|
bind: "loopback",
|
|
2835
|
-
// controlUi: { enabled: true, basePath: "/
|
|
2836
|
+
// controlUi: { enabled: true, basePath: "/openclaw" }
|
|
2836
2837
|
// auth: { mode: "token", token: "your-token" } // token gates WS + Control UI access
|
|
2837
2838
|
// tailscale: { mode: "off" | "serve" | "funnel" }
|
|
2838
2839
|
}
|
|
@@ -2841,7 +2842,7 @@ Defaults:
|
|
|
2841
2842
|
|
|
2842
2843
|
Control UI base path:
|
|
2843
2844
|
- `gateway.controlUi.basePath` sets the URL prefix where the Control UI is served.
|
|
2844
|
-
- Examples: `"/ui"`, `"/
|
|
2845
|
+
- Examples: `"/ui"`, `"/openclaw"`, `"/apps/openclaw"`.
|
|
2845
2846
|
- Default: root (`/`) (unchanged).
|
|
2846
2847
|
- `gateway.controlUi.allowInsecureAuth` allows token-only auth for the Control UI when
|
|
2847
2848
|
device identity is omitted (typically over HTTP). Default: `false`. Prefer HTTPS
|
|
@@ -2857,14 +2858,14 @@ Related docs:
|
|
|
2857
2858
|
|
|
2858
2859
|
Trusted proxies:
|
|
2859
2860
|
- `gateway.trustedProxies`: list of reverse proxy IPs that terminate TLS in front of the Gateway.
|
|
2860
|
-
- When a connection comes from one of these IPs,
|
|
2861
|
+
- When a connection comes from one of these IPs, OpenClaw uses `x-forwarded-for` (or `x-real-ip`) to determine the client IP for local pairing checks and HTTP auth/local checks.
|
|
2861
2862
|
- Only list proxies you fully control, and ensure they **overwrite** incoming `x-forwarded-for`.
|
|
2862
2863
|
|
|
2863
2864
|
Notes:
|
|
2864
|
-
- `
|
|
2865
|
+
- `openclaw gateway` refuses to start unless `gateway.mode` is set to `local` (or you pass the override flag).
|
|
2865
2866
|
- `gateway.port` controls the single multiplexed port used for WebSocket + HTTP (control UI, hooks, A2UI).
|
|
2866
2867
|
- OpenAI Chat Completions endpoint: **disabled by default**; enable with `gateway.http.endpoints.chatCompletions.enabled: true`.
|
|
2867
|
-
- Precedence: `--port` > `
|
|
2868
|
+
- Precedence: `--port` > `OPENCLAW_GATEWAY_PORT` > `gateway.port` > default `18789`.
|
|
2868
2869
|
- Gateway auth is required by default (token/password or Tailscale Serve identity). Non-loopback binds require a shared token/password.
|
|
2869
2870
|
- The onboarding wizard generates a gateway token by default (even on loopback).
|
|
2870
2871
|
- `gateway.remote.token` is **only** for remote CLI calls; it does not enable local gateway auth. `gateway.token` is ignored.
|
|
@@ -2873,10 +2874,10 @@ Auth and Tailscale:
|
|
|
2873
2874
|
- `gateway.auth.mode` sets the handshake requirements (`token` or `password`). When unset, token auth is assumed.
|
|
2874
2875
|
- `gateway.auth.token` stores the shared token for token auth (used by the CLI on the same machine).
|
|
2875
2876
|
- When `gateway.auth.mode` is set, only that method is accepted (plus optional Tailscale headers).
|
|
2876
|
-
- `gateway.auth.password` can be set here, or via `
|
|
2877
|
+
- `gateway.auth.password` can be set here, or via `OPENCLAW_GATEWAY_PASSWORD` (recommended).
|
|
2877
2878
|
- `gateway.auth.allowTailscale` allows Tailscale Serve identity headers
|
|
2878
2879
|
(`tailscale-user-login`) to satisfy auth when the request arrives on loopback
|
|
2879
|
-
with `x-forwarded-for`, `x-forwarded-proto`, and `x-forwarded-host`.
|
|
2880
|
+
with `x-forwarded-for`, `x-forwarded-proto`, and `x-forwarded-host`. OpenClaw
|
|
2880
2881
|
verifies the identity by resolving the `x-forwarded-for` address via
|
|
2881
2882
|
`tailscale whois` before accepting it. When `true`, Serve requests do not need
|
|
2882
2883
|
a token/password; set `false` to require explicit credentials. Defaults to
|
|
@@ -2892,7 +2893,7 @@ Remote client defaults (CLI):
|
|
|
2892
2893
|
- `gateway.remote.password` supplies the password for remote calls (leave unset for no auth).
|
|
2893
2894
|
|
|
2894
2895
|
macOS app behavior:
|
|
2895
|
-
-
|
|
2896
|
+
- OpenClaw.app watches `~/.openclaw/openclaw.json` and switches modes live when `gateway.mode` or `gateway.remote.url` changes.
|
|
2896
2897
|
- If `gateway.mode` is unset but `gateway.remote.url` is set, the macOS app treats it as remote mode.
|
|
2897
2898
|
- When you change connection mode in the macOS app, it writes `gateway.mode` (and `gateway.remote.url` + `gateway.remote.transport` in remote mode) back to the config file.
|
|
2898
2899
|
|
|
@@ -2926,7 +2927,7 @@ Direct transport example (macOS app):
|
|
|
2926
2927
|
|
|
2927
2928
|
### `gateway.reload` (Config hot reload)
|
|
2928
2929
|
|
|
2929
|
-
The Gateway watches `~/.
|
|
2930
|
+
The Gateway watches `~/.openclaw/openclaw.json` (or `OPENCLAW_CONFIG_PATH`) and applies changes automatically.
|
|
2930
2931
|
|
|
2931
2932
|
Modes:
|
|
2932
2933
|
- `hybrid` (default): hot-apply safe changes; restart the Gateway for critical changes.
|
|
@@ -2948,7 +2949,7 @@ Modes:
|
|
|
2948
2949
|
#### Hot reload matrix (files + impact)
|
|
2949
2950
|
|
|
2950
2951
|
Files watched:
|
|
2951
|
-
- `~/.
|
|
2952
|
+
- `~/.openclaw/openclaw.json` (or `OPENCLAW_CONFIG_PATH`)
|
|
2952
2953
|
|
|
2953
2954
|
Hot-applied (no full gateway restart):
|
|
2954
2955
|
- `hooks` (webhook auth/path/mappings) + `hooks.gmail` (Gmail watcher restarted)
|
|
@@ -2970,23 +2971,23 @@ Requires full Gateway restart:
|
|
|
2970
2971
|
### Multi-instance isolation
|
|
2971
2972
|
|
|
2972
2973
|
To run multiple gateways on one host (for redundancy or a rescue bot), isolate per-instance state + config and use unique ports:
|
|
2973
|
-
- `
|
|
2974
|
-
- `
|
|
2974
|
+
- `OPENCLAW_CONFIG_PATH` (per-instance config)
|
|
2975
|
+
- `OPENCLAW_STATE_DIR` (sessions/creds)
|
|
2975
2976
|
- `agents.defaults.workspace` (memories)
|
|
2976
2977
|
- `gateway.port` (unique per instance)
|
|
2977
2978
|
|
|
2978
2979
|
Convenience flags (CLI):
|
|
2979
|
-
- `
|
|
2980
|
-
- `
|
|
2980
|
+
- `openclaw --dev …` → uses `~/.openclaw-dev` + shifts ports from base `19001`
|
|
2981
|
+
- `openclaw --profile <name> …` → uses `~/.openclaw-<name>` (port via config/env/flags)
|
|
2981
2982
|
|
|
2982
2983
|
See [Gateway runbook](/gateway) for the derived port mapping (gateway/browser/canvas).
|
|
2983
2984
|
See [Multiple gateways](/gateway/multiple-gateways) for browser/CDP port isolation details.
|
|
2984
2985
|
|
|
2985
2986
|
Example:
|
|
2986
2987
|
```bash
|
|
2987
|
-
|
|
2988
|
-
|
|
2989
|
-
|
|
2988
|
+
OPENCLAW_CONFIG_PATH=~/.openclaw/a.json \
|
|
2989
|
+
OPENCLAW_STATE_DIR=~/.openclaw-a \
|
|
2990
|
+
openclaw gateway --port 19001
|
|
2990
2991
|
```
|
|
2991
2992
|
|
|
2992
2993
|
### `hooks` (Gateway webhooks)
|
|
@@ -3005,7 +3006,7 @@ Defaults:
|
|
|
3005
3006
|
token: "shared-secret",
|
|
3006
3007
|
path: "/hooks",
|
|
3007
3008
|
presets: ["gmail"],
|
|
3008
|
-
transformsDir: "~/.
|
|
3009
|
+
transformsDir: "~/.openclaw/hooks",
|
|
3009
3010
|
mappings: [
|
|
3010
3011
|
{
|
|
3011
3012
|
match: { path: "gmail" },
|
|
@@ -3026,7 +3027,7 @@ Defaults:
|
|
|
3026
3027
|
|
|
3027
3028
|
Requests must include the hook token:
|
|
3028
3029
|
- `Authorization: Bearer <token>` **or**
|
|
3029
|
-
- `x-
|
|
3030
|
+
- `x-openclaw-token: <token>` **or**
|
|
3030
3031
|
- `?token=<token>`
|
|
3031
3032
|
|
|
3032
3033
|
Endpoints:
|
|
@@ -3045,13 +3046,13 @@ Mapping notes:
|
|
|
3045
3046
|
- If there is no prior delivery route, set `channel` + `to` explicitly (required for Telegram/Discord/Google Chat/Slack/Signal/iMessage/MS Teams).
|
|
3046
3047
|
- `model` overrides the LLM for this hook run (`provider/model` or alias; must be allowed if `agents.defaults.models` is set).
|
|
3047
3048
|
|
|
3048
|
-
Gmail helper config (used by `
|
|
3049
|
+
Gmail helper config (used by `openclaw webhooks gmail setup` / `run`):
|
|
3049
3050
|
|
|
3050
3051
|
```json5
|
|
3051
3052
|
{
|
|
3052
3053
|
hooks: {
|
|
3053
3054
|
gmail: {
|
|
3054
|
-
account: "
|
|
3055
|
+
account: "openclaw@gmail.com",
|
|
3055
3056
|
topic: "projects/<project-id>/topics/gog-gmail-watch",
|
|
3056
3057
|
subscription: "gog-gmail-watch-push",
|
|
3057
3058
|
pushToken: "shared-push-token",
|
|
@@ -3083,11 +3084,11 @@ Model override for Gmail hooks:
|
|
|
3083
3084
|
Gateway auto-start:
|
|
3084
3085
|
- If `hooks.enabled=true` and `hooks.gmail.account` is set, the Gateway starts
|
|
3085
3086
|
`gog gmail watch serve` on boot and auto-renews the watch.
|
|
3086
|
-
- Set `
|
|
3087
|
+
- Set `OPENCLAW_SKIP_GMAIL_WATCHER=1` to disable the auto-start (for manual runs).
|
|
3087
3088
|
- Avoid running a separate `gog gmail watch serve` alongside the Gateway; it will
|
|
3088
3089
|
fail with `listen tcp 127.0.0.1:8788: bind: address already in use`.
|
|
3089
3090
|
|
|
3090
|
-
Note: when `tailscale.mode` is on,
|
|
3091
|
+
Note: when `tailscale.mode` is on, OpenClaw defaults `serve.path` to `/` so
|
|
3091
3092
|
Tailscale can proxy `/gmail-pubsub` correctly (it strips the set-path prefix).
|
|
3092
3093
|
If you need the backend to receive the prefixed path, set
|
|
3093
3094
|
`hooks.gmail.tailscale.target` to a full URL (and align `serve.path`).
|
|
@@ -3096,16 +3097,16 @@ If you need the backend to receive the prefixed path, set
|
|
|
3096
3097
|
|
|
3097
3098
|
The Gateway serves a directory of HTML/CSS/JS over HTTP so iOS/Android nodes can simply `canvas.navigate` to it.
|
|
3098
3099
|
|
|
3099
|
-
Default root:
|
|
3100
|
-
Default port: `18793` (chosen to avoid the
|
|
3100
|
+
Default root: `~/.openclaw/workspace/canvas`
|
|
3101
|
+
Default port: `18793` (chosen to avoid the openclaw browser CDP port `18792`)
|
|
3101
3102
|
The server listens on the **gateway bind host** (LAN or Tailnet) so nodes can reach it.
|
|
3102
3103
|
|
|
3103
3104
|
The server:
|
|
3104
3105
|
- serves files under `canvasHost.root`
|
|
3105
3106
|
- injects a tiny live-reload client into served HTML
|
|
3106
|
-
- watches the directory and broadcasts reloads over a WebSocket endpoint at `/
|
|
3107
|
+
- watches the directory and broadcasts reloads over a WebSocket endpoint at `/__openclaw__/ws`
|
|
3107
3108
|
- auto-creates a starter `index.html` when the directory is empty (so you see something immediately)
|
|
3108
|
-
- also serves A2UI at `/
|
|
3109
|
+
- also serves A2UI at `/__openclaw__/a2ui/` and is advertised to nodes as `canvasHostUrl`
|
|
3109
3110
|
(always used by nodes for Canvas/A2UI)
|
|
3110
3111
|
|
|
3111
3112
|
Disable live reload (and file watching) if the directory is large or you hit `EMFILE`:
|
|
@@ -3114,7 +3115,7 @@ Disable live reload (and file watching) if the directory is large or you hit `EM
|
|
|
3114
3115
|
```json5
|
|
3115
3116
|
{
|
|
3116
3117
|
canvasHost: {
|
|
3117
|
-
root: "
|
|
3118
|
+
root: "~/.openclaw/workspace/canvas",
|
|
3118
3119
|
port: 18793,
|
|
3119
3120
|
liveReload: true
|
|
3120
3121
|
}
|
|
@@ -3125,7 +3126,7 @@ Changes to `canvasHost.*` require a gateway restart (config reload will restart)
|
|
|
3125
3126
|
|
|
3126
3127
|
Disable with:
|
|
3127
3128
|
- config: `canvasHost: { enabled: false }`
|
|
3128
|
-
- env: `
|
|
3129
|
+
- env: `OPENCLAW_SKIP_CANVAS_HOST=1`
|
|
3129
3130
|
|
|
3130
3131
|
### `bridge` (legacy TCP bridge, removed)
|
|
3131
3132
|
|
|
@@ -3165,9 +3166,9 @@ Auto-generated certs require `openssl` on PATH; if generation fails, the bridge
|
|
|
3165
3166
|
bind: "tailnet",
|
|
3166
3167
|
tls: {
|
|
3167
3168
|
enabled: true,
|
|
3168
|
-
// Uses ~/.
|
|
3169
|
-
// certPath: "~/.
|
|
3170
|
-
// keyPath: "~/.
|
|
3169
|
+
// Uses ~/.openclaw/bridge/tls/bridge-{cert,key}.pem when omitted.
|
|
3170
|
+
// certPath: "~/.openclaw/bridge/tls/bridge-cert.pem",
|
|
3171
|
+
// keyPath: "~/.openclaw/bridge/tls/bridge-key.pem"
|
|
3171
3172
|
}
|
|
3172
3173
|
}
|
|
3173
3174
|
}
|
|
@@ -3175,11 +3176,12 @@ Auto-generated certs require `openssl` on PATH; if generation fails, the bridge
|
|
|
3175
3176
|
|
|
3176
3177
|
### `discovery.mdns` (Bonjour / mDNS broadcast mode)
|
|
3177
3178
|
|
|
3178
|
-
Controls LAN mDNS discovery broadcasts (`
|
|
3179
|
+
Controls LAN mDNS discovery broadcasts (`_openclaw-gw._tcp`).
|
|
3179
3180
|
|
|
3180
3181
|
- `minimal` (default): omit `cliPath` + `sshPort` from TXT records
|
|
3181
3182
|
- `full`: include `cliPath` + `sshPort` in TXT records
|
|
3182
3183
|
- `off`: disable mDNS broadcasts entirely
|
|
3184
|
+
- Hostname: defaults to `openclaw` (advertises `openclaw.local`). Override with `OPENCLAW_MDNS_HOSTNAME`.
|
|
3183
3185
|
|
|
3184
3186
|
```json5
|
|
3185
3187
|
{
|
|
@@ -3189,16 +3191,16 @@ Controls LAN mDNS discovery broadcasts (`_moltbot-gw._tcp`).
|
|
|
3189
3191
|
|
|
3190
3192
|
### `discovery.wideArea` (Wide-Area Bonjour / unicast DNS‑SD)
|
|
3191
3193
|
|
|
3192
|
-
When enabled, the Gateway writes a unicast DNS-SD zone for `
|
|
3194
|
+
When enabled, the Gateway writes a unicast DNS-SD zone for `_openclaw-gw._tcp` under `~/.openclaw/dns/` using the configured discovery domain (example: `openclaw.internal.`).
|
|
3193
3195
|
|
|
3194
3196
|
To make iOS/Android discover across networks (Vienna ⇄ London), pair this with:
|
|
3195
|
-
- a DNS server on the gateway host serving
|
|
3196
|
-
- Tailscale **split DNS** so clients resolve
|
|
3197
|
+
- a DNS server on the gateway host serving your chosen domain (CoreDNS is recommended)
|
|
3198
|
+
- Tailscale **split DNS** so clients resolve that domain via the gateway DNS server
|
|
3197
3199
|
|
|
3198
3200
|
One-time setup helper (gateway host):
|
|
3199
3201
|
|
|
3200
3202
|
```bash
|
|
3201
|
-
|
|
3203
|
+
openclaw dns setup --apply
|
|
3202
3204
|
```
|
|
3203
3205
|
|
|
3204
3206
|
```json5
|