@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,181 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Zalo personal account support via native zca-js (QR login), capabilities, and configuration"
|
|
3
|
+
read_when:
|
|
4
|
+
- Setting up Zalo Personal for QuantumClaw
|
|
5
|
+
- Debugging Zalo Personal login or message flow
|
|
6
|
+
title: "Zalo Personal"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Zalo Personal (unofficial)
|
|
10
|
+
|
|
11
|
+
Status: experimental. This integration automates a **personal Zalo account** via native `zca-js` inside QuantumClaw.
|
|
12
|
+
|
|
13
|
+
> **Warning:** This is an unofficial integration and may result in account suspension/ban. Use at your own risk.
|
|
14
|
+
|
|
15
|
+
## Plugin required
|
|
16
|
+
|
|
17
|
+
Zalo Personal ships as a plugin and is not bundled with the core install.
|
|
18
|
+
|
|
19
|
+
- Install via CLI: `quantumclaw plugins install @quantumclaw/zalouser`
|
|
20
|
+
- Or from a source checkout: `quantumclaw plugins install ./extensions/zalouser`
|
|
21
|
+
- Details: [Plugins](/tools/plugin)
|
|
22
|
+
|
|
23
|
+
No external `zca`/`openzca` CLI binary is required.
|
|
24
|
+
|
|
25
|
+
## Quick setup (beginner)
|
|
26
|
+
|
|
27
|
+
1. Install the plugin (see above).
|
|
28
|
+
2. Login (QR, on the Gateway machine):
|
|
29
|
+
- `quantumclaw channels login --channel zalouser`
|
|
30
|
+
- Scan the QR code with the Zalo mobile app.
|
|
31
|
+
3. Enable the channel:
|
|
32
|
+
|
|
33
|
+
```json5
|
|
34
|
+
{
|
|
35
|
+
channels: {
|
|
36
|
+
zalouser: {
|
|
37
|
+
enabled: true,
|
|
38
|
+
dmPolicy: "pairing",
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
4. Restart the Gateway (or finish setup).
|
|
45
|
+
5. DM access defaults to pairing; approve the pairing code on first contact.
|
|
46
|
+
|
|
47
|
+
## What it is
|
|
48
|
+
|
|
49
|
+
- Runs entirely in-process via `zca-js`.
|
|
50
|
+
- Uses native event listeners to receive inbound messages.
|
|
51
|
+
- Sends replies directly through the JS API (text/media/link).
|
|
52
|
+
- Designed for “personal account” use cases where Zalo Bot API is not available.
|
|
53
|
+
|
|
54
|
+
## Naming
|
|
55
|
+
|
|
56
|
+
Channel id is `zalouser` to make it explicit this automates a **personal Zalo user account** (unofficial). We keep `zalo` reserved for a potential future official Zalo API integration.
|
|
57
|
+
|
|
58
|
+
## Finding IDs (directory)
|
|
59
|
+
|
|
60
|
+
Use the directory CLI to discover peers/groups and their IDs:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
quantumclaw directory self --channel zalouser
|
|
64
|
+
quantumclaw directory peers list --channel zalouser --query "name"
|
|
65
|
+
quantumclaw directory groups list --channel zalouser --query "work"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Limits
|
|
69
|
+
|
|
70
|
+
- Outbound text is chunked to ~2000 characters (Zalo client limits).
|
|
71
|
+
- Streaming is blocked by default.
|
|
72
|
+
|
|
73
|
+
## Access control (DMs)
|
|
74
|
+
|
|
75
|
+
`channels.zalouser.dmPolicy` supports: `pairing | allowlist | open | disabled` (default: `pairing`).
|
|
76
|
+
|
|
77
|
+
`channels.zalouser.allowFrom` accepts user IDs or names. During setup, names are resolved to IDs using the plugin's in-process contact lookup.
|
|
78
|
+
|
|
79
|
+
Approve via:
|
|
80
|
+
|
|
81
|
+
- `quantumclaw pairing list zalouser`
|
|
82
|
+
- `quantumclaw pairing approve zalouser <code>`
|
|
83
|
+
|
|
84
|
+
## Group access (optional)
|
|
85
|
+
|
|
86
|
+
- Default: `channels.zalouser.groupPolicy = "open"` (groups allowed). Use `channels.defaults.groupPolicy` to override the default when unset.
|
|
87
|
+
- Restrict to an allowlist with:
|
|
88
|
+
- `channels.zalouser.groupPolicy = "allowlist"`
|
|
89
|
+
- `channels.zalouser.groups` (keys should be stable group IDs; names are resolved to IDs on startup when possible)
|
|
90
|
+
- `channels.zalouser.groupAllowFrom` (controls which senders in allowed groups can trigger the bot)
|
|
91
|
+
- Block all groups: `channels.zalouser.groupPolicy = "disabled"`.
|
|
92
|
+
- The configure wizard can prompt for group allowlists.
|
|
93
|
+
- On startup, QuantumClaw resolves group/user names in allowlists to IDs and logs the mapping.
|
|
94
|
+
- Group allowlist matching is ID-only by default. Unresolved names are ignored for auth unless `channels.zalouser.dangerouslyAllowNameMatching: true` is enabled.
|
|
95
|
+
- `channels.zalouser.dangerouslyAllowNameMatching: true` is a break-glass compatibility mode that re-enables mutable group-name matching.
|
|
96
|
+
- If `groupAllowFrom` is unset, runtime falls back to `allowFrom` for group sender checks.
|
|
97
|
+
- Sender checks apply to both normal group messages and control commands (for example `/new`, `/reset`).
|
|
98
|
+
|
|
99
|
+
Example:
|
|
100
|
+
|
|
101
|
+
```json5
|
|
102
|
+
{
|
|
103
|
+
channels: {
|
|
104
|
+
zalouser: {
|
|
105
|
+
groupPolicy: "allowlist",
|
|
106
|
+
groupAllowFrom: ["1471383327500481391"],
|
|
107
|
+
groups: {
|
|
108
|
+
"123456789": { allow: true },
|
|
109
|
+
"Work Chat": { allow: true },
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Group mention gating
|
|
117
|
+
|
|
118
|
+
- `channels.zalouser.groups.<group>.requireMention` controls whether group replies require a mention.
|
|
119
|
+
- Resolution order: exact group id/name -> normalized group slug -> `*` -> default (`true`).
|
|
120
|
+
- This applies both to allowlisted groups and open group mode.
|
|
121
|
+
- Authorized control commands (for example `/new`) can bypass mention gating.
|
|
122
|
+
- When a group message is skipped because mention is required, QuantumClaw stores it as pending group history and includes it on the next processed group message.
|
|
123
|
+
- Group history limit defaults to `messages.groupChat.historyLimit` (fallback `50`). You can override per account with `channels.zalouser.historyLimit`.
|
|
124
|
+
|
|
125
|
+
Example:
|
|
126
|
+
|
|
127
|
+
```json5
|
|
128
|
+
{
|
|
129
|
+
channels: {
|
|
130
|
+
zalouser: {
|
|
131
|
+
groupPolicy: "allowlist",
|
|
132
|
+
groups: {
|
|
133
|
+
"*": { allow: true, requireMention: true },
|
|
134
|
+
"Work Chat": { allow: true, requireMention: false },
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
},
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## Multi-account
|
|
142
|
+
|
|
143
|
+
Accounts map to `zalouser` profiles in QuantumClaw state. Example:
|
|
144
|
+
|
|
145
|
+
```json5
|
|
146
|
+
{
|
|
147
|
+
channels: {
|
|
148
|
+
zalouser: {
|
|
149
|
+
enabled: true,
|
|
150
|
+
defaultAccount: "default",
|
|
151
|
+
accounts: {
|
|
152
|
+
work: { enabled: true, profile: "work" },
|
|
153
|
+
},
|
|
154
|
+
},
|
|
155
|
+
},
|
|
156
|
+
}
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## Typing, reactions, and delivery acknowledgements
|
|
160
|
+
|
|
161
|
+
- QuantumClaw sends a typing event before dispatching a reply (best-effort).
|
|
162
|
+
- Message reaction action `react` is supported for `zalouser` in channel actions.
|
|
163
|
+
- Use `remove: true` to remove a specific reaction emoji from a message.
|
|
164
|
+
- Reaction semantics: [Reactions](/tools/reactions)
|
|
165
|
+
- For inbound messages that include event metadata, QuantumClaw sends delivered + seen acknowledgements (best-effort).
|
|
166
|
+
|
|
167
|
+
## Troubleshooting
|
|
168
|
+
|
|
169
|
+
**Login doesn't stick:**
|
|
170
|
+
|
|
171
|
+
- `quantumclaw channels status --probe`
|
|
172
|
+
- Re-login: `quantumclaw channels logout --channel zalouser && quantumclaw channels login --channel zalouser`
|
|
173
|
+
|
|
174
|
+
**Allowlist/group name didn't resolve:**
|
|
175
|
+
|
|
176
|
+
- Use numeric IDs in `allowFrom`/`groupAllowFrom`/`groups`, or exact friend/group names.
|
|
177
|
+
|
|
178
|
+
**Upgraded from old CLI-based setup:**
|
|
179
|
+
|
|
180
|
+
- Remove any old external `zca` process assumptions.
|
|
181
|
+
- The channel now runs fully in QuantumClaw without external CLI binaries.
|
package/docs/ci.md
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: CI Pipeline
|
|
3
|
+
summary: "CI job graph, scope gates, and local command equivalents"
|
|
4
|
+
read_when:
|
|
5
|
+
- You need to understand why a CI job did or did not run
|
|
6
|
+
- You are debugging failing GitHub Actions checks
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# CI Pipeline
|
|
10
|
+
|
|
11
|
+
The CI runs on every push to `main` and every pull request. It uses smart scoping to skip expensive jobs when only unrelated areas changed.
|
|
12
|
+
|
|
13
|
+
## Job Overview
|
|
14
|
+
|
|
15
|
+
| Job | Purpose | When it runs |
|
|
16
|
+
| ----------------- | ------------------------------------------------------- | ---------------------------------- |
|
|
17
|
+
| `docs-scope` | Detect docs-only changes | Always |
|
|
18
|
+
| `changed-scope` | Detect which areas changed (node/macos/android/windows) | Non-doc changes |
|
|
19
|
+
| `check` | TypeScript types, lint, format | Non-docs, node changes |
|
|
20
|
+
| `check-docs` | Markdown lint + broken link check | Docs changed |
|
|
21
|
+
| `secrets` | Detect leaked secrets | Always |
|
|
22
|
+
| `build-artifacts` | Build dist once, share with `release-check` | Pushes to `main`, node changes |
|
|
23
|
+
| `release-check` | Validate npm pack contents | Pushes to `main` after build |
|
|
24
|
+
| `checks` | Node tests + protocol check on PRs; Bun compat on push | Non-docs, node changes |
|
|
25
|
+
| `compat-node22` | Minimum supported Node runtime compatibility | Pushes to `main`, node changes |
|
|
26
|
+
| `checks-windows` | Windows-specific tests | Non-docs, windows-relevant changes |
|
|
27
|
+
| `macos` | Swift lint/build/test + TS tests | PRs with macos changes |
|
|
28
|
+
| `android` | Gradle build + tests | Non-docs, android changes |
|
|
29
|
+
|
|
30
|
+
## Fail-Fast Order
|
|
31
|
+
|
|
32
|
+
Jobs are ordered so cheap checks fail before expensive ones run:
|
|
33
|
+
|
|
34
|
+
1. `docs-scope` + `changed-scope` + `check` + `secrets` (parallel, cheap gates first)
|
|
35
|
+
2. PRs: `checks` (Linux Node test split into 2 shards), `checks-windows`, `macos`, `android`
|
|
36
|
+
3. Pushes to `main`: `build-artifacts` + `release-check` + Bun compat + `compat-node22`
|
|
37
|
+
|
|
38
|
+
Scope logic lives in `scripts/ci-changed-scope.mjs` and is covered by unit tests in `src/scripts/ci-changed-scope.test.ts`.
|
|
39
|
+
|
|
40
|
+
## Runners
|
|
41
|
+
|
|
42
|
+
| Runner | Jobs |
|
|
43
|
+
| -------------------------------- | ------------------------------------------ |
|
|
44
|
+
| `blacksmith-16vcpu-ubuntu-2404` | Most Linux jobs, including scope detection |
|
|
45
|
+
| `blacksmith-32vcpu-windows-2025` | `checks-windows` |
|
|
46
|
+
| `macos-latest` | `macos`, `ios` |
|
|
47
|
+
|
|
48
|
+
## Local Equivalents
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
pnpm check # types + lint + format
|
|
52
|
+
pnpm test # vitest tests
|
|
53
|
+
pnpm check:docs # docs format + lint + broken links
|
|
54
|
+
pnpm release:check # validate npm pack
|
|
55
|
+
```
|
package/docs/cli/acp.md
ADDED
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Run the ACP bridge for IDE integrations"
|
|
3
|
+
read_when:
|
|
4
|
+
- Setting up ACP-based IDE integrations
|
|
5
|
+
- Debugging ACP session routing to the Gateway
|
|
6
|
+
title: "acp"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# acp
|
|
10
|
+
|
|
11
|
+
Run the [Agent Client Protocol (ACP)](https://agentclientprotocol.com/) bridge that talks to an QuantumClaw Gateway.
|
|
12
|
+
|
|
13
|
+
This command speaks ACP over stdio for IDEs and forwards prompts to the Gateway
|
|
14
|
+
over WebSocket. It keeps ACP sessions mapped to Gateway session keys.
|
|
15
|
+
|
|
16
|
+
`quantumclaw acp` is a Gateway-backed ACP bridge, not a full ACP-native editor
|
|
17
|
+
runtime. It focuses on session routing, prompt delivery, and basic streaming
|
|
18
|
+
updates.
|
|
19
|
+
|
|
20
|
+
## Compatibility Matrix
|
|
21
|
+
|
|
22
|
+
| ACP area | Status | Notes |
|
|
23
|
+
| --------------------------------------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
24
|
+
| `initialize`, `newSession`, `prompt`, `cancel` | Implemented | Core bridge flow over stdio to Gateway chat/send + abort. |
|
|
25
|
+
| `listSessions`, slash commands | Implemented | Session list works against Gateway session state; commands are advertised via `available_commands_update`. |
|
|
26
|
+
| `loadSession` | Partial | Rebinds the ACP session to a Gateway session key and replays stored user/assistant text history. Tool/system history is not reconstructed yet. |
|
|
27
|
+
| Prompt content (`text`, embedded `resource`, images) | Partial | Text/resources are flattened into chat input; images become Gateway attachments. |
|
|
28
|
+
| Session modes | Partial | `session/set_mode` is supported and the bridge exposes initial Gateway-backed session controls for thought level, tool verbosity, reasoning, usage detail, and elevated actions. Broader ACP-native mode/config surfaces are still out of scope. |
|
|
29
|
+
| Session info and usage updates | Partial | The bridge emits `session_info_update` and best-effort `usage_update` notifications from cached Gateway session snapshots. Usage is approximate and only sent when Gateway token totals are marked fresh. |
|
|
30
|
+
| Tool streaming | Partial | `tool_call` / `tool_call_update` events include raw I/O, text content, and best-effort file locations when Gateway tool args/results expose them. Embedded terminals and richer diff-native output are still not exposed. |
|
|
31
|
+
| Per-session MCP servers (`mcpServers`) | Unsupported | Bridge mode rejects per-session MCP server requests. Configure MCP on the QuantumClaw gateway or agent instead. |
|
|
32
|
+
| Client filesystem methods (`fs/read_text_file`, `fs/write_text_file`) | Unsupported | The bridge does not call ACP client filesystem methods. |
|
|
33
|
+
| Client terminal methods (`terminal/*`) | Unsupported | The bridge does not create ACP client terminals or stream terminal ids through tool calls. |
|
|
34
|
+
| Session plans / thought streaming | Unsupported | The bridge currently emits output text and tool status, not ACP plan or thought updates. |
|
|
35
|
+
|
|
36
|
+
## Known Limitations
|
|
37
|
+
|
|
38
|
+
- `loadSession` replays stored user and assistant text history, but it does not
|
|
39
|
+
reconstruct historic tool calls, system notices, or richer ACP-native event
|
|
40
|
+
types.
|
|
41
|
+
- If multiple ACP clients share the same Gateway session key, event and cancel
|
|
42
|
+
routing are best-effort rather than strictly isolated per client. Prefer the
|
|
43
|
+
default isolated `acp:<uuid>` sessions when you need clean editor-local
|
|
44
|
+
turns.
|
|
45
|
+
- Gateway stop states are translated into ACP stop reasons, but that mapping is
|
|
46
|
+
less expressive than a fully ACP-native runtime.
|
|
47
|
+
- Initial session controls currently surface a focused subset of Gateway knobs:
|
|
48
|
+
thought level, tool verbosity, reasoning, usage detail, and elevated
|
|
49
|
+
actions. Model selection and exec-host controls are not yet exposed as ACP
|
|
50
|
+
config options.
|
|
51
|
+
- `session_info_update` and `usage_update` are derived from Gateway session
|
|
52
|
+
snapshots, not live ACP-native runtime accounting. Usage is approximate,
|
|
53
|
+
carries no cost data, and is only emitted when the Gateway marks total token
|
|
54
|
+
data as fresh.
|
|
55
|
+
- Tool follow-along data is best-effort. The bridge can surface file paths that
|
|
56
|
+
appear in known tool args/results, but it does not yet emit ACP terminals or
|
|
57
|
+
structured file diffs.
|
|
58
|
+
|
|
59
|
+
## Usage
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
quantumclaw acp
|
|
63
|
+
|
|
64
|
+
# Remote Gateway
|
|
65
|
+
quantumclaw acp --url wss://gateway-host:18789 --token <token>
|
|
66
|
+
|
|
67
|
+
# Remote Gateway (token from file)
|
|
68
|
+
quantumclaw acp --url wss://gateway-host:18789 --token-file ~/.quantumclaw/gateway.token
|
|
69
|
+
|
|
70
|
+
# Attach to an existing session key
|
|
71
|
+
quantumclaw acp --session agent:main:main
|
|
72
|
+
|
|
73
|
+
# Attach by label (must already exist)
|
|
74
|
+
quantumclaw acp --session-label "support inbox"
|
|
75
|
+
|
|
76
|
+
# Reset the session key before the first prompt
|
|
77
|
+
quantumclaw acp --session agent:main:main --reset-session
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## ACP client (debug)
|
|
81
|
+
|
|
82
|
+
Use the built-in ACP client to sanity-check the bridge without an IDE.
|
|
83
|
+
It spawns the ACP bridge and lets you type prompts interactively.
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
quantumclaw acp client
|
|
87
|
+
|
|
88
|
+
# Point the spawned bridge at a remote Gateway
|
|
89
|
+
quantumclaw acp client --server-args --url wss://gateway-host:18789 --token-file ~/.quantumclaw/gateway.token
|
|
90
|
+
|
|
91
|
+
# Override the server command (default: quantumclaw)
|
|
92
|
+
quantumclaw acp client --server "node" --server-args quantumclaw.mjs acp --url ws://127.0.0.1:19001
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Permission model (client debug mode):
|
|
96
|
+
|
|
97
|
+
- Auto-approval is allowlist-based and only applies to trusted core tool IDs.
|
|
98
|
+
- `read` auto-approval is scoped to the current working directory (`--cwd` when set).
|
|
99
|
+
- Unknown/non-core tool names, out-of-scope reads, and dangerous tools always require explicit prompt approval.
|
|
100
|
+
- Server-provided `toolCall.kind` is treated as untrusted metadata (not an authorization source).
|
|
101
|
+
|
|
102
|
+
## How to use this
|
|
103
|
+
|
|
104
|
+
Use ACP when an IDE (or other client) speaks Agent Client Protocol and you want
|
|
105
|
+
it to drive an QuantumClaw Gateway session.
|
|
106
|
+
|
|
107
|
+
1. Ensure the Gateway is running (local or remote).
|
|
108
|
+
2. Configure the Gateway target (config or flags).
|
|
109
|
+
3. Point your IDE to run `quantumclaw acp` over stdio.
|
|
110
|
+
|
|
111
|
+
Example config (persisted):
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
quantumclaw config set gateway.remote.url wss://gateway-host:18789
|
|
115
|
+
quantumclaw config set gateway.remote.token <token>
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Example direct run (no config write):
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
quantumclaw acp --url wss://gateway-host:18789 --token <token>
|
|
122
|
+
# preferred for local process safety
|
|
123
|
+
quantumclaw acp --url wss://gateway-host:18789 --token-file ~/.quantumclaw/gateway.token
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Selecting agents
|
|
127
|
+
|
|
128
|
+
ACP does not pick agents directly. It routes by the Gateway session key.
|
|
129
|
+
|
|
130
|
+
Use agent-scoped session keys to target a specific agent:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
quantumclaw acp --session agent:main:main
|
|
134
|
+
quantumclaw acp --session agent:design:main
|
|
135
|
+
quantumclaw acp --session agent:qa:bug-123
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Each ACP session maps to a single Gateway session key. One agent can have many
|
|
139
|
+
sessions; ACP defaults to an isolated `acp:<uuid>` session unless you override
|
|
140
|
+
the key or label.
|
|
141
|
+
|
|
142
|
+
Per-session `mcpServers` are not supported in bridge mode. If an ACP client
|
|
143
|
+
sends them during `newSession` or `loadSession`, the bridge returns a clear
|
|
144
|
+
error instead of silently ignoring them.
|
|
145
|
+
|
|
146
|
+
## Use from `acpx` (Codex, Claude, other ACP clients)
|
|
147
|
+
|
|
148
|
+
If you want a coding agent such as Codex or Claude Code to talk to your
|
|
149
|
+
QuantumClaw bot over ACP, use `acpx` with its built-in `quantumclaw` target.
|
|
150
|
+
|
|
151
|
+
Typical flow:
|
|
152
|
+
|
|
153
|
+
1. Run the Gateway and make sure the ACP bridge can reach it.
|
|
154
|
+
2. Point `acpx quantumclaw` at `quantumclaw acp`.
|
|
155
|
+
3. Target the QuantumClaw session key you want the coding agent to use.
|
|
156
|
+
|
|
157
|
+
Examples:
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
# One-shot request into your default QuantumClaw ACP session
|
|
161
|
+
acpx quantumclaw exec "Summarize the active QuantumClaw session state."
|
|
162
|
+
|
|
163
|
+
# Persistent named session for follow-up turns
|
|
164
|
+
acpx quantumclaw sessions ensure --name codex-bridge
|
|
165
|
+
acpx quantumclaw -s codex-bridge --cwd /path/to/repo \
|
|
166
|
+
"Ask my QuantumClaw work agent for recent context relevant to this repo."
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
If you want `acpx quantumclaw` to target a specific Gateway and session key every
|
|
170
|
+
time, override the `quantumclaw` agent command in `~/.acpx/config.json`:
|
|
171
|
+
|
|
172
|
+
```json
|
|
173
|
+
{
|
|
174
|
+
"agents": {
|
|
175
|
+
"quantumclaw": {
|
|
176
|
+
"command": "env QUANTUMCLAW_HIDE_BANNER=1 QUANTUMCLAW_SUPPRESS_NOTES=1 quantumclaw acp --url ws://127.0.0.1:18789 --token-file ~/.quantumclaw/gateway.token --session agent:main:main"
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
For a repo-local QuantumClaw checkout, use the direct CLI entrypoint instead of the
|
|
183
|
+
dev runner so the ACP stream stays clean. For example:
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
env QUANTUMCLAW_HIDE_BANNER=1 QUANTUMCLAW_SUPPRESS_NOTES=1 node quantumclaw.mjs acp ...
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
This is the easiest way to let Codex, Claude Code, or another ACP-aware client
|
|
190
|
+
pull contextual information from an QuantumClaw agent without scraping a terminal.
|
|
191
|
+
|
|
192
|
+
## Zed editor setup
|
|
193
|
+
|
|
194
|
+
Add a custom ACP agent in `~/.config/zed/settings.json` (or use Zed’s Settings UI):
|
|
195
|
+
|
|
196
|
+
```json
|
|
197
|
+
{
|
|
198
|
+
"agent_servers": {
|
|
199
|
+
"QuantumClaw ACP": {
|
|
200
|
+
"type": "custom",
|
|
201
|
+
"command": "quantumclaw",
|
|
202
|
+
"args": ["acp"],
|
|
203
|
+
"env": {}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
To target a specific Gateway or agent:
|
|
210
|
+
|
|
211
|
+
```json
|
|
212
|
+
{
|
|
213
|
+
"agent_servers": {
|
|
214
|
+
"QuantumClaw ACP": {
|
|
215
|
+
"type": "custom",
|
|
216
|
+
"command": "quantumclaw",
|
|
217
|
+
"args": [
|
|
218
|
+
"acp",
|
|
219
|
+
"--url",
|
|
220
|
+
"wss://gateway-host:18789",
|
|
221
|
+
"--token",
|
|
222
|
+
"<token>",
|
|
223
|
+
"--session",
|
|
224
|
+
"agent:design:main"
|
|
225
|
+
],
|
|
226
|
+
"env": {}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
In Zed, open the Agent panel and select “QuantumClaw ACP” to start a thread.
|
|
233
|
+
|
|
234
|
+
## Session mapping
|
|
235
|
+
|
|
236
|
+
By default, ACP sessions get an isolated Gateway session key with an `acp:` prefix.
|
|
237
|
+
To reuse a known session, pass a session key or label:
|
|
238
|
+
|
|
239
|
+
- `--session <key>`: use a specific Gateway session key.
|
|
240
|
+
- `--session-label <label>`: resolve an existing session by label.
|
|
241
|
+
- `--reset-session`: mint a fresh session id for that key (same key, new transcript).
|
|
242
|
+
|
|
243
|
+
If your ACP client supports metadata, you can override per session:
|
|
244
|
+
|
|
245
|
+
```json
|
|
246
|
+
{
|
|
247
|
+
"_meta": {
|
|
248
|
+
"sessionKey": "agent:main:main",
|
|
249
|
+
"sessionLabel": "support inbox",
|
|
250
|
+
"resetSession": true
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
Learn more about session keys at [/concepts/session](/concepts/session).
|
|
256
|
+
|
|
257
|
+
## Options
|
|
258
|
+
|
|
259
|
+
- `--url <url>`: Gateway WebSocket URL (defaults to gateway.remote.url when configured).
|
|
260
|
+
- `--token <token>`: Gateway auth token.
|
|
261
|
+
- `--token-file <path>`: read Gateway auth token from file.
|
|
262
|
+
- `--password <password>`: Gateway auth password.
|
|
263
|
+
- `--password-file <path>`: read Gateway auth password from file.
|
|
264
|
+
- `--session <key>`: default session key.
|
|
265
|
+
- `--session-label <label>`: default session label to resolve.
|
|
266
|
+
- `--require-existing`: fail if the session key/label does not exist.
|
|
267
|
+
- `--reset-session`: reset the session key before first use.
|
|
268
|
+
- `--no-prefix-cwd`: do not prefix prompts with the working directory.
|
|
269
|
+
- `--verbose, -v`: verbose logging to stderr.
|
|
270
|
+
|
|
271
|
+
Security note:
|
|
272
|
+
|
|
273
|
+
- `--token` and `--password` can be visible in local process listings on some systems.
|
|
274
|
+
- Prefer `--token-file`/`--password-file` or environment variables (`QUANTUMCLAW_GATEWAY_TOKEN`, `QUANTUMCLAW_GATEWAY_PASSWORD`).
|
|
275
|
+
- Gateway auth resolution follows the shared contract used by other Gateway clients:
|
|
276
|
+
- local mode: env (`QUANTUMCLAW_GATEWAY_*`) -> `gateway.auth.*` -> `gateway.remote.*` fallback only when `gateway.auth.*` is unset (configured-but-unresolved local SecretRefs fail closed)
|
|
277
|
+
- remote mode: `gateway.remote.*` with env/config fallback per remote precedence rules
|
|
278
|
+
- `--url` is override-safe and does not reuse implicit config/env credentials; pass explicit `--token`/`--password` (or file variants)
|
|
279
|
+
- ACP runtime backend child processes receive `QUANTUMCLAW_SHELL=acp`, which can be used for context-specific shell/profile rules.
|
|
280
|
+
- `quantumclaw acp client` sets `QUANTUMCLAW_SHELL=acp-client` on the spawned bridge process.
|
|
281
|
+
|
|
282
|
+
### `acp client` options
|
|
283
|
+
|
|
284
|
+
- `--cwd <dir>`: working directory for the ACP session.
|
|
285
|
+
- `--server <command>`: ACP server command (default: `quantumclaw`).
|
|
286
|
+
- `--server-args <args...>`: extra arguments passed to the ACP server.
|
|
287
|
+
- `--server-verbose`: enable verbose logging on the ACP server.
|
|
288
|
+
- `--verbose, -v`: verbose client logging.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "CLI reference for `quantumclaw agent` (send one agent turn via the Gateway)"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want to run one agent turn from scripts (optionally deliver reply)
|
|
5
|
+
title: "agent"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# `quantumclaw agent`
|
|
9
|
+
|
|
10
|
+
Run an agent turn via the Gateway (use `--local` for embedded).
|
|
11
|
+
Use `--agent <id>` to target a configured agent directly.
|
|
12
|
+
|
|
13
|
+
Related:
|
|
14
|
+
|
|
15
|
+
- Agent send tool: [Agent send](/tools/agent-send)
|
|
16
|
+
|
|
17
|
+
## Examples
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
quantumclaw agent --to +15555550123 --message "status update" --deliver
|
|
21
|
+
quantumclaw agent --agent ops --message "Summarize logs"
|
|
22
|
+
quantumclaw agent --session-id 1234 --message "Summarize inbox" --thinking medium
|
|
23
|
+
quantumclaw agent --agent ops --message "Generate report" --deliver --reply-channel slack --reply-to "#reports"
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Notes
|
|
27
|
+
|
|
28
|
+
- When this command triggers `models.json` regeneration, SecretRef-managed provider credentials are persisted as non-secret markers (for example env var names, `secretref-env:ENV_VAR_NAME`, or `secretref-managed`), not resolved secret plaintext.
|
|
29
|
+
- Marker writes are source-authoritative: QuantumClaw persists markers from the active source config snapshot, not from resolved runtime secret values.
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "CLI reference for `quantumclaw agents` (list/add/delete/bindings/bind/unbind/set identity)"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want multiple isolated agents (workspaces + routing + auth)
|
|
5
|
+
title: "agents"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# `quantumclaw agents`
|
|
9
|
+
|
|
10
|
+
Manage isolated agents (workspaces + auth + routing).
|
|
11
|
+
|
|
12
|
+
Related:
|
|
13
|
+
|
|
14
|
+
- Multi-agent routing: [Multi-Agent Routing](/concepts/multi-agent)
|
|
15
|
+
- Agent workspace: [Agent workspace](/concepts/agent-workspace)
|
|
16
|
+
|
|
17
|
+
## Examples
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
quantumclaw agents list
|
|
21
|
+
quantumclaw agents add work --workspace ~/.quantumclaw/workspace-work
|
|
22
|
+
quantumclaw agents bindings
|
|
23
|
+
quantumclaw agents bind --agent work --bind telegram:ops
|
|
24
|
+
quantumclaw agents unbind --agent work --bind telegram:ops
|
|
25
|
+
quantumclaw agents set-identity --workspace ~/.quantumclaw/workspace --from-identity
|
|
26
|
+
quantumclaw agents set-identity --agent main --avatar avatars/quantumclaw.png
|
|
27
|
+
quantumclaw agents delete work
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Routing bindings
|
|
31
|
+
|
|
32
|
+
Use routing bindings to pin inbound channel traffic to a specific agent.
|
|
33
|
+
|
|
34
|
+
List bindings:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
quantumclaw agents bindings
|
|
38
|
+
quantumclaw agents bindings --agent work
|
|
39
|
+
quantumclaw agents bindings --json
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Add bindings:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
quantumclaw agents bind --agent work --bind telegram:ops --bind discord:guild-a
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
If you omit `accountId` (`--bind <channel>`), QuantumClaw resolves it from channel defaults and plugin setup hooks when available.
|
|
49
|
+
|
|
50
|
+
### Binding scope behavior
|
|
51
|
+
|
|
52
|
+
- A binding without `accountId` matches the channel default account only.
|
|
53
|
+
- `accountId: "*"` is the channel-wide fallback (all accounts) and is less specific than an explicit account binding.
|
|
54
|
+
- If the same agent already has a matching channel binding without `accountId`, and you later bind with an explicit or resolved `accountId`, QuantumClaw upgrades that existing binding in place instead of adding a duplicate.
|
|
55
|
+
|
|
56
|
+
Example:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# initial channel-only binding
|
|
60
|
+
quantumclaw agents bind --agent work --bind telegram
|
|
61
|
+
|
|
62
|
+
# later upgrade to account-scoped binding
|
|
63
|
+
quantumclaw agents bind --agent work --bind telegram:ops
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
After the upgrade, routing for that binding is scoped to `telegram:ops`. If you also want default-account routing, add it explicitly (for example `--bind telegram:default`).
|
|
67
|
+
|
|
68
|
+
Remove bindings:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
quantumclaw agents unbind --agent work --bind telegram:ops
|
|
72
|
+
quantumclaw agents unbind --agent work --all
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Identity files
|
|
76
|
+
|
|
77
|
+
Each agent workspace can include an `IDENTITY.md` at the workspace root:
|
|
78
|
+
|
|
79
|
+
- Example path: `~/.quantumclaw/workspace/IDENTITY.md`
|
|
80
|
+
- `set-identity --from-identity` reads from the workspace root (or an explicit `--identity-file`)
|
|
81
|
+
|
|
82
|
+
Avatar paths resolve relative to the workspace root.
|
|
83
|
+
|
|
84
|
+
## Set identity
|
|
85
|
+
|
|
86
|
+
`set-identity` writes fields into `agents.list[].identity`:
|
|
87
|
+
|
|
88
|
+
- `name`
|
|
89
|
+
- `theme`
|
|
90
|
+
- `emoji`
|
|
91
|
+
- `avatar` (workspace-relative path, http(s) URL, or data URI)
|
|
92
|
+
|
|
93
|
+
Load from `IDENTITY.md`:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
quantumclaw agents set-identity --workspace ~/.quantumclaw/workspace --from-identity
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Override fields explicitly:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
quantumclaw agents set-identity --agent main --name "QuantumClaw" --emoji "🦞" --avatar avatars/quantumclaw.png
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Config sample:
|
|
106
|
+
|
|
107
|
+
```json5
|
|
108
|
+
{
|
|
109
|
+
agents: {
|
|
110
|
+
list: [
|
|
111
|
+
{
|
|
112
|
+
id: "main",
|
|
113
|
+
identity: {
|
|
114
|
+
name: "QuantumClaw",
|
|
115
|
+
theme: "space lobster",
|
|
116
|
+
emoji: "🦞",
|
|
117
|
+
avatar: "avatars/quantumclaw.png",
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
}
|
|
123
|
+
```
|