@quantumclaw/quantumclaw 2026.3.22
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 +4601 -0
- package/LICENSE +21 -0
- package/README.md +559 -0
- package/assets/avatar-placeholder.svg +19 -0
- package/assets/chrome-extension/icons/icon128.png +0 -0
- package/assets/chrome-extension/icons/icon16.png +0 -0
- package/assets/chrome-extension/icons/icon32.png +0 -0
- package/assets/chrome-extension/icons/icon48.png +0 -0
- package/assets/dmg-background-small.png +0 -0
- package/assets/dmg-background.png +0 -0
- package/docs/.i18n/README.md +31 -0
- package/docs/.i18n/glossary.ja-JP.json +14 -0
- package/docs/.i18n/glossary.zh-CN.json +302 -0
- package/docs/.i18n/ja-JP.tm.jsonl +0 -0
- package/docs/assets/install-script.svg +1 -0
- package/docs/assets/macos-onboarding/01-macos-warning.jpeg +0 -0
- package/docs/assets/macos-onboarding/02-local-networks.jpeg +0 -0
- package/docs/assets/macos-onboarding/03-security-notice.png +0 -0
- package/docs/assets/macos-onboarding/04-choose-gateway.png +0 -0
- package/docs/assets/macos-onboarding/05-permissions.png +0 -0
- package/docs/assets/pixel-lobster.svg +60 -0
- package/docs/assets/quantumclaw-logo-text-dark.png +0 -0
- package/docs/assets/quantumclaw-logo-text-dark.svg +418 -0
- package/docs/assets/quantumclaw-logo-text.png +0 -0
- package/docs/assets/quantumclaw-logo-text.svg +418 -0
- package/docs/assets/showcase/agents-ui.jpg +0 -0
- package/docs/assets/showcase/bambu-cli.png +0 -0
- package/docs/assets/showcase/codexmonitor.png +0 -0
- package/docs/assets/showcase/gohome-grafana.png +0 -0
- package/docs/assets/showcase/ios-testflight.jpg +0 -0
- package/docs/assets/showcase/oura-health.png +0 -0
- package/docs/assets/showcase/padel-cli.svg +11 -0
- package/docs/assets/showcase/padel-screenshot.jpg +0 -0
- package/docs/assets/showcase/papla-tts.jpg +0 -0
- package/docs/assets/showcase/pr-review-telegram.jpg +0 -0
- package/docs/assets/showcase/roborock-screenshot.jpg +0 -0
- package/docs/assets/showcase/roborock-status.svg +13 -0
- package/docs/assets/showcase/roof-camera-sky.jpg +0 -0
- package/docs/assets/showcase/snag.png +0 -0
- package/docs/assets/showcase/tesco-shop.jpg +0 -0
- package/docs/assets/showcase/wienerlinien.png +0 -0
- package/docs/assets/showcase/wine-cellar-skill.jpg +0 -0
- package/docs/assets/showcase/winix-air-purifier.jpg +0 -0
- package/docs/assets/showcase/xuezh-pronunciation.jpeg +0 -0
- package/docs/assets/sponsors/blacksmith.svg +14 -0
- package/docs/assets/sponsors/convex.svg +16 -0
- package/docs/assets/sponsors/openai.svg +3 -0
- package/docs/assets/sponsors/vercel.svg +5 -0
- package/docs/auth-credential-semantics.md +53 -0
- package/docs/automation/auth-monitoring.md +44 -0
- package/docs/automation/cron-jobs.md +727 -0
- package/docs/automation/cron-vs-heartbeat.md +286 -0
- package/docs/automation/gmail-pubsub.md +256 -0
- package/docs/automation/hooks.md +1056 -0
- package/docs/automation/poll.md +86 -0
- package/docs/automation/standing-orders.md +251 -0
- package/docs/automation/troubleshooting.md +122 -0
- package/docs/automation/webhook.md +217 -0
- package/docs/brave-search.md +93 -0
- package/docs/channels/bluebubbles.md +347 -0
- package/docs/channels/broadcast-groups.md +442 -0
- package/docs/channels/channel-routing.md +139 -0
- package/docs/channels/discord.md +1229 -0
- package/docs/channels/feishu.md +747 -0
- package/docs/channels/googlechat.md +261 -0
- package/docs/channels/group-messages.md +84 -0
- package/docs/channels/groups.md +379 -0
- package/docs/channels/imessage.md +367 -0
- package/docs/channels/index.md +47 -0
- package/docs/channels/irc.md +242 -0
- package/docs/channels/line.md +194 -0
- package/docs/channels/location.md +56 -0
- package/docs/channels/matrix.md +677 -0
- package/docs/channels/mattermost.md +427 -0
- package/docs/channels/msteams.md +780 -0
- package/docs/channels/nextcloud-talk.md +138 -0
- package/docs/channels/nostr.md +249 -0
- package/docs/channels/pairing.md +114 -0
- package/docs/channels/signal.md +329 -0
- package/docs/channels/slack.md +603 -0
- package/docs/channels/synology-chat.md +134 -0
- package/docs/channels/telegram.md +987 -0
- package/docs/channels/tlon.md +276 -0
- package/docs/channels/troubleshooting.md +118 -0
- package/docs/channels/twitch.md +379 -0
- package/docs/channels/whatsapp.md +460 -0
- package/docs/channels/zalo.md +243 -0
- package/docs/channels/zalouser.md +181 -0
- package/docs/ci.md +55 -0
- package/docs/cli/acp.md +288 -0
- package/docs/cli/agent.md +29 -0
- package/docs/cli/agents.md +123 -0
- package/docs/cli/approvals.md +50 -0
- package/docs/cli/backup.md +76 -0
- package/docs/cli/browser.md +106 -0
- package/docs/cli/channels.md +102 -0
- package/docs/cli/clawbot.md +21 -0
- package/docs/cli/completion.md +35 -0
- package/docs/cli/config.md +295 -0
- package/docs/cli/configure.md +36 -0
- package/docs/cli/cron.md +77 -0
- package/docs/cli/daemon.md +53 -0
- package/docs/cli/dashboard.md +22 -0
- package/docs/cli/devices.md +139 -0
- package/docs/cli/directory.md +63 -0
- package/docs/cli/dns.md +23 -0
- package/docs/cli/docs.md +15 -0
- package/docs/cli/doctor.md +48 -0
- package/docs/cli/gateway.md +235 -0
- package/docs/cli/health.md +21 -0
- package/docs/cli/hooks.md +329 -0
- package/docs/cli/index.md +1150 -0
- package/docs/cli/logs.md +28 -0
- package/docs/cli/memory.md +66 -0
- package/docs/cli/message.md +278 -0
- package/docs/cli/models.md +81 -0
- package/docs/cli/node.md +127 -0
- package/docs/cli/nodes.md +75 -0
- package/docs/cli/onboard.md +157 -0
- package/docs/cli/pairing.md +32 -0
- package/docs/cli/plugins.md +210 -0
- package/docs/cli/qr.md +46 -0
- package/docs/cli/reset.md +20 -0
- package/docs/cli/sandbox.md +197 -0
- package/docs/cli/secrets.md +188 -0
- package/docs/cli/security.md +79 -0
- package/docs/cli/sessions.md +110 -0
- package/docs/cli/setup.md +29 -0
- package/docs/cli/skills.md +36 -0
- package/docs/cli/status.md +30 -0
- package/docs/cli/system.md +60 -0
- package/docs/cli/tui.md +30 -0
- package/docs/cli/uninstall.md +20 -0
- package/docs/cli/update.md +103 -0
- package/docs/cli/voicecall.md +34 -0
- package/docs/cli/webhooks.md +25 -0
- package/docs/concepts/agent-loop.md +148 -0
- package/docs/concepts/agent-workspace.md +236 -0
- package/docs/concepts/agent.md +122 -0
- package/docs/concepts/architecture.md +137 -0
- package/docs/concepts/compaction.md +123 -0
- package/docs/concepts/context-engine.md +268 -0
- package/docs/concepts/context.md +172 -0
- package/docs/concepts/delegate-architecture.md +296 -0
- package/docs/concepts/features.md +73 -0
- package/docs/concepts/markdown-formatting.md +130 -0
- package/docs/concepts/memory.md +108 -0
- package/docs/concepts/messages.md +154 -0
- package/docs/concepts/model-failover.md +152 -0
- package/docs/concepts/model-providers.md +607 -0
- package/docs/concepts/models.md +225 -0
- package/docs/concepts/multi-agent.md +552 -0
- package/docs/concepts/oauth.md +158 -0
- package/docs/concepts/presence.md +102 -0
- package/docs/concepts/queue.md +89 -0
- package/docs/concepts/retry.md +69 -0
- package/docs/concepts/session-pruning.md +121 -0
- package/docs/concepts/session-tool.md +242 -0
- package/docs/concepts/session.md +310 -0
- package/docs/concepts/streaming.md +155 -0
- package/docs/concepts/system-prompt.md +132 -0
- package/docs/concepts/timezone.md +91 -0
- package/docs/concepts/typebox.md +291 -0
- package/docs/concepts/typing-indicators.md +68 -0
- package/docs/concepts/usage-tracking.md +35 -0
- package/docs/date-time.md +128 -0
- package/docs/debug/node-issue.md +85 -0
- package/docs/diagnostics/flags.md +91 -0
- package/docs/docs.json +2078 -0
- package/docs/gateway/authentication.md +179 -0
- package/docs/gateway/background-process.md +97 -0
- package/docs/gateway/bonjour.md +177 -0
- package/docs/gateway/bridge-protocol.md +91 -0
- package/docs/gateway/cli-backends.md +225 -0
- package/docs/gateway/configuration-examples.md +651 -0
- package/docs/gateway/configuration-reference.md +3123 -0
- package/docs/gateway/configuration.md +633 -0
- package/docs/gateway/discovery.md +123 -0
- package/docs/gateway/doctor.md +362 -0
- package/docs/gateway/gateway-lock.md +34 -0
- package/docs/gateway/health.md +44 -0
- package/docs/gateway/heartbeat.md +393 -0
- package/docs/gateway/index.md +261 -0
- package/docs/gateway/local-models.md +152 -0
- package/docs/gateway/logging.md +113 -0
- package/docs/gateway/multiple-gateways.md +112 -0
- package/docs/gateway/network-model.md +22 -0
- package/docs/gateway/openai-http-api.md +132 -0
- package/docs/gateway/openresponses-http-api.md +295 -0
- package/docs/gateway/openshell.md +307 -0
- package/docs/gateway/pairing.md +99 -0
- package/docs/gateway/protocol.md +267 -0
- package/docs/gateway/remote-gateway-readme.md +158 -0
- package/docs/gateway/remote.md +153 -0
- package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +134 -0
- package/docs/gateway/sandboxing.md +469 -0
- package/docs/gateway/secrets-plan-contract.md +116 -0
- package/docs/gateway/secrets.md +503 -0
- package/docs/gateway/security/index.md +1220 -0
- package/docs/gateway/tailscale.md +132 -0
- package/docs/gateway/tools-invoke-http-api.md +118 -0
- package/docs/gateway/troubleshooting.md +378 -0
- package/docs/gateway/trusted-proxy-auth.md +330 -0
- package/docs/help/debugging.md +168 -0
- package/docs/help/environment.md +163 -0
- package/docs/help/faq.md +2997 -0
- package/docs/help/index.md +28 -0
- package/docs/help/scripts.md +28 -0
- package/docs/help/testing.md +526 -0
- package/docs/help/troubleshooting.md +297 -0
- package/docs/images/configure-model-picker-unsearchable.png +0 -0
- package/docs/images/feishu-step2-create-app.png +0 -0
- package/docs/images/feishu-step3-credentials.png +0 -0
- package/docs/images/feishu-step4-permissions.png +0 -0
- package/docs/images/feishu-step5-bot-capability.png +0 -0
- package/docs/images/feishu-step6-event-subscription.png +0 -0
- package/docs/images/feishu-verification-token.png +0 -0
- package/docs/images/groups-flow.svg +52 -0
- package/docs/images/mobile-ui-screenshot.png +0 -0
- package/docs/index.md +196 -0
- package/docs/install/ansible.md +230 -0
- package/docs/install/azure.md +311 -0
- package/docs/install/bun.md +55 -0
- package/docs/install/development-channels.md +120 -0
- package/docs/install/digitalocean.md +129 -0
- package/docs/install/docker-vm-runtime.md +142 -0
- package/docs/install/docker.md +375 -0
- package/docs/install/exe-dev.md +126 -0
- package/docs/install/fly.md +501 -0
- package/docs/install/gcp.md +402 -0
- package/docs/install/hetzner.md +251 -0
- package/docs/install/index.md +183 -0
- package/docs/install/installer.md +415 -0
- package/docs/install/kubernetes.md +191 -0
- package/docs/install/macos-vm.md +281 -0
- package/docs/install/migrating-matrix.md +346 -0
- package/docs/install/migrating.md +110 -0
- package/docs/install/nix.md +89 -0
- package/docs/install/node.md +138 -0
- package/docs/install/northflank.mdx +54 -0
- package/docs/install/oracle.md +156 -0
- package/docs/install/podman.md +133 -0
- package/docs/install/railway.mdx +100 -0
- package/docs/install/raspberry-pi.md +159 -0
- package/docs/install/render.mdx +169 -0
- package/docs/install/uninstall.md +128 -0
- package/docs/install/updating.md +128 -0
- package/docs/ja-JP/index.md +186 -0
- package/docs/ja-JP/start/getting-started.md +125 -0
- package/docs/ja-JP/start/wizard.md +77 -0
- package/docs/logging.md +352 -0
- package/docs/nav-tabs-underline.js +100 -0
- package/docs/network.md +54 -0
- package/docs/nodes/audio.md +187 -0
- package/docs/nodes/camera.md +162 -0
- package/docs/nodes/images.md +72 -0
- package/docs/nodes/index.md +393 -0
- package/docs/nodes/location-command.md +98 -0
- package/docs/nodes/media-understanding.md +394 -0
- package/docs/nodes/talk.md +92 -0
- package/docs/nodes/troubleshooting.md +114 -0
- package/docs/nodes/voicewake.md +66 -0
- package/docs/perplexity.md +174 -0
- package/docs/pi-dev.md +80 -0
- package/docs/pi.md +567 -0
- package/docs/platforms/android.md +168 -0
- package/docs/platforms/digitalocean.md +266 -0
- package/docs/platforms/index.md +54 -0
- package/docs/platforms/ios.md +220 -0
- package/docs/platforms/linux.md +94 -0
- package/docs/platforms/mac/bundled-gateway.md +73 -0
- package/docs/platforms/mac/canvas.md +125 -0
- package/docs/platforms/mac/child-process.md +69 -0
- package/docs/platforms/mac/dev-setup.md +104 -0
- package/docs/platforms/mac/health.md +34 -0
- package/docs/platforms/mac/icon.md +31 -0
- package/docs/platforms/mac/logging.md +57 -0
- package/docs/platforms/mac/menu-bar.md +81 -0
- package/docs/platforms/mac/peekaboo.md +65 -0
- package/docs/platforms/mac/permissions.md +50 -0
- package/docs/platforms/mac/remote.md +84 -0
- package/docs/platforms/mac/signing.md +47 -0
- package/docs/platforms/mac/skills.md +33 -0
- package/docs/platforms/mac/voice-overlay.md +60 -0
- package/docs/platforms/mac/voicewake.md +67 -0
- package/docs/platforms/mac/webchat.md +43 -0
- package/docs/platforms/mac/xpc.md +61 -0
- package/docs/platforms/macos.md +226 -0
- package/docs/platforms/oracle.md +303 -0
- package/docs/platforms/raspberry-pi.md +412 -0
- package/docs/platforms/windows.md +241 -0
- package/docs/plugins/agent-tools.md +10 -0
- package/docs/plugins/architecture.md +1366 -0
- package/docs/plugins/building-extensions.md +10 -0
- package/docs/plugins/building-plugins.md +239 -0
- package/docs/plugins/bundles.md +181 -0
- package/docs/plugins/community.md +145 -0
- package/docs/plugins/manifest.md +241 -0
- package/docs/plugins/sdk-channel-plugins.md +370 -0
- package/docs/plugins/sdk-entrypoints.md +161 -0
- package/docs/plugins/sdk-migration.md +172 -0
- package/docs/plugins/sdk-overview.md +196 -0
- package/docs/plugins/sdk-provider-plugins.md +370 -0
- package/docs/plugins/sdk-runtime.md +345 -0
- package/docs/plugins/sdk-setup.md +331 -0
- package/docs/plugins/sdk-testing.md +263 -0
- package/docs/plugins/voice-call.md +380 -0
- package/docs/plugins/zalouser.md +77 -0
- package/docs/prose.md +134 -0
- package/docs/providers/anthropic.md +259 -0
- package/docs/providers/bedrock.md +176 -0
- package/docs/providers/claude-max-api-proxy.md +154 -0
- package/docs/providers/cloudflare-ai-gateway.md +71 -0
- package/docs/providers/deepgram.md +93 -0
- package/docs/providers/github-copilot.md +72 -0
- package/docs/providers/glm.md +43 -0
- package/docs/providers/google.md +78 -0
- package/docs/providers/groq.md +96 -0
- package/docs/providers/huggingface.md +209 -0
- package/docs/providers/index.md +69 -0
- package/docs/providers/kilocode.md +74 -0
- package/docs/providers/litellm.md +154 -0
- package/docs/providers/minimax.md +224 -0
- package/docs/providers/mistral.md +54 -0
- package/docs/providers/models.md +45 -0
- package/docs/providers/modelstudio.md +66 -0
- package/docs/providers/moonshot.md +175 -0
- package/docs/providers/nvidia.md +55 -0
- package/docs/providers/ollama.md +352 -0
- package/docs/providers/openai.md +303 -0
- package/docs/providers/opencode-go.md +45 -0
- package/docs/providers/opencode.md +64 -0
- package/docs/providers/openrouter.md +37 -0
- package/docs/providers/perplexity-provider.md +62 -0
- package/docs/providers/qianfan.md +38 -0
- package/docs/providers/qwen.md +53 -0
- package/docs/providers/sglang.md +104 -0
- package/docs/providers/synthetic.md +99 -0
- package/docs/providers/together.md +66 -0
- package/docs/providers/venice.md +282 -0
- package/docs/providers/vercel-ai-gateway.md +60 -0
- package/docs/providers/vllm.md +92 -0
- package/docs/providers/volcengine.md +74 -0
- package/docs/providers/xai.md +60 -0
- package/docs/providers/xiaomi.md +86 -0
- package/docs/providers/zai.md +46 -0
- package/docs/reference/AGENTS.default.md +126 -0
- package/docs/reference/RELEASING.md +42 -0
- package/docs/reference/api-usage-costs.md +144 -0
- package/docs/reference/credits.md +30 -0
- package/docs/reference/device-models.md +47 -0
- package/docs/reference/memory-config.md +711 -0
- package/docs/reference/prompt-caching.md +185 -0
- package/docs/reference/rpc.md +43 -0
- package/docs/reference/secretref-credential-surface.md +140 -0
- package/docs/reference/secretref-user-supplied-credentials-matrix.json +563 -0
- package/docs/reference/session-management-compaction.md +324 -0
- package/docs/reference/templates/AGENTS.dev.md +83 -0
- package/docs/reference/templates/AGENTS.md +219 -0
- package/docs/reference/templates/BOOT.md +11 -0
- package/docs/reference/templates/BOOTSTRAP.md +62 -0
- package/docs/reference/templates/HEARTBEAT.md +14 -0
- package/docs/reference/templates/IDENTITY.dev.md +47 -0
- package/docs/reference/templates/IDENTITY.md +29 -0
- package/docs/reference/templates/SOUL.dev.md +76 -0
- package/docs/reference/templates/SOUL.md +43 -0
- package/docs/reference/templates/TOOLS.dev.md +24 -0
- package/docs/reference/templates/TOOLS.md +47 -0
- package/docs/reference/templates/USER.dev.md +18 -0
- package/docs/reference/templates/USER.md +23 -0
- package/docs/reference/test.md +90 -0
- package/docs/reference/token-use.md +175 -0
- package/docs/reference/transcript-hygiene.md +151 -0
- package/docs/reference/wizard.md +235 -0
- package/docs/security/CONTRIBUTING-THREAT-MODEL.md +98 -0
- package/docs/security/THREAT-MODEL-ATLAS.md +611 -0
- package/docs/security/formal-verification.md +167 -0
- package/docs/start/bootstrapping.md +41 -0
- package/docs/start/docs-directory.md +66 -0
- package/docs/start/getting-started.md +116 -0
- package/docs/start/hubs.md +198 -0
- package/docs/start/lore.md +219 -0
- package/docs/start/onboarding-overview.md +67 -0
- package/docs/start/onboarding.md +91 -0
- package/docs/start/openclaw.md +221 -0
- package/docs/start/quickstart.md +22 -0
- package/docs/start/setup.md +164 -0
- package/docs/start/showcase.md +418 -0
- package/docs/start/wizard-cli-automation.md +215 -0
- package/docs/start/wizard-cli-reference.md +299 -0
- package/docs/start/wizard.md +125 -0
- package/docs/style.css +37 -0
- package/docs/tools/acp-agents.md +623 -0
- package/docs/tools/agent-send.md +100 -0
- package/docs/tools/apply-patch.md +51 -0
- package/docs/tools/brave-search.md +93 -0
- package/docs/tools/browser-linux-troubleshooting.md +138 -0
- package/docs/tools/browser-login.md +73 -0
- package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +211 -0
- package/docs/tools/browser.md +731 -0
- package/docs/tools/btw.md +142 -0
- package/docs/tools/capability-cookbook.md +119 -0
- package/docs/tools/clawhub.md +298 -0
- package/docs/tools/creating-skills.md +117 -0
- package/docs/tools/diffs.md +386 -0
- package/docs/tools/elevated.md +114 -0
- package/docs/tools/exec-approvals.md +430 -0
- package/docs/tools/exec.md +207 -0
- package/docs/tools/firecrawl.md +140 -0
- package/docs/tools/index.md +137 -0
- package/docs/tools/llm-task.md +119 -0
- package/docs/tools/lobster.md +340 -0
- package/docs/tools/loop-detection.md +100 -0
- package/docs/tools/multi-agent-sandbox-tools.md +364 -0
- package/docs/tools/pdf.md +156 -0
- package/docs/tools/perplexity-search.md +174 -0
- package/docs/tools/plugin.md +255 -0
- package/docs/tools/reactions.md +64 -0
- package/docs/tools/skills-config.md +86 -0
- package/docs/tools/skills.md +309 -0
- package/docs/tools/slash-commands.md +294 -0
- package/docs/tools/subagents.md +295 -0
- package/docs/tools/tavily.md +125 -0
- package/docs/tools/thinking.md +96 -0
- package/docs/tools/tts.md +406 -0
- package/docs/tools/web.md +516 -0
- package/docs/tts.md +406 -0
- package/docs/vps.md +112 -0
- package/docs/web/control-ui.md +275 -0
- package/docs/web/dashboard.md +54 -0
- package/docs/web/index.md +120 -0
- package/docs/web/tui.md +170 -0
- package/docs/web/webchat.md +61 -0
- package/docs/whatsapp-openclaw-ai-zh.jpg +0 -0
- package/docs/whatsapp-openclaw.jpg +0 -0
- package/docs/zh-CN/AGENTS.md +61 -0
- package/docs/zh-CN/automation/auth-monitoring.md +47 -0
- package/docs/zh-CN/automation/cron-jobs.md +435 -0
- package/docs/zh-CN/automation/cron-vs-heartbeat.md +286 -0
- package/docs/zh-CN/automation/gmail-pubsub.md +249 -0
- package/docs/zh-CN/automation/hooks.md +1051 -0
- package/docs/zh-CN/automation/poll.md +76 -0
- package/docs/zh-CN/automation/troubleshooting.md +8 -0
- package/docs/zh-CN/automation/webhook.md +163 -0
- package/docs/zh-CN/brave-search.md +60 -0
- package/docs/zh-CN/channels/bluebubbles.md +354 -0
- package/docs/zh-CN/channels/broadcast-groups.md +449 -0
- package/docs/zh-CN/channels/channel-routing.md +117 -0
- package/docs/zh-CN/channels/discord.md +468 -0
- package/docs/zh-CN/channels/feishu.md +728 -0
- package/docs/zh-CN/channels/googlechat.md +257 -0
- package/docs/zh-CN/channels/grammy.md +38 -0
- package/docs/zh-CN/channels/group-messages.md +91 -0
- package/docs/zh-CN/channels/groups.md +379 -0
- package/docs/zh-CN/channels/imessage.md +302 -0
- package/docs/zh-CN/channels/index.md +53 -0
- package/docs/zh-CN/channels/line.md +180 -0
- package/docs/zh-CN/channels/location.md +63 -0
- package/docs/zh-CN/channels/matrix.md +221 -0
- package/docs/zh-CN/channels/mattermost.md +144 -0
- package/docs/zh-CN/channels/msteams.md +775 -0
- package/docs/zh-CN/channels/nextcloud-talk.md +142 -0
- package/docs/zh-CN/channels/nostr.md +249 -0
- package/docs/zh-CN/channels/pairing.md +89 -0
- package/docs/zh-CN/channels/signal.md +209 -0
- package/docs/zh-CN/channels/slack.md +531 -0
- package/docs/zh-CN/channels/synology-chat.md +138 -0
- package/docs/zh-CN/channels/telegram.md +751 -0
- package/docs/zh-CN/channels/tlon.md +136 -0
- package/docs/zh-CN/channels/troubleshooting.md +36 -0
- package/docs/zh-CN/channels/twitch.md +385 -0
- package/docs/zh-CN/channels/whatsapp.md +411 -0
- package/docs/zh-CN/channels/zalo.md +196 -0
- package/docs/zh-CN/channels/zalouser.md +147 -0
- package/docs/zh-CN/cli/acp.md +173 -0
- package/docs/zh-CN/cli/agent.md +30 -0
- package/docs/zh-CN/cli/agents.md +82 -0
- package/docs/zh-CN/cli/approvals.md +57 -0
- package/docs/zh-CN/cli/browser.md +114 -0
- package/docs/zh-CN/cli/channels.md +86 -0
- package/docs/zh-CN/cli/config.md +57 -0
- package/docs/zh-CN/cli/configure.md +38 -0
- package/docs/zh-CN/cli/cron.md +43 -0
- package/docs/zh-CN/cli/dashboard.md +23 -0
- package/docs/zh-CN/cli/devices.md +74 -0
- package/docs/zh-CN/cli/directory.md +70 -0
- package/docs/zh-CN/cli/dns.md +30 -0
- package/docs/zh-CN/cli/docs.md +22 -0
- package/docs/zh-CN/cli/doctor.md +48 -0
- package/docs/zh-CN/cli/gateway.md +206 -0
- package/docs/zh-CN/cli/health.md +28 -0
- package/docs/zh-CN/cli/hooks.md +298 -0
- package/docs/zh-CN/cli/index.md +1143 -0
- package/docs/zh-CN/cli/logs.md +31 -0
- package/docs/zh-CN/cli/memory.md +52 -0
- package/docs/zh-CN/cli/message.md +246 -0
- package/docs/zh-CN/cli/models.md +85 -0
- package/docs/zh-CN/cli/node.md +115 -0
- package/docs/zh-CN/cli/nodes.md +80 -0
- package/docs/zh-CN/cli/onboard.md +164 -0
- package/docs/zh-CN/cli/pairing.md +28 -0
- package/docs/zh-CN/cli/plugins.md +66 -0
- package/docs/zh-CN/cli/reset.md +24 -0
- package/docs/zh-CN/cli/sandbox.md +158 -0
- package/docs/zh-CN/cli/security.md +33 -0
- package/docs/zh-CN/cli/sessions.md +23 -0
- package/docs/zh-CN/cli/setup.md +36 -0
- package/docs/zh-CN/cli/skills.md +33 -0
- package/docs/zh-CN/cli/status.md +33 -0
- package/docs/zh-CN/cli/system.md +63 -0
- package/docs/zh-CN/cli/tui.md +30 -0
- package/docs/zh-CN/cli/uninstall.md +24 -0
- package/docs/zh-CN/cli/update.md +101 -0
- package/docs/zh-CN/cli/voicecall.md +41 -0
- package/docs/zh-CN/cli/webhooks.md +32 -0
- package/docs/zh-CN/concepts/agent-loop.md +146 -0
- package/docs/zh-CN/concepts/agent-workspace.md +219 -0
- package/docs/zh-CN/concepts/agent.md +115 -0
- package/docs/zh-CN/concepts/architecture.md +123 -0
- package/docs/zh-CN/concepts/compaction.md +67 -0
- package/docs/zh-CN/concepts/context.md +168 -0
- package/docs/zh-CN/concepts/features.md +59 -0
- package/docs/zh-CN/concepts/markdown-formatting.md +117 -0
- package/docs/zh-CN/concepts/memory.md +412 -0
- package/docs/zh-CN/concepts/messages.md +141 -0
- package/docs/zh-CN/concepts/model-failover.md +145 -0
- package/docs/zh-CN/concepts/model-providers.md +606 -0
- package/docs/zh-CN/concepts/models.md +225 -0
- package/docs/zh-CN/concepts/multi-agent.md +372 -0
- package/docs/zh-CN/concepts/oauth.md +164 -0
- package/docs/zh-CN/concepts/presence.md +99 -0
- package/docs/zh-CN/concepts/queue.md +94 -0
- package/docs/zh-CN/concepts/retry.md +76 -0
- package/docs/zh-CN/concepts/session-pruning.md +129 -0
- package/docs/zh-CN/concepts/session-tool.md +200 -0
- package/docs/zh-CN/concepts/session.md +166 -0
- package/docs/zh-CN/concepts/streaming.md +133 -0
- package/docs/zh-CN/concepts/system-prompt.md +101 -0
- package/docs/zh-CN/concepts/timezone.md +96 -0
- package/docs/zh-CN/concepts/typebox.md +284 -0
- package/docs/zh-CN/concepts/typing-indicators.md +74 -0
- package/docs/zh-CN/concepts/usage-tracking.md +42 -0
- package/docs/zh-CN/date-time.md +129 -0
- package/docs/zh-CN/debug/node-issue.md +90 -0
- package/docs/zh-CN/diagnostics/flags.md +98 -0
- package/docs/zh-CN/gateway/authentication.md +184 -0
- package/docs/zh-CN/gateway/background-process.md +100 -0
- package/docs/zh-CN/gateway/bonjour.md +174 -0
- package/docs/zh-CN/gateway/bridge-protocol.md +86 -0
- package/docs/zh-CN/gateway/cli-backends.md +213 -0
- package/docs/zh-CN/gateway/configuration-examples.md +587 -0
- package/docs/zh-CN/gateway/configuration-reference.md +3103 -0
- package/docs/zh-CN/gateway/configuration.md +640 -0
- package/docs/zh-CN/gateway/discovery.md +123 -0
- package/docs/zh-CN/gateway/doctor.md +238 -0
- package/docs/zh-CN/gateway/gateway-lock.md +41 -0
- package/docs/zh-CN/gateway/health.md +42 -0
- package/docs/zh-CN/gateway/heartbeat.md +274 -0
- package/docs/zh-CN/gateway/index.md +335 -0
- package/docs/zh-CN/gateway/local-models.md +159 -0
- package/docs/zh-CN/gateway/logging.md +114 -0
- package/docs/zh-CN/gateway/multiple-gateways.md +119 -0
- package/docs/zh-CN/gateway/network-model.md +23 -0
- package/docs/zh-CN/gateway/openai-http-api.md +125 -0
- package/docs/zh-CN/gateway/openresponses-http-api.md +317 -0
- package/docs/zh-CN/gateway/pairing.md +99 -0
- package/docs/zh-CN/gateway/protocol.md +220 -0
- package/docs/zh-CN/gateway/remote-gateway-readme.md +164 -0
- package/docs/zh-CN/gateway/remote.md +133 -0
- package/docs/zh-CN/gateway/sandbox-vs-tool-policy-vs-elevated.md +135 -0
- package/docs/zh-CN/gateway/sandboxing.md +188 -0
- package/docs/zh-CN/gateway/security/index.md +777 -0
- package/docs/zh-CN/gateway/tailscale.md +124 -0
- package/docs/zh-CN/gateway/tools-invoke-http-api.md +92 -0
- package/docs/zh-CN/gateway/troubleshooting.md +771 -0
- package/docs/zh-CN/help/debugging.md +160 -0
- package/docs/zh-CN/help/environment.md +88 -0
- package/docs/zh-CN/help/faq.md +2640 -0
- package/docs/zh-CN/help/index.md +28 -0
- package/docs/zh-CN/help/scripts.md +35 -0
- package/docs/zh-CN/help/testing.md +375 -0
- package/docs/zh-CN/help/troubleshooting.md +104 -0
- package/docs/zh-CN/index.md +186 -0
- package/docs/zh-CN/install/ansible.md +215 -0
- package/docs/zh-CN/install/bun.md +65 -0
- package/docs/zh-CN/install/development-channels.md +81 -0
- package/docs/zh-CN/install/docker.md +532 -0
- package/docs/zh-CN/install/exe-dev.md +133 -0
- package/docs/zh-CN/install/fly.md +490 -0
- package/docs/zh-CN/install/gcp.md +510 -0
- package/docs/zh-CN/install/hetzner.md +337 -0
- package/docs/zh-CN/install/index.md +235 -0
- package/docs/zh-CN/install/installer.md +422 -0
- package/docs/zh-CN/install/macos-vm.md +288 -0
- package/docs/zh-CN/install/migrating.md +199 -0
- package/docs/zh-CN/install/nix.md +99 -0
- package/docs/zh-CN/install/node.md +8 -0
- package/docs/zh-CN/install/northflank.mdx +60 -0
- package/docs/zh-CN/install/railway.mdx +106 -0
- package/docs/zh-CN/install/render.mdx +169 -0
- package/docs/zh-CN/install/uninstall.md +135 -0
- package/docs/zh-CN/install/updating.md +233 -0
- package/docs/zh-CN/logging.md +329 -0
- package/docs/zh-CN/network.md +59 -0
- package/docs/zh-CN/nodes/audio.md +120 -0
- package/docs/zh-CN/nodes/camera.md +162 -0
- package/docs/zh-CN/nodes/images.md +79 -0
- package/docs/zh-CN/nodes/index.md +348 -0
- package/docs/zh-CN/nodes/location-command.md +120 -0
- package/docs/zh-CN/nodes/media-understanding.md +380 -0
- package/docs/zh-CN/nodes/talk.md +97 -0
- package/docs/zh-CN/nodes/troubleshooting.md +8 -0
- package/docs/zh-CN/nodes/voicewake.md +72 -0
- package/docs/zh-CN/perplexity.md +102 -0
- package/docs/zh-CN/pi-dev.md +77 -0
- package/docs/zh-CN/pi.md +619 -0
- package/docs/zh-CN/platforms/android.md +155 -0
- package/docs/zh-CN/platforms/digitalocean.md +273 -0
- package/docs/zh-CN/platforms/index.md +60 -0
- package/docs/zh-CN/platforms/ios.md +114 -0
- package/docs/zh-CN/platforms/linux.md +100 -0
- package/docs/zh-CN/platforms/mac/bundled-gateway.md +75 -0
- package/docs/zh-CN/platforms/mac/canvas.md +128 -0
- package/docs/zh-CN/platforms/mac/child-process.md +73 -0
- package/docs/zh-CN/platforms/mac/dev-setup.md +109 -0
- package/docs/zh-CN/platforms/mac/health.md +41 -0
- package/docs/zh-CN/platforms/mac/icon.md +38 -0
- package/docs/zh-CN/platforms/mac/logging.md +64 -0
- package/docs/zh-CN/platforms/mac/menu-bar.md +88 -0
- package/docs/zh-CN/platforms/mac/peekaboo.md +62 -0
- package/docs/zh-CN/platforms/mac/permissions.md +46 -0
- package/docs/zh-CN/platforms/mac/remote.md +90 -0
- package/docs/zh-CN/platforms/mac/signing.md +54 -0
- package/docs/zh-CN/platforms/mac/skills.md +40 -0
- package/docs/zh-CN/platforms/mac/voice-overlay.md +67 -0
- package/docs/zh-CN/platforms/mac/voicewake.md +74 -0
- package/docs/zh-CN/platforms/mac/webchat.md +43 -0
- package/docs/zh-CN/platforms/mac/xpc.md +68 -0
- package/docs/zh-CN/platforms/macos.md +193 -0
- package/docs/zh-CN/platforms/oracle.md +310 -0
- package/docs/zh-CN/platforms/raspberry-pi.md +416 -0
- package/docs/zh-CN/platforms/windows.md +247 -0
- package/docs/zh-CN/plugins/agent-tools.md +99 -0
- package/docs/zh-CN/plugins/manifest.md +68 -0
- package/docs/zh-CN/plugins/voice-call.md +250 -0
- package/docs/zh-CN/plugins/zalouser.md +88 -0
- package/docs/zh-CN/prose.md +141 -0
- package/docs/zh-CN/providers/anthropic.md +265 -0
- package/docs/zh-CN/providers/bedrock.md +170 -0
- package/docs/zh-CN/providers/claude-max-api-proxy.md +155 -0
- package/docs/zh-CN/providers/cloudflare-ai-gateway.md +78 -0
- package/docs/zh-CN/providers/deepgram.md +97 -0
- package/docs/zh-CN/providers/github-copilot.md +67 -0
- package/docs/zh-CN/providers/glm.md +50 -0
- package/docs/zh-CN/providers/huggingface.md +216 -0
- package/docs/zh-CN/providers/index.md +69 -0
- package/docs/zh-CN/providers/kilocode.md +80 -0
- package/docs/zh-CN/providers/litellm.md +160 -0
- package/docs/zh-CN/providers/minimax.md +222 -0
- package/docs/zh-CN/providers/mistral.md +61 -0
- package/docs/zh-CN/providers/models.md +51 -0
- package/docs/zh-CN/providers/moonshot.md +182 -0
- package/docs/zh-CN/providers/nvidia.md +62 -0
- package/docs/zh-CN/providers/ollama.md +359 -0
- package/docs/zh-CN/providers/openai.md +308 -0
- package/docs/zh-CN/providers/opencode-go.md +52 -0
- package/docs/zh-CN/providers/opencode.md +71 -0
- package/docs/zh-CN/providers/openrouter.md +44 -0
- package/docs/zh-CN/providers/qianfan.md +45 -0
- package/docs/zh-CN/providers/qwen.md +55 -0
- package/docs/zh-CN/providers/sglang.md +111 -0
- package/docs/zh-CN/providers/synthetic.md +106 -0
- package/docs/zh-CN/providers/together.md +72 -0
- package/docs/zh-CN/providers/venice.md +289 -0
- package/docs/zh-CN/providers/vercel-ai-gateway.md +66 -0
- package/docs/zh-CN/providers/xiaomi.md +93 -0
- package/docs/zh-CN/providers/zai.md +53 -0
- package/docs/zh-CN/reference/AGENTS.default.md +131 -0
- package/docs/zh-CN/reference/RELEASING.md +48 -0
- package/docs/zh-CN/reference/api-usage-costs.md +141 -0
- package/docs/zh-CN/reference/credits.md +34 -0
- package/docs/zh-CN/reference/device-models.md +54 -0
- package/docs/zh-CN/reference/rpc.md +48 -0
- package/docs/zh-CN/reference/session-management-compaction.md +287 -0
- package/docs/zh-CN/reference/templates/AGENTS.dev.md +89 -0
- package/docs/zh-CN/reference/templates/AGENTS.md +225 -0
- package/docs/zh-CN/reference/templates/BOOT.md +17 -0
- package/docs/zh-CN/reference/templates/BOOTSTRAP.md +68 -0
- package/docs/zh-CN/reference/templates/HEARTBEAT.md +18 -0
- package/docs/zh-CN/reference/templates/IDENTITY.dev.md +54 -0
- package/docs/zh-CN/reference/templates/IDENTITY.md +36 -0
- package/docs/zh-CN/reference/templates/SOUL.dev.md +83 -0
- package/docs/zh-CN/reference/templates/SOUL.md +49 -0
- package/docs/zh-CN/reference/templates/TOOLS.dev.md +31 -0
- package/docs/zh-CN/reference/templates/TOOLS.md +53 -0
- package/docs/zh-CN/reference/templates/USER.dev.md +25 -0
- package/docs/zh-CN/reference/templates/USER.md +30 -0
- package/docs/zh-CN/reference/test.md +57 -0
- package/docs/zh-CN/reference/token-use.md +119 -0
- package/docs/zh-CN/reference/transcript-hygiene.md +109 -0
- package/docs/zh-CN/reference/wizard.md +242 -0
- package/docs/zh-CN/security/formal-verification.md +171 -0
- package/docs/zh-CN/start/bootstrapping.md +9 -0
- package/docs/zh-CN/start/docs-directory.md +70 -0
- package/docs/zh-CN/start/getting-started.md +143 -0
- package/docs/zh-CN/start/hubs.md +194 -0
- package/docs/zh-CN/start/lore.md +226 -0
- package/docs/zh-CN/start/onboarding-overview.md +58 -0
- package/docs/zh-CN/start/onboarding.md +105 -0
- package/docs/zh-CN/start/openclaw.md +248 -0
- package/docs/zh-CN/start/quickstart.md +88 -0
- package/docs/zh-CN/start/setup.md +153 -0
- package/docs/zh-CN/start/showcase.md +423 -0
- package/docs/zh-CN/start/wizard-cli-automation.md +222 -0
- package/docs/zh-CN/start/wizard-cli-reference.md +306 -0
- package/docs/zh-CN/start/wizard.md +132 -0
- package/docs/zh-CN/tools/agent-send.md +59 -0
- package/docs/zh-CN/tools/apply-patch.md +57 -0
- package/docs/zh-CN/tools/browser-linux-troubleshooting.md +144 -0
- package/docs/zh-CN/tools/browser-login.md +75 -0
- package/docs/zh-CN/tools/browser.md +553 -0
- package/docs/zh-CN/tools/chrome-extension.md +183 -0
- package/docs/zh-CN/tools/clawhub.md +209 -0
- package/docs/zh-CN/tools/creating-skills.md +61 -0
- package/docs/zh-CN/tools/elevated.md +64 -0
- package/docs/zh-CN/tools/exec-approvals.md +234 -0
- package/docs/zh-CN/tools/exec.md +169 -0
- package/docs/zh-CN/tools/firecrawl.md +68 -0
- package/docs/zh-CN/tools/index.md +515 -0
- package/docs/zh-CN/tools/llm-task.md +117 -0
- package/docs/zh-CN/tools/lobster.md +349 -0
- package/docs/zh-CN/tools/multi-agent-sandbox-tools.md +401 -0
- package/docs/zh-CN/tools/plugin.md +1612 -0
- package/docs/zh-CN/tools/reactions.md +29 -0
- package/docs/zh-CN/tools/skills-config.md +78 -0
- package/docs/zh-CN/tools/skills.md +279 -0
- package/docs/zh-CN/tools/slash-commands.md +205 -0
- package/docs/zh-CN/tools/subagents.md +167 -0
- package/docs/zh-CN/tools/thinking.md +80 -0
- package/docs/zh-CN/tools/web.md +289 -0
- package/docs/zh-CN/tts.md +375 -0
- package/docs/zh-CN/vps.md +47 -0
- package/docs/zh-CN/web/control-ui.md +191 -0
- package/docs/zh-CN/web/dashboard.md +53 -0
- package/docs/zh-CN/web/index.md +118 -0
- package/docs/zh-CN/web/tui.md +166 -0
- package/docs/zh-CN/web/webchat.md +56 -0
- package/package.json +841 -0
- package/quantumclaw.mjs +135 -0
- package/skills/1password/SKILL.md +70 -0
- package/skills/1password/references/cli-examples.md +29 -0
- package/skills/1password/references/get-started.md +17 -0
- package/skills/apple-notes/SKILL.md +77 -0
- package/skills/apple-reminders/SKILL.md +118 -0
- package/skills/bear-notes/SKILL.md +107 -0
- package/skills/blogwatcher/SKILL.md +69 -0
- package/skills/blucli/SKILL.md +47 -0
- package/skills/bluebubbles/SKILL.md +131 -0
- package/skills/camsnap/SKILL.md +45 -0
- package/skills/canvas/SKILL.md +198 -0
- package/skills/clawhub/SKILL.md +77 -0
- package/skills/coding-agent/SKILL.md +295 -0
- package/skills/discord/SKILL.md +197 -0
- package/skills/eightctl/SKILL.md +50 -0
- package/skills/gemini/SKILL.md +43 -0
- package/skills/gh-issues/SKILL.md +865 -0
- package/skills/gifgrep/SKILL.md +79 -0
- package/skills/github/SKILL.md +163 -0
- package/skills/gog/SKILL.md +116 -0
- package/skills/goplaces/SKILL.md +52 -0
- package/skills/healthcheck/SKILL.md +245 -0
- package/skills/himalaya/SKILL.md +257 -0
- package/skills/himalaya/references/configuration.md +184 -0
- package/skills/himalaya/references/message-composition.md +199 -0
- package/skills/imsg/SKILL.md +122 -0
- package/skills/mcporter/SKILL.md +61 -0
- package/skills/model-usage/SKILL.md +69 -0
- package/skills/model-usage/references/codexbar-cli.md +33 -0
- package/skills/model-usage/scripts/model_usage.py +320 -0
- package/skills/model-usage/scripts/test_model_usage.py +40 -0
- package/skills/nano-pdf/SKILL.md +38 -0
- package/skills/node-connect/SKILL.md +142 -0
- package/skills/notion/SKILL.md +174 -0
- package/skills/obsidian/SKILL.md +81 -0
- package/skills/openai-image-gen/SKILL.md +92 -0
- package/skills/openai-image-gen/scripts/gen.py +328 -0
- package/skills/openai-image-gen/scripts/test_gen.py +140 -0
- package/skills/openai-whisper/SKILL.md +38 -0
- package/skills/openai-whisper-api/SKILL.md +52 -0
- package/skills/openai-whisper-api/scripts/transcribe.sh +85 -0
- package/skills/openhue/SKILL.md +112 -0
- package/skills/oracle/SKILL.md +125 -0
- package/skills/ordercli/SKILL.md +78 -0
- package/skills/peekaboo/SKILL.md +190 -0
- package/skills/sag/SKILL.md +87 -0
- package/skills/session-logs/SKILL.md +115 -0
- package/skills/sherpa-onnx-tts/SKILL.md +103 -0
- package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
- package/skills/skill-creator/SKILL.md +372 -0
- package/skills/skill-creator/license.txt +202 -0
- package/skills/skill-creator/scripts/init_skill.py +378 -0
- package/skills/skill-creator/scripts/package_skill.py +139 -0
- package/skills/skill-creator/scripts/quick_validate.py +159 -0
- package/skills/skill-creator/scripts/test_package_skill.py +160 -0
- package/skills/skill-creator/scripts/test_quick_validate.py +72 -0
- package/skills/slack/SKILL.md +144 -0
- package/skills/songsee/SKILL.md +49 -0
- package/skills/sonoscli/SKILL.md +65 -0
- package/skills/spotify-player/SKILL.md +64 -0
- package/skills/summarize/SKILL.md +87 -0
- package/skills/things-mac/SKILL.md +86 -0
- package/skills/tmux/SKILL.md +153 -0
- package/skills/tmux/scripts/find-sessions.sh +112 -0
- package/skills/tmux/scripts/wait-for-text.sh +83 -0
- package/skills/trello/SKILL.md +95 -0
- package/skills/video-frames/SKILL.md +46 -0
- package/skills/video-frames/scripts/frame.sh +81 -0
- package/skills/voice-call/SKILL.md +45 -0
- package/skills/wacli/SKILL.md +72 -0
- package/skills/weather/SKILL.md +112 -0
- package/skills/xurl/SKILL.md +461 -0
|
@@ -0,0 +1,501 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Fly.io
|
|
3
|
+
summary: "Step-by-step Fly.io deployment for QuantumClaw with persistent storage and HTTPS"
|
|
4
|
+
read_when:
|
|
5
|
+
- Deploying QuantumClaw on Fly.io
|
|
6
|
+
- Setting up Fly volumes, secrets, and first-run config
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Fly.io Deployment
|
|
10
|
+
|
|
11
|
+
**Goal:** QuantumClaw Gateway running on a [Fly.io](https://fly.io) machine with persistent storage, automatic HTTPS, and Discord/channel access.
|
|
12
|
+
|
|
13
|
+
## What you need
|
|
14
|
+
|
|
15
|
+
- [flyctl CLI](https://fly.io/docs/hands-on/install-flyctl/) installed
|
|
16
|
+
- Fly.io account (free tier works)
|
|
17
|
+
- Model auth: API key for your chosen model provider
|
|
18
|
+
- Channel credentials: Discord bot token, Telegram token, etc.
|
|
19
|
+
|
|
20
|
+
## Beginner quick path
|
|
21
|
+
|
|
22
|
+
1. Clone repo → customize `fly.toml`
|
|
23
|
+
2. Create app + volume → set secrets
|
|
24
|
+
3. Deploy with `fly deploy`
|
|
25
|
+
4. SSH in to create config or use Control UI
|
|
26
|
+
|
|
27
|
+
<Steps>
|
|
28
|
+
<Step title="Create the Fly app">
|
|
29
|
+
```bash
|
|
30
|
+
# Clone the repo
|
|
31
|
+
git clone https://github.com/quantumclaw/quantumclaw.git
|
|
32
|
+
cd quantumclaw
|
|
33
|
+
|
|
34
|
+
# Create a new Fly app (pick your own name)
|
|
35
|
+
fly apps create my-quantumclaw
|
|
36
|
+
|
|
37
|
+
# Create a persistent volume (1GB is usually enough)
|
|
38
|
+
fly volumes create quantumclaw_data --size 1 --region iad
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**Tip:** Choose a region close to you. Common options: `lhr` (London), `iad` (Virginia), `sjc` (San Jose).
|
|
42
|
+
|
|
43
|
+
</Step>
|
|
44
|
+
|
|
45
|
+
<Step title="Configure fly.toml">
|
|
46
|
+
Edit `fly.toml` to match your app name and requirements.
|
|
47
|
+
|
|
48
|
+
**Security note:** The default config exposes a public URL. For a hardened deployment with no public IP, see [Private Deployment](#private-deployment-hardened) or use `fly.private.toml`.
|
|
49
|
+
|
|
50
|
+
```toml
|
|
51
|
+
app = "my-quantumclaw" # Your app name
|
|
52
|
+
primary_region = "iad"
|
|
53
|
+
|
|
54
|
+
[build]
|
|
55
|
+
dockerfile = "Dockerfile"
|
|
56
|
+
|
|
57
|
+
[env]
|
|
58
|
+
NODE_ENV = "production"
|
|
59
|
+
QUANTUMCLAW_PREFER_PNPM = "1"
|
|
60
|
+
QUANTUMCLAW_STATE_DIR = "/data"
|
|
61
|
+
NODE_OPTIONS = "--max-old-space-size=1536"
|
|
62
|
+
|
|
63
|
+
[processes]
|
|
64
|
+
app = "node dist/index.js gateway --allow-unconfigured --port 3000 --bind lan"
|
|
65
|
+
|
|
66
|
+
[http_service]
|
|
67
|
+
internal_port = 3000
|
|
68
|
+
force_https = true
|
|
69
|
+
auto_stop_machines = false
|
|
70
|
+
auto_start_machines = true
|
|
71
|
+
min_machines_running = 1
|
|
72
|
+
processes = ["app"]
|
|
73
|
+
|
|
74
|
+
[[vm]]
|
|
75
|
+
size = "shared-cpu-2x"
|
|
76
|
+
memory = "2048mb"
|
|
77
|
+
|
|
78
|
+
[mounts]
|
|
79
|
+
source = "quantumclaw_data"
|
|
80
|
+
destination = "/data"
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**Key settings:**
|
|
84
|
+
|
|
85
|
+
| Setting | Why |
|
|
86
|
+
| ------------------------------ | --------------------------------------------------------------------------- |
|
|
87
|
+
| `--bind lan` | Binds to `0.0.0.0` so Fly's proxy can reach the gateway |
|
|
88
|
+
| `--allow-unconfigured` | Starts without a config file (you'll create one after) |
|
|
89
|
+
| `internal_port = 3000` | Must match `--port 3000` (or `QUANTUMCLAW_GATEWAY_PORT`) for Fly health checks |
|
|
90
|
+
| `memory = "2048mb"` | 512MB is too small; 2GB recommended |
|
|
91
|
+
| `QUANTUMCLAW_STATE_DIR = "/data"` | Persists state on the volume |
|
|
92
|
+
|
|
93
|
+
</Step>
|
|
94
|
+
|
|
95
|
+
<Step title="Set secrets">
|
|
96
|
+
```bash
|
|
97
|
+
# Required: Gateway token (for non-loopback binding)
|
|
98
|
+
fly secrets set QUANTUMCLAW_GATEWAY_TOKEN=$(openssl rand -hex 32)
|
|
99
|
+
|
|
100
|
+
# Model provider API keys
|
|
101
|
+
fly secrets set ANTHROPIC_API_KEY=sk-ant-...
|
|
102
|
+
|
|
103
|
+
# Optional: Other providers
|
|
104
|
+
fly secrets set OPENAI_API_KEY=sk-...
|
|
105
|
+
fly secrets set GOOGLE_API_KEY=...
|
|
106
|
+
|
|
107
|
+
# Channel tokens
|
|
108
|
+
fly secrets set DISCORD_BOT_TOKEN=MTQ...
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**Notes:**
|
|
112
|
+
|
|
113
|
+
- Non-loopback binds (`--bind lan`) require `QUANTUMCLAW_GATEWAY_TOKEN` for security.
|
|
114
|
+
- Treat these tokens like passwords.
|
|
115
|
+
- **Prefer env vars over config file** for all API keys and tokens. This keeps secrets out of `quantumclaw.json` where they could be accidentally exposed or logged.
|
|
116
|
+
|
|
117
|
+
</Step>
|
|
118
|
+
|
|
119
|
+
<Step title="Deploy">
|
|
120
|
+
```bash
|
|
121
|
+
fly deploy
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
First deploy builds the Docker image (~2-3 minutes). Subsequent deploys are faster.
|
|
125
|
+
|
|
126
|
+
After deployment, verify:
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
fly status
|
|
130
|
+
fly logs
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
You should see:
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
[gateway] listening on ws://0.0.0.0:3000 (PID xxx)
|
|
137
|
+
[discord] logged in to discord as xxx
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
</Step>
|
|
141
|
+
|
|
142
|
+
<Step title="Create config file">
|
|
143
|
+
SSH into the machine to create a proper config:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
fly ssh console
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Create the config directory and file:
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
mkdir -p /data
|
|
153
|
+
cat > /data/quantumclaw.json << 'EOF'
|
|
154
|
+
{
|
|
155
|
+
"agents": {
|
|
156
|
+
"defaults": {
|
|
157
|
+
"model": {
|
|
158
|
+
"primary": "anthropic/claude-opus-4-6",
|
|
159
|
+
"fallbacks": ["anthropic/claude-sonnet-4-6", "openai/gpt-4o"]
|
|
160
|
+
},
|
|
161
|
+
"maxConcurrent": 4
|
|
162
|
+
},
|
|
163
|
+
"list": [
|
|
164
|
+
{
|
|
165
|
+
"id": "main",
|
|
166
|
+
"default": true
|
|
167
|
+
}
|
|
168
|
+
]
|
|
169
|
+
},
|
|
170
|
+
"auth": {
|
|
171
|
+
"profiles": {
|
|
172
|
+
"anthropic:default": { "mode": "token", "provider": "anthropic" },
|
|
173
|
+
"openai:default": { "mode": "token", "provider": "openai" }
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
"bindings": [
|
|
177
|
+
{
|
|
178
|
+
"agentId": "main",
|
|
179
|
+
"match": { "channel": "discord" }
|
|
180
|
+
}
|
|
181
|
+
],
|
|
182
|
+
"channels": {
|
|
183
|
+
"discord": {
|
|
184
|
+
"enabled": true,
|
|
185
|
+
"groupPolicy": "allowlist",
|
|
186
|
+
"guilds": {
|
|
187
|
+
"YOUR_GUILD_ID": {
|
|
188
|
+
"channels": { "general": { "allow": true } },
|
|
189
|
+
"requireMention": false
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
"gateway": {
|
|
195
|
+
"mode": "local",
|
|
196
|
+
"bind": "auto"
|
|
197
|
+
},
|
|
198
|
+
"meta": {}
|
|
199
|
+
}
|
|
200
|
+
EOF
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
**Note:** With `QUANTUMCLAW_STATE_DIR=/data`, the config path is `/data/quantumclaw.json`.
|
|
204
|
+
|
|
205
|
+
**Note:** The Discord token can come from either:
|
|
206
|
+
|
|
207
|
+
- Environment variable: `DISCORD_BOT_TOKEN` (recommended for secrets)
|
|
208
|
+
- Config file: `channels.discord.token`
|
|
209
|
+
|
|
210
|
+
If using env var, no need to add token to config. The gateway reads `DISCORD_BOT_TOKEN` automatically.
|
|
211
|
+
|
|
212
|
+
Restart to apply:
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
exit
|
|
216
|
+
fly machine restart <machine-id>
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
</Step>
|
|
220
|
+
|
|
221
|
+
<Step title="Access the Gateway">
|
|
222
|
+
### Control UI
|
|
223
|
+
|
|
224
|
+
Open in browser:
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
fly open
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
Or visit `https://my-quantumclaw.fly.dev/`
|
|
231
|
+
|
|
232
|
+
Paste your gateway token (the one from `QUANTUMCLAW_GATEWAY_TOKEN`) to authenticate.
|
|
233
|
+
|
|
234
|
+
### Logs
|
|
235
|
+
|
|
236
|
+
```bash
|
|
237
|
+
fly logs # Live logs
|
|
238
|
+
fly logs --no-tail # Recent logs
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
### SSH Console
|
|
242
|
+
|
|
243
|
+
```bash
|
|
244
|
+
fly ssh console
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
</Step>
|
|
248
|
+
</Steps>
|
|
249
|
+
|
|
250
|
+
## Troubleshooting
|
|
251
|
+
|
|
252
|
+
### "App is not listening on expected address"
|
|
253
|
+
|
|
254
|
+
The gateway is binding to `127.0.0.1` instead of `0.0.0.0`.
|
|
255
|
+
|
|
256
|
+
**Fix:** Add `--bind lan` to your process command in `fly.toml`.
|
|
257
|
+
|
|
258
|
+
### Health checks failing / connection refused
|
|
259
|
+
|
|
260
|
+
Fly can't reach the gateway on the configured port.
|
|
261
|
+
|
|
262
|
+
**Fix:** Ensure `internal_port` matches the gateway port (set `--port 3000` or `QUANTUMCLAW_GATEWAY_PORT=3000`).
|
|
263
|
+
|
|
264
|
+
### OOM / Memory Issues
|
|
265
|
+
|
|
266
|
+
Container keeps restarting or getting killed. Signs: `SIGABRT`, `v8::internal::Runtime_AllocateInYoungGeneration`, or silent restarts.
|
|
267
|
+
|
|
268
|
+
**Fix:** Increase memory in `fly.toml`:
|
|
269
|
+
|
|
270
|
+
```toml
|
|
271
|
+
[[vm]]
|
|
272
|
+
memory = "2048mb"
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
Or update an existing machine:
|
|
276
|
+
|
|
277
|
+
```bash
|
|
278
|
+
fly machine update <machine-id> --vm-memory 2048 -y
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
**Note:** 512MB is too small. 1GB may work but can OOM under load or with verbose logging. **2GB is recommended.**
|
|
282
|
+
|
|
283
|
+
### Gateway Lock Issues
|
|
284
|
+
|
|
285
|
+
Gateway refuses to start with "already running" errors.
|
|
286
|
+
|
|
287
|
+
This happens when the container restarts but the PID lock file persists on the volume.
|
|
288
|
+
|
|
289
|
+
**Fix:** Delete the lock file:
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
fly ssh console --command "rm -f /data/gateway.*.lock"
|
|
293
|
+
fly machine restart <machine-id>
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
The lock file is at `/data/gateway.*.lock` (not in a subdirectory).
|
|
297
|
+
|
|
298
|
+
### Config Not Being Read
|
|
299
|
+
|
|
300
|
+
If using `--allow-unconfigured`, the gateway creates a minimal config. Your custom config at `/data/quantumclaw.json` should be read on restart.
|
|
301
|
+
|
|
302
|
+
Verify the config exists:
|
|
303
|
+
|
|
304
|
+
```bash
|
|
305
|
+
fly ssh console --command "cat /data/quantumclaw.json"
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
### Writing Config via SSH
|
|
309
|
+
|
|
310
|
+
The `fly ssh console -C` command doesn't support shell redirection. To write a config file:
|
|
311
|
+
|
|
312
|
+
```bash
|
|
313
|
+
# Use echo + tee (pipe from local to remote)
|
|
314
|
+
echo '{"your":"config"}' | fly ssh console -C "tee /data/quantumclaw.json"
|
|
315
|
+
|
|
316
|
+
# Or use sftp
|
|
317
|
+
fly sftp shell
|
|
318
|
+
> put /local/path/config.json /data/quantumclaw.json
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
**Note:** `fly sftp` may fail if the file already exists. Delete first:
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
fly ssh console --command "rm /data/quantumclaw.json"
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
### State Not Persisting
|
|
328
|
+
|
|
329
|
+
If you lose credentials or sessions after a restart, the state dir is writing to the container filesystem.
|
|
330
|
+
|
|
331
|
+
**Fix:** Ensure `QUANTUMCLAW_STATE_DIR=/data` is set in `fly.toml` and redeploy.
|
|
332
|
+
|
|
333
|
+
## Updates
|
|
334
|
+
|
|
335
|
+
```bash
|
|
336
|
+
# Pull latest changes
|
|
337
|
+
git pull
|
|
338
|
+
|
|
339
|
+
# Redeploy
|
|
340
|
+
fly deploy
|
|
341
|
+
|
|
342
|
+
# Check health
|
|
343
|
+
fly status
|
|
344
|
+
fly logs
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
### Updating Machine Command
|
|
348
|
+
|
|
349
|
+
If you need to change the startup command without a full redeploy:
|
|
350
|
+
|
|
351
|
+
```bash
|
|
352
|
+
# Get machine ID
|
|
353
|
+
fly machines list
|
|
354
|
+
|
|
355
|
+
# Update command
|
|
356
|
+
fly machine update <machine-id> --command "node dist/index.js gateway --port 3000 --bind lan" -y
|
|
357
|
+
|
|
358
|
+
# Or with memory increase
|
|
359
|
+
fly machine update <machine-id> --vm-memory 2048 --command "node dist/index.js gateway --port 3000 --bind lan" -y
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
**Note:** After `fly deploy`, the machine command may reset to what's in `fly.toml`. If you made manual changes, re-apply them after deploy.
|
|
363
|
+
|
|
364
|
+
## Private Deployment (Hardened)
|
|
365
|
+
|
|
366
|
+
By default, Fly allocates public IPs, making your gateway accessible at `https://your-app.fly.dev`. This is convenient but means your deployment is discoverable by internet scanners (Shodan, Censys, etc.).
|
|
367
|
+
|
|
368
|
+
For a hardened deployment with **no public exposure**, use the private template.
|
|
369
|
+
|
|
370
|
+
### When to use private deployment
|
|
371
|
+
|
|
372
|
+
- You only make **outbound** calls/messages (no inbound webhooks)
|
|
373
|
+
- You use **ngrok or Tailscale** tunnels for any webhook callbacks
|
|
374
|
+
- You access the gateway via **SSH, proxy, or WireGuard** instead of browser
|
|
375
|
+
- You want the deployment **hidden from internet scanners**
|
|
376
|
+
|
|
377
|
+
### Setup
|
|
378
|
+
|
|
379
|
+
Use `fly.private.toml` instead of the standard config:
|
|
380
|
+
|
|
381
|
+
```bash
|
|
382
|
+
# Deploy with private config
|
|
383
|
+
fly deploy -c fly.private.toml
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
Or convert an existing deployment:
|
|
387
|
+
|
|
388
|
+
```bash
|
|
389
|
+
# List current IPs
|
|
390
|
+
fly ips list -a my-quantumclaw
|
|
391
|
+
|
|
392
|
+
# Release public IPs
|
|
393
|
+
fly ips release <public-ipv4> -a my-quantumclaw
|
|
394
|
+
fly ips release <public-ipv6> -a my-quantumclaw
|
|
395
|
+
|
|
396
|
+
# Switch to private config so future deploys don't re-allocate public IPs
|
|
397
|
+
# (remove [http_service] or deploy with the private template)
|
|
398
|
+
fly deploy -c fly.private.toml
|
|
399
|
+
|
|
400
|
+
# Allocate private-only IPv6
|
|
401
|
+
fly ips allocate-v6 --private -a my-quantumclaw
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
After this, `fly ips list` should show only a `private` type IP:
|
|
405
|
+
|
|
406
|
+
```
|
|
407
|
+
VERSION IP TYPE REGION
|
|
408
|
+
v6 fdaa:x:x:x:x::x private global
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
### Accessing a private deployment
|
|
412
|
+
|
|
413
|
+
Since there's no public URL, use one of these methods:
|
|
414
|
+
|
|
415
|
+
**Option 1: Local proxy (simplest)**
|
|
416
|
+
|
|
417
|
+
```bash
|
|
418
|
+
# Forward local port 3000 to the app
|
|
419
|
+
fly proxy 3000:3000 -a my-quantumclaw
|
|
420
|
+
|
|
421
|
+
# Then open http://localhost:3000 in browser
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
**Option 2: WireGuard VPN**
|
|
425
|
+
|
|
426
|
+
```bash
|
|
427
|
+
# Create WireGuard config (one-time)
|
|
428
|
+
fly wireguard create
|
|
429
|
+
|
|
430
|
+
# Import to WireGuard client, then access via internal IPv6
|
|
431
|
+
# Example: http://[fdaa:x:x:x:x::x]:3000
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
**Option 3: SSH only**
|
|
435
|
+
|
|
436
|
+
```bash
|
|
437
|
+
fly ssh console -a my-quantumclaw
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
### Webhooks with private deployment
|
|
441
|
+
|
|
442
|
+
If you need webhook callbacks (Twilio, Telnyx, etc.) without public exposure:
|
|
443
|
+
|
|
444
|
+
1. **ngrok tunnel** - Run ngrok inside the container or as a sidecar
|
|
445
|
+
2. **Tailscale Funnel** - Expose specific paths via Tailscale
|
|
446
|
+
3. **Outbound-only** - Some providers (Twilio) work fine for outbound calls without webhooks
|
|
447
|
+
|
|
448
|
+
Example voice-call config with ngrok:
|
|
449
|
+
|
|
450
|
+
```json5
|
|
451
|
+
{
|
|
452
|
+
plugins: {
|
|
453
|
+
entries: {
|
|
454
|
+
"voice-call": {
|
|
455
|
+
enabled: true,
|
|
456
|
+
config: {
|
|
457
|
+
provider: "twilio",
|
|
458
|
+
tunnel: { provider: "ngrok" },
|
|
459
|
+
webhookSecurity: {
|
|
460
|
+
allowedHosts: ["example.ngrok.app"],
|
|
461
|
+
},
|
|
462
|
+
},
|
|
463
|
+
},
|
|
464
|
+
},
|
|
465
|
+
},
|
|
466
|
+
}
|
|
467
|
+
```
|
|
468
|
+
|
|
469
|
+
The ngrok tunnel runs inside the container and provides a public webhook URL without exposing the Fly app itself. Set `webhookSecurity.allowedHosts` to the public tunnel hostname so forwarded host headers are accepted.
|
|
470
|
+
|
|
471
|
+
### Security benefits
|
|
472
|
+
|
|
473
|
+
| Aspect | Public | Private |
|
|
474
|
+
| ----------------- | ------------ | ---------- |
|
|
475
|
+
| Internet scanners | Discoverable | Hidden |
|
|
476
|
+
| Direct attacks | Possible | Blocked |
|
|
477
|
+
| Control UI access | Browser | Proxy/VPN |
|
|
478
|
+
| Webhook delivery | Direct | Via tunnel |
|
|
479
|
+
|
|
480
|
+
## Notes
|
|
481
|
+
|
|
482
|
+
- Fly.io uses **x86 architecture** (not ARM)
|
|
483
|
+
- The Dockerfile is compatible with both architectures
|
|
484
|
+
- For WhatsApp/Telegram onboarding, use `fly ssh console`
|
|
485
|
+
- Persistent data lives on the volume at `/data`
|
|
486
|
+
- Signal requires Java + signal-cli; use a custom image and keep memory at 2GB+.
|
|
487
|
+
|
|
488
|
+
## Cost
|
|
489
|
+
|
|
490
|
+
With the recommended config (`shared-cpu-2x`, 2GB RAM):
|
|
491
|
+
|
|
492
|
+
- ~$10-15/month depending on usage
|
|
493
|
+
- Free tier includes some allowance
|
|
494
|
+
|
|
495
|
+
See [Fly.io pricing](https://fly.io/docs/about/pricing/) for details.
|
|
496
|
+
|
|
497
|
+
## Next steps
|
|
498
|
+
|
|
499
|
+
- Set up messaging channels: [Channels](/channels)
|
|
500
|
+
- Configure the Gateway: [Gateway configuration](/gateway/configuration)
|
|
501
|
+
- Keep QuantumClaw up to date: [Updating](/install/updating)
|