@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,230 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Automated, hardened QuantumClaw installation with Ansible, Tailscale VPN, and firewall isolation"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want automated server deployment with security hardening
|
|
5
|
+
- You need firewall-isolated setup with VPN access
|
|
6
|
+
- You're deploying to remote Debian/Ubuntu servers
|
|
7
|
+
title: "Ansible"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Ansible Installation
|
|
11
|
+
|
|
12
|
+
Deploy QuantumClaw to production servers with **[quantumclaw-ansible](https://github.com/quantumclaw/quantumclaw-ansible)** -- an automated installer with security-first architecture.
|
|
13
|
+
|
|
14
|
+
<Info>
|
|
15
|
+
The [quantumclaw-ansible](https://github.com/quantumclaw/quantumclaw-ansible) repo is the source of truth for Ansible deployment. This page is a quick overview.
|
|
16
|
+
</Info>
|
|
17
|
+
|
|
18
|
+
## Prerequisites
|
|
19
|
+
|
|
20
|
+
| Requirement | Details |
|
|
21
|
+
| ----------- | --------------------------------------------------------- |
|
|
22
|
+
| **OS** | Debian 11+ or Ubuntu 20.04+ |
|
|
23
|
+
| **Access** | Root or sudo privileges |
|
|
24
|
+
| **Network** | Internet connection for package installation |
|
|
25
|
+
| **Ansible** | 2.14+ (installed automatically by the quick-start script) |
|
|
26
|
+
|
|
27
|
+
## What You Get
|
|
28
|
+
|
|
29
|
+
- **Firewall-first security** -- UFW + Docker isolation (only SSH + Tailscale accessible)
|
|
30
|
+
- **Tailscale VPN** -- secure remote access without exposing services publicly
|
|
31
|
+
- **Docker** -- isolated sandbox containers, localhost-only bindings
|
|
32
|
+
- **Defense in depth** -- 4-layer security architecture
|
|
33
|
+
- **Systemd integration** -- auto-start on boot with hardening
|
|
34
|
+
- **One-command setup** -- complete deployment in minutes
|
|
35
|
+
|
|
36
|
+
## Quick Start
|
|
37
|
+
|
|
38
|
+
One-command install:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
curl -fsSL https://raw.githubusercontent.com/quantumclaw/quantumclaw-ansible/main/install.sh | bash
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## What Gets Installed
|
|
45
|
+
|
|
46
|
+
The Ansible playbook installs and configures:
|
|
47
|
+
|
|
48
|
+
1. **Tailscale** -- mesh VPN for secure remote access
|
|
49
|
+
2. **UFW firewall** -- SSH + Tailscale ports only
|
|
50
|
+
3. **Docker CE + Compose V2** -- for agent sandboxes
|
|
51
|
+
4. **Node.js 24 + pnpm** -- runtime dependencies (Node 22 LTS, currently `22.16+`, remains supported)
|
|
52
|
+
5. **QuantumClaw** -- host-based, not containerized
|
|
53
|
+
6. **Systemd service** -- auto-start with security hardening
|
|
54
|
+
|
|
55
|
+
<Note>
|
|
56
|
+
The gateway runs directly on the host (not in Docker), but agent sandboxes use Docker for isolation. See [Sandboxing](/gateway/sandboxing) for details.
|
|
57
|
+
</Note>
|
|
58
|
+
|
|
59
|
+
## Post-Install Setup
|
|
60
|
+
|
|
61
|
+
<Steps>
|
|
62
|
+
<Step title="Switch to the quantumclaw user">
|
|
63
|
+
```bash
|
|
64
|
+
sudo -i -u quantumclaw
|
|
65
|
+
```
|
|
66
|
+
</Step>
|
|
67
|
+
<Step title="Run the onboarding wizard">
|
|
68
|
+
The post-install script guides you through configuring QuantumClaw settings.
|
|
69
|
+
</Step>
|
|
70
|
+
<Step title="Connect messaging providers">
|
|
71
|
+
Log in to WhatsApp, Telegram, Discord, or Signal:
|
|
72
|
+
```bash
|
|
73
|
+
quantumclaw channels login
|
|
74
|
+
```
|
|
75
|
+
</Step>
|
|
76
|
+
<Step title="Verify the installation">
|
|
77
|
+
```bash
|
|
78
|
+
sudo systemctl status quantumclaw
|
|
79
|
+
sudo journalctl -u quantumclaw -f
|
|
80
|
+
```
|
|
81
|
+
</Step>
|
|
82
|
+
<Step title="Connect to Tailscale">
|
|
83
|
+
Join your VPN mesh for secure remote access.
|
|
84
|
+
</Step>
|
|
85
|
+
</Steps>
|
|
86
|
+
|
|
87
|
+
### Quick Commands
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# Check service status
|
|
91
|
+
sudo systemctl status quantumclaw
|
|
92
|
+
|
|
93
|
+
# View live logs
|
|
94
|
+
sudo journalctl -u quantumclaw -f
|
|
95
|
+
|
|
96
|
+
# Restart gateway
|
|
97
|
+
sudo systemctl restart quantumclaw
|
|
98
|
+
|
|
99
|
+
# Provider login (run as quantumclaw user)
|
|
100
|
+
sudo -i -u quantumclaw
|
|
101
|
+
quantumclaw channels login
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Security Architecture
|
|
105
|
+
|
|
106
|
+
The deployment uses a 4-layer defense model:
|
|
107
|
+
|
|
108
|
+
1. **Firewall (UFW)** -- only SSH (22) + Tailscale (41641/udp) exposed publicly
|
|
109
|
+
2. **VPN (Tailscale)** -- gateway accessible only via VPN mesh
|
|
110
|
+
3. **Docker isolation** -- DOCKER-USER iptables chain prevents external port exposure
|
|
111
|
+
4. **Systemd hardening** -- NoNewPrivileges, PrivateTmp, unprivileged user
|
|
112
|
+
|
|
113
|
+
To verify your external attack surface:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
nmap -p- YOUR_SERVER_IP
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Only port 22 (SSH) should be open. All other services (gateway, Docker) are locked down.
|
|
120
|
+
|
|
121
|
+
Docker is installed for agent sandboxes (isolated tool execution), not for running the gateway itself. See [Multi-Agent Sandbox and Tools](/tools/multi-agent-sandbox-tools) for sandbox configuration.
|
|
122
|
+
|
|
123
|
+
## Manual Installation
|
|
124
|
+
|
|
125
|
+
If you prefer manual control over the automation:
|
|
126
|
+
|
|
127
|
+
<Steps>
|
|
128
|
+
<Step title="Install prerequisites">
|
|
129
|
+
```bash
|
|
130
|
+
sudo apt update && sudo apt install -y ansible git
|
|
131
|
+
```
|
|
132
|
+
</Step>
|
|
133
|
+
<Step title="Clone the repository">
|
|
134
|
+
```bash
|
|
135
|
+
git clone https://github.com/quantumclaw/quantumclaw-ansible.git
|
|
136
|
+
cd quantumclaw-ansible
|
|
137
|
+
```
|
|
138
|
+
</Step>
|
|
139
|
+
<Step title="Install Ansible collections">
|
|
140
|
+
```bash
|
|
141
|
+
ansible-galaxy collection install -r requirements.yml
|
|
142
|
+
```
|
|
143
|
+
</Step>
|
|
144
|
+
<Step title="Run the playbook">
|
|
145
|
+
```bash
|
|
146
|
+
./run-playbook.sh
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Alternatively, run directly and then manually execute the setup script afterward:
|
|
150
|
+
```bash
|
|
151
|
+
ansible-playbook playbook.yml --ask-become-pass
|
|
152
|
+
# Then run: /tmp/quantumclaw-setup.sh
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
</Step>
|
|
156
|
+
</Steps>
|
|
157
|
+
|
|
158
|
+
## Updating
|
|
159
|
+
|
|
160
|
+
The Ansible installer sets up QuantumClaw for manual updates. See [Updating](/install/updating) for the standard update flow.
|
|
161
|
+
|
|
162
|
+
To re-run the Ansible playbook (for example, for configuration changes):
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
cd quantumclaw-ansible
|
|
166
|
+
./run-playbook.sh
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
This is idempotent and safe to run multiple times.
|
|
170
|
+
|
|
171
|
+
## Troubleshooting
|
|
172
|
+
|
|
173
|
+
<AccordionGroup>
|
|
174
|
+
<Accordion title="Firewall blocks my connection">
|
|
175
|
+
- Ensure you can access via Tailscale VPN first
|
|
176
|
+
- SSH access (port 22) is always allowed
|
|
177
|
+
- The gateway is only accessible via Tailscale by design
|
|
178
|
+
</Accordion>
|
|
179
|
+
<Accordion title="Service will not start">
|
|
180
|
+
```bash
|
|
181
|
+
# Check logs
|
|
182
|
+
sudo journalctl -u quantumclaw -n 100
|
|
183
|
+
|
|
184
|
+
# Verify permissions
|
|
185
|
+
sudo ls -la /opt/quantumclaw
|
|
186
|
+
|
|
187
|
+
# Test manual start
|
|
188
|
+
sudo -i -u quantumclaw
|
|
189
|
+
cd ~/quantumclaw
|
|
190
|
+
quantumclaw gateway run
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
</Accordion>
|
|
194
|
+
<Accordion title="Docker sandbox issues">
|
|
195
|
+
```bash
|
|
196
|
+
# Verify Docker is running
|
|
197
|
+
sudo systemctl status docker
|
|
198
|
+
|
|
199
|
+
# Check sandbox image
|
|
200
|
+
sudo docker images | grep quantumclaw-sandbox
|
|
201
|
+
|
|
202
|
+
# Build sandbox image if missing
|
|
203
|
+
cd /opt/quantumclaw/quantumclaw
|
|
204
|
+
sudo -u quantumclaw ./scripts/sandbox-setup.sh
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
</Accordion>
|
|
208
|
+
<Accordion title="Provider login fails">
|
|
209
|
+
Make sure you are running as the `quantumclaw` user:
|
|
210
|
+
```bash
|
|
211
|
+
sudo -i -u quantumclaw
|
|
212
|
+
quantumclaw channels login
|
|
213
|
+
```
|
|
214
|
+
</Accordion>
|
|
215
|
+
</AccordionGroup>
|
|
216
|
+
|
|
217
|
+
## Advanced Configuration
|
|
218
|
+
|
|
219
|
+
For detailed security architecture and troubleshooting, see the quantumclaw-ansible repo:
|
|
220
|
+
|
|
221
|
+
- [Security Architecture](https://github.com/quantumclaw/quantumclaw-ansible/blob/main/docs/security.md)
|
|
222
|
+
- [Technical Details](https://github.com/quantumclaw/quantumclaw-ansible/blob/main/docs/architecture.md)
|
|
223
|
+
- [Troubleshooting Guide](https://github.com/quantumclaw/quantumclaw-ansible/blob/main/docs/troubleshooting.md)
|
|
224
|
+
|
|
225
|
+
## Related
|
|
226
|
+
|
|
227
|
+
- [quantumclaw-ansible](https://github.com/quantumclaw/quantumclaw-ansible) -- full deployment guide
|
|
228
|
+
- [Docker](/install/docker) -- containerized gateway setup
|
|
229
|
+
- [Sandboxing](/gateway/sandboxing) -- agent sandbox configuration
|
|
230
|
+
- [Multi-Agent Sandbox and Tools](/tools/multi-agent-sandbox-tools) -- per-agent isolation
|
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Run QuantumClaw Gateway 24/7 on an Azure Linux VM with durable state"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want QuantumClaw running 24/7 on Azure with Network Security Group hardening
|
|
5
|
+
- You want a production-grade, always-on QuantumClaw Gateway on your own Azure Linux VM
|
|
6
|
+
- You want secure administration with Azure Bastion SSH
|
|
7
|
+
title: "Azure"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# QuantumClaw on Azure Linux VM
|
|
11
|
+
|
|
12
|
+
This guide sets up an Azure Linux VM with the Azure CLI, applies Network Security Group (NSG) hardening, configures Azure Bastion for SSH access, and installs QuantumClaw.
|
|
13
|
+
|
|
14
|
+
## What you'll do
|
|
15
|
+
|
|
16
|
+
- Create Azure networking (VNet, subnets, NSG) and compute resources with the Azure CLI
|
|
17
|
+
- Apply Network Security Group rules so VM SSH is allowed only from Azure Bastion
|
|
18
|
+
- Use Azure Bastion for SSH access (no public IP on the VM)
|
|
19
|
+
- Install QuantumClaw with the installer script
|
|
20
|
+
- Verify the Gateway
|
|
21
|
+
|
|
22
|
+
## What you need
|
|
23
|
+
|
|
24
|
+
- An Azure subscription with permission to create compute and network resources
|
|
25
|
+
- Azure CLI installed (see [Azure CLI install steps](https://learn.microsoft.com/cli/azure/install-azure-cli) if needed)
|
|
26
|
+
- An SSH key pair (the guide covers generating one if needed)
|
|
27
|
+
- ~20-30 minutes
|
|
28
|
+
|
|
29
|
+
## Configure deployment
|
|
30
|
+
|
|
31
|
+
<Steps>
|
|
32
|
+
<Step title="Sign in to Azure CLI">
|
|
33
|
+
```bash
|
|
34
|
+
az login
|
|
35
|
+
az extension add -n ssh
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
The `ssh` extension is required for Azure Bastion native SSH tunneling.
|
|
39
|
+
|
|
40
|
+
</Step>
|
|
41
|
+
|
|
42
|
+
<Step title="Register required resource providers (one-time)">
|
|
43
|
+
```bash
|
|
44
|
+
az provider register --namespace Microsoft.Compute
|
|
45
|
+
az provider register --namespace Microsoft.Network
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Verify registration. Wait until both show `Registered`.
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
az provider show --namespace Microsoft.Compute --query registrationState -o tsv
|
|
52
|
+
az provider show --namespace Microsoft.Network --query registrationState -o tsv
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
</Step>
|
|
56
|
+
|
|
57
|
+
<Step title="Set deployment variables">
|
|
58
|
+
```bash
|
|
59
|
+
RG="rg-quantumclaw"
|
|
60
|
+
LOCATION="westus2"
|
|
61
|
+
VNET_NAME="vnet-quantumclaw"
|
|
62
|
+
VNET_PREFIX="10.40.0.0/16"
|
|
63
|
+
VM_SUBNET_NAME="snet-quantumclaw-vm"
|
|
64
|
+
VM_SUBNET_PREFIX="10.40.2.0/24"
|
|
65
|
+
BASTION_SUBNET_PREFIX="10.40.1.0/26"
|
|
66
|
+
NSG_NAME="nsg-quantumclaw-vm"
|
|
67
|
+
VM_NAME="vm-quantumclaw"
|
|
68
|
+
ADMIN_USERNAME="quantumclaw"
|
|
69
|
+
BASTION_NAME="bas-quantumclaw"
|
|
70
|
+
BASTION_PIP_NAME="pip-quantumclaw-bastion"
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Adjust names and CIDR ranges to fit your environment. The Bastion subnet must be at least `/26`.
|
|
74
|
+
|
|
75
|
+
</Step>
|
|
76
|
+
|
|
77
|
+
<Step title="Select SSH key">
|
|
78
|
+
Use your existing public key if you have one:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
SSH_PUB_KEY="$(cat ~/.ssh/id_ed25519.pub)"
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
If you don't have an SSH key yet, generate one:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
ssh-keygen -t ed25519 -a 100 -f ~/.ssh/id_ed25519 -C "you@example.com"
|
|
88
|
+
SSH_PUB_KEY="$(cat ~/.ssh/id_ed25519.pub)"
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
</Step>
|
|
92
|
+
|
|
93
|
+
<Step title="Select VM size and OS disk size">
|
|
94
|
+
```bash
|
|
95
|
+
VM_SIZE="Standard_B2as_v2"
|
|
96
|
+
OS_DISK_SIZE_GB=64
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Choose a VM size and OS disk size available in your subscription and region:
|
|
100
|
+
|
|
101
|
+
- Start smaller for light usage and scale up later
|
|
102
|
+
- Use more vCPU/RAM/disk for heavier automation, more channels, or larger model/tool workloads
|
|
103
|
+
- If a VM size is unavailable in your region or subscription quota, pick the closest available SKU
|
|
104
|
+
|
|
105
|
+
List VM sizes available in your target region:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
az vm list-skus --location "${LOCATION}" --resource-type virtualMachines -o table
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Check your current vCPU and disk usage/quota:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
az vm list-usage --location "${LOCATION}" -o table
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
</Step>
|
|
118
|
+
</Steps>
|
|
119
|
+
|
|
120
|
+
## Deploy Azure resources
|
|
121
|
+
|
|
122
|
+
<Steps>
|
|
123
|
+
<Step title="Create the resource group">
|
|
124
|
+
```bash
|
|
125
|
+
az group create -n "${RG}" -l "${LOCATION}"
|
|
126
|
+
```
|
|
127
|
+
</Step>
|
|
128
|
+
|
|
129
|
+
<Step title="Create the network security group">
|
|
130
|
+
Create the NSG and add rules so only the Bastion subnet can SSH into the VM.
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
az network nsg create \
|
|
134
|
+
-g "${RG}" -n "${NSG_NAME}" -l "${LOCATION}"
|
|
135
|
+
|
|
136
|
+
# Allow SSH from the Bastion subnet only
|
|
137
|
+
az network nsg rule create \
|
|
138
|
+
-g "${RG}" --nsg-name "${NSG_NAME}" \
|
|
139
|
+
-n AllowSshFromBastionSubnet --priority 100 \
|
|
140
|
+
--access Allow --direction Inbound --protocol Tcp \
|
|
141
|
+
--source-address-prefixes "${BASTION_SUBNET_PREFIX}" \
|
|
142
|
+
--destination-port-ranges 22
|
|
143
|
+
|
|
144
|
+
# Deny SSH from the public internet
|
|
145
|
+
az network nsg rule create \
|
|
146
|
+
-g "${RG}" --nsg-name "${NSG_NAME}" \
|
|
147
|
+
-n DenyInternetSsh --priority 110 \
|
|
148
|
+
--access Deny --direction Inbound --protocol Tcp \
|
|
149
|
+
--source-address-prefixes Internet \
|
|
150
|
+
--destination-port-ranges 22
|
|
151
|
+
|
|
152
|
+
# Deny SSH from other VNet sources
|
|
153
|
+
az network nsg rule create \
|
|
154
|
+
-g "${RG}" --nsg-name "${NSG_NAME}" \
|
|
155
|
+
-n DenyVnetSsh --priority 120 \
|
|
156
|
+
--access Deny --direction Inbound --protocol Tcp \
|
|
157
|
+
--source-address-prefixes VirtualNetwork \
|
|
158
|
+
--destination-port-ranges 22
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
The rules are evaluated by priority (lowest number first): Bastion traffic is allowed at 100, then all other SSH is blocked at 110 and 120.
|
|
162
|
+
|
|
163
|
+
</Step>
|
|
164
|
+
|
|
165
|
+
<Step title="Create the virtual network and subnets">
|
|
166
|
+
Create the VNet with the VM subnet (NSG attached), then add the Bastion subnet.
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
az network vnet create \
|
|
170
|
+
-g "${RG}" -n "${VNET_NAME}" -l "${LOCATION}" \
|
|
171
|
+
--address-prefixes "${VNET_PREFIX}" \
|
|
172
|
+
--subnet-name "${VM_SUBNET_NAME}" \
|
|
173
|
+
--subnet-prefixes "${VM_SUBNET_PREFIX}"
|
|
174
|
+
|
|
175
|
+
# Attach the NSG to the VM subnet
|
|
176
|
+
az network vnet subnet update \
|
|
177
|
+
-g "${RG}" --vnet-name "${VNET_NAME}" \
|
|
178
|
+
-n "${VM_SUBNET_NAME}" --nsg "${NSG_NAME}"
|
|
179
|
+
|
|
180
|
+
# AzureBastionSubnet — name is required by Azure
|
|
181
|
+
az network vnet subnet create \
|
|
182
|
+
-g "${RG}" --vnet-name "${VNET_NAME}" \
|
|
183
|
+
-n AzureBastionSubnet \
|
|
184
|
+
--address-prefixes "${BASTION_SUBNET_PREFIX}"
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
</Step>
|
|
188
|
+
|
|
189
|
+
<Step title="Create the VM">
|
|
190
|
+
The VM has no public IP. SSH access is exclusively through Azure Bastion.
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
az vm create \
|
|
194
|
+
-g "${RG}" -n "${VM_NAME}" -l "${LOCATION}" \
|
|
195
|
+
--image "Canonical:ubuntu-24_04-lts:server:latest" \
|
|
196
|
+
--size "${VM_SIZE}" \
|
|
197
|
+
--os-disk-size-gb "${OS_DISK_SIZE_GB}" \
|
|
198
|
+
--storage-sku StandardSSD_LRS \
|
|
199
|
+
--admin-username "${ADMIN_USERNAME}" \
|
|
200
|
+
--ssh-key-values "${SSH_PUB_KEY}" \
|
|
201
|
+
--vnet-name "${VNET_NAME}" \
|
|
202
|
+
--subnet "${VM_SUBNET_NAME}" \
|
|
203
|
+
--public-ip-address "" \
|
|
204
|
+
--nsg ""
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
`--public-ip-address ""` prevents a public IP from being assigned. `--nsg ""` skips creating a per-NIC NSG (the subnet-level NSG handles security).
|
|
208
|
+
|
|
209
|
+
**Reproducibility:** The command above uses `latest` for the Ubuntu image. To pin a specific version, list available versions and replace `latest`:
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
az vm image list \
|
|
213
|
+
--publisher Canonical --offer ubuntu-24_04-lts \
|
|
214
|
+
--sku server --all -o table
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
</Step>
|
|
218
|
+
|
|
219
|
+
<Step title="Create Azure Bastion">
|
|
220
|
+
Azure Bastion provides managed SSH access to the VM without exposing a public IP. Standard SKU with tunneling is required for CLI-based `az network bastion ssh`.
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
az network public-ip create \
|
|
224
|
+
-g "${RG}" -n "${BASTION_PIP_NAME}" -l "${LOCATION}" \
|
|
225
|
+
--sku Standard --allocation-method Static
|
|
226
|
+
|
|
227
|
+
az network bastion create \
|
|
228
|
+
-g "${RG}" -n "${BASTION_NAME}" -l "${LOCATION}" \
|
|
229
|
+
--vnet-name "${VNET_NAME}" \
|
|
230
|
+
--public-ip-address "${BASTION_PIP_NAME}" \
|
|
231
|
+
--sku Standard --enable-tunneling true
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
Bastion provisioning typically takes 5-10 minutes but can take up to 15-30 minutes in some regions.
|
|
235
|
+
|
|
236
|
+
</Step>
|
|
237
|
+
</Steps>
|
|
238
|
+
|
|
239
|
+
## Install QuantumClaw
|
|
240
|
+
|
|
241
|
+
<Steps>
|
|
242
|
+
<Step title="SSH into the VM through Azure Bastion">
|
|
243
|
+
```bash
|
|
244
|
+
VM_ID="$(az vm show -g "${RG}" -n "${VM_NAME}" --query id -o tsv)"
|
|
245
|
+
|
|
246
|
+
az network bastion ssh \
|
|
247
|
+
--name "${BASTION_NAME}" \
|
|
248
|
+
--resource-group "${RG}" \
|
|
249
|
+
--target-resource-id "${VM_ID}" \
|
|
250
|
+
--auth-type ssh-key \
|
|
251
|
+
--username "${ADMIN_USERNAME}" \
|
|
252
|
+
--ssh-key ~/.ssh/id_ed25519
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
</Step>
|
|
256
|
+
|
|
257
|
+
<Step title="Install QuantumClaw (in the VM shell)">
|
|
258
|
+
```bash
|
|
259
|
+
curl -fsSL https://quantumclaw.ai/install.sh -o /tmp/install.sh
|
|
260
|
+
bash /tmp/install.sh
|
|
261
|
+
rm -f /tmp/install.sh
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
The installer installs Node LTS and dependencies if not already present, installs QuantumClaw, and launches the onboarding wizard. See [Install](/install) for details.
|
|
265
|
+
|
|
266
|
+
</Step>
|
|
267
|
+
|
|
268
|
+
<Step title="Verify the Gateway">
|
|
269
|
+
After onboarding completes:
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
quantumclaw gateway status
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
Most enterprise Azure teams already have GitHub Copilot licenses. If that is your case, we recommend choosing the GitHub Copilot provider in the QuantumClaw onboarding wizard. See [GitHub Copilot provider](/providers/github-copilot).
|
|
276
|
+
|
|
277
|
+
</Step>
|
|
278
|
+
</Steps>
|
|
279
|
+
|
|
280
|
+
## Cost considerations
|
|
281
|
+
|
|
282
|
+
Azure Bastion Standard SKU runs approximately **\$140/month** and the VM (Standard_B2as_v2) runs approximately **\$55/month**.
|
|
283
|
+
|
|
284
|
+
To reduce costs:
|
|
285
|
+
|
|
286
|
+
- **Deallocate the VM** when not in use (stops compute billing; disk charges remain). The QuantumClaw Gateway will not be reachable while the VM is deallocated — restart it when you need it live again:
|
|
287
|
+
|
|
288
|
+
```bash
|
|
289
|
+
az vm deallocate -g "${RG}" -n "${VM_NAME}"
|
|
290
|
+
az vm start -g "${RG}" -n "${VM_NAME}" # restart later
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
- **Delete Bastion when not needed** and recreate it when you need SSH access. Bastion is the largest cost component and takes only a few minutes to provision.
|
|
294
|
+
- **Use the Basic Bastion SKU** (~\$38/month) if you only need Portal-based SSH and don't require CLI tunneling (`az network bastion ssh`).
|
|
295
|
+
|
|
296
|
+
## Cleanup
|
|
297
|
+
|
|
298
|
+
To delete all resources created by this guide:
|
|
299
|
+
|
|
300
|
+
```bash
|
|
301
|
+
az group delete -n "${RG}" --yes --no-wait
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
This removes the resource group and everything inside it (VM, VNet, NSG, Bastion, public IP).
|
|
305
|
+
|
|
306
|
+
## Next steps
|
|
307
|
+
|
|
308
|
+
- Set up messaging channels: [Channels](/channels)
|
|
309
|
+
- Pair local devices as nodes: [Nodes](/nodes)
|
|
310
|
+
- Configure the Gateway: [Gateway configuration](/gateway/configuration)
|
|
311
|
+
- For more details on QuantumClaw Azure deployment with the GitHub Copilot model provider: [QuantumClaw on Azure with GitHub Copilot](https://github.com/johnsonshi/quantumclaw-azure-github-copilot)
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Bun workflow (experimental): installs and gotchas vs pnpm"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want the fastest local dev loop (bun + watch)
|
|
5
|
+
- You hit Bun install/patch/lifecycle script issues
|
|
6
|
+
title: "Bun (Experimental)"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Bun (Experimental)
|
|
10
|
+
|
|
11
|
+
<Warning>
|
|
12
|
+
Bun is **not recommended for gateway runtime** (known issues with WhatsApp and Telegram). Use Node for production.
|
|
13
|
+
</Warning>
|
|
14
|
+
|
|
15
|
+
Bun is an optional local runtime for running TypeScript directly (`bun run ...`, `bun --watch ...`). The default package manager remains `pnpm`, which is fully supported and used by docs tooling. Bun cannot use `pnpm-lock.yaml` and will ignore it.
|
|
16
|
+
|
|
17
|
+
## Install
|
|
18
|
+
|
|
19
|
+
<Steps>
|
|
20
|
+
<Step title="Install dependencies">
|
|
21
|
+
```sh
|
|
22
|
+
bun install
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
`bun.lock` / `bun.lockb` are gitignored, so there is no repo churn. To skip lockfile writes entirely:
|
|
26
|
+
|
|
27
|
+
```sh
|
|
28
|
+
bun install --no-save
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
</Step>
|
|
32
|
+
<Step title="Build and test">
|
|
33
|
+
```sh
|
|
34
|
+
bun run build
|
|
35
|
+
bun run vitest run
|
|
36
|
+
```
|
|
37
|
+
</Step>
|
|
38
|
+
</Steps>
|
|
39
|
+
|
|
40
|
+
## Lifecycle Scripts
|
|
41
|
+
|
|
42
|
+
Bun blocks dependency lifecycle scripts unless explicitly trusted. For this repo, the commonly blocked scripts are not required:
|
|
43
|
+
|
|
44
|
+
- `@whiskeysockets/baileys` `preinstall` -- checks Node major >= 20 (QuantumClaw defaults to Node 24 and still supports Node 22 LTS, currently `22.16+`)
|
|
45
|
+
- `protobufjs` `postinstall` -- emits warnings about incompatible version schemes (no build artifacts)
|
|
46
|
+
|
|
47
|
+
If you hit a runtime issue that requires these scripts, trust them explicitly:
|
|
48
|
+
|
|
49
|
+
```sh
|
|
50
|
+
bun pm trust @whiskeysockets/baileys protobufjs
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Caveats
|
|
54
|
+
|
|
55
|
+
Some scripts still hardcode pnpm (for example `docs:build`, `ui:*`, `protocol:check`). Run those via pnpm for now.
|