@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,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Linux support + companion app status"
|
|
3
|
+
read_when:
|
|
4
|
+
- Looking for Linux companion app status
|
|
5
|
+
- Planning platform coverage or contributions
|
|
6
|
+
title: "Linux App"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Linux App
|
|
10
|
+
|
|
11
|
+
The Gateway is fully supported on Linux. **Node is the recommended runtime**.
|
|
12
|
+
Bun is not recommended for the Gateway (WhatsApp/Telegram bugs).
|
|
13
|
+
|
|
14
|
+
Native Linux companion apps are planned. Contributions are welcome if you want to help build one.
|
|
15
|
+
|
|
16
|
+
## Beginner quick path (VPS)
|
|
17
|
+
|
|
18
|
+
1. Install Node 24 (recommended; Node 22 LTS, currently `22.16+`, still works for compatibility)
|
|
19
|
+
2. `npm i -g quantumclaw@latest`
|
|
20
|
+
3. `quantumclaw onboard --install-daemon`
|
|
21
|
+
4. From your laptop: `ssh -N -L 18789:127.0.0.1:18789 <user>@<host>`
|
|
22
|
+
5. Open `http://127.0.0.1:18789/` and paste your token
|
|
23
|
+
|
|
24
|
+
Full Linux server guide: [Linux Server](/vps). Step-by-step VPS example: [exe.dev](/install/exe-dev)
|
|
25
|
+
|
|
26
|
+
## Install
|
|
27
|
+
|
|
28
|
+
- [Getting Started](/start/getting-started)
|
|
29
|
+
- [Install & updates](/install/updating)
|
|
30
|
+
- Optional flows: [Bun (experimental)](/install/bun), [Nix](/install/nix), [Docker](/install/docker)
|
|
31
|
+
|
|
32
|
+
## Gateway
|
|
33
|
+
|
|
34
|
+
- [Gateway runbook](/gateway)
|
|
35
|
+
- [Configuration](/gateway/configuration)
|
|
36
|
+
|
|
37
|
+
## Gateway service install (CLI)
|
|
38
|
+
|
|
39
|
+
Use one of these:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
quantumclaw onboard --install-daemon
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Or:
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
quantumclaw gateway install
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Or:
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
quantumclaw configure
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Select **Gateway service** when prompted.
|
|
58
|
+
|
|
59
|
+
Repair/migrate:
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
quantumclaw doctor
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## System control (systemd user unit)
|
|
66
|
+
|
|
67
|
+
QuantumClaw installs a systemd **user** service by default. Use a **system**
|
|
68
|
+
service for shared or always-on servers. The full unit example and guidance
|
|
69
|
+
live in the [Gateway runbook](/gateway).
|
|
70
|
+
|
|
71
|
+
Minimal setup:
|
|
72
|
+
|
|
73
|
+
Create `~/.config/systemd/user/quantumclaw-gateway[-<profile>].service`:
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
[Unit]
|
|
77
|
+
Description=QuantumClaw Gateway (profile: <profile>, v<version>)
|
|
78
|
+
After=network-online.target
|
|
79
|
+
Wants=network-online.target
|
|
80
|
+
|
|
81
|
+
[Service]
|
|
82
|
+
ExecStart=/usr/local/bin/quantumclaw gateway --port 18789
|
|
83
|
+
Restart=always
|
|
84
|
+
RestartSec=5
|
|
85
|
+
|
|
86
|
+
[Install]
|
|
87
|
+
WantedBy=default.target
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Enable it:
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
systemctl --user enable --now quantumclaw-gateway[-<profile>].service
|
|
94
|
+
```
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Gateway runtime on macOS (external launchd service)"
|
|
3
|
+
read_when:
|
|
4
|
+
- Packaging QuantumClaw.app
|
|
5
|
+
- Debugging the macOS gateway launchd service
|
|
6
|
+
- Installing the gateway CLI for macOS
|
|
7
|
+
title: "Gateway on macOS"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Gateway on macOS (external launchd)
|
|
11
|
+
|
|
12
|
+
QuantumClaw.app no longer bundles Node/Bun or the Gateway runtime. The macOS app
|
|
13
|
+
expects an **external** `quantumclaw` CLI install, does not spawn the Gateway as a
|
|
14
|
+
child process, and manages a per‑user launchd service to keep the Gateway
|
|
15
|
+
running (or attaches to an existing local Gateway if one is already running).
|
|
16
|
+
|
|
17
|
+
## Install the CLI (required for local mode)
|
|
18
|
+
|
|
19
|
+
Node 24 is the default runtime on the Mac. Node 22 LTS, currently `22.16+`, still works for compatibility. Then install `quantumclaw` globally:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npm install -g quantumclaw@<version>
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
The macOS app’s **Install CLI** button runs the same flow via npm/pnpm (bun not recommended for Gateway runtime).
|
|
26
|
+
|
|
27
|
+
## Launchd (Gateway as LaunchAgent)
|
|
28
|
+
|
|
29
|
+
Label:
|
|
30
|
+
|
|
31
|
+
- `ai.quantumclaw.gateway` (or `ai.quantumclaw.<profile>`; legacy `com.quantumclaw.*` may remain)
|
|
32
|
+
|
|
33
|
+
Plist location (per‑user):
|
|
34
|
+
|
|
35
|
+
- `~/Library/LaunchAgents/ai.quantumclaw.gateway.plist`
|
|
36
|
+
(or `~/Library/LaunchAgents/ai.quantumclaw.<profile>.plist`)
|
|
37
|
+
|
|
38
|
+
Manager:
|
|
39
|
+
|
|
40
|
+
- The macOS app owns LaunchAgent install/update in Local mode.
|
|
41
|
+
- The CLI can also install it: `quantumclaw gateway install`.
|
|
42
|
+
|
|
43
|
+
Behavior:
|
|
44
|
+
|
|
45
|
+
- “QuantumClaw Active” enables/disables the LaunchAgent.
|
|
46
|
+
- App quit does **not** stop the gateway (launchd keeps it alive).
|
|
47
|
+
- If a Gateway is already running on the configured port, the app attaches to
|
|
48
|
+
it instead of starting a new one.
|
|
49
|
+
|
|
50
|
+
Logging:
|
|
51
|
+
|
|
52
|
+
- launchd stdout/err: `/tmp/quantumclaw/quantumclaw-gateway.log`
|
|
53
|
+
|
|
54
|
+
## Version compatibility
|
|
55
|
+
|
|
56
|
+
The macOS app checks the gateway version against its own version. If they’re
|
|
57
|
+
incompatible, update the global CLI to match the app version.
|
|
58
|
+
|
|
59
|
+
## Smoke check
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
quantumclaw --version
|
|
63
|
+
|
|
64
|
+
QUANTUMCLAW_SKIP_CHANNELS=1 \
|
|
65
|
+
QUANTUMCLAW_SKIP_CANVAS_HOST=1 \
|
|
66
|
+
quantumclaw gateway --port 18999 --bind loopback
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Then:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
quantumclaw gateway call health --url ws://127.0.0.1:18999 --timeout 3000
|
|
73
|
+
```
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Agent-controlled Canvas panel embedded via WKWebView + custom URL scheme"
|
|
3
|
+
read_when:
|
|
4
|
+
- Implementing the macOS Canvas panel
|
|
5
|
+
- Adding agent controls for visual workspace
|
|
6
|
+
- Debugging WKWebView canvas loads
|
|
7
|
+
title: "Canvas"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Canvas (macOS app)
|
|
11
|
+
|
|
12
|
+
The macOS app embeds an agent‑controlled **Canvas panel** using `WKWebView`. It
|
|
13
|
+
is a lightweight visual workspace for HTML/CSS/JS, A2UI, and small interactive
|
|
14
|
+
UI surfaces.
|
|
15
|
+
|
|
16
|
+
## Where Canvas lives
|
|
17
|
+
|
|
18
|
+
Canvas state is stored under Application Support:
|
|
19
|
+
|
|
20
|
+
- `~/Library/Application Support/QuantumClaw/canvas/<session>/...`
|
|
21
|
+
|
|
22
|
+
The Canvas panel serves those files via a **custom URL scheme**:
|
|
23
|
+
|
|
24
|
+
- `quantumclaw-canvas://<session>/<path>`
|
|
25
|
+
|
|
26
|
+
Examples:
|
|
27
|
+
|
|
28
|
+
- `quantumclaw-canvas://main/` → `<canvasRoot>/main/index.html`
|
|
29
|
+
- `quantumclaw-canvas://main/assets/app.css` → `<canvasRoot>/main/assets/app.css`
|
|
30
|
+
- `quantumclaw-canvas://main/widgets/todo/` → `<canvasRoot>/main/widgets/todo/index.html`
|
|
31
|
+
|
|
32
|
+
If no `index.html` exists at the root, the app shows a **built‑in scaffold page**.
|
|
33
|
+
|
|
34
|
+
## Panel behavior
|
|
35
|
+
|
|
36
|
+
- Borderless, resizable panel anchored near the menu bar (or mouse cursor).
|
|
37
|
+
- Remembers size/position per session.
|
|
38
|
+
- Auto‑reloads when local canvas files change.
|
|
39
|
+
- Only one Canvas panel is visible at a time (session is switched as needed).
|
|
40
|
+
|
|
41
|
+
Canvas can be disabled from Settings → **Allow Canvas**. When disabled, canvas
|
|
42
|
+
node commands return `CANVAS_DISABLED`.
|
|
43
|
+
|
|
44
|
+
## Agent API surface
|
|
45
|
+
|
|
46
|
+
Canvas is exposed via the **Gateway WebSocket**, so the agent can:
|
|
47
|
+
|
|
48
|
+
- show/hide the panel
|
|
49
|
+
- navigate to a path or URL
|
|
50
|
+
- evaluate JavaScript
|
|
51
|
+
- capture a snapshot image
|
|
52
|
+
|
|
53
|
+
CLI examples:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
quantumclaw nodes canvas present --node <id>
|
|
57
|
+
quantumclaw nodes canvas navigate --node <id> --url "/"
|
|
58
|
+
quantumclaw nodes canvas eval --node <id> --js "document.title"
|
|
59
|
+
quantumclaw nodes canvas snapshot --node <id>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Notes:
|
|
63
|
+
|
|
64
|
+
- `canvas.navigate` accepts **local canvas paths**, `http(s)` URLs, and `file://` URLs.
|
|
65
|
+
- If you pass `"/"`, the Canvas shows the local scaffold or `index.html`.
|
|
66
|
+
|
|
67
|
+
## A2UI in Canvas
|
|
68
|
+
|
|
69
|
+
A2UI is hosted by the Gateway canvas host and rendered inside the Canvas panel.
|
|
70
|
+
When the Gateway advertises a Canvas host, the macOS app auto‑navigates to the
|
|
71
|
+
A2UI host page on first open.
|
|
72
|
+
|
|
73
|
+
Default A2UI host URL:
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
http://<gateway-host>:18789/__quantumclaw__/a2ui/
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### A2UI commands (v0.8)
|
|
80
|
+
|
|
81
|
+
Canvas currently accepts **A2UI v0.8** server→client messages:
|
|
82
|
+
|
|
83
|
+
- `beginRendering`
|
|
84
|
+
- `surfaceUpdate`
|
|
85
|
+
- `dataModelUpdate`
|
|
86
|
+
- `deleteSurface`
|
|
87
|
+
|
|
88
|
+
`createSurface` (v0.9) is not supported.
|
|
89
|
+
|
|
90
|
+
CLI example:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
cat > /tmp/a2ui-v0.8.jsonl <<'EOFA2'
|
|
94
|
+
{"surfaceUpdate":{"surfaceId":"main","components":[{"id":"root","component":{"Column":{"children":{"explicitList":["title","content"]}}}},{"id":"title","component":{"Text":{"text":{"literalString":"Canvas (A2UI v0.8)"},"usageHint":"h1"}}},{"id":"content","component":{"Text":{"text":{"literalString":"If you can read this, A2UI push works."},"usageHint":"body"}}}]}}
|
|
95
|
+
{"beginRendering":{"surfaceId":"main","root":"root"}}
|
|
96
|
+
EOFA2
|
|
97
|
+
|
|
98
|
+
quantumclaw nodes canvas a2ui push --jsonl /tmp/a2ui-v0.8.jsonl --node <id>
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Quick smoke:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
quantumclaw nodes canvas a2ui push --node <id> --text "Hello from A2UI"
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Triggering agent runs from Canvas
|
|
108
|
+
|
|
109
|
+
Canvas can trigger new agent runs via deep links:
|
|
110
|
+
|
|
111
|
+
- `quantumclaw://agent?...`
|
|
112
|
+
|
|
113
|
+
Example (in JS):
|
|
114
|
+
|
|
115
|
+
```js
|
|
116
|
+
window.location.href = "quantumclaw://agent?message=Review%20this%20design";
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
The app prompts for confirmation unless a valid key is provided.
|
|
120
|
+
|
|
121
|
+
## Security notes
|
|
122
|
+
|
|
123
|
+
- Canvas scheme blocks directory traversal; files must live under the session root.
|
|
124
|
+
- Local Canvas content uses a custom scheme (no loopback server required).
|
|
125
|
+
- External `http(s)` URLs are allowed only when explicitly navigated.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Gateway lifecycle on macOS (launchd)"
|
|
3
|
+
read_when:
|
|
4
|
+
- Integrating the mac app with the gateway lifecycle
|
|
5
|
+
title: "Gateway Lifecycle"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Gateway lifecycle on macOS
|
|
9
|
+
|
|
10
|
+
The macOS app **manages the Gateway via launchd** by default and does not spawn
|
|
11
|
+
the Gateway as a child process. It first tries to attach to an already‑running
|
|
12
|
+
Gateway on the configured port; if none is reachable, it enables the launchd
|
|
13
|
+
service via the external `quantumclaw` CLI (no embedded runtime). This gives you
|
|
14
|
+
reliable auto‑start at login and restart on crashes.
|
|
15
|
+
|
|
16
|
+
Child‑process mode (Gateway spawned directly by the app) is **not in use** today.
|
|
17
|
+
If you need tighter coupling to the UI, run the Gateway manually in a terminal.
|
|
18
|
+
|
|
19
|
+
## Default behavior (launchd)
|
|
20
|
+
|
|
21
|
+
- The app installs a per‑user LaunchAgent labeled `ai.quantumclaw.gateway`
|
|
22
|
+
(or `ai.quantumclaw.<profile>` when using `--profile`/`QUANTUMCLAW_PROFILE`; legacy `com.quantumclaw.*` is supported).
|
|
23
|
+
- When Local mode is enabled, the app ensures the LaunchAgent is loaded and
|
|
24
|
+
starts the Gateway if needed.
|
|
25
|
+
- Logs are written to the launchd gateway log path (visible in Debug Settings).
|
|
26
|
+
|
|
27
|
+
Common commands:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
launchctl kickstart -k gui/$UID/ai.quantumclaw.gateway
|
|
31
|
+
launchctl bootout gui/$UID/ai.quantumclaw.gateway
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Replace the label with `ai.quantumclaw.<profile>` when running a named profile.
|
|
35
|
+
|
|
36
|
+
## Unsigned dev builds
|
|
37
|
+
|
|
38
|
+
`scripts/restart-mac.sh --no-sign` is for fast local builds when you don’t have
|
|
39
|
+
signing keys. To prevent launchd from pointing at an unsigned relay binary, it:
|
|
40
|
+
|
|
41
|
+
- Writes `~/.quantumclaw/disable-launchagent`.
|
|
42
|
+
|
|
43
|
+
Signed runs of `scripts/restart-mac.sh` clear this override if the marker is
|
|
44
|
+
present. To reset manually:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
rm ~/.quantumclaw/disable-launchagent
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Attach-only mode
|
|
51
|
+
|
|
52
|
+
To force the macOS app to **never install or manage launchd**, launch it with
|
|
53
|
+
`--attach-only` (or `--no-launchd`). This sets `~/.quantumclaw/disable-launchagent`,
|
|
54
|
+
so the app only attaches to an already running Gateway. You can toggle the same
|
|
55
|
+
behavior in Debug Settings.
|
|
56
|
+
|
|
57
|
+
## Remote mode
|
|
58
|
+
|
|
59
|
+
Remote mode never starts a local Gateway. The app uses an SSH tunnel to the
|
|
60
|
+
remote host and connects over that tunnel.
|
|
61
|
+
|
|
62
|
+
## Why we prefer launchd
|
|
63
|
+
|
|
64
|
+
- Auto‑start at login.
|
|
65
|
+
- Built‑in restart/KeepAlive semantics.
|
|
66
|
+
- Predictable logs and supervision.
|
|
67
|
+
|
|
68
|
+
If a true child‑process mode is ever needed again, it should be documented as a
|
|
69
|
+
separate, explicit dev‑only mode.
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Setup guide for developers working on the QuantumClaw macOS app"
|
|
3
|
+
read_when:
|
|
4
|
+
- Setting up the macOS development environment
|
|
5
|
+
title: "macOS Dev Setup"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# macOS Developer Setup
|
|
9
|
+
|
|
10
|
+
This guide covers the necessary steps to build and run the QuantumClaw macOS application from source.
|
|
11
|
+
|
|
12
|
+
## Prerequisites
|
|
13
|
+
|
|
14
|
+
Before building the app, ensure you have the following installed:
|
|
15
|
+
|
|
16
|
+
1. **Xcode 26.2+**: Required for Swift development.
|
|
17
|
+
2. **Node.js 24 & pnpm**: Recommended for the gateway, CLI, and packaging scripts. Node 22 LTS, currently `22.16+`, remains supported for compatibility.
|
|
18
|
+
|
|
19
|
+
## 1. Install Dependencies
|
|
20
|
+
|
|
21
|
+
Install the project-wide dependencies:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
pnpm install
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## 2. Build and Package the App
|
|
28
|
+
|
|
29
|
+
To build the macOS app and package it into `dist/QuantumClaw.app`, run:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
./scripts/package-mac-app.sh
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
If you don't have an Apple Developer ID certificate, the script will automatically use **ad-hoc signing** (`-`).
|
|
36
|
+
|
|
37
|
+
For dev run modes, signing flags, and Team ID troubleshooting, see the macOS app README:
|
|
38
|
+
[https://github.com/quantumclaw/quantumclaw/blob/main/apps/macos/README.md](https://github.com/quantumclaw/quantumclaw/blob/main/apps/macos/README.md)
|
|
39
|
+
|
|
40
|
+
> **Note**: Ad-hoc signed apps may trigger security prompts. If the app crashes immediately with "Abort trap 6", see the [Troubleshooting](#troubleshooting) section.
|
|
41
|
+
|
|
42
|
+
## 3. Install the CLI
|
|
43
|
+
|
|
44
|
+
The macOS app expects a global `quantumclaw` CLI install to manage background tasks.
|
|
45
|
+
|
|
46
|
+
**To install it (recommended):**
|
|
47
|
+
|
|
48
|
+
1. Open the QuantumClaw app.
|
|
49
|
+
2. Go to the **General** settings tab.
|
|
50
|
+
3. Click **"Install CLI"**.
|
|
51
|
+
|
|
52
|
+
Alternatively, install it manually:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
npm install -g quantumclaw@<version>
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Troubleshooting
|
|
59
|
+
|
|
60
|
+
### Build Fails: Toolchain or SDK Mismatch
|
|
61
|
+
|
|
62
|
+
The macOS app build expects the latest macOS SDK and Swift 6.2 toolchain.
|
|
63
|
+
|
|
64
|
+
**System dependencies (required):**
|
|
65
|
+
|
|
66
|
+
- **Latest macOS version available in Software Update** (required by Xcode 26.2 SDKs)
|
|
67
|
+
- **Xcode 26.2** (Swift 6.2 toolchain)
|
|
68
|
+
|
|
69
|
+
**Checks:**
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
xcodebuild -version
|
|
73
|
+
xcrun swift --version
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
If versions don’t match, update macOS/Xcode and re-run the build.
|
|
77
|
+
|
|
78
|
+
### App Crashes on Permission Grant
|
|
79
|
+
|
|
80
|
+
If the app crashes when you try to allow **Speech Recognition** or **Microphone** access, it may be due to a corrupted TCC cache or signature mismatch.
|
|
81
|
+
|
|
82
|
+
**Fix:**
|
|
83
|
+
|
|
84
|
+
1. Reset the TCC permissions:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
tccutil reset All ai.quantumclaw.mac.debug
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
2. If that fails, change the `BUNDLE_ID` temporarily in [`scripts/package-mac-app.sh`](https://github.com/quantumclaw/quantumclaw/blob/main/scripts/package-mac-app.sh) to force a "clean slate" from macOS.
|
|
91
|
+
|
|
92
|
+
### Gateway "Starting..." indefinitely
|
|
93
|
+
|
|
94
|
+
If the gateway status stays on "Starting...", check if a zombie process is holding the port:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
quantumclaw gateway status
|
|
98
|
+
quantumclaw gateway stop
|
|
99
|
+
|
|
100
|
+
# If you're not using a LaunchAgent (dev mode / manual runs), find the listener:
|
|
101
|
+
lsof -nP -iTCP:18789 -sTCP:LISTEN
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
If a manual run is holding the port, stop that process (Ctrl+C). As a last resort, kill the PID you found above.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "How the macOS app reports gateway/Baileys health states"
|
|
3
|
+
read_when:
|
|
4
|
+
- Debugging mac app health indicators
|
|
5
|
+
title: "Health Checks (macOS)"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Health Checks on macOS
|
|
9
|
+
|
|
10
|
+
How to see whether the linked channel is healthy from the menu bar app.
|
|
11
|
+
|
|
12
|
+
## Menu bar
|
|
13
|
+
|
|
14
|
+
- Status dot now reflects Baileys health:
|
|
15
|
+
- Green: linked + socket opened recently.
|
|
16
|
+
- Orange: connecting/retrying.
|
|
17
|
+
- Red: logged out or probe failed.
|
|
18
|
+
- Secondary line reads "linked · auth 12m" or shows the failure reason.
|
|
19
|
+
- "Run Health Check" menu item triggers an on-demand probe.
|
|
20
|
+
|
|
21
|
+
## Settings
|
|
22
|
+
|
|
23
|
+
- General tab gains a Health card showing: linked auth age, session-store path/count, last check time, last error/status code, and buttons for Run Health Check / Reveal Logs.
|
|
24
|
+
- Uses a cached snapshot so the UI loads instantly and falls back gracefully when offline.
|
|
25
|
+
- **Channels tab** surfaces channel status + controls for WhatsApp/Telegram (login QR, logout, probe, last disconnect/error).
|
|
26
|
+
|
|
27
|
+
## How the probe works
|
|
28
|
+
|
|
29
|
+
- App runs `quantumclaw health --json` via `ShellExecutor` every ~60s and on demand. The probe loads creds and reports status without sending messages.
|
|
30
|
+
- Cache the last good snapshot and the last error separately to avoid flicker; show the timestamp of each.
|
|
31
|
+
|
|
32
|
+
## When in doubt
|
|
33
|
+
|
|
34
|
+
- You can still use the CLI flow in [Gateway health](/gateway/health) (`quantumclaw status`, `quantumclaw status --deep`, `quantumclaw health --json`) and tail `/tmp/quantumclaw/quantumclaw-*.log` for `web-heartbeat` / `web-reconnect`.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Menu bar icon states and animations for QuantumClaw on macOS"
|
|
3
|
+
read_when:
|
|
4
|
+
- Changing menu bar icon behavior
|
|
5
|
+
title: "Menu Bar Icon"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Menu Bar Icon States
|
|
9
|
+
|
|
10
|
+
Author: steipete · Updated: 2025-12-06 · Scope: macOS app (`apps/macos`)
|
|
11
|
+
|
|
12
|
+
- **Idle:** Normal icon animation (blink, occasional wiggle).
|
|
13
|
+
- **Paused:** Status item uses `appearsDisabled`; no motion.
|
|
14
|
+
- **Voice trigger (big ears):** Voice wake detector calls `AppState.triggerVoiceEars(ttl: nil)` when the wake word is heard, keeping `earBoostActive=true` while the utterance is captured. Ears scale up (1.9x), get circular ear holes for readability, then drop via `stopVoiceEars()` after 1s of silence. Only fired from the in-app voice pipeline.
|
|
15
|
+
- **Working (agent running):** `AppState.isWorking=true` drives a “tail/leg scurry” micro-motion: faster leg wiggle and slight offset while work is in-flight. Currently toggled around WebChat agent runs; add the same toggle around other long tasks when you wire them.
|
|
16
|
+
|
|
17
|
+
Wiring points
|
|
18
|
+
|
|
19
|
+
- Voice wake: runtime/tester call `AppState.triggerVoiceEars(ttl: nil)` on trigger and `stopVoiceEars()` after 1s of silence to match the capture window.
|
|
20
|
+
- Agent activity: set `AppStateStore.shared.setWorking(true/false)` around work spans (already done in WebChat agent call). Keep spans short and reset in `defer` blocks to avoid stuck animations.
|
|
21
|
+
|
|
22
|
+
Shapes & sizes
|
|
23
|
+
|
|
24
|
+
- Base icon drawn in `CritterIconRenderer.makeIcon(blink:legWiggle:earWiggle:earScale:earHoles:)`.
|
|
25
|
+
- Ear scale defaults to `1.0`; voice boost sets `earScale=1.9` and toggles `earHoles=true` without changing overall frame (18×18 pt template image rendered into a 36×36 px Retina backing store).
|
|
26
|
+
- Scurry uses leg wiggle up to ~1.0 with a small horizontal jiggle; it’s additive to any existing idle wiggle.
|
|
27
|
+
|
|
28
|
+
Behavioral notes
|
|
29
|
+
|
|
30
|
+
- No external CLI/broker toggle for ears/working; keep it internal to the app’s own signals to avoid accidental flapping.
|
|
31
|
+
- Keep TTLs short (<10s) so the icon returns to baseline quickly if a job hangs.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "QuantumClaw logging: rolling diagnostics file log + unified log privacy flags"
|
|
3
|
+
read_when:
|
|
4
|
+
- Capturing macOS logs or investigating private data logging
|
|
5
|
+
- Debugging voice wake/session lifecycle issues
|
|
6
|
+
title: "macOS Logging"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Logging (macOS)
|
|
10
|
+
|
|
11
|
+
## Rolling diagnostics file log (Debug pane)
|
|
12
|
+
|
|
13
|
+
QuantumClaw routes macOS app logs through swift-log (unified logging by default) and can write a local, rotating file log to disk when you need a durable capture.
|
|
14
|
+
|
|
15
|
+
- Verbosity: **Debug pane → Logs → App logging → Verbosity**
|
|
16
|
+
- Enable: **Debug pane → Logs → App logging → “Write rolling diagnostics log (JSONL)”**
|
|
17
|
+
- Location: `~/Library/Logs/QuantumClaw/diagnostics.jsonl` (rotates automatically; old files are suffixed with `.1`, `.2`, …)
|
|
18
|
+
- Clear: **Debug pane → Logs → App logging → “Clear”**
|
|
19
|
+
|
|
20
|
+
Notes:
|
|
21
|
+
|
|
22
|
+
- This is **off by default**. Enable only while actively debugging.
|
|
23
|
+
- Treat the file as sensitive; don’t share it without review.
|
|
24
|
+
|
|
25
|
+
## Unified logging private data on macOS
|
|
26
|
+
|
|
27
|
+
Unified logging redacts most payloads unless a subsystem opts into `privacy -off`. Per Peter's write-up on macOS [logging privacy shenanigans](https://steipete.me/posts/2025/logging-privacy-shenanigans) (2025) this is controlled by a plist in `/Library/Preferences/Logging/Subsystems/` keyed by the subsystem name. Only new log entries pick up the flag, so enable it before reproducing an issue.
|
|
28
|
+
|
|
29
|
+
## Enable for QuantumClaw (`ai.quantumclaw`)
|
|
30
|
+
|
|
31
|
+
- Write the plist to a temp file first, then install it atomically as root:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
cat <<'EOF' >/tmp/ai.quantumclaw.plist
|
|
35
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
36
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
37
|
+
<plist version="1.0">
|
|
38
|
+
<dict>
|
|
39
|
+
<key>DEFAULT-OPTIONS</key>
|
|
40
|
+
<dict>
|
|
41
|
+
<key>Enable-Private-Data</key>
|
|
42
|
+
<true/>
|
|
43
|
+
</dict>
|
|
44
|
+
</dict>
|
|
45
|
+
</plist>
|
|
46
|
+
EOF
|
|
47
|
+
sudo install -m 644 -o root -g wheel /tmp/ai.quantumclaw.plist /Library/Preferences/Logging/Subsystems/ai.quantumclaw.plist
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
- No reboot is required; logd notices the file quickly, but only new log lines will include private payloads.
|
|
51
|
+
- View the richer output with the existing helper, e.g. `./scripts/clawlog.sh --category WebChat --last 5m`.
|
|
52
|
+
|
|
53
|
+
## Disable after debugging
|
|
54
|
+
|
|
55
|
+
- Remove the override: `sudo rm /Library/Preferences/Logging/Subsystems/ai.quantumclaw.plist`.
|
|
56
|
+
- Optionally run `sudo log config --reload` to force logd to drop the override immediately.
|
|
57
|
+
- Remember this surface can include phone numbers and message bodies; keep the plist in place only while you actively need the extra detail.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Menu bar status logic and what is surfaced to users"
|
|
3
|
+
read_when:
|
|
4
|
+
- Tweaking mac menu UI or status logic
|
|
5
|
+
title: "Menu Bar"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Menu Bar Status Logic
|
|
9
|
+
|
|
10
|
+
## What is shown
|
|
11
|
+
|
|
12
|
+
- We surface the current agent work state in the menu bar icon and in the first status row of the menu.
|
|
13
|
+
- Health status is hidden while work is active; it returns when all sessions are idle.
|
|
14
|
+
- The “Nodes” block in the menu lists **devices** only (paired nodes via `node.list`), not client/presence entries.
|
|
15
|
+
- A “Usage” section appears under Context when provider usage snapshots are available.
|
|
16
|
+
|
|
17
|
+
## State model
|
|
18
|
+
|
|
19
|
+
- Sessions: events arrive with `runId` (per-run) plus `sessionKey` in the payload. The “main” session is the key `main`; if absent, we fall back to the most recently updated session.
|
|
20
|
+
- Priority: main always wins. If main is active, its state is shown immediately. If main is idle, the most recently active non‑main session is shown. We do not flip‑flop mid‑activity; we only switch when the current session goes idle or main becomes active.
|
|
21
|
+
- Activity kinds:
|
|
22
|
+
- `job`: high‑level command execution (`state: started|streaming|done|error`).
|
|
23
|
+
- `tool`: `phase: start|result` with `toolName` and `meta/args`.
|
|
24
|
+
|
|
25
|
+
## IconState enum (Swift)
|
|
26
|
+
|
|
27
|
+
- `idle`
|
|
28
|
+
- `workingMain(ActivityKind)`
|
|
29
|
+
- `workingOther(ActivityKind)`
|
|
30
|
+
- `overridden(ActivityKind)` (debug override)
|
|
31
|
+
|
|
32
|
+
### ActivityKind → glyph
|
|
33
|
+
|
|
34
|
+
- `exec` → 💻
|
|
35
|
+
- `read` → 📄
|
|
36
|
+
- `write` → ✍️
|
|
37
|
+
- `edit` → 📝
|
|
38
|
+
- `attach` → 📎
|
|
39
|
+
- default → 🛠️
|
|
40
|
+
|
|
41
|
+
### Visual mapping
|
|
42
|
+
|
|
43
|
+
- `idle`: normal critter.
|
|
44
|
+
- `workingMain`: badge with glyph, full tint, leg “working” animation.
|
|
45
|
+
- `workingOther`: badge with glyph, muted tint, no scurry.
|
|
46
|
+
- `overridden`: uses the chosen glyph/tint regardless of activity.
|
|
47
|
+
|
|
48
|
+
## Status row text (menu)
|
|
49
|
+
|
|
50
|
+
- While work is active: `<Session role> · <activity label>`
|
|
51
|
+
- Examples: `Main · exec: pnpm test`, `Other · read: apps/macos/Sources/QuantumClaw/AppState.swift`.
|
|
52
|
+
- When idle: falls back to the health summary.
|
|
53
|
+
|
|
54
|
+
## Event ingestion
|
|
55
|
+
|
|
56
|
+
- Source: control‑channel `agent` events (`ControlChannel.handleAgentEvent`).
|
|
57
|
+
- Parsed fields:
|
|
58
|
+
- `stream: "job"` with `data.state` for start/stop.
|
|
59
|
+
- `stream: "tool"` with `data.phase`, `name`, optional `meta`/`args`.
|
|
60
|
+
- Labels:
|
|
61
|
+
- `exec`: first line of `args.command`.
|
|
62
|
+
- `read`/`write`: shortened path.
|
|
63
|
+
- `edit`: path plus inferred change kind from `meta`/diff counts.
|
|
64
|
+
- fallback: tool name.
|
|
65
|
+
|
|
66
|
+
## Debug override
|
|
67
|
+
|
|
68
|
+
- Settings ▸ Debug ▸ “Icon override” picker:
|
|
69
|
+
- `System (auto)` (default)
|
|
70
|
+
- `Working: main` (per tool kind)
|
|
71
|
+
- `Working: other` (per tool kind)
|
|
72
|
+
- `Idle`
|
|
73
|
+
- Stored via `@AppStorage("iconOverride")`; mapped to `IconState.overridden`.
|
|
74
|
+
|
|
75
|
+
## Testing checklist
|
|
76
|
+
|
|
77
|
+
- Trigger main session job: verify icon switches immediately and status row shows main label.
|
|
78
|
+
- Trigger non‑main session job while main idle: icon/status shows non‑main; stays stable until it finishes.
|
|
79
|
+
- Start main while other active: icon flips to main instantly.
|
|
80
|
+
- Rapid tool bursts: ensure badge does not flicker (TTL grace on tool results).
|
|
81
|
+
- Health row reappears once all sessions idle.
|