@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,747 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Feishu bot overview, features, and configuration"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want to connect a Feishu/Lark bot
|
|
5
|
+
- You are configuring the Feishu channel
|
|
6
|
+
title: Feishu
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Feishu bot
|
|
10
|
+
|
|
11
|
+
Feishu (Lark) is a team chat platform used by companies for messaging and collaboration. This plugin connects QuantumClaw to a Feishu/Lark bot using the platform’s WebSocket event subscription so messages can be received without exposing a public webhook URL.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Bundled plugin
|
|
16
|
+
|
|
17
|
+
Feishu ships bundled with current QuantumClaw releases, so no separate plugin install
|
|
18
|
+
is required.
|
|
19
|
+
|
|
20
|
+
If you are using an older build or a custom install that does not include bundled
|
|
21
|
+
Feishu, install it manually:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
quantumclaw plugins install @quantumclaw/feishu
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Quickstart
|
|
30
|
+
|
|
31
|
+
There are two ways to add the Feishu channel:
|
|
32
|
+
|
|
33
|
+
### Method 1: onboarding (recommended)
|
|
34
|
+
|
|
35
|
+
If you just installed QuantumClaw, run onboarding:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
quantumclaw onboard
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
The wizard guides you through:
|
|
42
|
+
|
|
43
|
+
1. Creating a Feishu app and collecting credentials
|
|
44
|
+
2. Configuring app credentials in QuantumClaw
|
|
45
|
+
3. Starting the gateway
|
|
46
|
+
|
|
47
|
+
✅ **After configuration**, check gateway status:
|
|
48
|
+
|
|
49
|
+
- `quantumclaw gateway status`
|
|
50
|
+
- `quantumclaw logs --follow`
|
|
51
|
+
|
|
52
|
+
### Method 2: CLI setup
|
|
53
|
+
|
|
54
|
+
If you already completed initial install, add the channel via CLI:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
quantumclaw channels add
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Choose **Feishu**, then enter the App ID and App Secret.
|
|
61
|
+
|
|
62
|
+
✅ **After configuration**, manage the gateway:
|
|
63
|
+
|
|
64
|
+
- `quantumclaw gateway status`
|
|
65
|
+
- `quantumclaw gateway restart`
|
|
66
|
+
- `quantumclaw logs --follow`
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Step 1: Create a Feishu app
|
|
71
|
+
|
|
72
|
+
### 1. Open Feishu Open Platform
|
|
73
|
+
|
|
74
|
+
Visit [Feishu Open Platform](https://open.feishu.cn/app) and sign in.
|
|
75
|
+
|
|
76
|
+
Lark (global) tenants should use [https://open.larksuite.com/app](https://open.larksuite.com/app) and set `domain: "lark"` in the Feishu config.
|
|
77
|
+
|
|
78
|
+
### 2. Create an app
|
|
79
|
+
|
|
80
|
+
1. Click **Create enterprise app**
|
|
81
|
+
2. Fill in the app name + description
|
|
82
|
+
3. Choose an app icon
|
|
83
|
+
|
|
84
|
+

|
|
85
|
+
|
|
86
|
+
### 3. Copy credentials
|
|
87
|
+
|
|
88
|
+
From **Credentials & Basic Info**, copy:
|
|
89
|
+
|
|
90
|
+
- **App ID** (format: `cli_xxx`)
|
|
91
|
+
- **App Secret**
|
|
92
|
+
|
|
93
|
+
❗ **Important:** keep the App Secret private.
|
|
94
|
+
|
|
95
|
+

|
|
96
|
+
|
|
97
|
+
### 4. Configure permissions
|
|
98
|
+
|
|
99
|
+
On **Permissions**, click **Batch import** and paste:
|
|
100
|
+
|
|
101
|
+
```json
|
|
102
|
+
{
|
|
103
|
+
"scopes": {
|
|
104
|
+
"tenant": [
|
|
105
|
+
"aily:file:read",
|
|
106
|
+
"aily:file:write",
|
|
107
|
+
"application:application.app_message_stats.overview:readonly",
|
|
108
|
+
"application:application:self_manage",
|
|
109
|
+
"application:bot.menu:write",
|
|
110
|
+
"cardkit:card:read",
|
|
111
|
+
"cardkit:card:write",
|
|
112
|
+
"contact:user.employee_id:readonly",
|
|
113
|
+
"corehr:file:download",
|
|
114
|
+
"event:ip_list",
|
|
115
|
+
"im:chat.access_event.bot_p2p_chat:read",
|
|
116
|
+
"im:chat.members:bot_access",
|
|
117
|
+
"im:message",
|
|
118
|
+
"im:message.group_at_msg:readonly",
|
|
119
|
+
"im:message.p2p_msg:readonly",
|
|
120
|
+
"im:message:readonly",
|
|
121
|
+
"im:message:send_as_bot",
|
|
122
|
+
"im:resource"
|
|
123
|
+
],
|
|
124
|
+
"user": ["aily:file:read", "aily:file:write", "im:chat.access_event.bot_p2p_chat:read"]
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+

|
|
130
|
+
|
|
131
|
+
### 5. Enable bot capability
|
|
132
|
+
|
|
133
|
+
In **App Capability** > **Bot**:
|
|
134
|
+
|
|
135
|
+
1. Enable bot capability
|
|
136
|
+
2. Set the bot name
|
|
137
|
+
|
|
138
|
+

|
|
139
|
+
|
|
140
|
+
### 6. Configure event subscription
|
|
141
|
+
|
|
142
|
+
⚠️ **Important:** before setting event subscription, make sure:
|
|
143
|
+
|
|
144
|
+
1. You already ran `quantumclaw channels add` for Feishu
|
|
145
|
+
2. The gateway is running (`quantumclaw gateway status`)
|
|
146
|
+
|
|
147
|
+
In **Event Subscription**:
|
|
148
|
+
|
|
149
|
+
1. Choose **Use long connection to receive events** (WebSocket)
|
|
150
|
+
2. Add the event: `im.message.receive_v1`
|
|
151
|
+
|
|
152
|
+
⚠️ If the gateway is not running, the long-connection setup may fail to save.
|
|
153
|
+
|
|
154
|
+

|
|
155
|
+
|
|
156
|
+
### 7. Publish the app
|
|
157
|
+
|
|
158
|
+
1. Create a version in **Version Management & Release**
|
|
159
|
+
2. Submit for review and publish
|
|
160
|
+
3. Wait for admin approval (enterprise apps usually auto-approve)
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Step 2: Configure QuantumClaw
|
|
165
|
+
|
|
166
|
+
### Configure with the wizard (recommended)
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
quantumclaw channels add
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Choose **Feishu** and paste your App ID + App Secret.
|
|
173
|
+
|
|
174
|
+
### Configure via config file
|
|
175
|
+
|
|
176
|
+
Edit `~/.quantumclaw/quantumclaw.json`:
|
|
177
|
+
|
|
178
|
+
```json5
|
|
179
|
+
{
|
|
180
|
+
channels: {
|
|
181
|
+
feishu: {
|
|
182
|
+
enabled: true,
|
|
183
|
+
dmPolicy: "pairing",
|
|
184
|
+
accounts: {
|
|
185
|
+
main: {
|
|
186
|
+
appId: "cli_xxx",
|
|
187
|
+
appSecret: "xxx",
|
|
188
|
+
botName: "My AI assistant",
|
|
189
|
+
},
|
|
190
|
+
},
|
|
191
|
+
},
|
|
192
|
+
},
|
|
193
|
+
}
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
If you use `connectionMode: "webhook"`, set both `verificationToken` and `encryptKey`. The Feishu webhook server binds to `127.0.0.1` by default; set `webhookHost` only if you intentionally need a different bind address.
|
|
197
|
+
|
|
198
|
+
#### Verification Token and Encrypt Key (webhook mode)
|
|
199
|
+
|
|
200
|
+
When using webhook mode, set both `channels.feishu.verificationToken` and `channels.feishu.encryptKey` in your config. To get the values:
|
|
201
|
+
|
|
202
|
+
1. In Feishu Open Platform, open your app
|
|
203
|
+
2. Go to **Development** → **Events & Callbacks** (开发配置 → 事件与回调)
|
|
204
|
+
3. Open the **Encryption** tab (加密策略)
|
|
205
|
+
4. Copy **Verification Token** and **Encrypt Key**
|
|
206
|
+
|
|
207
|
+
The screenshot below shows where to find the **Verification Token**. The **Encrypt Key** is listed in the same **Encryption** section.
|
|
208
|
+
|
|
209
|
+

|
|
210
|
+
|
|
211
|
+
### Configure via environment variables
|
|
212
|
+
|
|
213
|
+
```bash
|
|
214
|
+
export FEISHU_APP_ID="cli_xxx"
|
|
215
|
+
export FEISHU_APP_SECRET="xxx"
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### Lark (global) domain
|
|
219
|
+
|
|
220
|
+
If your tenant is on Lark (international), set the domain to `lark` (or a full domain string). You can set it at `channels.feishu.domain` or per account (`channels.feishu.accounts.<id>.domain`).
|
|
221
|
+
|
|
222
|
+
```json5
|
|
223
|
+
{
|
|
224
|
+
channels: {
|
|
225
|
+
feishu: {
|
|
226
|
+
domain: "lark",
|
|
227
|
+
accounts: {
|
|
228
|
+
main: {
|
|
229
|
+
appId: "cli_xxx",
|
|
230
|
+
appSecret: "xxx",
|
|
231
|
+
},
|
|
232
|
+
},
|
|
233
|
+
},
|
|
234
|
+
},
|
|
235
|
+
}
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### Quota optimization flags
|
|
239
|
+
|
|
240
|
+
You can reduce Feishu API usage with two optional flags:
|
|
241
|
+
|
|
242
|
+
- `typingIndicator` (default `true`): when `false`, skip typing reaction calls.
|
|
243
|
+
- `resolveSenderNames` (default `true`): when `false`, skip sender profile lookup calls.
|
|
244
|
+
|
|
245
|
+
Set them at top level or per account:
|
|
246
|
+
|
|
247
|
+
```json5
|
|
248
|
+
{
|
|
249
|
+
channels: {
|
|
250
|
+
feishu: {
|
|
251
|
+
typingIndicator: false,
|
|
252
|
+
resolveSenderNames: false,
|
|
253
|
+
accounts: {
|
|
254
|
+
main: {
|
|
255
|
+
appId: "cli_xxx",
|
|
256
|
+
appSecret: "xxx",
|
|
257
|
+
typingIndicator: true,
|
|
258
|
+
resolveSenderNames: false,
|
|
259
|
+
},
|
|
260
|
+
},
|
|
261
|
+
},
|
|
262
|
+
},
|
|
263
|
+
}
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## Step 3: Start + test
|
|
269
|
+
|
|
270
|
+
### 1. Start the gateway
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
quantumclaw gateway
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
### 2. Send a test message
|
|
277
|
+
|
|
278
|
+
In Feishu, find your bot and send a message.
|
|
279
|
+
|
|
280
|
+
### 3. Approve pairing
|
|
281
|
+
|
|
282
|
+
By default, the bot replies with a pairing code. Approve it:
|
|
283
|
+
|
|
284
|
+
```bash
|
|
285
|
+
quantumclaw pairing approve feishu <CODE>
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
After approval, you can chat normally.
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## Overview
|
|
293
|
+
|
|
294
|
+
- **Feishu bot channel**: Feishu bot managed by the gateway
|
|
295
|
+
- **Deterministic routing**: replies always return to Feishu
|
|
296
|
+
- **Session isolation**: DMs share a main session; groups are isolated
|
|
297
|
+
- **WebSocket connection**: long connection via Feishu SDK, no public URL needed
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
## Access control
|
|
302
|
+
|
|
303
|
+
### Direct messages
|
|
304
|
+
|
|
305
|
+
- **Default**: `dmPolicy: "pairing"` (unknown users get a pairing code)
|
|
306
|
+
- **Approve pairing**:
|
|
307
|
+
|
|
308
|
+
```bash
|
|
309
|
+
quantumclaw pairing list feishu
|
|
310
|
+
quantumclaw pairing approve feishu <CODE>
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
- **Allowlist mode**: set `channels.feishu.allowFrom` with allowed Open IDs
|
|
314
|
+
|
|
315
|
+
### Group chats
|
|
316
|
+
|
|
317
|
+
**1. Group policy** (`channels.feishu.groupPolicy`):
|
|
318
|
+
|
|
319
|
+
- `"open"` = allow everyone in groups (default)
|
|
320
|
+
- `"allowlist"` = only allow `groupAllowFrom`
|
|
321
|
+
- `"disabled"` = disable group messages
|
|
322
|
+
|
|
323
|
+
**2. Mention requirement** (`channels.feishu.groups.<chat_id>.requireMention`):
|
|
324
|
+
|
|
325
|
+
- `true` = require @mention (default)
|
|
326
|
+
- `false` = respond without mentions
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
330
|
+
## Group configuration examples
|
|
331
|
+
|
|
332
|
+
### Allow all groups, require @mention (default)
|
|
333
|
+
|
|
334
|
+
```json5
|
|
335
|
+
{
|
|
336
|
+
channels: {
|
|
337
|
+
feishu: {
|
|
338
|
+
groupPolicy: "open",
|
|
339
|
+
// Default requireMention: true
|
|
340
|
+
},
|
|
341
|
+
},
|
|
342
|
+
}
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
### Allow all groups, no @mention required
|
|
346
|
+
|
|
347
|
+
```json5
|
|
348
|
+
{
|
|
349
|
+
channels: {
|
|
350
|
+
feishu: {
|
|
351
|
+
groups: {
|
|
352
|
+
oc_xxx: { requireMention: false },
|
|
353
|
+
},
|
|
354
|
+
},
|
|
355
|
+
},
|
|
356
|
+
}
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
### Allow specific groups only
|
|
360
|
+
|
|
361
|
+
```json5
|
|
362
|
+
{
|
|
363
|
+
channels: {
|
|
364
|
+
feishu: {
|
|
365
|
+
groupPolicy: "allowlist",
|
|
366
|
+
// Feishu group IDs (chat_id) look like: oc_xxx
|
|
367
|
+
groupAllowFrom: ["oc_xxx", "oc_yyy"],
|
|
368
|
+
},
|
|
369
|
+
},
|
|
370
|
+
}
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
### Restrict which senders can message in a group (sender allowlist)
|
|
374
|
+
|
|
375
|
+
In addition to allowing the group itself, **all messages** in that group are gated by the sender open_id: only users listed in `groups.<chat_id>.allowFrom` have their messages processed; messages from other members are ignored (this is full sender-level gating, not only for control commands like /reset or /new).
|
|
376
|
+
|
|
377
|
+
```json5
|
|
378
|
+
{
|
|
379
|
+
channels: {
|
|
380
|
+
feishu: {
|
|
381
|
+
groupPolicy: "allowlist",
|
|
382
|
+
groupAllowFrom: ["oc_xxx"],
|
|
383
|
+
groups: {
|
|
384
|
+
oc_xxx: {
|
|
385
|
+
// Feishu user IDs (open_id) look like: ou_xxx
|
|
386
|
+
allowFrom: ["ou_user1", "ou_user2"],
|
|
387
|
+
},
|
|
388
|
+
},
|
|
389
|
+
},
|
|
390
|
+
},
|
|
391
|
+
}
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
---
|
|
395
|
+
|
|
396
|
+
## Get group/user IDs
|
|
397
|
+
|
|
398
|
+
### Group IDs (chat_id)
|
|
399
|
+
|
|
400
|
+
Group IDs look like `oc_xxx`.
|
|
401
|
+
|
|
402
|
+
**Method 1 (recommended)**
|
|
403
|
+
|
|
404
|
+
1. Start the gateway and @mention the bot in the group
|
|
405
|
+
2. Run `quantumclaw logs --follow` and look for `chat_id`
|
|
406
|
+
|
|
407
|
+
**Method 2**
|
|
408
|
+
|
|
409
|
+
Use the Feishu API debugger to list group chats.
|
|
410
|
+
|
|
411
|
+
### User IDs (open_id)
|
|
412
|
+
|
|
413
|
+
User IDs look like `ou_xxx`.
|
|
414
|
+
|
|
415
|
+
**Method 1 (recommended)**
|
|
416
|
+
|
|
417
|
+
1. Start the gateway and DM the bot
|
|
418
|
+
2. Run `quantumclaw logs --follow` and look for `open_id`
|
|
419
|
+
|
|
420
|
+
**Method 2**
|
|
421
|
+
|
|
422
|
+
Check pairing requests for user Open IDs:
|
|
423
|
+
|
|
424
|
+
```bash
|
|
425
|
+
quantumclaw pairing list feishu
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
---
|
|
429
|
+
|
|
430
|
+
## Common commands
|
|
431
|
+
|
|
432
|
+
| Command | Description |
|
|
433
|
+
| --------- | ----------------- |
|
|
434
|
+
| `/status` | Show bot status |
|
|
435
|
+
| `/reset` | Reset the session |
|
|
436
|
+
| `/model` | Show/switch model |
|
|
437
|
+
|
|
438
|
+
> Note: Feishu does not support native command menus yet, so commands must be sent as text.
|
|
439
|
+
|
|
440
|
+
## Gateway management commands
|
|
441
|
+
|
|
442
|
+
| Command | Description |
|
|
443
|
+
| -------------------------- | ----------------------------- |
|
|
444
|
+
| `quantumclaw gateway status` | Show gateway status |
|
|
445
|
+
| `quantumclaw gateway install` | Install/start gateway service |
|
|
446
|
+
| `quantumclaw gateway stop` | Stop gateway service |
|
|
447
|
+
| `quantumclaw gateway restart` | Restart gateway service |
|
|
448
|
+
| `quantumclaw logs --follow` | Tail gateway logs |
|
|
449
|
+
|
|
450
|
+
---
|
|
451
|
+
|
|
452
|
+
## Troubleshooting
|
|
453
|
+
|
|
454
|
+
### Bot does not respond in group chats
|
|
455
|
+
|
|
456
|
+
1. Ensure the bot is added to the group
|
|
457
|
+
2. Ensure you @mention the bot (default behavior)
|
|
458
|
+
3. Check `groupPolicy` is not set to `"disabled"`
|
|
459
|
+
4. Check logs: `quantumclaw logs --follow`
|
|
460
|
+
|
|
461
|
+
### Bot does not receive messages
|
|
462
|
+
|
|
463
|
+
1. Ensure the app is published and approved
|
|
464
|
+
2. Ensure event subscription includes `im.message.receive_v1`
|
|
465
|
+
3. Ensure **long connection** is enabled
|
|
466
|
+
4. Ensure app permissions are complete
|
|
467
|
+
5. Ensure the gateway is running: `quantumclaw gateway status`
|
|
468
|
+
6. Check logs: `quantumclaw logs --follow`
|
|
469
|
+
|
|
470
|
+
### App Secret leak
|
|
471
|
+
|
|
472
|
+
1. Reset the App Secret in Feishu Open Platform
|
|
473
|
+
2. Update the App Secret in your config
|
|
474
|
+
3. Restart the gateway
|
|
475
|
+
|
|
476
|
+
### Message send failures
|
|
477
|
+
|
|
478
|
+
1. Ensure the app has `im:message:send_as_bot` permission
|
|
479
|
+
2. Ensure the app is published
|
|
480
|
+
3. Check logs for detailed errors
|
|
481
|
+
|
|
482
|
+
---
|
|
483
|
+
|
|
484
|
+
## Advanced configuration
|
|
485
|
+
|
|
486
|
+
### Multiple accounts
|
|
487
|
+
|
|
488
|
+
```json5
|
|
489
|
+
{
|
|
490
|
+
channels: {
|
|
491
|
+
feishu: {
|
|
492
|
+
defaultAccount: "main",
|
|
493
|
+
accounts: {
|
|
494
|
+
main: {
|
|
495
|
+
appId: "cli_xxx",
|
|
496
|
+
appSecret: "xxx",
|
|
497
|
+
botName: "Primary bot",
|
|
498
|
+
},
|
|
499
|
+
backup: {
|
|
500
|
+
appId: "cli_yyy",
|
|
501
|
+
appSecret: "yyy",
|
|
502
|
+
botName: "Backup bot",
|
|
503
|
+
enabled: false,
|
|
504
|
+
},
|
|
505
|
+
},
|
|
506
|
+
},
|
|
507
|
+
},
|
|
508
|
+
}
|
|
509
|
+
```
|
|
510
|
+
|
|
511
|
+
`defaultAccount` controls which Feishu account is used when outbound APIs do not specify an `accountId` explicitly.
|
|
512
|
+
|
|
513
|
+
### Message limits
|
|
514
|
+
|
|
515
|
+
- `textChunkLimit`: outbound text chunk size (default: 2000 chars)
|
|
516
|
+
- `mediaMaxMb`: media upload/download limit (default: 30MB)
|
|
517
|
+
|
|
518
|
+
### Streaming
|
|
519
|
+
|
|
520
|
+
Feishu supports streaming replies via interactive cards. When enabled, the bot updates a card as it generates text.
|
|
521
|
+
|
|
522
|
+
```json5
|
|
523
|
+
{
|
|
524
|
+
channels: {
|
|
525
|
+
feishu: {
|
|
526
|
+
streaming: true, // enable streaming card output (default true)
|
|
527
|
+
blockStreaming: true, // enable block-level streaming (default true)
|
|
528
|
+
},
|
|
529
|
+
},
|
|
530
|
+
}
|
|
531
|
+
```
|
|
532
|
+
|
|
533
|
+
Set `streaming: false` to wait for the full reply before sending.
|
|
534
|
+
|
|
535
|
+
### ACP sessions
|
|
536
|
+
|
|
537
|
+
Feishu supports ACP for:
|
|
538
|
+
|
|
539
|
+
- DMs
|
|
540
|
+
- group topic conversations
|
|
541
|
+
|
|
542
|
+
Feishu ACP is text-command driven. There are no native slash-command menus, so use `/acp ...` messages directly in the conversation.
|
|
543
|
+
|
|
544
|
+
#### Persistent ACP bindings
|
|
545
|
+
|
|
546
|
+
Use top-level typed ACP bindings to pin a Feishu DM or topic conversation to a persistent ACP session.
|
|
547
|
+
|
|
548
|
+
```json5
|
|
549
|
+
{
|
|
550
|
+
agents: {
|
|
551
|
+
list: [
|
|
552
|
+
{
|
|
553
|
+
id: "codex",
|
|
554
|
+
runtime: {
|
|
555
|
+
type: "acp",
|
|
556
|
+
acp: {
|
|
557
|
+
agent: "codex",
|
|
558
|
+
backend: "acpx",
|
|
559
|
+
mode: "persistent",
|
|
560
|
+
cwd: "/workspace/quantumclaw",
|
|
561
|
+
},
|
|
562
|
+
},
|
|
563
|
+
},
|
|
564
|
+
],
|
|
565
|
+
},
|
|
566
|
+
bindings: [
|
|
567
|
+
{
|
|
568
|
+
type: "acp",
|
|
569
|
+
agentId: "codex",
|
|
570
|
+
match: {
|
|
571
|
+
channel: "feishu",
|
|
572
|
+
accountId: "default",
|
|
573
|
+
peer: { kind: "direct", id: "ou_1234567890" },
|
|
574
|
+
},
|
|
575
|
+
},
|
|
576
|
+
{
|
|
577
|
+
type: "acp",
|
|
578
|
+
agentId: "codex",
|
|
579
|
+
match: {
|
|
580
|
+
channel: "feishu",
|
|
581
|
+
accountId: "default",
|
|
582
|
+
peer: { kind: "group", id: "oc_group_chat:topic:om_topic_root" },
|
|
583
|
+
},
|
|
584
|
+
acp: { label: "codex-feishu-topic" },
|
|
585
|
+
},
|
|
586
|
+
],
|
|
587
|
+
}
|
|
588
|
+
```
|
|
589
|
+
|
|
590
|
+
#### Thread-bound ACP spawn from chat
|
|
591
|
+
|
|
592
|
+
In a Feishu DM or topic conversation, you can spawn and bind an ACP session in place:
|
|
593
|
+
|
|
594
|
+
```text
|
|
595
|
+
/acp spawn codex --thread here
|
|
596
|
+
```
|
|
597
|
+
|
|
598
|
+
Notes:
|
|
599
|
+
|
|
600
|
+
- `--thread here` works for DMs and Feishu topics.
|
|
601
|
+
- Follow-up messages in the bound DM/topic route directly to that ACP session.
|
|
602
|
+
- v1 does not target generic non-topic group chats.
|
|
603
|
+
|
|
604
|
+
### Multi-agent routing
|
|
605
|
+
|
|
606
|
+
Use `bindings` to route Feishu DMs or groups to different agents.
|
|
607
|
+
|
|
608
|
+
```json5
|
|
609
|
+
{
|
|
610
|
+
agents: {
|
|
611
|
+
list: [
|
|
612
|
+
{ id: "main" },
|
|
613
|
+
{
|
|
614
|
+
id: "clawd-fan",
|
|
615
|
+
workspace: "/home/user/clawd-fan",
|
|
616
|
+
agentDir: "/home/user/.quantumclaw/agents/clawd-fan/agent",
|
|
617
|
+
},
|
|
618
|
+
{
|
|
619
|
+
id: "clawd-xi",
|
|
620
|
+
workspace: "/home/user/clawd-xi",
|
|
621
|
+
agentDir: "/home/user/.quantumclaw/agents/clawd-xi/agent",
|
|
622
|
+
},
|
|
623
|
+
],
|
|
624
|
+
},
|
|
625
|
+
bindings: [
|
|
626
|
+
{
|
|
627
|
+
agentId: "main",
|
|
628
|
+
match: {
|
|
629
|
+
channel: "feishu",
|
|
630
|
+
peer: { kind: "direct", id: "ou_xxx" },
|
|
631
|
+
},
|
|
632
|
+
},
|
|
633
|
+
{
|
|
634
|
+
agentId: "clawd-fan",
|
|
635
|
+
match: {
|
|
636
|
+
channel: "feishu",
|
|
637
|
+
peer: { kind: "direct", id: "ou_yyy" },
|
|
638
|
+
},
|
|
639
|
+
},
|
|
640
|
+
{
|
|
641
|
+
agentId: "clawd-xi",
|
|
642
|
+
match: {
|
|
643
|
+
channel: "feishu",
|
|
644
|
+
peer: { kind: "group", id: "oc_zzz" },
|
|
645
|
+
},
|
|
646
|
+
},
|
|
647
|
+
],
|
|
648
|
+
}
|
|
649
|
+
```
|
|
650
|
+
|
|
651
|
+
Routing fields:
|
|
652
|
+
|
|
653
|
+
- `match.channel`: `"feishu"`
|
|
654
|
+
- `match.peer.kind`: `"direct"` or `"group"`
|
|
655
|
+
- `match.peer.id`: user Open ID (`ou_xxx`) or group ID (`oc_xxx`)
|
|
656
|
+
|
|
657
|
+
See [Get group/user IDs](#get-groupuser-ids) for lookup tips.
|
|
658
|
+
|
|
659
|
+
---
|
|
660
|
+
|
|
661
|
+
## Configuration reference
|
|
662
|
+
|
|
663
|
+
Full configuration: [Gateway configuration](/gateway/configuration)
|
|
664
|
+
|
|
665
|
+
Key options:
|
|
666
|
+
|
|
667
|
+
| Setting | Description | Default |
|
|
668
|
+
| ------------------------------------------------- | --------------------------------------- | ---------------- |
|
|
669
|
+
| `channels.feishu.enabled` | Enable/disable channel | `true` |
|
|
670
|
+
| `channels.feishu.domain` | API domain (`feishu` or `lark`) | `feishu` |
|
|
671
|
+
| `channels.feishu.connectionMode` | Event transport mode | `websocket` |
|
|
672
|
+
| `channels.feishu.defaultAccount` | Default account ID for outbound routing | `default` |
|
|
673
|
+
| `channels.feishu.verificationToken` | Required for webhook mode | - |
|
|
674
|
+
| `channels.feishu.encryptKey` | Required for webhook mode | - |
|
|
675
|
+
| `channels.feishu.webhookPath` | Webhook route path | `/feishu/events` |
|
|
676
|
+
| `channels.feishu.webhookHost` | Webhook bind host | `127.0.0.1` |
|
|
677
|
+
| `channels.feishu.webhookPort` | Webhook bind port | `3000` |
|
|
678
|
+
| `channels.feishu.accounts.<id>.appId` | App ID | - |
|
|
679
|
+
| `channels.feishu.accounts.<id>.appSecret` | App Secret | - |
|
|
680
|
+
| `channels.feishu.accounts.<id>.domain` | Per-account API domain override | `feishu` |
|
|
681
|
+
| `channels.feishu.dmPolicy` | DM policy | `pairing` |
|
|
682
|
+
| `channels.feishu.allowFrom` | DM allowlist (open_id list) | - |
|
|
683
|
+
| `channels.feishu.groupPolicy` | Group policy | `open` |
|
|
684
|
+
| `channels.feishu.groupAllowFrom` | Group allowlist | - |
|
|
685
|
+
| `channels.feishu.groups.<chat_id>.requireMention` | Require @mention | `true` |
|
|
686
|
+
| `channels.feishu.groups.<chat_id>.enabled` | Enable group | `true` |
|
|
687
|
+
| `channels.feishu.textChunkLimit` | Message chunk size | `2000` |
|
|
688
|
+
| `channels.feishu.mediaMaxMb` | Media size limit | `30` |
|
|
689
|
+
| `channels.feishu.streaming` | Enable streaming card output | `true` |
|
|
690
|
+
| `channels.feishu.blockStreaming` | Enable block streaming | `true` |
|
|
691
|
+
|
|
692
|
+
---
|
|
693
|
+
|
|
694
|
+
## dmPolicy reference
|
|
695
|
+
|
|
696
|
+
| Value | Behavior |
|
|
697
|
+
| ------------- | --------------------------------------------------------------- |
|
|
698
|
+
| `"pairing"` | **Default.** Unknown users get a pairing code; must be approved |
|
|
699
|
+
| `"allowlist"` | Only users in `allowFrom` can chat |
|
|
700
|
+
| `"open"` | Allow all users (requires `"*"` in allowFrom) |
|
|
701
|
+
| `"disabled"` | Disable DMs |
|
|
702
|
+
|
|
703
|
+
---
|
|
704
|
+
|
|
705
|
+
## Supported message types
|
|
706
|
+
|
|
707
|
+
### Receive
|
|
708
|
+
|
|
709
|
+
- ✅ Text
|
|
710
|
+
- ✅ Rich text (post)
|
|
711
|
+
- ✅ Images
|
|
712
|
+
- ✅ Files
|
|
713
|
+
- ✅ Audio
|
|
714
|
+
- ✅ Video/media
|
|
715
|
+
- ✅ Stickers
|
|
716
|
+
|
|
717
|
+
### Send
|
|
718
|
+
|
|
719
|
+
- ✅ Text
|
|
720
|
+
- ✅ Images
|
|
721
|
+
- ✅ Files
|
|
722
|
+
- ✅ Audio
|
|
723
|
+
- ✅ Video/media
|
|
724
|
+
- ✅ Interactive cards
|
|
725
|
+
- ⚠️ Rich text (post-style formatting and cards, not arbitrary Feishu authoring features)
|
|
726
|
+
|
|
727
|
+
### Threads and replies
|
|
728
|
+
|
|
729
|
+
- ✅ Inline replies
|
|
730
|
+
- ✅ Topic-thread replies where Feishu exposes `reply_in_thread`
|
|
731
|
+
- ✅ Media replies stay thread-aware when replying to a thread/topic message
|
|
732
|
+
|
|
733
|
+
## Runtime action surface
|
|
734
|
+
|
|
735
|
+
Feishu currently exposes these runtime actions:
|
|
736
|
+
|
|
737
|
+
- `send`
|
|
738
|
+
- `read`
|
|
739
|
+
- `edit`
|
|
740
|
+
- `thread-reply`
|
|
741
|
+
- `pin`
|
|
742
|
+
- `list-pins`
|
|
743
|
+
- `unpin`
|
|
744
|
+
- `member-info`
|
|
745
|
+
- `channel-info`
|
|
746
|
+
- `channel-list`
|
|
747
|
+
- `react` and `reactions` when reactions are enabled in config
|