nodmix 2026.5.25
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 +11573 -0
- package/LICENSE +21 -0
- package/README.md +486 -0
- package/docs/.i18n/README.md +81 -0
- package/docs/.i18n/ar-navigation.json +18 -0
- package/docs/.i18n/de-navigation.json +18 -0
- package/docs/.i18n/es-navigation.json +18 -0
- package/docs/.i18n/fr-navigation.json +18 -0
- package/docs/.i18n/glossary.ar.json +78 -0
- package/docs/.i18n/glossary.de.json +78 -0
- package/docs/.i18n/glossary.es.json +78 -0
- package/docs/.i18n/glossary.fa.json +78 -0
- package/docs/.i18n/glossary.fr.json +78 -0
- package/docs/.i18n/glossary.id.json +78 -0
- package/docs/.i18n/glossary.it.json +78 -0
- package/docs/.i18n/glossary.ja-JP.json +98 -0
- package/docs/.i18n/glossary.ko.json +78 -0
- package/docs/.i18n/glossary.nl.json +78 -0
- package/docs/.i18n/glossary.pl.json +78 -0
- package/docs/.i18n/glossary.pt-BR.json +78 -0
- package/docs/.i18n/glossary.th.json +78 -0
- package/docs/.i18n/glossary.tr.json +78 -0
- package/docs/.i18n/glossary.uk.json +78 -0
- package/docs/.i18n/glossary.vi.json +78 -0
- package/docs/.i18n/glossary.zh-CN.json +1002 -0
- package/docs/.i18n/glossary.zh-TW.json +78 -0
- package/docs/.i18n/id-navigation.json +18 -0
- package/docs/.i18n/it-navigation.json +18 -0
- package/docs/.i18n/ja-navigation.json +18 -0
- package/docs/.i18n/ko-navigation.json +18 -0
- package/docs/.i18n/pl-navigation.json +18 -0
- package/docs/.i18n/pt-BR-navigation.json +18 -0
- package/docs/.i18n/tr-navigation.json +18 -0
- package/docs/.i18n/translation-workflow.md +111 -0
- package/docs/.i18n/zh-Hans-navigation.json +542 -0
- package/docs/AGENTS.md +36 -0
- package/docs/announcements/bluebubbles-imessage.md +79 -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/openclaw-logo-text-dark.png +0 -0
- package/docs/assets/openclaw-logo-text-dark.svg +418 -0
- package/docs/assets/openclaw-logo-text.png +0 -0
- package/docs/assets/openclaw-logo-text.svg +418 -0
- package/docs/assets/pixel-lobster.svg +60 -0
- package/docs/assets/pr/quick-settings-browser-tools.png +0 -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-light.svg +14 -0
- package/docs/assets/sponsors/blacksmith.svg +14 -0
- package/docs/assets/sponsors/convex-light.svg +16 -0
- package/docs/assets/sponsors/convex.svg +16 -0
- package/docs/assets/sponsors/github-light.svg +3 -0
- package/docs/assets/sponsors/github.svg +3 -0
- package/docs/assets/sponsors/nvidia-dark.svg +9 -0
- package/docs/assets/sponsors/nvidia.svg +9 -0
- package/docs/assets/sponsors/openai-light.svg +3 -0
- package/docs/assets/sponsors/openai.svg +3 -0
- package/docs/assets/sponsors/vercel-light.svg +5 -0
- package/docs/assets/sponsors/vercel.svg +5 -0
- package/docs/auth-credential-semantics.md +124 -0
- package/docs/automation/auth-monitoring.md +11 -0
- package/docs/automation/clawflow.md +12 -0
- package/docs/automation/cron-jobs.md +500 -0
- package/docs/automation/cron-vs-heartbeat.md +11 -0
- package/docs/automation/gmail-pubsub.md +11 -0
- package/docs/automation/hooks.md +365 -0
- package/docs/automation/index.md +135 -0
- package/docs/automation/poll.md +12 -0
- package/docs/automation/standing-orders.md +250 -0
- package/docs/automation/taskflow.md +155 -0
- package/docs/automation/tasks.md +374 -0
- package/docs/automation/troubleshooting.md +12 -0
- package/docs/automation/webhook.md +12 -0
- package/docs/brave-search.md +11 -0
- package/docs/channels/access-groups.md +201 -0
- package/docs/channels/ambient-room-events.md +214 -0
- package/docs/channels/bot-loop-protection.md +131 -0
- package/docs/channels/broadcast-groups.md +472 -0
- package/docs/channels/channel-routing.md +162 -0
- package/docs/channels/clickclack.md +138 -0
- package/docs/channels/discord.md +1762 -0
- package/docs/channels/feishu.md +502 -0
- package/docs/channels/googlechat.md +284 -0
- package/docs/channels/group-messages.md +95 -0
- package/docs/channels/groups.md +519 -0
- package/docs/channels/imessage-from-bluebubbles.md +259 -0
- package/docs/channels/imessage.md +813 -0
- package/docs/channels/index.md +64 -0
- package/docs/channels/irc.md +253 -0
- package/docs/channels/line.md +243 -0
- package/docs/channels/location.md +71 -0
- package/docs/channels/matrix-migration.md +370 -0
- package/docs/channels/matrix-presentation.md +77 -0
- package/docs/channels/matrix-push-rules.md +150 -0
- package/docs/channels/matrix.md +921 -0
- package/docs/channels/mattermost.md +542 -0
- package/docs/channels/msteams.md +1042 -0
- package/docs/channels/nextcloud-talk.md +176 -0
- package/docs/channels/nostr.md +253 -0
- package/docs/channels/pairing.md +214 -0
- package/docs/channels/qqbot.md +309 -0
- package/docs/channels/signal.md +400 -0
- package/docs/channels/slack.md +1564 -0
- package/docs/channels/synology-chat.md +187 -0
- package/docs/channels/telegram.md +1107 -0
- package/docs/channels/tlon.md +296 -0
- package/docs/channels/troubleshooting.md +161 -0
- package/docs/channels/twitch.md +431 -0
- package/docs/channels/wechat.md +171 -0
- package/docs/channels/whatsapp.md +739 -0
- package/docs/channels/yuanbao.md +416 -0
- package/docs/channels/zalo.md +253 -0
- package/docs/channels/zalouser.md +199 -0
- package/docs/ci.md +612 -0
- package/docs/clawhub/publishing.md +96 -0
- package/docs/cli/acp.md +370 -0
- package/docs/cli/agent.md +103 -0
- package/docs/cli/agents.md +232 -0
- package/docs/cli/approvals.md +190 -0
- package/docs/cli/backup.md +97 -0
- package/docs/cli/browser.md +307 -0
- package/docs/cli/channels.md +154 -0
- package/docs/cli/clawbot.md +25 -0
- package/docs/cli/commitments.md +90 -0
- package/docs/cli/completion.md +39 -0
- package/docs/cli/config.md +504 -0
- package/docs/cli/configure.md +77 -0
- package/docs/cli/crestodian.md +332 -0
- package/docs/cli/cron.md +281 -0
- package/docs/cli/daemon.md +67 -0
- package/docs/cli/dashboard.md +33 -0
- package/docs/cli/devices.md +204 -0
- package/docs/cli/directory.md +68 -0
- package/docs/cli/dns.md +53 -0
- package/docs/cli/docs.md +73 -0
- package/docs/cli/doctor.md +237 -0
- package/docs/cli/flows.md +52 -0
- package/docs/cli/gateway.md +567 -0
- package/docs/cli/health.md +43 -0
- package/docs/cli/hooks.md +345 -0
- package/docs/cli/index.md +396 -0
- package/docs/cli/infer.md +364 -0
- package/docs/cli/logs.md +65 -0
- package/docs/cli/mcp.md +529 -0
- package/docs/cli/memory.md +183 -0
- package/docs/cli/message.md +317 -0
- package/docs/cli/migrate.md +290 -0
- package/docs/cli/models.md +224 -0
- package/docs/cli/node.md +177 -0
- package/docs/cli/nodes.md +76 -0
- package/docs/cli/onboard.md +245 -0
- package/docs/cli/pairing.md +77 -0
- package/docs/cli/path.md +502 -0
- package/docs/cli/plugins.md +454 -0
- package/docs/cli/policy.md +418 -0
- package/docs/cli/proxy.md +89 -0
- package/docs/cli/qr.md +56 -0
- package/docs/cli/reset.md +39 -0
- package/docs/cli/sandbox.md +208 -0
- package/docs/cli/secrets.md +202 -0
- package/docs/cli/security.md +124 -0
- package/docs/cli/sessions.md +164 -0
- package/docs/cli/setup.md +59 -0
- package/docs/cli/skills.md +102 -0
- package/docs/cli/status.md +45 -0
- package/docs/cli/system.md +89 -0
- package/docs/cli/tasks.md +111 -0
- package/docs/cli/tui.md +89 -0
- package/docs/cli/uninstall.md +44 -0
- package/docs/cli/update.md +242 -0
- package/docs/cli/voicecall.md +204 -0
- package/docs/cli/webhooks.md +117 -0
- package/docs/cli/wiki.md +256 -0
- package/docs/concepts/active-memory.md +856 -0
- package/docs/concepts/agent-loop.md +185 -0
- package/docs/concepts/agent-runtimes.md +243 -0
- package/docs/concepts/agent-workspace.md +230 -0
- package/docs/concepts/agent.md +136 -0
- package/docs/concepts/architecture.md +154 -0
- package/docs/concepts/channel-docking.md +145 -0
- package/docs/concepts/commitments.md +150 -0
- package/docs/concepts/compaction.md +203 -0
- package/docs/concepts/context-engine.md +306 -0
- package/docs/concepts/context.md +199 -0
- package/docs/concepts/delegate-architecture.md +319 -0
- package/docs/concepts/dreaming.md +261 -0
- package/docs/concepts/experimental-features.md +108 -0
- package/docs/concepts/features.md +91 -0
- package/docs/concepts/mantis-slack-desktop-runbook.md +202 -0
- package/docs/concepts/mantis.md +740 -0
- package/docs/concepts/markdown-formatting.md +139 -0
- package/docs/concepts/memory-builtin.md +146 -0
- package/docs/concepts/memory-honcho.md +144 -0
- package/docs/concepts/memory-qmd.md +271 -0
- package/docs/concepts/memory-search.md +166 -0
- package/docs/concepts/memory.md +258 -0
- package/docs/concepts/message-lifecycle-refactor.md +1128 -0
- package/docs/concepts/messages.md +214 -0
- package/docs/concepts/model-failover.md +385 -0
- package/docs/concepts/model-providers.md +715 -0
- package/docs/concepts/models.md +370 -0
- package/docs/concepts/multi-agent.md +619 -0
- package/docs/concepts/oauth.md +198 -0
- package/docs/concepts/openclaw-sdk.md +323 -0
- package/docs/concepts/parallel-specialist-lanes.md +127 -0
- package/docs/concepts/personal-agent-benchmark-pack.md +74 -0
- package/docs/concepts/presence.md +117 -0
- package/docs/concepts/progress-drafts.md +362 -0
- package/docs/concepts/qa-e2e-automation.md +820 -0
- package/docs/concepts/qa-matrix.md +139 -0
- package/docs/concepts/queue-steering.md +90 -0
- package/docs/concepts/queue.md +122 -0
- package/docs/concepts/retry.md +86 -0
- package/docs/concepts/session-pruning.md +104 -0
- package/docs/concepts/session-tool.md +190 -0
- package/docs/concepts/session.md +164 -0
- package/docs/concepts/soul.md +116 -0
- package/docs/concepts/streaming.md +251 -0
- package/docs/concepts/system-prompt.md +310 -0
- package/docs/concepts/timezone.md +47 -0
- package/docs/concepts/typebox.md +309 -0
- package/docs/concepts/typing-indicators.md +88 -0
- package/docs/concepts/usage-tracking.md +66 -0
- package/docs/date-time.md +126 -0
- package/docs/debug/node-issue.md +90 -0
- package/docs/diagnostics/flags.md +138 -0
- package/docs/docs.json +1832 -0
- package/docs/gateway/authentication.md +239 -0
- package/docs/gateway/background-process.md +147 -0
- package/docs/gateway/bonjour.md +303 -0
- package/docs/gateway/bridge-protocol.md +94 -0
- package/docs/gateway/cli-backends.md +420 -0
- package/docs/gateway/config-agents.md +1514 -0
- package/docs/gateway/config-channels.md +945 -0
- package/docs/gateway/config-tools.md +769 -0
- package/docs/gateway/configuration-examples.md +705 -0
- package/docs/gateway/configuration-reference.md +1393 -0
- package/docs/gateway/configuration.md +737 -0
- package/docs/gateway/diagnostics.md +213 -0
- package/docs/gateway/discovery.md +154 -0
- package/docs/gateway/doctor.md +574 -0
- package/docs/gateway/gateway-lock.md +37 -0
- package/docs/gateway/health.md +73 -0
- package/docs/gateway/heartbeat.md +493 -0
- package/docs/gateway/index.md +383 -0
- package/docs/gateway/local-model-services.md +205 -0
- package/docs/gateway/local-models.md +355 -0
- package/docs/gateway/logging.md +149 -0
- package/docs/gateway/multiple-gateways.md +178 -0
- package/docs/gateway/network-model.md +15 -0
- package/docs/gateway/openai-http-api.md +350 -0
- package/docs/gateway/openresponses-http-api.md +347 -0
- package/docs/gateway/openshell.md +316 -0
- package/docs/gateway/opentelemetry.md +404 -0
- package/docs/gateway/operator-scopes.md +111 -0
- package/docs/gateway/pairing.md +207 -0
- package/docs/gateway/prometheus.md +230 -0
- package/docs/gateway/protocol.md +803 -0
- package/docs/gateway/remote-gateway-readme.md +169 -0
- package/docs/gateway/remote.md +280 -0
- package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +146 -0
- package/docs/gateway/sandboxing.md +545 -0
- package/docs/gateway/secrets-plan-contract.md +114 -0
- package/docs/gateway/secrets.md +609 -0
- package/docs/gateway/security/audit-checks.md +127 -0
- package/docs/gateway/security/index.md +1326 -0
- package/docs/gateway/security/secure-file-operations.md +76 -0
- package/docs/gateway/tailscale.md +156 -0
- package/docs/gateway/tools-invoke-http-api.md +169 -0
- package/docs/gateway/troubleshooting.md +772 -0
- package/docs/gateway/trusted-proxy-auth.md +451 -0
- package/docs/help/debugging.md +344 -0
- package/docs/help/environment.md +214 -0
- package/docs/help/faq-first-run.md +867 -0
- package/docs/help/faq-models.md +553 -0
- package/docs/help/faq.md +1975 -0
- package/docs/help/gpt55-codex-agentic-parity-maintainers.md +196 -0
- package/docs/help/gpt55-codex-agentic-parity.md +230 -0
- package/docs/help/index.md +39 -0
- package/docs/help/scripts.md +56 -0
- package/docs/help/testing-live.md +580 -0
- package/docs/help/testing-updates-plugins.md +291 -0
- package/docs/help/testing.md +928 -0
- package/docs/help/troubleshooting.md +424 -0
- package/docs/images/configure-model-picker-unsearchable.png +0 -0
- package/docs/images/feishu-get-group-id.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 +233 -0
- package/docs/install/azure.md +315 -0
- package/docs/install/bun.md +59 -0
- package/docs/install/clawdock.md +112 -0
- package/docs/install/development-channels.md +135 -0
- package/docs/install/digitalocean.md +174 -0
- package/docs/install/docker-vm-runtime.md +154 -0
- package/docs/install/docker.md +562 -0
- package/docs/install/exe-dev.md +201 -0
- package/docs/install/fly.md +524 -0
- package/docs/install/gcp.md +418 -0
- package/docs/install/hetzner.md +285 -0
- package/docs/install/hostinger.md +98 -0
- package/docs/install/index.md +221 -0
- package/docs/install/installer.md +455 -0
- package/docs/install/kubernetes.md +196 -0
- package/docs/install/macos-vm.md +281 -0
- package/docs/install/migrating-claude.md +165 -0
- package/docs/install/migrating-hermes.md +177 -0
- package/docs/install/migrating.md +137 -0
- package/docs/install/nix.md +112 -0
- package/docs/install/node.md +142 -0
- package/docs/install/northflank.mdx +44 -0
- package/docs/install/oracle.md +218 -0
- package/docs/install/podman.md +210 -0
- package/docs/install/railway.mdx +92 -0
- package/docs/install/raspberry-pi.md +234 -0
- package/docs/install/render.mdx +167 -0
- package/docs/install/uninstall.md +131 -0
- package/docs/install/updating.md +280 -0
- package/docs/logging.md +318 -0
- package/docs/nav-tabs-underline.js +100 -0
- package/docs/network.md +72 -0
- package/docs/nodes/audio.md +215 -0
- package/docs/nodes/camera.md +166 -0
- package/docs/nodes/images.md +77 -0
- package/docs/nodes/index.md +439 -0
- package/docs/nodes/location-command.md +102 -0
- package/docs/nodes/media-understanding.md +469 -0
- package/docs/nodes/talk.md +154 -0
- package/docs/nodes/troubleshooting.md +123 -0
- package/docs/nodes/voicewake.md +93 -0
- package/docs/perplexity.md +11 -0
- package/docs/pi-dev.md +82 -0
- package/docs/pi.md +573 -0
- package/docs/plan/codex-context-engine-harness.md +624 -0
- package/docs/plan/ui-channels.md +284 -0
- package/docs/platforms/android.md +285 -0
- package/docs/platforms/digitalocean.md +12 -0
- package/docs/platforms/index.md +60 -0
- package/docs/platforms/ios.md +283 -0
- package/docs/platforms/linux.md +141 -0
- package/docs/platforms/mac/bundled-gateway.md +79 -0
- package/docs/platforms/mac/canvas.md +128 -0
- package/docs/platforms/mac/child-process.md +72 -0
- package/docs/platforms/mac/dev-setup.md +112 -0
- package/docs/platforms/mac/health.md +39 -0
- package/docs/platforms/mac/icon.md +36 -0
- package/docs/platforms/mac/logging.md +62 -0
- package/docs/platforms/mac/menu-bar.md +93 -0
- package/docs/platforms/mac/peekaboo.md +92 -0
- package/docs/platforms/mac/permissions.md +53 -0
- package/docs/platforms/mac/remote.md +123 -0
- package/docs/platforms/mac/signing.md +52 -0
- package/docs/platforms/mac/skills.md +43 -0
- package/docs/platforms/mac/voice-overlay.md +66 -0
- package/docs/platforms/mac/voicewake.md +73 -0
- package/docs/platforms/mac/webchat.md +54 -0
- package/docs/platforms/mac/xpc.md +66 -0
- package/docs/platforms/macos.md +226 -0
- package/docs/platforms/oracle.md +12 -0
- package/docs/platforms/raspberry-pi.md +13 -0
- package/docs/platforms/windows.md +286 -0
- package/docs/plugins/adding-capabilities.md +133 -0
- package/docs/plugins/admin-http-rpc.md +216 -0
- package/docs/plugins/agent-tools.md +13 -0
- package/docs/plugins/architecture-internals.md +1195 -0
- package/docs/plugins/architecture.md +481 -0
- package/docs/plugins/building-extensions.md +13 -0
- package/docs/plugins/building-plugins.md +330 -0
- package/docs/plugins/bundles.md +310 -0
- package/docs/plugins/cli-backend-plugins.md +310 -0
- package/docs/plugins/codex-computer-use.md +293 -0
- package/docs/plugins/codex-harness-reference.md +409 -0
- package/docs/plugins/codex-harness-runtime.md +247 -0
- package/docs/plugins/codex-harness.md +746 -0
- package/docs/plugins/codex-native-plugins.md +276 -0
- package/docs/plugins/community.md +77 -0
- package/docs/plugins/compatibility.md +164 -0
- package/docs/plugins/dependency-resolution.md +143 -0
- package/docs/plugins/google-meet.md +1737 -0
- package/docs/plugins/hooks.md +459 -0
- package/docs/plugins/install-overrides.md +80 -0
- package/docs/plugins/manage-plugins.md +210 -0
- package/docs/plugins/manifest.md +1359 -0
- package/docs/plugins/memory-lancedb.md +385 -0
- package/docs/plugins/memory-wiki.md +529 -0
- package/docs/plugins/message-presentation.md +473 -0
- package/docs/plugins/oc-path.md +166 -0
- package/docs/plugins/plugin-inventory.md +182 -0
- package/docs/plugins/reference/acpx.md +23 -0
- package/docs/plugins/reference/admin-http-rpc.md +23 -0
- package/docs/plugins/reference/alibaba.md +23 -0
- package/docs/plugins/reference/amazon-bedrock-mantle.md +23 -0
- package/docs/plugins/reference/amazon-bedrock.md +23 -0
- package/docs/plugins/reference/anthropic-vertex.md +19 -0
- package/docs/plugins/reference/anthropic.md +23 -0
- package/docs/plugins/reference/arcee.md +23 -0
- package/docs/plugins/reference/azure-speech.md +23 -0
- package/docs/plugins/reference/bonjour.md +19 -0
- package/docs/plugins/reference/brave.md +23 -0
- package/docs/plugins/reference/browser.md +23 -0
- package/docs/plugins/reference/byteplus.md +19 -0
- package/docs/plugins/reference/canvas.md +19 -0
- package/docs/plugins/reference/cerebras.md +23 -0
- package/docs/plugins/reference/chutes.md +23 -0
- package/docs/plugins/reference/clickclack.md +23 -0
- package/docs/plugins/reference/cloudflare-ai-gateway.md +23 -0
- package/docs/plugins/reference/codex.md +23 -0
- package/docs/plugins/reference/comfy.md +23 -0
- package/docs/plugins/reference/copilot-proxy.md +19 -0
- package/docs/plugins/reference/deepgram.md +23 -0
- package/docs/plugins/reference/deepinfra.md +23 -0
- package/docs/plugins/reference/deepseek.md +23 -0
- package/docs/plugins/reference/diagnostics-otel.md +19 -0
- package/docs/plugins/reference/diagnostics-prometheus.md +19 -0
- package/docs/plugins/reference/diffs.md +19 -0
- package/docs/plugins/reference/discord.md +23 -0
- package/docs/plugins/reference/document-extract.md +23 -0
- package/docs/plugins/reference/duckduckgo.md +23 -0
- package/docs/plugins/reference/elevenlabs.md +23 -0
- package/docs/plugins/reference/exa.md +23 -0
- package/docs/plugins/reference/fal.md +23 -0
- package/docs/plugins/reference/feishu.md +23 -0
- package/docs/plugins/reference/file-transfer.md +19 -0
- package/docs/plugins/reference/firecrawl.md +23 -0
- package/docs/plugins/reference/fireworks.md +23 -0
- package/docs/plugins/reference/github-copilot.md +23 -0
- package/docs/plugins/reference/google-meet.md +23 -0
- package/docs/plugins/reference/google.md +23 -0
- package/docs/plugins/reference/googlechat.md +23 -0
- package/docs/plugins/reference/gradium.md +23 -0
- package/docs/plugins/reference/groq.md +23 -0
- package/docs/plugins/reference/huggingface.md +23 -0
- package/docs/plugins/reference/imessage.md +23 -0
- package/docs/plugins/reference/inworld.md +23 -0
- package/docs/plugins/reference/irc.md +23 -0
- package/docs/plugins/reference/kilocode.md +23 -0
- package/docs/plugins/reference/kimi.md +23 -0
- package/docs/plugins/reference/line.md +23 -0
- package/docs/plugins/reference/litellm.md +23 -0
- package/docs/plugins/reference/llm-task.md +19 -0
- package/docs/plugins/reference/lmstudio.md +23 -0
- package/docs/plugins/reference/lobster.md +19 -0
- package/docs/plugins/reference/matrix.md +23 -0
- package/docs/plugins/reference/mattermost.md +23 -0
- package/docs/plugins/reference/memory-core.md +19 -0
- package/docs/plugins/reference/memory-lancedb.md +23 -0
- package/docs/plugins/reference/memory-wiki.md +23 -0
- package/docs/plugins/reference/microsoft-foundry.md +19 -0
- package/docs/plugins/reference/microsoft.md +19 -0
- package/docs/plugins/reference/migrate-claude.md +19 -0
- package/docs/plugins/reference/migrate-hermes.md +19 -0
- package/docs/plugins/reference/minimax.md +23 -0
- package/docs/plugins/reference/mistral.md +23 -0
- package/docs/plugins/reference/moonshot.md +23 -0
- package/docs/plugins/reference/msteams.md +23 -0
- package/docs/plugins/reference/nextcloud-talk.md +23 -0
- package/docs/plugins/reference/nostr.md +23 -0
- package/docs/plugins/reference/nvidia.md +23 -0
- package/docs/plugins/reference/oc-path.md +23 -0
- package/docs/plugins/reference/ollama.md +23 -0
- package/docs/plugins/reference/open-prose.md +19 -0
- package/docs/plugins/reference/openai.md +23 -0
- package/docs/plugins/reference/opencode-go.md +23 -0
- package/docs/plugins/reference/opencode.md +23 -0
- package/docs/plugins/reference/openrouter.md +23 -0
- package/docs/plugins/reference/openshell.md +19 -0
- package/docs/plugins/reference/perplexity.md +23 -0
- package/docs/plugins/reference/policy.md +23 -0
- package/docs/plugins/reference/qa-channel.md +23 -0
- package/docs/plugins/reference/qa-lab.md +19 -0
- package/docs/plugins/reference/qa-matrix.md +19 -0
- package/docs/plugins/reference/qianfan.md +23 -0
- package/docs/plugins/reference/qqbot.md +23 -0
- package/docs/plugins/reference/qwen.md +23 -0
- package/docs/plugins/reference/runway.md +23 -0
- package/docs/plugins/reference/searxng.md +19 -0
- package/docs/plugins/reference/senseaudio.md +23 -0
- package/docs/plugins/reference/sglang.md +23 -0
- package/docs/plugins/reference/signal.md +23 -0
- package/docs/plugins/reference/skill-workshop.md +23 -0
- package/docs/plugins/reference/slack.md +23 -0
- package/docs/plugins/reference/stepfun.md +23 -0
- package/docs/plugins/reference/synology-chat.md +23 -0
- package/docs/plugins/reference/synthetic.md +23 -0
- package/docs/plugins/reference/tavily.md +23 -0
- package/docs/plugins/reference/telegram.md +23 -0
- package/docs/plugins/reference/tencent.md +23 -0
- package/docs/plugins/reference/tlon.md +23 -0
- package/docs/plugins/reference/together.md +23 -0
- package/docs/plugins/reference/tokenjuice.md +23 -0
- package/docs/plugins/reference/tts-local-cli.md +19 -0
- package/docs/plugins/reference/twitch.md +23 -0
- package/docs/plugins/reference/venice.md +23 -0
- package/docs/plugins/reference/vercel-ai-gateway.md +23 -0
- package/docs/plugins/reference/vllm.md +23 -0
- package/docs/plugins/reference/voice-call.md +23 -0
- package/docs/plugins/reference/volcengine.md +23 -0
- package/docs/plugins/reference/voyage.md +19 -0
- package/docs/plugins/reference/vydra.md +23 -0
- package/docs/plugins/reference/web-readability.md +19 -0
- package/docs/plugins/reference/webhooks.md +23 -0
- package/docs/plugins/reference/whatsapp.md +23 -0
- package/docs/plugins/reference/xai.md +23 -0
- package/docs/plugins/reference/xiaomi.md +23 -0
- package/docs/plugins/reference/zai.md +23 -0
- package/docs/plugins/reference/zalo.md +23 -0
- package/docs/plugins/reference/zalouser.md +24 -0
- package/docs/plugins/reference.md +138 -0
- package/docs/plugins/sdk-agent-harness.md +339 -0
- package/docs/plugins/sdk-channel-ingress.md +137 -0
- package/docs/plugins/sdk-channel-message.md +458 -0
- package/docs/plugins/sdk-channel-plugins.md +762 -0
- package/docs/plugins/sdk-channel-turn.md +580 -0
- package/docs/plugins/sdk-entrypoints.md +333 -0
- package/docs/plugins/sdk-migration.md +949 -0
- package/docs/plugins/sdk-overview.md +501 -0
- package/docs/plugins/sdk-provider-plugins.md +807 -0
- package/docs/plugins/sdk-runtime.md +676 -0
- package/docs/plugins/sdk-setup.md +550 -0
- package/docs/plugins/sdk-subpaths.md +396 -0
- package/docs/plugins/sdk-testing.md +401 -0
- package/docs/plugins/skill-workshop.md +713 -0
- package/docs/plugins/tool-plugins.md +411 -0
- package/docs/plugins/voice-call.md +943 -0
- package/docs/plugins/webhooks.md +192 -0
- package/docs/plugins/zalouser.md +86 -0
- package/docs/prose.md +137 -0
- package/docs/providers/alibaba.md +158 -0
- package/docs/providers/anthropic.md +344 -0
- package/docs/providers/arcee.md +144 -0
- package/docs/providers/azure-speech.md +119 -0
- package/docs/providers/bedrock-mantle.md +211 -0
- package/docs/providers/bedrock.md +414 -0
- package/docs/providers/cerebras.md +130 -0
- package/docs/providers/chutes.md +153 -0
- package/docs/providers/claude-max-api-proxy.md +188 -0
- package/docs/providers/cloudflare-ai-gateway.md +119 -0
- package/docs/providers/comfy.md +362 -0
- package/docs/providers/deepgram.md +184 -0
- package/docs/providers/deepinfra.md +87 -0
- package/docs/providers/deepseek.md +146 -0
- package/docs/providers/ds4.md +309 -0
- package/docs/providers/elevenlabs.md +130 -0
- package/docs/providers/fal.md +204 -0
- package/docs/providers/fireworks.md +144 -0
- package/docs/providers/github-copilot.md +225 -0
- package/docs/providers/glm.md +137 -0
- package/docs/providers/google.md +472 -0
- package/docs/providers/gradium.md +123 -0
- package/docs/providers/groq.md +180 -0
- package/docs/providers/huggingface.md +235 -0
- package/docs/providers/index.md +102 -0
- package/docs/providers/inferrs.md +272 -0
- package/docs/providers/inworld.md +120 -0
- package/docs/providers/kilocode.md +135 -0
- package/docs/providers/litellm.md +234 -0
- package/docs/providers/lmstudio.md +224 -0
- package/docs/providers/minimax.md +505 -0
- package/docs/providers/mistral.md +235 -0
- package/docs/providers/models.md +65 -0
- package/docs/providers/moonshot.md +413 -0
- package/docs/providers/nvidia.md +140 -0
- package/docs/providers/ollama.md +1180 -0
- package/docs/providers/openai.md +1057 -0
- package/docs/providers/opencode-go.md +123 -0
- package/docs/providers/opencode.md +149 -0
- package/docs/providers/openrouter.md +349 -0
- package/docs/providers/perplexity-provider.md +123 -0
- package/docs/providers/qianfan.md +132 -0
- package/docs/providers/qwen.md +332 -0
- package/docs/providers/runway.md +103 -0
- package/docs/providers/senseaudio.md +68 -0
- package/docs/providers/sglang.md +161 -0
- package/docs/providers/stepfun.md +229 -0
- package/docs/providers/synthetic.md +154 -0
- package/docs/providers/tencent.md +130 -0
- package/docs/providers/together.md +141 -0
- package/docs/providers/venice.md +315 -0
- package/docs/providers/vercel-ai-gateway.md +128 -0
- package/docs/providers/vllm.md +383 -0
- package/docs/providers/volcengine.md +199 -0
- package/docs/providers/vydra.md +180 -0
- package/docs/providers/xai.md +560 -0
- package/docs/providers/xiaomi.md +188 -0
- package/docs/providers/zai.md +203 -0
- package/docs/refactor/access.md +9 -0
- package/docs/refactor/acp.md +298 -0
- package/docs/refactor/canvas.md +131 -0
- package/docs/refactor/ingress-core.md +341 -0
- package/docs/reference/AGENTS.default.md +129 -0
- package/docs/reference/RELEASING.md +767 -0
- package/docs/reference/api-usage-costs.md +202 -0
- package/docs/reference/application-modernization-plan.md +208 -0
- package/docs/reference/code-mode.md +757 -0
- package/docs/reference/credits.md +33 -0
- package/docs/reference/device-models.md +50 -0
- package/docs/reference/full-release-validation.md +202 -0
- package/docs/reference/memory-config.md +630 -0
- package/docs/reference/openclaw-sdk-api-design.md +390 -0
- package/docs/reference/prompt-caching.md +358 -0
- package/docs/reference/rich-output-protocol.md +79 -0
- package/docs/reference/rpc.md +43 -0
- package/docs/reference/secretref-credential-surface.md +159 -0
- package/docs/reference/secretref-user-supplied-credentials-matrix.json +663 -0
- package/docs/reference/session-management-compaction.md +461 -0
- package/docs/reference/templates/AGENTS.dev.md +89 -0
- package/docs/reference/templates/AGENTS.md +225 -0
- package/docs/reference/templates/BOOT.md +16 -0
- package/docs/reference/templates/BOOTSTRAP.md +66 -0
- package/docs/reference/templates/HEARTBEAT.md +16 -0
- package/docs/reference/templates/IDENTITY.dev.md +52 -0
- package/docs/reference/templates/IDENTITY.md +34 -0
- package/docs/reference/templates/SOUL.dev.md +82 -0
- package/docs/reference/templates/SOUL.md +49 -0
- package/docs/reference/templates/TOOLS.dev.md +29 -0
- package/docs/reference/templates/TOOLS.md +51 -0
- package/docs/reference/templates/USER.dev.md +23 -0
- package/docs/reference/templates/USER.md +28 -0
- package/docs/reference/test.md +239 -0
- package/docs/reference/token-use.md +233 -0
- package/docs/reference/transcript-hygiene.md +214 -0
- package/docs/reference/wizard.md +252 -0
- package/docs/security/CONTRIBUTING-THREAT-MODEL.md +101 -0
- package/docs/security/THREAT-MODEL-ATLAS.md +611 -0
- package/docs/security/formal-verification.md +170 -0
- package/docs/security/incident-response.md +59 -0
- package/docs/security/network-proxy.md +268 -0
- package/docs/snippets/plugin-publish/minimal-openclaw.plugin.json +12 -0
- package/docs/snippets/plugin-publish/minimal-package.json +16 -0
- package/docs/start/bootstrapping.md +49 -0
- package/docs/start/docs-directory.md +69 -0
- package/docs/start/getting-started.md +152 -0
- package/docs/start/hubs.md +201 -0
- package/docs/start/lore.md +223 -0
- package/docs/start/onboarding-overview.md +72 -0
- package/docs/start/onboarding.md +95 -0
- package/docs/start/openclaw.md +244 -0
- package/docs/start/quickstart.md +25 -0
- package/docs/start/setup.md +178 -0
- package/docs/start/showcase.md +383 -0
- package/docs/start/wizard-cli-automation.md +232 -0
- package/docs/start/wizard-cli-reference.md +331 -0
- package/docs/start/wizard.md +141 -0
- package/docs/style.css +184 -0
- package/docs/superpowers/specs/2026-04-22-tweakcn-custom-theme-import-design.md +316 -0
- package/docs/tools/acp-agents-setup.md +352 -0
- package/docs/tools/acp-agents.md +847 -0
- package/docs/tools/agent-send.md +112 -0
- package/docs/tools/apply-patch.md +64 -0
- package/docs/tools/brave-search.md +139 -0
- package/docs/tools/browser-control.md +391 -0
- package/docs/tools/browser-linux-troubleshooting.md +173 -0
- package/docs/tools/browser-login.md +77 -0
- package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +219 -0
- package/docs/tools/browser.md +769 -0
- package/docs/tools/btw.md +159 -0
- package/docs/tools/capability-cookbook.md +12 -0
- package/docs/tools/clawhub.md +5 -0
- package/docs/tools/code-execution.md +173 -0
- package/docs/tools/creating-skills.md +120 -0
- package/docs/tools/diffs.md +506 -0
- package/docs/tools/duckduckgo-search.md +109 -0
- package/docs/tools/elevated.md +128 -0
- package/docs/tools/exa-search.md +152 -0
- package/docs/tools/exec-approvals-advanced.md +360 -0
- package/docs/tools/exec-approvals.md +474 -0
- package/docs/tools/exec.md +282 -0
- package/docs/tools/firecrawl.md +155 -0
- package/docs/tools/gemini-search.md +114 -0
- package/docs/tools/grok-search.md +113 -0
- package/docs/tools/image-generation.md +433 -0
- package/docs/tools/index.md +178 -0
- package/docs/tools/kimi-search.md +105 -0
- package/docs/tools/llm-task.md +137 -0
- package/docs/tools/lobster.md +365 -0
- package/docs/tools/loop-detection.md +154 -0
- package/docs/tools/media-overview.md +157 -0
- package/docs/tools/minimax-search.md +102 -0
- package/docs/tools/multi-agent-sandbox-tools.md +409 -0
- package/docs/tools/music-generation.md +371 -0
- package/docs/tools/ollama-search.md +153 -0
- package/docs/tools/pdf.md +195 -0
- package/docs/tools/perplexity-search.md +220 -0
- package/docs/tools/plugin.md +327 -0
- package/docs/tools/reactions.md +100 -0
- package/docs/tools/searxng-search.md +141 -0
- package/docs/tools/skills-config.md +195 -0
- package/docs/tools/skills.md +535 -0
- package/docs/tools/slash-commands.md +488 -0
- package/docs/tools/steer.md +84 -0
- package/docs/tools/subagents.md +650 -0
- package/docs/tools/tavily.md +162 -0
- package/docs/tools/thinking.md +140 -0
- package/docs/tools/tokenjuice.md +81 -0
- package/docs/tools/tool-search.md +269 -0
- package/docs/tools/trajectory.md +229 -0
- package/docs/tools/tts.md +1004 -0
- package/docs/tools/video-generation.md +552 -0
- package/docs/tools/web-fetch.md +195 -0
- package/docs/tools/web.md +459 -0
- package/docs/tts.md +11 -0
- package/docs/vps.md +139 -0
- package/docs/web/control-ui.md +503 -0
- package/docs/web/dashboard.md +107 -0
- package/docs/web/index.md +133 -0
- package/docs/web/tui.md +246 -0
- package/docs/web/webchat.md +99 -0
- package/docs/whatsapp-openclaw-ai-zh.jpg +0 -0
- package/docs/whatsapp-openclaw.jpg +0 -0
- package/nodmix.mjs +487 -0
- package/package.json +1852 -0
- package/patches/.gitkeep +0 -0
- package/patches/@agentclientprotocol__claude-agent-acp@0.36.1.patch +41 -0
- package/pnpm-workspace.yaml +63 -0
- package/scripts/crabbox-wrapper.mjs +353 -0
- package/scripts/lib/official-external-channel-catalog.json +559 -0
- package/scripts/lib/official-external-plugin-catalog.json +192 -0
- package/scripts/lib/official-external-provider-catalog.json +117 -0
- package/scripts/lib/package-dist-imports.mjs +171 -0
- package/scripts/npm-runner.mjs +91 -0
- package/scripts/postinstall-bundled-plugins.mjs +978 -0
- package/scripts/preinstall-package-manager-warning.mjs +64 -0
- package/scripts/windows-cmd-helpers.mjs +20 -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/camsnap/SKILL.md +45 -0
- package/skills/canvas/SKILL.md +78 -0
- package/skills/clawhub/SKILL.md +77 -0
- package/skills/coding-agent/SKILL.md +149 -0
- package/skills/diagram-maker/SKILL.md +53 -0
- package/skills/diagram-maker/references/excalidraw-patterns.md +85 -0
- package/skills/diagram-maker/references/svg-template.md +112 -0
- package/skills/discord/SKILL.md +136 -0
- package/skills/eightctl/SKILL.md +50 -0
- package/skills/gemini/SKILL.md +47 -0
- package/skills/gh-issues/SKILL.md +213 -0
- package/skills/gifgrep/SKILL.md +85 -0
- package/skills/github/SKILL.md +84 -0
- package/skills/gog/SKILL.md +116 -0
- package/skills/goplaces/SKILL.md +52 -0
- package/skills/healthcheck/SKILL.md +105 -0
- package/skills/himalaya/SKILL.md +80 -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/meme-maker/SKILL.md +42 -0
- package/skills/meme-maker/references/templates.json +358 -0
- package/skills/meme-maker/scripts/meme.mjs +398 -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 +319 -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/node-inspect-debugger/SKILL.md +85 -0
- package/skills/notion/SKILL.md +150 -0
- package/skills/obsidian/SKILL.md +119 -0
- package/skills/openai-whisper/SKILL.md +38 -0
- package/skills/openai-whisper-api/SKILL.md +71 -0
- package/skills/openai-whisper-api/scripts/transcribe.sh +154 -0
- package/skills/openhue/SKILL.md +112 -0
- package/skills/oracle/SKILL.md +126 -0
- package/skills/ordercli/SKILL.md +78 -0
- package/skills/peekaboo/SKILL.md +190 -0
- package/skills/pyproject.toml +10 -0
- package/skills/python-debugpy/SKILL.md +73 -0
- package/skills/sag/SKILL.md +87 -0
- package/skills/session-logs/SKILL.md +151 -0
- package/skills/sherpa-onnx-tts/SKILL.md +109 -0
- package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
- package/skills/skill-creator/SKILL.md +78 -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 +169 -0
- package/skills/skill-creator/scripts/test_package_skill.py +161 -0
- package/skills/skill-creator/scripts/test_quick_validate.py +116 -0
- package/skills/slack/SKILL.md +78 -0
- package/skills/songsee/SKILL.md +49 -0
- package/skills/sonoscli/SKILL.md +65 -0
- package/skills/spike/SKILL.md +51 -0
- package/skills/spotify-player/SKILL.md +64 -0
- package/skills/summarize/SKILL.md +87 -0
- package/skills/taskflow/SKILL.md +149 -0
- package/skills/taskflow/examples/inbox-triage.lobster +33 -0
- package/skills/taskflow/examples/pr-intake.lobster +32 -0
- package/skills/taskflow-inbox-triage/SKILL.md +119 -0
- package/skills/things-mac/SKILL.md +86 -0
- package/skills/tmux/SKILL.md +91 -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 +108 -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 +64 -0
- package/skills/xurl/SKILL.md +120 -0
|
@@ -0,0 +1,431 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Twitch chat bot configuration and setup"
|
|
3
|
+
read_when:
|
|
4
|
+
- Setting up Twitch chat integration for Nodmix
|
|
5
|
+
title: "Twitch"
|
|
6
|
+
sidebarTitle: "Twitch"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
Twitch chat support via IRC connection. Nodmix connects as a Twitch user (bot account) to receive and send messages in channels.
|
|
10
|
+
|
|
11
|
+
## Bundled plugin
|
|
12
|
+
|
|
13
|
+
<Note>
|
|
14
|
+
Twitch ships as a bundled plugin in current Nodmix releases, so normal packaged builds do not need a separate install.
|
|
15
|
+
</Note>
|
|
16
|
+
|
|
17
|
+
If you are on an older build or a custom install that excludes Twitch, install the npm package directly:
|
|
18
|
+
|
|
19
|
+
<Tabs>
|
|
20
|
+
<Tab title="npm registry">
|
|
21
|
+
```bash
|
|
22
|
+
nodmix plugins install @nodmix/twitch
|
|
23
|
+
```
|
|
24
|
+
</Tab>
|
|
25
|
+
<Tab title="Local checkout">
|
|
26
|
+
```bash
|
|
27
|
+
nodmix plugins install ./path/to/local/twitch-plugin
|
|
28
|
+
```
|
|
29
|
+
</Tab>
|
|
30
|
+
</Tabs>
|
|
31
|
+
|
|
32
|
+
Use the bare package to follow the current official release tag. Pin an exact
|
|
33
|
+
version only when you need a reproducible install.
|
|
34
|
+
|
|
35
|
+
Details: [Plugins](/tools/plugin)
|
|
36
|
+
|
|
37
|
+
## Quick setup (beginner)
|
|
38
|
+
|
|
39
|
+
<Steps>
|
|
40
|
+
<Step title="Ensure plugin is available">
|
|
41
|
+
Current packaged Nodmix releases already bundle it. Older/custom installs can add it manually with the commands above.
|
|
42
|
+
</Step>
|
|
43
|
+
<Step title="Create a Twitch bot account">
|
|
44
|
+
Create a dedicated Twitch account for the bot (or use an existing account).
|
|
45
|
+
</Step>
|
|
46
|
+
<Step title="Generate credentials">
|
|
47
|
+
Use [Twitch Token Generator](https://twitchtokengenerator.com/):
|
|
48
|
+
|
|
49
|
+
- Select **Bot Token**
|
|
50
|
+
- Verify scopes `chat:read` and `chat:write` are selected
|
|
51
|
+
- Copy the **Client ID** and **Access Token**
|
|
52
|
+
|
|
53
|
+
</Step>
|
|
54
|
+
<Step title="Find your Twitch user ID">
|
|
55
|
+
Use [https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/](https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/) to convert a username to a Twitch user ID.
|
|
56
|
+
</Step>
|
|
57
|
+
<Step title="Configure the token">
|
|
58
|
+
- Env: `NODMIX_TWITCH_ACCESS_TOKEN=...` (default account only)
|
|
59
|
+
- Or config: `channels.twitch.accessToken`
|
|
60
|
+
|
|
61
|
+
If both are set, config takes precedence (env fallback is default-account only).
|
|
62
|
+
|
|
63
|
+
</Step>
|
|
64
|
+
<Step title="Start the gateway">
|
|
65
|
+
Start the gateway with the configured channel.
|
|
66
|
+
</Step>
|
|
67
|
+
</Steps>
|
|
68
|
+
|
|
69
|
+
<Warning>
|
|
70
|
+
Add access control (`allowFrom` or `allowedRoles`) to prevent unauthorized users from triggering the bot. `requireMention` defaults to `true`.
|
|
71
|
+
</Warning>
|
|
72
|
+
|
|
73
|
+
Minimal config:
|
|
74
|
+
|
|
75
|
+
```json5
|
|
76
|
+
{
|
|
77
|
+
channels: {
|
|
78
|
+
twitch: {
|
|
79
|
+
enabled: true,
|
|
80
|
+
username: "nodmix", // Bot's Twitch account
|
|
81
|
+
accessToken: "oauth:abc123...", // OAuth Access Token (or use NODMIX_TWITCH_ACCESS_TOKEN env var)
|
|
82
|
+
clientId: "xyz789...", // Client ID from Token Generator
|
|
83
|
+
channel: "vevisk", // Which Twitch channel's chat to join (required)
|
|
84
|
+
allowFrom: ["123456789"], // (recommended) Your Twitch user ID only - get it from https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## What it is
|
|
91
|
+
|
|
92
|
+
- A Twitch channel owned by the Gateway.
|
|
93
|
+
- Deterministic routing: replies always go back to Twitch.
|
|
94
|
+
- Each account maps to an isolated session key `agent:<agentId>:twitch:<accountName>`.
|
|
95
|
+
- `username` is the bot's account (who authenticates), `channel` is which chat room to join.
|
|
96
|
+
|
|
97
|
+
## Setup (detailed)
|
|
98
|
+
|
|
99
|
+
### Generate credentials
|
|
100
|
+
|
|
101
|
+
Use [Twitch Token Generator](https://twitchtokengenerator.com/):
|
|
102
|
+
|
|
103
|
+
- Select **Bot Token**
|
|
104
|
+
- Verify scopes `chat:read` and `chat:write` are selected
|
|
105
|
+
- Copy the **Client ID** and **Access Token**
|
|
106
|
+
|
|
107
|
+
<Note>
|
|
108
|
+
No manual app registration needed. Tokens expire after several hours.
|
|
109
|
+
</Note>
|
|
110
|
+
|
|
111
|
+
### Configure the bot
|
|
112
|
+
|
|
113
|
+
<Tabs>
|
|
114
|
+
<Tab title="Env var (default account only)">
|
|
115
|
+
```bash
|
|
116
|
+
NODMIX_TWITCH_ACCESS_TOKEN=oauth:abc123...
|
|
117
|
+
```
|
|
118
|
+
</Tab>
|
|
119
|
+
<Tab title="Config">
|
|
120
|
+
```json5
|
|
121
|
+
{
|
|
122
|
+
channels: {
|
|
123
|
+
twitch: {
|
|
124
|
+
enabled: true,
|
|
125
|
+
username: "nodmix",
|
|
126
|
+
accessToken: "oauth:abc123...",
|
|
127
|
+
clientId: "xyz789...",
|
|
128
|
+
channel: "vevisk",
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
}
|
|
132
|
+
```
|
|
133
|
+
</Tab>
|
|
134
|
+
</Tabs>
|
|
135
|
+
|
|
136
|
+
If both env and config are set, config takes precedence.
|
|
137
|
+
|
|
138
|
+
### Access control (recommended)
|
|
139
|
+
|
|
140
|
+
```json5
|
|
141
|
+
{
|
|
142
|
+
channels: {
|
|
143
|
+
twitch: {
|
|
144
|
+
allowFrom: ["123456789"], // (recommended) Your Twitch user ID only
|
|
145
|
+
},
|
|
146
|
+
},
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Prefer `allowFrom` for a hard allowlist. Use `allowedRoles` instead if you want role-based access.
|
|
151
|
+
|
|
152
|
+
**Available roles:** `"moderator"`, `"owner"`, `"vip"`, `"subscriber"`, `"all"`.
|
|
153
|
+
|
|
154
|
+
<Note>
|
|
155
|
+
**Why user IDs?** Usernames can change, allowing impersonation. User IDs are permanent.
|
|
156
|
+
|
|
157
|
+
Find your Twitch user ID: [https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/](https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/) (Convert your Twitch username to ID)
|
|
158
|
+
</Note>
|
|
159
|
+
|
|
160
|
+
## Token refresh (optional)
|
|
161
|
+
|
|
162
|
+
Tokens from [Twitch Token Generator](https://twitchtokengenerator.com/) cannot be automatically refreshed - regenerate when expired.
|
|
163
|
+
|
|
164
|
+
For automatic token refresh, create your own Twitch application at [Twitch Developer Console](https://dev.twitch.tv/console) and add to config:
|
|
165
|
+
|
|
166
|
+
```json5
|
|
167
|
+
{
|
|
168
|
+
channels: {
|
|
169
|
+
twitch: {
|
|
170
|
+
clientSecret: "your_client_secret",
|
|
171
|
+
refreshToken: "your_refresh_token",
|
|
172
|
+
},
|
|
173
|
+
},
|
|
174
|
+
}
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
The bot automatically refreshes tokens before expiration and logs refresh events.
|
|
178
|
+
|
|
179
|
+
## Multi-account support
|
|
180
|
+
|
|
181
|
+
Use `channels.twitch.accounts` with per-account tokens. See [Configuration](/gateway/configuration) for the shared pattern.
|
|
182
|
+
|
|
183
|
+
Example (one bot account in two channels):
|
|
184
|
+
|
|
185
|
+
```json5
|
|
186
|
+
{
|
|
187
|
+
channels: {
|
|
188
|
+
twitch: {
|
|
189
|
+
accounts: {
|
|
190
|
+
channel1: {
|
|
191
|
+
username: "nodmix",
|
|
192
|
+
accessToken: "oauth:abc123...",
|
|
193
|
+
clientId: "xyz789...",
|
|
194
|
+
channel: "vevisk",
|
|
195
|
+
},
|
|
196
|
+
channel2: {
|
|
197
|
+
username: "nodmix",
|
|
198
|
+
accessToken: "oauth:def456...",
|
|
199
|
+
clientId: "uvw012...",
|
|
200
|
+
channel: "secondchannel",
|
|
201
|
+
},
|
|
202
|
+
},
|
|
203
|
+
},
|
|
204
|
+
},
|
|
205
|
+
}
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
<Note>
|
|
209
|
+
Each account needs its own token (one token per channel).
|
|
210
|
+
</Note>
|
|
211
|
+
|
|
212
|
+
## Access control
|
|
213
|
+
|
|
214
|
+
<Tabs>
|
|
215
|
+
<Tab title="User ID allowlist (most secure)">
|
|
216
|
+
```json5
|
|
217
|
+
{
|
|
218
|
+
channels: {
|
|
219
|
+
twitch: {
|
|
220
|
+
accounts: {
|
|
221
|
+
default: {
|
|
222
|
+
allowFrom: ["123456789", "987654321"],
|
|
223
|
+
},
|
|
224
|
+
},
|
|
225
|
+
},
|
|
226
|
+
},
|
|
227
|
+
}
|
|
228
|
+
```
|
|
229
|
+
</Tab>
|
|
230
|
+
<Tab title="Role-based">
|
|
231
|
+
```json5
|
|
232
|
+
{
|
|
233
|
+
channels: {
|
|
234
|
+
twitch: {
|
|
235
|
+
accounts: {
|
|
236
|
+
default: {
|
|
237
|
+
allowedRoles: ["moderator", "vip"],
|
|
238
|
+
},
|
|
239
|
+
},
|
|
240
|
+
},
|
|
241
|
+
},
|
|
242
|
+
}
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
`allowFrom` is a hard allowlist. When set, only those user IDs are allowed. If you want role-based access, leave `allowFrom` unset and configure `allowedRoles` instead.
|
|
246
|
+
|
|
247
|
+
</Tab>
|
|
248
|
+
<Tab title="Disable @mention requirement">
|
|
249
|
+
By default, `requireMention` is `true`. To disable and respond to all messages:
|
|
250
|
+
|
|
251
|
+
```json5
|
|
252
|
+
{
|
|
253
|
+
channels: {
|
|
254
|
+
twitch: {
|
|
255
|
+
accounts: {
|
|
256
|
+
default: {
|
|
257
|
+
requireMention: false,
|
|
258
|
+
},
|
|
259
|
+
},
|
|
260
|
+
},
|
|
261
|
+
},
|
|
262
|
+
}
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
</Tab>
|
|
266
|
+
</Tabs>
|
|
267
|
+
|
|
268
|
+
## Troubleshooting
|
|
269
|
+
|
|
270
|
+
First, run diagnostic commands:
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
nodmix doctor
|
|
274
|
+
nodmix channels status --probe
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
<AccordionGroup>
|
|
278
|
+
<Accordion title="Bot does not respond to messages">
|
|
279
|
+
- **Check access control:** Ensure your user ID is in `allowFrom`, or temporarily remove `allowFrom` and set `allowedRoles: ["all"]` to test.
|
|
280
|
+
- **Check the bot is in the channel:** The bot must join the channel specified in `channel`.
|
|
281
|
+
|
|
282
|
+
</Accordion>
|
|
283
|
+
<Accordion title="Token issues">
|
|
284
|
+
"Failed to connect" or authentication errors:
|
|
285
|
+
|
|
286
|
+
- Verify `accessToken` is the OAuth access token value (typically starts with `oauth:` prefix)
|
|
287
|
+
- Check token has `chat:read` and `chat:write` scopes
|
|
288
|
+
- If using token refresh, verify `clientSecret` and `refreshToken` are set
|
|
289
|
+
|
|
290
|
+
</Accordion>
|
|
291
|
+
<Accordion title="Token refresh not working">
|
|
292
|
+
Check logs for refresh events:
|
|
293
|
+
|
|
294
|
+
```
|
|
295
|
+
Using env token source for mybot
|
|
296
|
+
Access token refreshed for user 123456 (expires in 14400s)
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
If you see "token refresh disabled (no refresh token)":
|
|
300
|
+
|
|
301
|
+
- Ensure `clientSecret` is provided
|
|
302
|
+
- Ensure `refreshToken` is provided
|
|
303
|
+
|
|
304
|
+
</Accordion>
|
|
305
|
+
</AccordionGroup>
|
|
306
|
+
|
|
307
|
+
## Config
|
|
308
|
+
|
|
309
|
+
### Account config
|
|
310
|
+
|
|
311
|
+
<ParamField path="username" type="string">
|
|
312
|
+
Bot username.
|
|
313
|
+
</ParamField>
|
|
314
|
+
<ParamField path="accessToken" type="string">
|
|
315
|
+
OAuth access token with `chat:read` and `chat:write`.
|
|
316
|
+
</ParamField>
|
|
317
|
+
<ParamField path="clientId" type="string">
|
|
318
|
+
Twitch Client ID (from Token Generator or your app).
|
|
319
|
+
</ParamField>
|
|
320
|
+
<ParamField path="channel" type="string" required>
|
|
321
|
+
Channel to join.
|
|
322
|
+
</ParamField>
|
|
323
|
+
<ParamField path="enabled" type="boolean" default="true">
|
|
324
|
+
Enable this account.
|
|
325
|
+
</ParamField>
|
|
326
|
+
<ParamField path="clientSecret" type="string">
|
|
327
|
+
Optional: for automatic token refresh.
|
|
328
|
+
</ParamField>
|
|
329
|
+
<ParamField path="refreshToken" type="string">
|
|
330
|
+
Optional: for automatic token refresh.
|
|
331
|
+
</ParamField>
|
|
332
|
+
<ParamField path="expiresIn" type="number">
|
|
333
|
+
Token expiry in seconds.
|
|
334
|
+
</ParamField>
|
|
335
|
+
<ParamField path="obtainmentTimestamp" type="number">
|
|
336
|
+
Token obtained timestamp.
|
|
337
|
+
</ParamField>
|
|
338
|
+
<ParamField path="allowFrom" type="string[]">
|
|
339
|
+
User ID allowlist.
|
|
340
|
+
</ParamField>
|
|
341
|
+
<ParamField path="allowedRoles" type='Array<"moderator" | "owner" | "vip" | "subscriber" | "all">'>
|
|
342
|
+
Role-based access control.
|
|
343
|
+
</ParamField>
|
|
344
|
+
<ParamField path="requireMention" type="boolean" default="true">
|
|
345
|
+
Require @mention.
|
|
346
|
+
</ParamField>
|
|
347
|
+
|
|
348
|
+
### Provider options
|
|
349
|
+
|
|
350
|
+
- `channels.twitch.enabled` - Enable/disable channel startup
|
|
351
|
+
- `channels.twitch.username` - Bot username (simplified single-account config)
|
|
352
|
+
- `channels.twitch.accessToken` - OAuth access token (simplified single-account config)
|
|
353
|
+
- `channels.twitch.clientId` - Twitch Client ID (simplified single-account config)
|
|
354
|
+
- `channels.twitch.channel` - Channel to join (simplified single-account config)
|
|
355
|
+
- `channels.twitch.accounts.<accountName>` - Multi-account config (all account fields above)
|
|
356
|
+
|
|
357
|
+
Full example:
|
|
358
|
+
|
|
359
|
+
```json5
|
|
360
|
+
{
|
|
361
|
+
channels: {
|
|
362
|
+
twitch: {
|
|
363
|
+
enabled: true,
|
|
364
|
+
username: "nodmix",
|
|
365
|
+
accessToken: "oauth:abc123...",
|
|
366
|
+
clientId: "xyz789...",
|
|
367
|
+
channel: "vevisk",
|
|
368
|
+
clientSecret: "secret123...",
|
|
369
|
+
refreshToken: "refresh456...",
|
|
370
|
+
allowFrom: ["123456789"],
|
|
371
|
+
allowedRoles: ["moderator", "vip"],
|
|
372
|
+
accounts: {
|
|
373
|
+
default: {
|
|
374
|
+
username: "mybot",
|
|
375
|
+
accessToken: "oauth:abc123...",
|
|
376
|
+
clientId: "xyz789...",
|
|
377
|
+
channel: "your_channel",
|
|
378
|
+
enabled: true,
|
|
379
|
+
clientSecret: "secret123...",
|
|
380
|
+
refreshToken: "refresh456...",
|
|
381
|
+
expiresIn: 14400,
|
|
382
|
+
obtainmentTimestamp: 1706092800000,
|
|
383
|
+
allowFrom: ["123456789", "987654321"],
|
|
384
|
+
allowedRoles: ["moderator"],
|
|
385
|
+
},
|
|
386
|
+
},
|
|
387
|
+
},
|
|
388
|
+
},
|
|
389
|
+
}
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
## Tool actions
|
|
393
|
+
|
|
394
|
+
The agent can call `twitch` with action:
|
|
395
|
+
|
|
396
|
+
- `send` - Send a message to a channel
|
|
397
|
+
|
|
398
|
+
Example:
|
|
399
|
+
|
|
400
|
+
```json5
|
|
401
|
+
{
|
|
402
|
+
action: "twitch",
|
|
403
|
+
params: {
|
|
404
|
+
message: "Hello Twitch!",
|
|
405
|
+
to: "#mychannel",
|
|
406
|
+
},
|
|
407
|
+
}
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
## Safety and ops
|
|
411
|
+
|
|
412
|
+
- **Treat tokens like passwords** — Never commit tokens to git.
|
|
413
|
+
- **Use automatic token refresh** for long-running bots.
|
|
414
|
+
- **Use user ID allowlists** instead of usernames for access control.
|
|
415
|
+
- **Monitor logs** for token refresh events and connection status.
|
|
416
|
+
- **Scope tokens minimally** — Only request `chat:read` and `chat:write`.
|
|
417
|
+
- **If stuck**: Restart the gateway after confirming no other process owns the session.
|
|
418
|
+
|
|
419
|
+
## Limits
|
|
420
|
+
|
|
421
|
+
- **500 characters** per message (auto-chunked at word boundaries).
|
|
422
|
+
- Markdown is stripped before chunking.
|
|
423
|
+
- No rate limiting (uses Twitch's built-in rate limits).
|
|
424
|
+
|
|
425
|
+
## Related
|
|
426
|
+
|
|
427
|
+
- [Channel Routing](/channels/channel-routing) — session routing for messages
|
|
428
|
+
- [Channels Overview](/channels) — all supported channels
|
|
429
|
+
- [Groups](/channels/groups) — group chat behavior and mention gating
|
|
430
|
+
- [Pairing](/channels/pairing) — DM authentication and pairing flow
|
|
431
|
+
- [Security](/gateway/security) — access model and hardening
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "WeChat channel setup through the external nodmix-weixin plugin"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want to connect Nodmix to WeChat or Weixin
|
|
5
|
+
- You are installing or troubleshooting the nodmix-weixin channel plugin
|
|
6
|
+
- You need to understand how external channel plugins run beside the Gateway
|
|
7
|
+
title: "WeChat"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
Nodmix connects to WeChat through Tencent's external
|
|
11
|
+
`@tencent-weixin/nodmix-weixin` channel plugin.
|
|
12
|
+
|
|
13
|
+
Status: external plugin. Direct chats and media are supported. Group chats are not
|
|
14
|
+
advertised by the current plugin capability metadata.
|
|
15
|
+
|
|
16
|
+
## Naming
|
|
17
|
+
|
|
18
|
+
- **WeChat** is the user-facing name in these docs.
|
|
19
|
+
- **Weixin** is the name used by Tencent's package and by the plugin id.
|
|
20
|
+
- `nodmix-weixin` is the Nodmix channel id.
|
|
21
|
+
- `@tencent-weixin/nodmix-weixin` is the npm package.
|
|
22
|
+
|
|
23
|
+
Use `nodmix-weixin` in CLI commands and config paths.
|
|
24
|
+
|
|
25
|
+
## How it works
|
|
26
|
+
|
|
27
|
+
The WeChat code does not live in the Nodmix core repo. Nodmix provides the
|
|
28
|
+
generic channel plugin contract, and the external plugin provides the
|
|
29
|
+
WeChat-specific runtime:
|
|
30
|
+
|
|
31
|
+
1. `nodmix plugins install` installs `@tencent-weixin/nodmix-weixin`.
|
|
32
|
+
2. The Gateway discovers the plugin manifest and loads the plugin entrypoint.
|
|
33
|
+
3. The plugin registers channel id `nodmix-weixin`.
|
|
34
|
+
4. `nodmix channels login --channel nodmix-weixin` starts QR login.
|
|
35
|
+
5. The plugin stores account credentials under the Nodmix state directory.
|
|
36
|
+
6. When the Gateway starts, the plugin starts its Weixin monitor for each
|
|
37
|
+
configured account.
|
|
38
|
+
7. Inbound WeChat messages are normalized through the channel contract, routed to
|
|
39
|
+
the selected Nodmix agent, and sent back through the plugin outbound path.
|
|
40
|
+
|
|
41
|
+
That separation matters: Nodmix core should stay channel-agnostic. WeChat login,
|
|
42
|
+
Tencent iLink API calls, media upload/download, context tokens, and account
|
|
43
|
+
monitoring are owned by the external plugin.
|
|
44
|
+
|
|
45
|
+
## Install
|
|
46
|
+
|
|
47
|
+
Quick install:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
npx -y @tencent-weixin/nodmix-weixin-cli install
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Manual install:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
nodmix plugins install "@tencent-weixin/nodmix-weixin"
|
|
57
|
+
nodmix config set plugins.entries.nodmix-weixin.enabled true
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Restart the Gateway after install:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
nodmix gateway restart
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Login
|
|
67
|
+
|
|
68
|
+
Run QR login on the same machine that runs the Gateway:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
nodmix channels login --channel nodmix-weixin
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Scan the QR code with WeChat on your phone and confirm the login. The plugin saves
|
|
75
|
+
the account token locally after a successful scan.
|
|
76
|
+
|
|
77
|
+
To add another WeChat account, run the same login command again. For multiple
|
|
78
|
+
accounts, isolate direct-message sessions by account, channel, and sender:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
nodmix config set session.dmScope per-account-channel-peer
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Access control
|
|
85
|
+
|
|
86
|
+
Direct messages use the normal Nodmix pairing and allowlist model for channel
|
|
87
|
+
plugins.
|
|
88
|
+
|
|
89
|
+
Approve new senders:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
nodmix pairing list nodmix-weixin
|
|
93
|
+
nodmix pairing approve nodmix-weixin <CODE>
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
For the full access-control model, see [Pairing](/channels/pairing).
|
|
97
|
+
|
|
98
|
+
## Compatibility
|
|
99
|
+
|
|
100
|
+
The plugin checks the host Nodmix version at startup.
|
|
101
|
+
|
|
102
|
+
| Plugin line | Nodmix version | npm tag |
|
|
103
|
+
| ----------- | ----------------------- | -------- |
|
|
104
|
+
| `2.x` | `>=2026.3.22` | `latest` |
|
|
105
|
+
| `1.x` | `>=2026.1.0 <2026.3.22` | `legacy` |
|
|
106
|
+
|
|
107
|
+
If the plugin reports that your Nodmix version is too old, either update
|
|
108
|
+
Nodmix or install the legacy plugin line:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
nodmix plugins install @tencent-weixin/nodmix-weixin@legacy
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Sidecar process
|
|
115
|
+
|
|
116
|
+
The WeChat plugin can run helper work beside the Gateway while it monitors the
|
|
117
|
+
Tencent iLink API. In issue #68451, that helper path exposed a bug in Nodmix's
|
|
118
|
+
generic stale-Gateway cleanup: a child process could try to clean up the parent
|
|
119
|
+
Gateway process, causing restart loops under process managers such as systemd.
|
|
120
|
+
|
|
121
|
+
Current Nodmix startup cleanup excludes the current process and its ancestors,
|
|
122
|
+
so a channel helper must not kill the Gateway that launched it. This fix is
|
|
123
|
+
generic; it is not a WeChat-specific path in core.
|
|
124
|
+
|
|
125
|
+
## Troubleshooting
|
|
126
|
+
|
|
127
|
+
Check install and status:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
nodmix plugins list
|
|
131
|
+
nodmix channels status --probe
|
|
132
|
+
nodmix --version
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
If the channel shows as installed but does not connect, confirm that the plugin is
|
|
136
|
+
enabled and restart:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
nodmix config set plugins.entries.nodmix-weixin.enabled true
|
|
140
|
+
nodmix gateway restart
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
If the Gateway restarts repeatedly after enabling WeChat, update both Nodmix and
|
|
144
|
+
the plugin:
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
npm view @tencent-weixin/nodmix-weixin version
|
|
148
|
+
nodmix plugins install "@tencent-weixin/nodmix-weixin" --force
|
|
149
|
+
nodmix gateway restart
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
If startup reports that the installed plugin package `requires compiled runtime
|
|
153
|
+
output for TypeScript entry`, the npm package was published without the compiled
|
|
154
|
+
JavaScript runtime files Nodmix needs. Update/reinstall after the plugin
|
|
155
|
+
publisher ships a fixed package, or temporarily disable/uninstall the plugin.
|
|
156
|
+
|
|
157
|
+
Temporary disable:
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
nodmix config set plugins.entries.nodmix-weixin.enabled false
|
|
161
|
+
nodmix gateway restart
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## Related docs
|
|
165
|
+
|
|
166
|
+
- Channel overview: [Chat Channels](/channels)
|
|
167
|
+
- Pairing: [Pairing](/channels/pairing)
|
|
168
|
+
- Channel routing: [Channel Routing](/channels/channel-routing)
|
|
169
|
+
- Plugin architecture: [Plugin Architecture](/plugins/architecture)
|
|
170
|
+
- Channel plugin SDK: [Channel Plugin SDK](/plugins/sdk-channel-plugins)
|
|
171
|
+
- External package: [@tencent-weixin/nodmix-weixin](https://www.npmjs.com/package/@tencent-weixin/nodmix-weixin)
|