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