@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
package/docs/tts.md
ADDED
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Text-to-speech (TTS) for outbound replies"
|
|
3
|
+
read_when:
|
|
4
|
+
- Enabling text-to-speech for replies
|
|
5
|
+
- Configuring TTS providers or limits
|
|
6
|
+
- Using /tts commands
|
|
7
|
+
title: "Text-to-Speech"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Text-to-speech (TTS)
|
|
11
|
+
|
|
12
|
+
QuantumClaw can convert outbound replies into audio using ElevenLabs, Microsoft, or OpenAI.
|
|
13
|
+
It works anywhere QuantumClaw can send audio; Telegram gets a round voice-note bubble.
|
|
14
|
+
|
|
15
|
+
## Supported services
|
|
16
|
+
|
|
17
|
+
- **ElevenLabs** (primary or fallback provider)
|
|
18
|
+
- **Microsoft** (primary or fallback provider; current bundled implementation uses `node-edge-tts`, default when no API keys)
|
|
19
|
+
- **OpenAI** (primary or fallback provider; also used for summaries)
|
|
20
|
+
|
|
21
|
+
### Microsoft speech notes
|
|
22
|
+
|
|
23
|
+
The bundled Microsoft speech provider currently uses Microsoft Edge's online
|
|
24
|
+
neural TTS service via the `node-edge-tts` library. It's a hosted service (not
|
|
25
|
+
local), uses Microsoft endpoints, and does not require an API key.
|
|
26
|
+
`node-edge-tts` exposes speech configuration options and output formats, but
|
|
27
|
+
not all options are supported by the service. Legacy config and directive input
|
|
28
|
+
using `edge` still works and is normalized to `microsoft`.
|
|
29
|
+
|
|
30
|
+
Because this path is a public web service without a published SLA or quota,
|
|
31
|
+
treat it as best-effort. If you need guaranteed limits and support, use OpenAI
|
|
32
|
+
or ElevenLabs.
|
|
33
|
+
|
|
34
|
+
## Optional keys
|
|
35
|
+
|
|
36
|
+
If you want OpenAI or ElevenLabs:
|
|
37
|
+
|
|
38
|
+
- `ELEVENLABS_API_KEY` (or `XI_API_KEY`)
|
|
39
|
+
- `OPENAI_API_KEY`
|
|
40
|
+
|
|
41
|
+
Microsoft speech does **not** require an API key. If no API keys are found,
|
|
42
|
+
QuantumClaw defaults to Microsoft (unless disabled via
|
|
43
|
+
`messages.tts.microsoft.enabled=false` or `messages.tts.edge.enabled=false`).
|
|
44
|
+
|
|
45
|
+
If multiple providers are configured, the selected provider is used first and the others are fallback options.
|
|
46
|
+
Auto-summary uses the configured `summaryModel` (or `agents.defaults.model.primary`),
|
|
47
|
+
so that provider must also be authenticated if you enable summaries.
|
|
48
|
+
|
|
49
|
+
## Service links
|
|
50
|
+
|
|
51
|
+
- [OpenAI Text-to-Speech guide](https://platform.openai.com/docs/guides/text-to-speech)
|
|
52
|
+
- [OpenAI Audio API reference](https://platform.openai.com/docs/api-reference/audio)
|
|
53
|
+
- [ElevenLabs Text to Speech](https://elevenlabs.io/docs/api-reference/text-to-speech)
|
|
54
|
+
- [ElevenLabs Authentication](https://elevenlabs.io/docs/api-reference/authentication)
|
|
55
|
+
- [node-edge-tts](https://github.com/SchneeHertz/node-edge-tts)
|
|
56
|
+
- [Microsoft Speech output formats](https://learn.microsoft.com/azure/ai-services/speech-service/rest-text-to-speech#audio-outputs)
|
|
57
|
+
|
|
58
|
+
## Is it enabled by default?
|
|
59
|
+
|
|
60
|
+
No. Auto‑TTS is **off** by default. Enable it in config with
|
|
61
|
+
`messages.tts.auto` or per session with `/tts always` (alias: `/tts on`).
|
|
62
|
+
|
|
63
|
+
Microsoft speech **is** enabled by default once TTS is on, and is used automatically
|
|
64
|
+
when no OpenAI or ElevenLabs API keys are available.
|
|
65
|
+
|
|
66
|
+
## Config
|
|
67
|
+
|
|
68
|
+
TTS config lives under `messages.tts` in `quantumclaw.json`.
|
|
69
|
+
Full schema is in [Gateway configuration](/gateway/configuration).
|
|
70
|
+
|
|
71
|
+
### Minimal config (enable + provider)
|
|
72
|
+
|
|
73
|
+
```json5
|
|
74
|
+
{
|
|
75
|
+
messages: {
|
|
76
|
+
tts: {
|
|
77
|
+
auto: "always",
|
|
78
|
+
provider: "elevenlabs",
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### OpenAI primary with ElevenLabs fallback
|
|
85
|
+
|
|
86
|
+
```json5
|
|
87
|
+
{
|
|
88
|
+
messages: {
|
|
89
|
+
tts: {
|
|
90
|
+
auto: "always",
|
|
91
|
+
provider: "openai",
|
|
92
|
+
summaryModel: "openai/gpt-4.1-mini",
|
|
93
|
+
modelOverrides: {
|
|
94
|
+
enabled: true,
|
|
95
|
+
},
|
|
96
|
+
openai: {
|
|
97
|
+
apiKey: "openai_api_key",
|
|
98
|
+
baseUrl: "https://api.openai.com/v1",
|
|
99
|
+
model: "gpt-4o-mini-tts",
|
|
100
|
+
voice: "alloy",
|
|
101
|
+
},
|
|
102
|
+
elevenlabs: {
|
|
103
|
+
apiKey: "elevenlabs_api_key",
|
|
104
|
+
baseUrl: "https://api.elevenlabs.io",
|
|
105
|
+
voiceId: "voice_id",
|
|
106
|
+
modelId: "eleven_multilingual_v2",
|
|
107
|
+
seed: 42,
|
|
108
|
+
applyTextNormalization: "auto",
|
|
109
|
+
languageCode: "en",
|
|
110
|
+
voiceSettings: {
|
|
111
|
+
stability: 0.5,
|
|
112
|
+
similarityBoost: 0.75,
|
|
113
|
+
style: 0.0,
|
|
114
|
+
useSpeakerBoost: true,
|
|
115
|
+
speed: 1.0,
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### Microsoft primary (no API key)
|
|
124
|
+
|
|
125
|
+
```json5
|
|
126
|
+
{
|
|
127
|
+
messages: {
|
|
128
|
+
tts: {
|
|
129
|
+
auto: "always",
|
|
130
|
+
provider: "microsoft",
|
|
131
|
+
microsoft: {
|
|
132
|
+
enabled: true,
|
|
133
|
+
voice: "en-US-MichelleNeural",
|
|
134
|
+
lang: "en-US",
|
|
135
|
+
outputFormat: "audio-24khz-48kbitrate-mono-mp3",
|
|
136
|
+
rate: "+10%",
|
|
137
|
+
pitch: "-5%",
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
}
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Disable Microsoft speech
|
|
145
|
+
|
|
146
|
+
```json5
|
|
147
|
+
{
|
|
148
|
+
messages: {
|
|
149
|
+
tts: {
|
|
150
|
+
microsoft: {
|
|
151
|
+
enabled: false,
|
|
152
|
+
},
|
|
153
|
+
},
|
|
154
|
+
},
|
|
155
|
+
}
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Custom limits + prefs path
|
|
159
|
+
|
|
160
|
+
```json5
|
|
161
|
+
{
|
|
162
|
+
messages: {
|
|
163
|
+
tts: {
|
|
164
|
+
auto: "always",
|
|
165
|
+
maxTextLength: 4000,
|
|
166
|
+
timeoutMs: 30000,
|
|
167
|
+
prefsPath: "~/.quantumclaw/settings/tts.json",
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
}
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Only reply with audio after an inbound voice note
|
|
174
|
+
|
|
175
|
+
```json5
|
|
176
|
+
{
|
|
177
|
+
messages: {
|
|
178
|
+
tts: {
|
|
179
|
+
auto: "inbound",
|
|
180
|
+
},
|
|
181
|
+
},
|
|
182
|
+
}
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### Disable auto-summary for long replies
|
|
186
|
+
|
|
187
|
+
```json5
|
|
188
|
+
{
|
|
189
|
+
messages: {
|
|
190
|
+
tts: {
|
|
191
|
+
auto: "always",
|
|
192
|
+
},
|
|
193
|
+
},
|
|
194
|
+
}
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
Then run:
|
|
198
|
+
|
|
199
|
+
```
|
|
200
|
+
/tts summary off
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Notes on fields
|
|
204
|
+
|
|
205
|
+
- `auto`: auto‑TTS mode (`off`, `always`, `inbound`, `tagged`).
|
|
206
|
+
- `inbound` only sends audio after an inbound voice note.
|
|
207
|
+
- `tagged` only sends audio when the reply includes `[[tts]]` tags.
|
|
208
|
+
- `enabled`: legacy toggle (doctor migrates this to `auto`).
|
|
209
|
+
- `mode`: `"final"` (default) or `"all"` (includes tool/block replies).
|
|
210
|
+
- `provider`: speech provider id such as `"elevenlabs"`, `"microsoft"`, or `"openai"` (fallback is automatic).
|
|
211
|
+
- If `provider` is **unset**, QuantumClaw prefers `openai` (if key), then `elevenlabs` (if key),
|
|
212
|
+
otherwise `microsoft`.
|
|
213
|
+
- Legacy `provider: "edge"` still works and is normalized to `microsoft`.
|
|
214
|
+
- `summaryModel`: optional cheap model for auto-summary; defaults to `agents.defaults.model.primary`.
|
|
215
|
+
- Accepts `provider/model` or a configured model alias.
|
|
216
|
+
- `modelOverrides`: allow the model to emit TTS directives (on by default).
|
|
217
|
+
- `allowProvider` defaults to `false` (provider switching is opt-in).
|
|
218
|
+
- `maxTextLength`: hard cap for TTS input (chars). `/tts audio` fails if exceeded.
|
|
219
|
+
- `timeoutMs`: request timeout (ms).
|
|
220
|
+
- `prefsPath`: override the local prefs JSON path (provider/limit/summary).
|
|
221
|
+
- `apiKey` values fall back to env vars (`ELEVENLABS_API_KEY`/`XI_API_KEY`, `OPENAI_API_KEY`).
|
|
222
|
+
- `elevenlabs.baseUrl`: override ElevenLabs API base URL.
|
|
223
|
+
- `openai.baseUrl`: override the OpenAI TTS endpoint.
|
|
224
|
+
- Resolution order: `messages.tts.openai.baseUrl` -> `OPENAI_TTS_BASE_URL` -> `https://api.openai.com/v1`
|
|
225
|
+
- Non-default values are treated as OpenAI-compatible TTS endpoints, so custom model and voice names are accepted.
|
|
226
|
+
- `elevenlabs.voiceSettings`:
|
|
227
|
+
- `stability`, `similarityBoost`, `style`: `0..1`
|
|
228
|
+
- `useSpeakerBoost`: `true|false`
|
|
229
|
+
- `speed`: `0.5..2.0` (1.0 = normal)
|
|
230
|
+
- `elevenlabs.applyTextNormalization`: `auto|on|off`
|
|
231
|
+
- `elevenlabs.languageCode`: 2-letter ISO 639-1 (e.g. `en`, `de`)
|
|
232
|
+
- `elevenlabs.seed`: integer `0..4294967295` (best-effort determinism)
|
|
233
|
+
- `microsoft.enabled`: allow Microsoft speech usage (default `true`; no API key).
|
|
234
|
+
- `microsoft.voice`: Microsoft neural voice name (e.g. `en-US-MichelleNeural`).
|
|
235
|
+
- `microsoft.lang`: language code (e.g. `en-US`).
|
|
236
|
+
- `microsoft.outputFormat`: Microsoft output format (e.g. `audio-24khz-48kbitrate-mono-mp3`).
|
|
237
|
+
- See Microsoft Speech output formats for valid values; not all formats are supported by the bundled Edge-backed transport.
|
|
238
|
+
- `microsoft.rate` / `microsoft.pitch` / `microsoft.volume`: percent strings (e.g. `+10%`, `-5%`).
|
|
239
|
+
- `microsoft.saveSubtitles`: write JSON subtitles alongside the audio file.
|
|
240
|
+
- `microsoft.proxy`: proxy URL for Microsoft speech requests.
|
|
241
|
+
- `microsoft.timeoutMs`: request timeout override (ms).
|
|
242
|
+
- `edge.*`: legacy alias for the same Microsoft settings.
|
|
243
|
+
|
|
244
|
+
## Model-driven overrides (default on)
|
|
245
|
+
|
|
246
|
+
By default, the model **can** emit TTS directives for a single reply.
|
|
247
|
+
When `messages.tts.auto` is `tagged`, these directives are required to trigger audio.
|
|
248
|
+
|
|
249
|
+
When enabled, the model can emit `[[tts:...]]` directives to override the voice
|
|
250
|
+
for a single reply, plus an optional `[[tts:text]]...[[/tts:text]]` block to
|
|
251
|
+
provide expressive tags (laughter, singing cues, etc) that should only appear in
|
|
252
|
+
the audio.
|
|
253
|
+
|
|
254
|
+
`provider=...` directives are ignored unless `modelOverrides.allowProvider: true`.
|
|
255
|
+
|
|
256
|
+
Example reply payload:
|
|
257
|
+
|
|
258
|
+
```
|
|
259
|
+
Here you go.
|
|
260
|
+
|
|
261
|
+
[[tts:voiceId=pMsXgVXv3BLzUgSXRplE model=eleven_v3 speed=1.1]]
|
|
262
|
+
[[tts:text]](laughs) Read the song once more.[[/tts:text]]
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
Available directive keys (when enabled):
|
|
266
|
+
|
|
267
|
+
- `provider` (registered speech provider id, for example `openai`, `elevenlabs`, or `microsoft`; requires `allowProvider: true`)
|
|
268
|
+
- `voice` (OpenAI voice) or `voiceId` (ElevenLabs)
|
|
269
|
+
- `model` (OpenAI TTS model or ElevenLabs model id)
|
|
270
|
+
- `stability`, `similarityBoost`, `style`, `speed`, `useSpeakerBoost`
|
|
271
|
+
- `applyTextNormalization` (`auto|on|off`)
|
|
272
|
+
- `languageCode` (ISO 639-1)
|
|
273
|
+
- `seed`
|
|
274
|
+
|
|
275
|
+
Disable all model overrides:
|
|
276
|
+
|
|
277
|
+
```json5
|
|
278
|
+
{
|
|
279
|
+
messages: {
|
|
280
|
+
tts: {
|
|
281
|
+
modelOverrides: {
|
|
282
|
+
enabled: false,
|
|
283
|
+
},
|
|
284
|
+
},
|
|
285
|
+
},
|
|
286
|
+
}
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
Optional allowlist (enable provider switching while keeping other knobs configurable):
|
|
290
|
+
|
|
291
|
+
```json5
|
|
292
|
+
{
|
|
293
|
+
messages: {
|
|
294
|
+
tts: {
|
|
295
|
+
modelOverrides: {
|
|
296
|
+
enabled: true,
|
|
297
|
+
allowProvider: true,
|
|
298
|
+
allowSeed: false,
|
|
299
|
+
},
|
|
300
|
+
},
|
|
301
|
+
},
|
|
302
|
+
}
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
## Per-user preferences
|
|
306
|
+
|
|
307
|
+
Slash commands write local overrides to `prefsPath` (default:
|
|
308
|
+
`~/.quantumclaw/settings/tts.json`, override with `QUANTUMCLAW_TTS_PREFS` or
|
|
309
|
+
`messages.tts.prefsPath`).
|
|
310
|
+
|
|
311
|
+
Stored fields:
|
|
312
|
+
|
|
313
|
+
- `enabled`
|
|
314
|
+
- `provider`
|
|
315
|
+
- `maxLength` (summary threshold; default 1500 chars)
|
|
316
|
+
- `summarize` (default `true`)
|
|
317
|
+
|
|
318
|
+
These override `messages.tts.*` for that host.
|
|
319
|
+
|
|
320
|
+
## Output formats (fixed)
|
|
321
|
+
|
|
322
|
+
- **Telegram**: Opus voice note (`opus_48000_64` from ElevenLabs, `opus` from OpenAI).
|
|
323
|
+
- 48kHz / 64kbps is a good voice-note tradeoff and required for the round bubble.
|
|
324
|
+
- **Other channels**: MP3 (`mp3_44100_128` from ElevenLabs, `mp3` from OpenAI).
|
|
325
|
+
- 44.1kHz / 128kbps is the default balance for speech clarity.
|
|
326
|
+
- **Microsoft**: uses `microsoft.outputFormat` (default `audio-24khz-48kbitrate-mono-mp3`).
|
|
327
|
+
- The bundled transport accepts an `outputFormat`, but not all formats are available from the service.
|
|
328
|
+
- Output format values follow Microsoft Speech output formats (including Ogg/WebM Opus).
|
|
329
|
+
- Telegram `sendVoice` accepts OGG/MP3/M4A; use OpenAI/ElevenLabs if you need
|
|
330
|
+
guaranteed Opus voice notes. citeturn1search1
|
|
331
|
+
- If the configured Microsoft output format fails, QuantumClaw retries with MP3.
|
|
332
|
+
|
|
333
|
+
OpenAI/ElevenLabs formats are fixed; Telegram expects Opus for voice-note UX.
|
|
334
|
+
|
|
335
|
+
## Auto-TTS behavior
|
|
336
|
+
|
|
337
|
+
When enabled, QuantumClaw:
|
|
338
|
+
|
|
339
|
+
- skips TTS if the reply already contains media or a `MEDIA:` directive.
|
|
340
|
+
- skips very short replies (< 10 chars).
|
|
341
|
+
- summarizes long replies when enabled using `agents.defaults.model.primary` (or `summaryModel`).
|
|
342
|
+
- attaches the generated audio to the reply.
|
|
343
|
+
|
|
344
|
+
If the reply exceeds `maxLength` and summary is off (or no API key for the
|
|
345
|
+
summary model), audio
|
|
346
|
+
is skipped and the normal text reply is sent.
|
|
347
|
+
|
|
348
|
+
## Flow diagram
|
|
349
|
+
|
|
350
|
+
```
|
|
351
|
+
Reply -> TTS enabled?
|
|
352
|
+
no -> send text
|
|
353
|
+
yes -> has media / MEDIA: / short?
|
|
354
|
+
yes -> send text
|
|
355
|
+
no -> length > limit?
|
|
356
|
+
no -> TTS -> attach audio
|
|
357
|
+
yes -> summary enabled?
|
|
358
|
+
no -> send text
|
|
359
|
+
yes -> summarize (summaryModel or agents.defaults.model.primary)
|
|
360
|
+
-> TTS -> attach audio
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
## Slash command usage
|
|
364
|
+
|
|
365
|
+
There is a single command: `/tts`.
|
|
366
|
+
See [Slash commands](/tools/slash-commands) for enablement details.
|
|
367
|
+
|
|
368
|
+
Discord note: `/tts` is a built-in Discord command, so QuantumClaw registers
|
|
369
|
+
`/voice` as the native command there. Text `/tts ...` still works.
|
|
370
|
+
|
|
371
|
+
```
|
|
372
|
+
/tts off
|
|
373
|
+
/tts always
|
|
374
|
+
/tts inbound
|
|
375
|
+
/tts tagged
|
|
376
|
+
/tts status
|
|
377
|
+
/tts provider openai
|
|
378
|
+
/tts limit 2000
|
|
379
|
+
/tts summary off
|
|
380
|
+
/tts audio Hello from QuantumClaw
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
Notes:
|
|
384
|
+
|
|
385
|
+
- Commands require an authorized sender (allowlist/owner rules still apply).
|
|
386
|
+
- `commands.text` or native command registration must be enabled.
|
|
387
|
+
- `off|always|inbound|tagged` are per‑session toggles (`/tts on` is an alias for `/tts always`).
|
|
388
|
+
- `limit` and `summary` are stored in local prefs, not the main config.
|
|
389
|
+
- `/tts audio` generates a one-off audio reply (does not toggle TTS on).
|
|
390
|
+
|
|
391
|
+
## Agent tool
|
|
392
|
+
|
|
393
|
+
The `tts` tool converts text to speech and returns an audio attachment for
|
|
394
|
+
reply delivery. When the result is Telegram-compatible, QuantumClaw marks it for
|
|
395
|
+
voice-bubble delivery.
|
|
396
|
+
|
|
397
|
+
## Gateway RPC
|
|
398
|
+
|
|
399
|
+
Gateway methods:
|
|
400
|
+
|
|
401
|
+
- `tts.status`
|
|
402
|
+
- `tts.enable`
|
|
403
|
+
- `tts.disable`
|
|
404
|
+
- `tts.convert`
|
|
405
|
+
- `tts.setProvider`
|
|
406
|
+
- `tts.providers`
|
package/docs/vps.md
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Run QuantumClaw on a Linux server or cloud VPS — provider picker, architecture, and tuning"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want to run the Gateway on a Linux server or cloud VPS
|
|
5
|
+
- You need a quick map of hosting guides
|
|
6
|
+
- You want generic Linux server tuning for QuantumClaw
|
|
7
|
+
title: "Linux Server"
|
|
8
|
+
sidebarTitle: "Linux Server"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Linux Server
|
|
12
|
+
|
|
13
|
+
Run the QuantumClaw Gateway on any Linux server or cloud VPS. This page helps you
|
|
14
|
+
pick a provider, explains how cloud deployments work, and covers generic Linux
|
|
15
|
+
tuning that applies everywhere.
|
|
16
|
+
|
|
17
|
+
## Pick a provider
|
|
18
|
+
|
|
19
|
+
<CardGroup cols={2}>
|
|
20
|
+
<Card title="Railway" href="/install/railway">One-click, browser setup</Card>
|
|
21
|
+
<Card title="Northflank" href="/install/northflank">One-click, browser setup</Card>
|
|
22
|
+
<Card title="DigitalOcean" href="/install/digitalocean">Simple paid VPS</Card>
|
|
23
|
+
<Card title="Oracle Cloud" href="/install/oracle">Always Free ARM tier</Card>
|
|
24
|
+
<Card title="Fly.io" href="/install/fly">Fly Machines</Card>
|
|
25
|
+
<Card title="Hetzner" href="/install/hetzner">Docker on Hetzner VPS</Card>
|
|
26
|
+
<Card title="GCP" href="/install/gcp">Compute Engine</Card>
|
|
27
|
+
<Card title="Azure" href="/install/azure">Linux VM</Card>
|
|
28
|
+
<Card title="exe.dev" href="/install/exe-dev">VM with HTTPS proxy</Card>
|
|
29
|
+
<Card title="Raspberry Pi" href="/install/raspberry-pi">ARM self-hosted</Card>
|
|
30
|
+
</CardGroup>
|
|
31
|
+
|
|
32
|
+
**AWS (EC2 / Lightsail / free tier)** also works well.
|
|
33
|
+
A community video walkthrough is available at
|
|
34
|
+
[x.com/techfrenAJ/status/2014934471095812547](https://x.com/techfrenAJ/status/2014934471095812547)
|
|
35
|
+
(community resource -- may become unavailable).
|
|
36
|
+
|
|
37
|
+
## How cloud setups work
|
|
38
|
+
|
|
39
|
+
- The **Gateway runs on the VPS** and owns state + workspace.
|
|
40
|
+
- You connect from your laptop or phone via the **Control UI** or **Tailscale/SSH**.
|
|
41
|
+
- Treat the VPS as the source of truth and **back up** the state + workspace regularly.
|
|
42
|
+
- Secure default: keep the Gateway on loopback and access it via SSH tunnel or Tailscale Serve.
|
|
43
|
+
If you bind to `lan` or `tailnet`, require `gateway.auth.token` or `gateway.auth.password`.
|
|
44
|
+
|
|
45
|
+
Related pages: [Gateway remote access](/gateway/remote), [Platforms hub](/platforms).
|
|
46
|
+
|
|
47
|
+
## Shared company agent on a VPS
|
|
48
|
+
|
|
49
|
+
Running a single agent for a team is a valid setup when every user is in the same trust boundary and the agent is business-only.
|
|
50
|
+
|
|
51
|
+
- Keep it on a dedicated runtime (VPS/VM/container + dedicated OS user/accounts).
|
|
52
|
+
- Do not sign that runtime into personal Apple/Google accounts or personal browser/password-manager profiles.
|
|
53
|
+
- If users are adversarial to each other, split by gateway/host/OS user.
|
|
54
|
+
|
|
55
|
+
Security model details: [Security](/gateway/security).
|
|
56
|
+
|
|
57
|
+
## Using nodes with a VPS
|
|
58
|
+
|
|
59
|
+
You can keep the Gateway in the cloud and pair **nodes** on your local devices
|
|
60
|
+
(Mac/iOS/Android/headless). Nodes provide local screen/camera/canvas and `system.run`
|
|
61
|
+
capabilities while the Gateway stays in the cloud.
|
|
62
|
+
|
|
63
|
+
Docs: [Nodes](/nodes), [Nodes CLI](/cli/nodes).
|
|
64
|
+
|
|
65
|
+
## Startup tuning for small VMs and ARM hosts
|
|
66
|
+
|
|
67
|
+
If CLI commands feel slow on low-power VMs (or ARM hosts), enable Node's module compile cache:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
grep -q 'NODE_COMPILE_CACHE=/var/tmp/quantumclaw-compile-cache' ~/.bashrc || cat >> ~/.bashrc <<'EOF'
|
|
71
|
+
export NODE_COMPILE_CACHE=/var/tmp/quantumclaw-compile-cache
|
|
72
|
+
mkdir -p /var/tmp/quantumclaw-compile-cache
|
|
73
|
+
export QUANTUMCLAW_NO_RESPAWN=1
|
|
74
|
+
EOF
|
|
75
|
+
source ~/.bashrc
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
- `NODE_COMPILE_CACHE` improves repeated command startup times.
|
|
79
|
+
- `QUANTUMCLAW_NO_RESPAWN=1` avoids extra startup overhead from a self-respawn path.
|
|
80
|
+
- First command run warms the cache; subsequent runs are faster.
|
|
81
|
+
- For Raspberry Pi specifics, see [Raspberry Pi](/install/raspberry-pi).
|
|
82
|
+
|
|
83
|
+
### systemd tuning checklist (optional)
|
|
84
|
+
|
|
85
|
+
For VM hosts using `systemd`, consider:
|
|
86
|
+
|
|
87
|
+
- Add service env for a stable startup path:
|
|
88
|
+
- `QUANTUMCLAW_NO_RESPAWN=1`
|
|
89
|
+
- `NODE_COMPILE_CACHE=/var/tmp/quantumclaw-compile-cache`
|
|
90
|
+
- Keep restart behavior explicit:
|
|
91
|
+
- `Restart=always`
|
|
92
|
+
- `RestartSec=2`
|
|
93
|
+
- `TimeoutStartSec=90`
|
|
94
|
+
- Prefer SSD-backed disks for state/cache paths to reduce random-I/O cold-start penalties.
|
|
95
|
+
|
|
96
|
+
Example:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
sudo systemctl edit quantumclaw
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
```ini
|
|
103
|
+
[Service]
|
|
104
|
+
Environment=QUANTUMCLAW_NO_RESPAWN=1
|
|
105
|
+
Environment=NODE_COMPILE_CACHE=/var/tmp/quantumclaw-compile-cache
|
|
106
|
+
Restart=always
|
|
107
|
+
RestartSec=2
|
|
108
|
+
TimeoutStartSec=90
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
How `Restart=` policies help automated recovery:
|
|
112
|
+
[systemd can automate service recovery](https://www.redhat.com/en/blog/systemd-automate-recovery).
|