@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,367 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Legacy iMessage support via imsg (JSON-RPC over stdio). New setups should use BlueBubbles."
|
|
3
|
+
read_when:
|
|
4
|
+
- Setting up iMessage support
|
|
5
|
+
- Debugging iMessage send/receive
|
|
6
|
+
title: "iMessage"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# iMessage (legacy: imsg)
|
|
10
|
+
|
|
11
|
+
<Warning>
|
|
12
|
+
For new iMessage deployments, use <a href="/channels/bluebubbles">BlueBubbles</a>.
|
|
13
|
+
|
|
14
|
+
The `imsg` integration is legacy and may be removed in a future release.
|
|
15
|
+
</Warning>
|
|
16
|
+
|
|
17
|
+
Status: legacy external CLI integration. Gateway spawns `imsg rpc` and communicates over JSON-RPC on stdio (no separate daemon/port).
|
|
18
|
+
|
|
19
|
+
<CardGroup cols={3}>
|
|
20
|
+
<Card title="BlueBubbles (recommended)" icon="message-circle" href="/channels/bluebubbles">
|
|
21
|
+
Preferred iMessage path for new setups.
|
|
22
|
+
</Card>
|
|
23
|
+
<Card title="Pairing" icon="link" href="/channels/pairing">
|
|
24
|
+
iMessage DMs default to pairing mode.
|
|
25
|
+
</Card>
|
|
26
|
+
<Card title="Configuration reference" icon="settings" href="/gateway/configuration-reference#imessage">
|
|
27
|
+
Full iMessage field reference.
|
|
28
|
+
</Card>
|
|
29
|
+
</CardGroup>
|
|
30
|
+
|
|
31
|
+
## Quick setup
|
|
32
|
+
|
|
33
|
+
<Tabs>
|
|
34
|
+
<Tab title="Local Mac (fast path)">
|
|
35
|
+
<Steps>
|
|
36
|
+
<Step title="Install and verify imsg">
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
brew install steipete/tap/imsg
|
|
40
|
+
imsg rpc --help
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
</Step>
|
|
44
|
+
|
|
45
|
+
<Step title="Configure QuantumClaw">
|
|
46
|
+
|
|
47
|
+
```json5
|
|
48
|
+
{
|
|
49
|
+
channels: {
|
|
50
|
+
imessage: {
|
|
51
|
+
enabled: true,
|
|
52
|
+
cliPath: "/usr/local/bin/imsg",
|
|
53
|
+
dbPath: "/Users/<you>/Library/Messages/chat.db",
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
</Step>
|
|
60
|
+
|
|
61
|
+
<Step title="Start gateway">
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
quantumclaw gateway
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
</Step>
|
|
68
|
+
|
|
69
|
+
<Step title="Approve first DM pairing (default dmPolicy)">
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
quantumclaw pairing list imessage
|
|
73
|
+
quantumclaw pairing approve imessage <CODE>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Pairing requests expire after 1 hour.
|
|
77
|
+
</Step>
|
|
78
|
+
</Steps>
|
|
79
|
+
|
|
80
|
+
</Tab>
|
|
81
|
+
|
|
82
|
+
<Tab title="Remote Mac over SSH">
|
|
83
|
+
QuantumClaw only requires a stdio-compatible `cliPath`, so you can point `cliPath` at a wrapper script that SSHes to a remote Mac and runs `imsg`.
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
#!/usr/bin/env bash
|
|
87
|
+
exec ssh -T gateway-host imsg "$@"
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Recommended config when attachments are enabled:
|
|
91
|
+
|
|
92
|
+
```json5
|
|
93
|
+
{
|
|
94
|
+
channels: {
|
|
95
|
+
imessage: {
|
|
96
|
+
enabled: true,
|
|
97
|
+
cliPath: "~/.quantumclaw/scripts/imsg-ssh",
|
|
98
|
+
remoteHost: "user@gateway-host", // used for SCP attachment fetches
|
|
99
|
+
includeAttachments: true,
|
|
100
|
+
// Optional: override allowed attachment roots.
|
|
101
|
+
// Defaults include /Users/*/Library/Messages/Attachments
|
|
102
|
+
attachmentRoots: ["/Users/*/Library/Messages/Attachments"],
|
|
103
|
+
remoteAttachmentRoots: ["/Users/*/Library/Messages/Attachments"],
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
If `remoteHost` is not set, QuantumClaw attempts to auto-detect it by parsing the SSH wrapper script.
|
|
110
|
+
`remoteHost` must be `host` or `user@host` (no spaces or SSH options).
|
|
111
|
+
QuantumClaw uses strict host-key checking for SCP, so the relay host key must already exist in `~/.ssh/known_hosts`.
|
|
112
|
+
Attachment paths are validated against allowed roots (`attachmentRoots` / `remoteAttachmentRoots`).
|
|
113
|
+
|
|
114
|
+
</Tab>
|
|
115
|
+
</Tabs>
|
|
116
|
+
|
|
117
|
+
## Requirements and permissions (macOS)
|
|
118
|
+
|
|
119
|
+
- Messages must be signed in on the Mac running `imsg`.
|
|
120
|
+
- Full Disk Access is required for the process context running QuantumClaw/`imsg` (Messages DB access).
|
|
121
|
+
- Automation permission is required to send messages through Messages.app.
|
|
122
|
+
|
|
123
|
+
<Tip>
|
|
124
|
+
Permissions are granted per process context. If gateway runs headless (LaunchAgent/SSH), run a one-time interactive command in that same context to trigger prompts:
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
imsg chats --limit 1
|
|
128
|
+
# or
|
|
129
|
+
imsg send <handle> "test"
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
</Tip>
|
|
133
|
+
|
|
134
|
+
## Access control and routing
|
|
135
|
+
|
|
136
|
+
<Tabs>
|
|
137
|
+
<Tab title="DM policy">
|
|
138
|
+
`channels.imessage.dmPolicy` controls direct messages:
|
|
139
|
+
|
|
140
|
+
- `pairing` (default)
|
|
141
|
+
- `allowlist`
|
|
142
|
+
- `open` (requires `allowFrom` to include `"*"`)
|
|
143
|
+
- `disabled`
|
|
144
|
+
|
|
145
|
+
Allowlist field: `channels.imessage.allowFrom`.
|
|
146
|
+
|
|
147
|
+
Allowlist entries can be handles or chat targets (`chat_id:*`, `chat_guid:*`, `chat_identifier:*`).
|
|
148
|
+
|
|
149
|
+
</Tab>
|
|
150
|
+
|
|
151
|
+
<Tab title="Group policy + mentions">
|
|
152
|
+
`channels.imessage.groupPolicy` controls group handling:
|
|
153
|
+
|
|
154
|
+
- `allowlist` (default when configured)
|
|
155
|
+
- `open`
|
|
156
|
+
- `disabled`
|
|
157
|
+
|
|
158
|
+
Group sender allowlist: `channels.imessage.groupAllowFrom`.
|
|
159
|
+
|
|
160
|
+
Runtime fallback: if `groupAllowFrom` is unset, iMessage group sender checks fall back to `allowFrom` when available.
|
|
161
|
+
Runtime note: if `channels.imessage` is completely missing, runtime falls back to `groupPolicy="allowlist"` and logs a warning (even if `channels.defaults.groupPolicy` is set).
|
|
162
|
+
|
|
163
|
+
Mention gating for groups:
|
|
164
|
+
|
|
165
|
+
- iMessage has no native mention metadata
|
|
166
|
+
- mention detection uses regex patterns (`agents.list[].groupChat.mentionPatterns`, fallback `messages.groupChat.mentionPatterns`)
|
|
167
|
+
- with no configured patterns, mention gating cannot be enforced
|
|
168
|
+
|
|
169
|
+
Control commands from authorized senders can bypass mention gating in groups.
|
|
170
|
+
|
|
171
|
+
</Tab>
|
|
172
|
+
|
|
173
|
+
<Tab title="Sessions and deterministic replies">
|
|
174
|
+
- DMs use direct routing; groups use group routing.
|
|
175
|
+
- With default `session.dmScope=main`, iMessage DMs collapse into the agent main session.
|
|
176
|
+
- Group sessions are isolated (`agent:<agentId>:imessage:group:<chat_id>`).
|
|
177
|
+
- Replies route back to iMessage using originating channel/target metadata.
|
|
178
|
+
|
|
179
|
+
Group-ish thread behavior:
|
|
180
|
+
|
|
181
|
+
Some multi-participant iMessage threads can arrive with `is_group=false`.
|
|
182
|
+
If that `chat_id` is explicitly configured under `channels.imessage.groups`, QuantumClaw treats it as group traffic (group gating + group session isolation).
|
|
183
|
+
|
|
184
|
+
</Tab>
|
|
185
|
+
</Tabs>
|
|
186
|
+
|
|
187
|
+
## Deployment patterns
|
|
188
|
+
|
|
189
|
+
<AccordionGroup>
|
|
190
|
+
<Accordion title="Dedicated bot macOS user (separate iMessage identity)">
|
|
191
|
+
Use a dedicated Apple ID and macOS user so bot traffic is isolated from your personal Messages profile.
|
|
192
|
+
|
|
193
|
+
Typical flow:
|
|
194
|
+
|
|
195
|
+
1. Create/sign in a dedicated macOS user.
|
|
196
|
+
2. Sign into Messages with the bot Apple ID in that user.
|
|
197
|
+
3. Install `imsg` in that user.
|
|
198
|
+
4. Create SSH wrapper so QuantumClaw can run `imsg` in that user context.
|
|
199
|
+
5. Point `channels.imessage.accounts.<id>.cliPath` and `.dbPath` to that user profile.
|
|
200
|
+
|
|
201
|
+
First run may require GUI approvals (Automation + Full Disk Access) in that bot user session.
|
|
202
|
+
|
|
203
|
+
</Accordion>
|
|
204
|
+
|
|
205
|
+
<Accordion title="Remote Mac over Tailscale (example)">
|
|
206
|
+
Common topology:
|
|
207
|
+
|
|
208
|
+
- gateway runs on Linux/VM
|
|
209
|
+
- iMessage + `imsg` runs on a Mac in your tailnet
|
|
210
|
+
- `cliPath` wrapper uses SSH to run `imsg`
|
|
211
|
+
- `remoteHost` enables SCP attachment fetches
|
|
212
|
+
|
|
213
|
+
Example:
|
|
214
|
+
|
|
215
|
+
```json5
|
|
216
|
+
{
|
|
217
|
+
channels: {
|
|
218
|
+
imessage: {
|
|
219
|
+
enabled: true,
|
|
220
|
+
cliPath: "~/.quantumclaw/scripts/imsg-ssh",
|
|
221
|
+
remoteHost: "bot@mac-mini.tailnet-1234.ts.net",
|
|
222
|
+
includeAttachments: true,
|
|
223
|
+
dbPath: "/Users/bot/Library/Messages/chat.db",
|
|
224
|
+
},
|
|
225
|
+
},
|
|
226
|
+
}
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
#!/usr/bin/env bash
|
|
231
|
+
exec ssh -T bot@mac-mini.tailnet-1234.ts.net imsg "$@"
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
Use SSH keys so both SSH and SCP are non-interactive.
|
|
235
|
+
Ensure the host key is trusted first (for example `ssh bot@mac-mini.tailnet-1234.ts.net`) so `known_hosts` is populated.
|
|
236
|
+
|
|
237
|
+
</Accordion>
|
|
238
|
+
|
|
239
|
+
<Accordion title="Multi-account pattern">
|
|
240
|
+
iMessage supports per-account config under `channels.imessage.accounts`.
|
|
241
|
+
|
|
242
|
+
Each account can override fields such as `cliPath`, `dbPath`, `allowFrom`, `groupPolicy`, `mediaMaxMb`, history settings, and attachment root allowlists.
|
|
243
|
+
|
|
244
|
+
</Accordion>
|
|
245
|
+
</AccordionGroup>
|
|
246
|
+
|
|
247
|
+
## Media, chunking, and delivery targets
|
|
248
|
+
|
|
249
|
+
<AccordionGroup>
|
|
250
|
+
<Accordion title="Attachments and media">
|
|
251
|
+
- inbound attachment ingestion is optional: `channels.imessage.includeAttachments`
|
|
252
|
+
- remote attachment paths can be fetched via SCP when `remoteHost` is set
|
|
253
|
+
- attachment paths must match allowed roots:
|
|
254
|
+
- `channels.imessage.attachmentRoots` (local)
|
|
255
|
+
- `channels.imessage.remoteAttachmentRoots` (remote SCP mode)
|
|
256
|
+
- default root pattern: `/Users/*/Library/Messages/Attachments`
|
|
257
|
+
- SCP uses strict host-key checking (`StrictHostKeyChecking=yes`)
|
|
258
|
+
- outbound media size uses `channels.imessage.mediaMaxMb` (default 16 MB)
|
|
259
|
+
</Accordion>
|
|
260
|
+
|
|
261
|
+
<Accordion title="Outbound chunking">
|
|
262
|
+
- text chunk limit: `channels.imessage.textChunkLimit` (default 4000)
|
|
263
|
+
- chunk mode: `channels.imessage.chunkMode`
|
|
264
|
+
- `length` (default)
|
|
265
|
+
- `newline` (paragraph-first splitting)
|
|
266
|
+
</Accordion>
|
|
267
|
+
|
|
268
|
+
<Accordion title="Addressing formats">
|
|
269
|
+
Preferred explicit targets:
|
|
270
|
+
|
|
271
|
+
- `chat_id:123` (recommended for stable routing)
|
|
272
|
+
- `chat_guid:...`
|
|
273
|
+
- `chat_identifier:...`
|
|
274
|
+
|
|
275
|
+
Handle targets are also supported:
|
|
276
|
+
|
|
277
|
+
- `imessage:+1555...`
|
|
278
|
+
- `sms:+1555...`
|
|
279
|
+
- `user@example.com`
|
|
280
|
+
|
|
281
|
+
```bash
|
|
282
|
+
imsg chats --limit 20
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
</Accordion>
|
|
286
|
+
</AccordionGroup>
|
|
287
|
+
|
|
288
|
+
## Config writes
|
|
289
|
+
|
|
290
|
+
iMessage allows channel-initiated config writes by default (for `/config set|unset` when `commands.config: true`).
|
|
291
|
+
|
|
292
|
+
Disable:
|
|
293
|
+
|
|
294
|
+
```json5
|
|
295
|
+
{
|
|
296
|
+
channels: {
|
|
297
|
+
imessage: {
|
|
298
|
+
configWrites: false,
|
|
299
|
+
},
|
|
300
|
+
},
|
|
301
|
+
}
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
## Troubleshooting
|
|
305
|
+
|
|
306
|
+
<AccordionGroup>
|
|
307
|
+
<Accordion title="imsg not found or RPC unsupported">
|
|
308
|
+
Validate the binary and RPC support:
|
|
309
|
+
|
|
310
|
+
```bash
|
|
311
|
+
imsg rpc --help
|
|
312
|
+
quantumclaw channels status --probe
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
If probe reports RPC unsupported, update `imsg`.
|
|
316
|
+
|
|
317
|
+
</Accordion>
|
|
318
|
+
|
|
319
|
+
<Accordion title="DMs are ignored">
|
|
320
|
+
Check:
|
|
321
|
+
|
|
322
|
+
- `channels.imessage.dmPolicy`
|
|
323
|
+
- `channels.imessage.allowFrom`
|
|
324
|
+
- pairing approvals (`quantumclaw pairing list imessage`)
|
|
325
|
+
|
|
326
|
+
</Accordion>
|
|
327
|
+
|
|
328
|
+
<Accordion title="Group messages are ignored">
|
|
329
|
+
Check:
|
|
330
|
+
|
|
331
|
+
- `channels.imessage.groupPolicy`
|
|
332
|
+
- `channels.imessage.groupAllowFrom`
|
|
333
|
+
- `channels.imessage.groups` allowlist behavior
|
|
334
|
+
- mention pattern configuration (`agents.list[].groupChat.mentionPatterns`)
|
|
335
|
+
|
|
336
|
+
</Accordion>
|
|
337
|
+
|
|
338
|
+
<Accordion title="Remote attachments fail">
|
|
339
|
+
Check:
|
|
340
|
+
|
|
341
|
+
- `channels.imessage.remoteHost`
|
|
342
|
+
- `channels.imessage.remoteAttachmentRoots`
|
|
343
|
+
- SSH/SCP key auth from the gateway host
|
|
344
|
+
- host key exists in `~/.ssh/known_hosts` on the gateway host
|
|
345
|
+
- remote path readability on the Mac running Messages
|
|
346
|
+
|
|
347
|
+
</Accordion>
|
|
348
|
+
|
|
349
|
+
<Accordion title="macOS permission prompts were missed">
|
|
350
|
+
Re-run in an interactive GUI terminal in the same user/session context and approve prompts:
|
|
351
|
+
|
|
352
|
+
```bash
|
|
353
|
+
imsg chats --limit 1
|
|
354
|
+
imsg send <handle> "test"
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
Confirm Full Disk Access + Automation are granted for the process context that runs QuantumClaw/`imsg`.
|
|
358
|
+
|
|
359
|
+
</Accordion>
|
|
360
|
+
</AccordionGroup>
|
|
361
|
+
|
|
362
|
+
## Configuration reference pointers
|
|
363
|
+
|
|
364
|
+
- [Configuration reference - iMessage](/gateway/configuration-reference#imessage)
|
|
365
|
+
- [Gateway configuration](/gateway/configuration)
|
|
366
|
+
- [Pairing](/channels/pairing)
|
|
367
|
+
- [BlueBubbles](/channels/bluebubbles)
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Messaging platforms QuantumClaw can connect to"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want to choose a chat channel for QuantumClaw
|
|
5
|
+
- You need a quick overview of supported messaging platforms
|
|
6
|
+
title: "Chat Channels"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Chat Channels
|
|
10
|
+
|
|
11
|
+
QuantumClaw can talk to you on any chat app you already use. Each channel connects via the Gateway.
|
|
12
|
+
Text is supported everywhere; media and reactions vary by channel.
|
|
13
|
+
|
|
14
|
+
## Supported channels
|
|
15
|
+
|
|
16
|
+
- [BlueBubbles](/channels/bluebubbles) — **Recommended for iMessage**; uses the BlueBubbles macOS server REST API with full feature support (edit, unsend, effects, reactions, group management — edit currently broken on macOS 26 Tahoe).
|
|
17
|
+
- [Discord](/channels/discord) — Discord Bot API + Gateway; supports servers, channels, and DMs.
|
|
18
|
+
- [Feishu](/channels/feishu) — Feishu/Lark bot via WebSocket (plugin, installed separately).
|
|
19
|
+
- [Google Chat](/channels/googlechat) — Google Chat API app via HTTP webhook.
|
|
20
|
+
- [iMessage (legacy)](/channels/imessage) — Legacy macOS integration via imsg CLI (deprecated, use BlueBubbles for new setups).
|
|
21
|
+
- [IRC](/channels/irc) — Classic IRC servers; channels + DMs with pairing/allowlist controls.
|
|
22
|
+
- [LINE](/channels/line) — LINE Messaging API bot (plugin, installed separately).
|
|
23
|
+
- [Matrix](/channels/matrix) — Matrix protocol (plugin, installed separately).
|
|
24
|
+
- [Mattermost](/channels/mattermost) — Bot API + WebSocket; channels, groups, DMs (plugin, installed separately).
|
|
25
|
+
- [Microsoft Teams](/channels/msteams) — Bot Framework; enterprise support (plugin, installed separately).
|
|
26
|
+
- [Nextcloud Talk](/channels/nextcloud-talk) — Self-hosted chat via Nextcloud Talk (plugin, installed separately).
|
|
27
|
+
- [Nostr](/channels/nostr) — Decentralized DMs via NIP-04 (plugin, installed separately).
|
|
28
|
+
- [Signal](/channels/signal) — signal-cli; privacy-focused.
|
|
29
|
+
- [Synology Chat](/channels/synology-chat) — Synology NAS Chat via outgoing+incoming webhooks (plugin, installed separately).
|
|
30
|
+
- [Slack](/channels/slack) — Bolt SDK; workspace apps.
|
|
31
|
+
- [Telegram](/channels/telegram) — Bot API via grammY; supports groups.
|
|
32
|
+
- [Tlon](/channels/tlon) — Urbit-based messenger (plugin, installed separately).
|
|
33
|
+
- [Twitch](/channels/twitch) — Twitch chat via IRC connection (plugin, installed separately).
|
|
34
|
+
- [WebChat](/web/webchat) — Gateway WebChat UI over WebSocket.
|
|
35
|
+
- [WhatsApp](/channels/whatsapp) — Most popular; uses Baileys and requires QR pairing.
|
|
36
|
+
- [Zalo](/channels/zalo) — Zalo Bot API; Vietnam's popular messenger (plugin, installed separately).
|
|
37
|
+
- [Zalo Personal](/channels/zalouser) — Zalo personal account via QR login (plugin, installed separately).
|
|
38
|
+
|
|
39
|
+
## Notes
|
|
40
|
+
|
|
41
|
+
- Channels can run simultaneously; configure multiple and QuantumClaw will route per chat.
|
|
42
|
+
- Fastest setup is usually **Telegram** (simple bot token). WhatsApp requires QR pairing and
|
|
43
|
+
stores more state on disk.
|
|
44
|
+
- Group behavior varies by channel; see [Groups](/channels/groups).
|
|
45
|
+
- DM pairing and allowlists are enforced for safety; see [Security](/gateway/security).
|
|
46
|
+
- Troubleshooting: [Channel troubleshooting](/channels/troubleshooting).
|
|
47
|
+
- Model providers are documented separately; see [Model Providers](/providers/models).
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: IRC
|
|
3
|
+
summary: "IRC plugin setup, access controls, and troubleshooting"
|
|
4
|
+
read_when:
|
|
5
|
+
- You want to connect QuantumClaw to IRC channels or DMs
|
|
6
|
+
- You are configuring IRC allowlists, group policy, or mention gating
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# IRC
|
|
10
|
+
|
|
11
|
+
Use IRC when you want QuantumClaw in classic channels (`#room`) and direct messages.
|
|
12
|
+
IRC ships as an extension plugin, but it is configured in the main config under `channels.irc`.
|
|
13
|
+
|
|
14
|
+
## Quick start
|
|
15
|
+
|
|
16
|
+
1. Enable IRC config in `~/.quantumclaw/quantumclaw.json`.
|
|
17
|
+
2. Set at least:
|
|
18
|
+
|
|
19
|
+
```json5
|
|
20
|
+
{
|
|
21
|
+
channels: {
|
|
22
|
+
irc: {
|
|
23
|
+
enabled: true,
|
|
24
|
+
host: "irc.libera.chat",
|
|
25
|
+
port: 6697,
|
|
26
|
+
tls: true,
|
|
27
|
+
nick: "quantumclaw-bot",
|
|
28
|
+
channels: ["#quantumclaw"],
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
3. Start/restart gateway:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
quantumclaw gateway run
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Security defaults
|
|
41
|
+
|
|
42
|
+
- `channels.irc.dmPolicy` defaults to `"pairing"`.
|
|
43
|
+
- `channels.irc.groupPolicy` defaults to `"allowlist"`.
|
|
44
|
+
- With `groupPolicy="allowlist"`, set `channels.irc.groups` to define allowed channels.
|
|
45
|
+
- Use TLS (`channels.irc.tls=true`) unless you intentionally accept plaintext transport.
|
|
46
|
+
|
|
47
|
+
## Access control
|
|
48
|
+
|
|
49
|
+
There are two separate “gates” for IRC channels:
|
|
50
|
+
|
|
51
|
+
1. **Channel access** (`groupPolicy` + `groups`): whether the bot accepts messages from a channel at all.
|
|
52
|
+
2. **Sender access** (`groupAllowFrom` / per-channel `groups["#channel"].allowFrom`): who is allowed to trigger the bot inside that channel.
|
|
53
|
+
|
|
54
|
+
Config keys:
|
|
55
|
+
|
|
56
|
+
- DM allowlist (DM sender access): `channels.irc.allowFrom`
|
|
57
|
+
- Group sender allowlist (channel sender access): `channels.irc.groupAllowFrom`
|
|
58
|
+
- Per-channel controls (channel + sender + mention rules): `channels.irc.groups["#channel"]`
|
|
59
|
+
- `channels.irc.groupPolicy="open"` allows unconfigured channels (**still mention-gated by default**)
|
|
60
|
+
|
|
61
|
+
Allowlist entries should use stable sender identities (`nick!user@host`).
|
|
62
|
+
Bare nick matching is mutable and only enabled when `channels.irc.dangerouslyAllowNameMatching: true`.
|
|
63
|
+
|
|
64
|
+
### Common gotcha: `allowFrom` is for DMs, not channels
|
|
65
|
+
|
|
66
|
+
If you see logs like:
|
|
67
|
+
|
|
68
|
+
- `irc: drop group sender alice!ident@host (policy=allowlist)`
|
|
69
|
+
|
|
70
|
+
…it means the sender wasn’t allowed for **group/channel** messages. Fix it by either:
|
|
71
|
+
|
|
72
|
+
- setting `channels.irc.groupAllowFrom` (global for all channels), or
|
|
73
|
+
- setting per-channel sender allowlists: `channels.irc.groups["#channel"].allowFrom`
|
|
74
|
+
|
|
75
|
+
Example (allow anyone in `#tuirc-dev` to talk to the bot):
|
|
76
|
+
|
|
77
|
+
```json55
|
|
78
|
+
{
|
|
79
|
+
channels: {
|
|
80
|
+
irc: {
|
|
81
|
+
groupPolicy: "allowlist",
|
|
82
|
+
groups: {
|
|
83
|
+
"#tuirc-dev": { allowFrom: ["*"] },
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Reply triggering (mentions)
|
|
91
|
+
|
|
92
|
+
Even if a channel is allowed (via `groupPolicy` + `groups`) and the sender is allowed, QuantumClaw defaults to **mention-gating** in group contexts.
|
|
93
|
+
|
|
94
|
+
That means you may see logs like `drop channel … (missing-mention)` unless the message includes a mention pattern that matches the bot.
|
|
95
|
+
|
|
96
|
+
To make the bot reply in an IRC channel **without needing a mention**, disable mention gating for that channel:
|
|
97
|
+
|
|
98
|
+
```json55
|
|
99
|
+
{
|
|
100
|
+
channels: {
|
|
101
|
+
irc: {
|
|
102
|
+
groupPolicy: "allowlist",
|
|
103
|
+
groups: {
|
|
104
|
+
"#tuirc-dev": {
|
|
105
|
+
requireMention: false,
|
|
106
|
+
allowFrom: ["*"],
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Or to allow **all** IRC channels (no per-channel allowlist) and still reply without mentions:
|
|
115
|
+
|
|
116
|
+
```json55
|
|
117
|
+
{
|
|
118
|
+
channels: {
|
|
119
|
+
irc: {
|
|
120
|
+
groupPolicy: "open",
|
|
121
|
+
groups: {
|
|
122
|
+
"*": { requireMention: false, allowFrom: ["*"] },
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Security note (recommended for public channels)
|
|
130
|
+
|
|
131
|
+
If you allow `allowFrom: ["*"]` in a public channel, anyone can prompt the bot.
|
|
132
|
+
To reduce risk, restrict tools for that channel.
|
|
133
|
+
|
|
134
|
+
### Same tools for everyone in the channel
|
|
135
|
+
|
|
136
|
+
```json55
|
|
137
|
+
{
|
|
138
|
+
channels: {
|
|
139
|
+
irc: {
|
|
140
|
+
groups: {
|
|
141
|
+
"#tuirc-dev": {
|
|
142
|
+
allowFrom: ["*"],
|
|
143
|
+
tools: {
|
|
144
|
+
deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"],
|
|
145
|
+
},
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
},
|
|
149
|
+
},
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Different tools per sender (owner gets more power)
|
|
154
|
+
|
|
155
|
+
Use `toolsBySender` to apply a stricter policy to `"*"` and a looser one to your nick:
|
|
156
|
+
|
|
157
|
+
```json55
|
|
158
|
+
{
|
|
159
|
+
channels: {
|
|
160
|
+
irc: {
|
|
161
|
+
groups: {
|
|
162
|
+
"#tuirc-dev": {
|
|
163
|
+
allowFrom: ["*"],
|
|
164
|
+
toolsBySender: {
|
|
165
|
+
"*": {
|
|
166
|
+
deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"],
|
|
167
|
+
},
|
|
168
|
+
"id:eigen": {
|
|
169
|
+
deny: ["gateway", "nodes", "cron"],
|
|
170
|
+
},
|
|
171
|
+
},
|
|
172
|
+
},
|
|
173
|
+
},
|
|
174
|
+
},
|
|
175
|
+
},
|
|
176
|
+
}
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Notes:
|
|
180
|
+
|
|
181
|
+
- `toolsBySender` keys should use `id:` for IRC sender identity values:
|
|
182
|
+
`id:eigen` or `id:eigen!~eigen@174.127.248.171` for stronger matching.
|
|
183
|
+
- Legacy unprefixed keys are still accepted and matched as `id:` only.
|
|
184
|
+
- The first matching sender policy wins; `"*"` is the wildcard fallback.
|
|
185
|
+
|
|
186
|
+
For more on group access vs mention-gating (and how they interact), see: [/channels/groups](/channels/groups).
|
|
187
|
+
|
|
188
|
+
## NickServ
|
|
189
|
+
|
|
190
|
+
To identify with NickServ after connect:
|
|
191
|
+
|
|
192
|
+
```json5
|
|
193
|
+
{
|
|
194
|
+
channels: {
|
|
195
|
+
irc: {
|
|
196
|
+
nickserv: {
|
|
197
|
+
enabled: true,
|
|
198
|
+
service: "NickServ",
|
|
199
|
+
password: "your-nickserv-password",
|
|
200
|
+
},
|
|
201
|
+
},
|
|
202
|
+
},
|
|
203
|
+
}
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Optional one-time registration on connect:
|
|
207
|
+
|
|
208
|
+
```json5
|
|
209
|
+
{
|
|
210
|
+
channels: {
|
|
211
|
+
irc: {
|
|
212
|
+
nickserv: {
|
|
213
|
+
register: true,
|
|
214
|
+
registerEmail: "bot@example.com",
|
|
215
|
+
},
|
|
216
|
+
},
|
|
217
|
+
},
|
|
218
|
+
}
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
Disable `register` after the nick is registered to avoid repeated REGISTER attempts.
|
|
222
|
+
|
|
223
|
+
## Environment variables
|
|
224
|
+
|
|
225
|
+
Default account supports:
|
|
226
|
+
|
|
227
|
+
- `IRC_HOST`
|
|
228
|
+
- `IRC_PORT`
|
|
229
|
+
- `IRC_TLS`
|
|
230
|
+
- `IRC_NICK`
|
|
231
|
+
- `IRC_USERNAME`
|
|
232
|
+
- `IRC_REALNAME`
|
|
233
|
+
- `IRC_PASSWORD`
|
|
234
|
+
- `IRC_CHANNELS` (comma-separated)
|
|
235
|
+
- `IRC_NICKSERV_PASSWORD`
|
|
236
|
+
- `IRC_NICKSERV_REGISTER_EMAIL`
|
|
237
|
+
|
|
238
|
+
## Troubleshooting
|
|
239
|
+
|
|
240
|
+
- If the bot connects but never replies in channels, verify `channels.irc.groups` **and** whether mention-gating is dropping messages (`missing-mention`). If you want it to reply without pings, set `requireMention:false` for the channel.
|
|
241
|
+
- If login fails, verify nick availability and server password.
|
|
242
|
+
- If TLS fails on a custom network, verify host/port and certificate setup.
|