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,327 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Install, configure, and manage Nodmix plugins"
|
|
3
|
+
read_when:
|
|
4
|
+
- Installing or configuring plugins
|
|
5
|
+
- Understanding plugin discovery and load rules
|
|
6
|
+
- Working with Codex/Claude-compatible plugin bundles
|
|
7
|
+
title: "Plugins"
|
|
8
|
+
sidebarTitle: "Getting Started"
|
|
9
|
+
doc-schema-version: 1
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
Plugins extend Nodmix with channels, model providers, agent harnesses, tools,
|
|
13
|
+
skills, speech, realtime transcription, voice, media understanding, generation,
|
|
14
|
+
web fetch, web search, and other runtime capabilities.
|
|
15
|
+
|
|
16
|
+
Use this page when you want to install a plugin, restart the Gateway, verify
|
|
17
|
+
that the runtime loaded it, and route common setup failures. For command-only
|
|
18
|
+
examples, see [Manage plugins](/plugins/manage-plugins). For the full generated
|
|
19
|
+
inventory of bundled, official external, and source-only plugins, see
|
|
20
|
+
[Plugin inventory](/plugins/plugin-inventory).
|
|
21
|
+
|
|
22
|
+
## Requirements
|
|
23
|
+
|
|
24
|
+
Before installing a plugin, make sure you have:
|
|
25
|
+
|
|
26
|
+
- an Nodmix checkout or installation with the `nodmix` CLI available
|
|
27
|
+
- network access to the selected source, such as ClawHub, npm, or a git host
|
|
28
|
+
- any plugin-specific credentials, config keys, or operating-system tools named
|
|
29
|
+
by that plugin's setup docs
|
|
30
|
+
- permission for the Gateway that serves your channels to reload or restart
|
|
31
|
+
|
|
32
|
+
## Quick start
|
|
33
|
+
|
|
34
|
+
<Steps>
|
|
35
|
+
<Step title="Find the plugin">
|
|
36
|
+
Search [ClawHub](/clawhub) for public plugin packages:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
nodmix plugins search "calendar"
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
ClawHub is the primary discovery surface for community plugins. During the
|
|
43
|
+
launch cutover, ordinary bare package specs still install from npm. Use an
|
|
44
|
+
explicit prefix when you need one source.
|
|
45
|
+
|
|
46
|
+
</Step>
|
|
47
|
+
|
|
48
|
+
<Step title="Install the plugin">
|
|
49
|
+
```bash
|
|
50
|
+
# From ClawHub.
|
|
51
|
+
nodmix plugins install clawhub:<package>
|
|
52
|
+
|
|
53
|
+
# From npm.
|
|
54
|
+
nodmix plugins install npm:<package>
|
|
55
|
+
|
|
56
|
+
# From git.
|
|
57
|
+
nodmix plugins install git:github.com/<owner>/<repo>@<ref>
|
|
58
|
+
|
|
59
|
+
# From a local development checkout.
|
|
60
|
+
nodmix plugins install ./my-plugin
|
|
61
|
+
nodmix plugins install --link ./my-plugin
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Treat plugin installs like running code. Prefer pinned versions when you
|
|
65
|
+
need reproducible production installs.
|
|
66
|
+
|
|
67
|
+
</Step>
|
|
68
|
+
|
|
69
|
+
<Step title="Configure and enable it">
|
|
70
|
+
Configure plugin-specific settings under `plugins.entries.<id>.config`.
|
|
71
|
+
Enable the plugin when it is not already enabled:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
nodmix plugins enable <plugin-id>
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
If your config uses a restrictive `plugins.allow` list, the installed plugin
|
|
78
|
+
id must be present there before the plugin can load.
|
|
79
|
+
`nodmix plugins install` adds the installed id to an existing
|
|
80
|
+
`plugins.allow` list and removes the same id from `plugins.deny` so the
|
|
81
|
+
explicit install can load after restart.
|
|
82
|
+
|
|
83
|
+
</Step>
|
|
84
|
+
|
|
85
|
+
<Step title="Let the Gateway reload">
|
|
86
|
+
Installing, updating, or uninstalling plugin code requires a Gateway
|
|
87
|
+
restart. When a managed Gateway is already running with config reload
|
|
88
|
+
enabled, Nodmix detects the changed plugin install record and restarts the
|
|
89
|
+
Gateway automatically. If the Gateway is not managed or reload is disabled,
|
|
90
|
+
restart it yourself:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
nodmix gateway restart
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Enable and disable operations update config and refresh the cold registry.
|
|
97
|
+
A runtime inspect is still the clearest verification path for live runtime
|
|
98
|
+
surfaces.
|
|
99
|
+
|
|
100
|
+
</Step>
|
|
101
|
+
|
|
102
|
+
<Step title="Verify runtime registration">
|
|
103
|
+
```bash
|
|
104
|
+
nodmix plugins inspect <plugin-id> --runtime --json
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Use `--runtime` when you need to prove registered tools, hooks, services,
|
|
108
|
+
Gateway methods, or plugin-owned CLI commands. Plain `inspect` is a cold
|
|
109
|
+
manifest and registry check.
|
|
110
|
+
|
|
111
|
+
</Step>
|
|
112
|
+
</Steps>
|
|
113
|
+
|
|
114
|
+
## Configuration
|
|
115
|
+
|
|
116
|
+
### Choose an install source
|
|
117
|
+
|
|
118
|
+
| Source | Use when | Example |
|
|
119
|
+
| ----------- | ------------------------------------------------------------------------------ | -------------------------------------------------------------- |
|
|
120
|
+
| ClawHub | You want Nodmix-native discovery, scans, version metadata, and install hints | `nodmix plugins install clawhub:<package>` |
|
|
121
|
+
| npm | You need direct npm registry or dist-tag workflows | `nodmix plugins install npm:<package>` |
|
|
122
|
+
| git | You need a branch, tag, or commit from a repository | `nodmix plugins install git:github.com/<owner>/<repo>@<ref>` |
|
|
123
|
+
| local path | You are developing or testing a plugin on the same machine | `nodmix plugins install --link ./my-plugin` |
|
|
124
|
+
| marketplace | You are installing a Claude-compatible marketplace plugin | `nodmix plugins install <plugin> --marketplace <source>` |
|
|
125
|
+
|
|
126
|
+
Bare package specs have special compatibility behavior. If the bare name matches
|
|
127
|
+
a bundled plugin id, Nodmix uses that bundled source. If it matches an
|
|
128
|
+
official external plugin id, Nodmix uses the official package catalog. Other
|
|
129
|
+
ordinary bare package specs install through npm during the launch cutover. Use
|
|
130
|
+
`clawhub:`, `npm:`, `git:`, or `npm-pack:` when you need deterministic source
|
|
131
|
+
selection. See [`nodmix plugins`](/cli/plugins#install) for the full command
|
|
132
|
+
contract.
|
|
133
|
+
|
|
134
|
+
### Configure plugin policy
|
|
135
|
+
|
|
136
|
+
The common plugin config shape is:
|
|
137
|
+
|
|
138
|
+
```json5
|
|
139
|
+
{
|
|
140
|
+
plugins: {
|
|
141
|
+
enabled: true,
|
|
142
|
+
allow: ["voice-call"],
|
|
143
|
+
deny: ["untrusted-plugin"],
|
|
144
|
+
load: { paths: ["~/Projects/oss/voice-call-plugin"] },
|
|
145
|
+
slots: { memory: "memory-core" },
|
|
146
|
+
entries: {
|
|
147
|
+
"voice-call": { enabled: true, config: { provider: "twilio" } },
|
|
148
|
+
},
|
|
149
|
+
},
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Key policy rules:
|
|
154
|
+
|
|
155
|
+
- `plugins.enabled: false` disables all plugins and skips plugin discovery/load
|
|
156
|
+
work. Stale plugin references are inert while this is active; re-enable
|
|
157
|
+
plugins before running doctor cleanup when you want stale ids removed.
|
|
158
|
+
- `plugins.deny` wins over allow and per-plugin enablement.
|
|
159
|
+
- `plugins.allow` is an exclusive allowlist. Plugin-owned tools outside the
|
|
160
|
+
allowlist stay unavailable, even when `tools.allow` includes `"*"`.
|
|
161
|
+
- `plugins.entries.<id>.enabled: false` disables one plugin while preserving its
|
|
162
|
+
config.
|
|
163
|
+
- `plugins.load.paths` adds explicit local plugin files or directories.
|
|
164
|
+
- Workspace-origin plugins are disabled by default; explicitly enable or
|
|
165
|
+
allowlist them before using local workspace code.
|
|
166
|
+
- Bundled plugins follow their built-in default-on/default-off metadata unless
|
|
167
|
+
config explicitly overrides them.
|
|
168
|
+
- `plugins.slots.<slot>` chooses one plugin for exclusive categories such as
|
|
169
|
+
memory and context engines. Slot selection force-enables the selected plugin
|
|
170
|
+
for that slot by counting as explicit activation; it can load even when it
|
|
171
|
+
would otherwise be opt-in. `plugins.deny` and
|
|
172
|
+
`plugins.entries.<id>.enabled: false` still block it.
|
|
173
|
+
- Bundled opt-in plugins can auto-activate when config names one of their owned
|
|
174
|
+
surfaces, such as a provider/model ref, channel config, CLI backend, or agent
|
|
175
|
+
harness runtime.
|
|
176
|
+
- OpenAI-family Codex routing keeps provider and runtime plugin boundaries
|
|
177
|
+
separate: `openai-codex/*` is legacy OpenAI-provider config, while the bundled
|
|
178
|
+
`codex` plugin owns Codex app-server runtime for canonical `openai/*` agent
|
|
179
|
+
refs, explicit `agentRuntime.id: "codex"`, and legacy `codex/*` refs.
|
|
180
|
+
|
|
181
|
+
Run `nodmix doctor` or `nodmix doctor --fix` when config validation reports
|
|
182
|
+
stale plugin ids, allowlist/tool mismatches, or legacy bundled plugin paths.
|
|
183
|
+
|
|
184
|
+
## Understand plugin formats
|
|
185
|
+
|
|
186
|
+
Nodmix recognizes two plugin formats:
|
|
187
|
+
|
|
188
|
+
| Format | How it loads | Use when |
|
|
189
|
+
| ---------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
|
|
190
|
+
| Native Nodmix plugin | `nodmix.plugin.json` plus a runtime module loaded in process | You are installing or building Nodmix-specific runtime capabilities |
|
|
191
|
+
| Compatible bundle | Codex, Claude, or Cursor plugin layout mapped into Nodmix plugin inventory | You are reusing compatible skills, commands, hooks, or bundle metadata |
|
|
192
|
+
|
|
193
|
+
Both formats appear in `nodmix plugins list`, `nodmix plugins inspect`,
|
|
194
|
+
`nodmix plugins enable`, and `nodmix plugins disable`. See
|
|
195
|
+
[Plugin bundles](/plugins/bundles) for the bundle compatibility boundary and
|
|
196
|
+
[Building plugins](/plugins/building-plugins) for native plugin authoring.
|
|
197
|
+
|
|
198
|
+
## Verify the active Gateway
|
|
199
|
+
|
|
200
|
+
`nodmix plugins list` and plain `nodmix plugins inspect` read cold config,
|
|
201
|
+
manifest, and registry state. They do not prove that an already-running Gateway
|
|
202
|
+
has imported the same plugin code.
|
|
203
|
+
|
|
204
|
+
When a plugin appears installed but live chat traffic does not use it:
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
nodmix gateway status --deep --require-rpc
|
|
208
|
+
nodmix plugins inspect <plugin-id> --runtime --json
|
|
209
|
+
nodmix gateway restart
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
Managed Gateways restart automatically after plugin install, update, and
|
|
213
|
+
uninstall changes that alter plugin source. On VPS or container installs, make
|
|
214
|
+
sure any manual restart targets the actual `nodmix gateway run` child that
|
|
215
|
+
serves your channels, not only a wrapper or supervisor.
|
|
216
|
+
|
|
217
|
+
## Troubleshooting
|
|
218
|
+
|
|
219
|
+
| Symptom | Check | Fix |
|
|
220
|
+
| -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------- |
|
|
221
|
+
| Plugin appears in `plugins list` but runtime hooks do not run | Use `nodmix plugins inspect <id> --runtime --json` and confirm the active Gateway with `gateway status --deep --require-rpc` | Restart the live Gateway after install, update, config, or source changes |
|
|
222
|
+
| Duplicate channel or tool ownership diagnostics appear | Run `nodmix plugins list --enabled --verbose`, inspect each suspected plugin with `--runtime --json`, and compare channel/tool ownership | Disable one owner, remove stale installs, or use manifest `preferOver` for intentional replacement |
|
|
223
|
+
| Config says a plugin is missing | Check [Plugin inventory](/plugins/plugin-inventory) for whether it is bundled, official external, or source-only | Install the external package, enable the bundled plugin, or remove stale config |
|
|
224
|
+
| Config is invalid during install | Read the validation message and run `nodmix doctor --fix` when it points to stale plugin state | Doctor can quarantine invalid plugin config by disabling the entry and removing the invalid payload |
|
|
225
|
+
| Plugin path is blocked for suspicious ownership or permissions | Inspect the diagnostic before the config error | Fix filesystem ownership/permissions, then run `nodmix plugins registry --refresh` |
|
|
226
|
+
| `NODMIX_NIX_MODE=1` blocks lifecycle commands | Confirm the install is managed by Nix | Change plugin selection in the Nix source instead of using plugin mutator commands |
|
|
227
|
+
| Dependency import fails at runtime | Check whether the plugin was installed through npm/git/ClawHub or loaded from a local path | Run `nodmix plugins update <id>`, reinstall the source, or install local plugin dependencies yourself |
|
|
228
|
+
|
|
229
|
+
When stale plugin config still names a no-longer-discoverable channel plugin,
|
|
230
|
+
Gateway startup skips that plugin-backed channel instead of blocking every
|
|
231
|
+
other channel. Run `nodmix doctor --fix` to remove stale plugin and channel
|
|
232
|
+
entries. Unknown channel keys without stale-plugin evidence still fail
|
|
233
|
+
validation so typos stay visible.
|
|
234
|
+
|
|
235
|
+
For intentional channel replacement, the preferred plugin should declare
|
|
236
|
+
`channelConfigs.<channel-id>.preferOver` with the legacy or lower-priority
|
|
237
|
+
plugin id. If both plugins are explicitly enabled, Nodmix keeps that request
|
|
238
|
+
and reports duplicate channel or tool diagnostics instead of silently choosing
|
|
239
|
+
one owner.
|
|
240
|
+
|
|
241
|
+
If an installed package reports that it `requires compiled runtime output for
|
|
242
|
+
TypeScript entry ...`, the package was published without the JavaScript files
|
|
243
|
+
Nodmix needs at runtime. Update or reinstall after the publisher ships
|
|
244
|
+
compiled JavaScript, or disable/uninstall the plugin until then.
|
|
245
|
+
|
|
246
|
+
### Blocked plugin path ownership
|
|
247
|
+
|
|
248
|
+
If plugin diagnostics say
|
|
249
|
+
`blocked plugin candidate: suspicious ownership (... uid=1000, expected uid=0 or root)`
|
|
250
|
+
and config validation follows with `plugin present but blocked`, Nodmix found
|
|
251
|
+
plugin files owned by a different Unix user than the process that is loading
|
|
252
|
+
them. Keep the plugin config in place; fix the filesystem ownership or run
|
|
253
|
+
Nodmix as the same user that owns the state directory.
|
|
254
|
+
|
|
255
|
+
For Docker installs, the official image runs as `node` (uid `1000`), so the
|
|
256
|
+
host bind-mounted Nodmix config and workspace directories should normally be
|
|
257
|
+
owned by uid `1000`:
|
|
258
|
+
|
|
259
|
+
```bash
|
|
260
|
+
sudo chown -R 1000:1000 /path/to/nodmix-config /path/to/nodmix-workspace
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
If you intentionally run Nodmix as root, repair the managed plugin root to
|
|
264
|
+
root ownership instead:
|
|
265
|
+
|
|
266
|
+
```bash
|
|
267
|
+
sudo chown -R root:root /path/to/nodmix-config/npm
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
After fixing ownership, rerun `nodmix doctor --fix` or
|
|
271
|
+
`nodmix plugins registry --refresh` so the persisted plugin registry matches
|
|
272
|
+
the repaired files.
|
|
273
|
+
|
|
274
|
+
### Slow plugin tool setup
|
|
275
|
+
|
|
276
|
+
If agent turns appear to stall while preparing tools, enable trace logging and
|
|
277
|
+
check for plugin tool factory timing lines:
|
|
278
|
+
|
|
279
|
+
```bash
|
|
280
|
+
nodmix config set logging.level trace
|
|
281
|
+
nodmix logs --follow
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
Look for:
|
|
285
|
+
|
|
286
|
+
```text
|
|
287
|
+
[trace:plugin-tools] factory timings ...
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
The summary lists total factory time and the slowest plugin tool factories,
|
|
291
|
+
including plugin id, declared tool names, result shape, and whether the tool is
|
|
292
|
+
optional. Slow lines are promoted to warnings when a single factory takes at
|
|
293
|
+
least 1s or total plugin tool factory prep takes at least 5s.
|
|
294
|
+
|
|
295
|
+
Nodmix caches successful plugin tool factory results for repeated resolutions
|
|
296
|
+
with the same effective request context. The cache key includes the effective
|
|
297
|
+
runtime config, workspace, agent/session ids, sandbox policy, browser settings,
|
|
298
|
+
delivery context, requester identity, and ownership state, so factories that
|
|
299
|
+
depend on those trusted fields are re-run when the context changes. If timings
|
|
300
|
+
stay high, the plugin may be doing expensive work before returning its tool
|
|
301
|
+
definitions.
|
|
302
|
+
|
|
303
|
+
If one plugin dominates the timing, inspect its runtime registrations:
|
|
304
|
+
|
|
305
|
+
```bash
|
|
306
|
+
nodmix plugins inspect <plugin-id> --runtime --json
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
Then update, reinstall, or disable that plugin. Plugin authors should move
|
|
310
|
+
expensive dependency loading behind the tool execution path instead of doing it
|
|
311
|
+
inside the tool factory.
|
|
312
|
+
|
|
313
|
+
For dependency roots, package metadata validation, registry records, startup
|
|
314
|
+
reload behavior, and legacy cleanup, see
|
|
315
|
+
[Plugin dependency resolution](/plugins/dependency-resolution).
|
|
316
|
+
|
|
317
|
+
## Related
|
|
318
|
+
|
|
319
|
+
- [Manage plugins](/plugins/manage-plugins) - command examples for list, install, update, uninstall, and publish
|
|
320
|
+
- [`nodmix plugins`](/cli/plugins) - full CLI reference
|
|
321
|
+
- [Plugin inventory](/plugins/plugin-inventory) - generated bundled and external plugin list
|
|
322
|
+
- [Plugin reference](/plugins/reference) - generated per-plugin reference pages
|
|
323
|
+
- [Community plugins](/plugins/community) - ClawHub discovery and docs PR policy
|
|
324
|
+
- [Plugin dependency resolution](/plugins/dependency-resolution) - install roots, registry records, and runtime boundaries
|
|
325
|
+
- [Building plugins](/plugins/building-plugins) - native plugin authoring guide
|
|
326
|
+
- [Plugin SDK overview](/plugins/sdk-overview) - runtime registration, hooks, and API fields
|
|
327
|
+
- [Plugin manifest](/plugins/manifest) - manifest and package metadata
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Reaction tool semantics across all supported channels"
|
|
3
|
+
read_when:
|
|
4
|
+
- Working on reactions in any channel
|
|
5
|
+
- Understanding how emoji reactions differ across platforms
|
|
6
|
+
title: "Reactions"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
The agent can add and remove emoji reactions on messages using the `message`
|
|
10
|
+
tool with the `react` action. Reaction behavior varies by channel and transport.
|
|
11
|
+
|
|
12
|
+
## How it works
|
|
13
|
+
|
|
14
|
+
```json
|
|
15
|
+
{
|
|
16
|
+
"action": "react",
|
|
17
|
+
"messageId": "msg-123",
|
|
18
|
+
"emoji": "thumbsup"
|
|
19
|
+
}
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
- `emoji` is required when adding a reaction.
|
|
23
|
+
- Set `emoji` to an empty string (`""`) to remove the bot's reaction(s).
|
|
24
|
+
- Set `remove: true` to remove a specific emoji (requires non-empty `emoji`).
|
|
25
|
+
- On channels that support status reactions, `trackToolCalls: true` on a
|
|
26
|
+
reaction lets the runtime use that reacted message for subsequent tool
|
|
27
|
+
progress reactions during the same turn.
|
|
28
|
+
|
|
29
|
+
## Channel behavior
|
|
30
|
+
|
|
31
|
+
<AccordionGroup>
|
|
32
|
+
<Accordion title="Discord and Slack">
|
|
33
|
+
- Empty `emoji` removes all of the bot's reactions on the message.
|
|
34
|
+
- `remove: true` removes just the specified emoji.
|
|
35
|
+
|
|
36
|
+
</Accordion>
|
|
37
|
+
|
|
38
|
+
<Accordion title="Google Chat">
|
|
39
|
+
- Empty `emoji` removes the app's reactions on the message.
|
|
40
|
+
- `remove: true` removes just the specified emoji.
|
|
41
|
+
|
|
42
|
+
</Accordion>
|
|
43
|
+
|
|
44
|
+
<Accordion title="Nextcloud Talk">
|
|
45
|
+
- Adding reactions only: `emoji` is required and must be non-empty.
|
|
46
|
+
- Reaction removal is not supported yet; calls with `remove: true` (or empty `emoji`) are rejected with a clear error rather than silently no-oping.
|
|
47
|
+
- Requires the Talk bot to be registered with the `reaction` feature (see [Nextcloud Talk channel docs](/channels/nextcloud-talk)).
|
|
48
|
+
|
|
49
|
+
</Accordion>
|
|
50
|
+
|
|
51
|
+
<Accordion title="Telegram">
|
|
52
|
+
- Empty `emoji` removes the bot's reactions.
|
|
53
|
+
- `remove: true` also removes reactions but still requires a non-empty `emoji` for tool validation.
|
|
54
|
+
|
|
55
|
+
</Accordion>
|
|
56
|
+
|
|
57
|
+
<Accordion title="WhatsApp">
|
|
58
|
+
- Empty `emoji` removes the bot reaction.
|
|
59
|
+
- `remove: true` maps to empty emoji internally (still requires `emoji` in the tool call).
|
|
60
|
+
- WhatsApp has one bot reaction slot per message; status reaction updates replace that slot rather than stacking multiple emoji.
|
|
61
|
+
|
|
62
|
+
</Accordion>
|
|
63
|
+
|
|
64
|
+
<Accordion title="Zalo Personal (zalouser)">
|
|
65
|
+
- Requires non-empty `emoji`.
|
|
66
|
+
- `remove: true` removes that specific emoji reaction.
|
|
67
|
+
|
|
68
|
+
</Accordion>
|
|
69
|
+
|
|
70
|
+
<Accordion title="Feishu/Lark">
|
|
71
|
+
- Use the `feishu_reaction` tool with actions `add`, `remove`, and `list`.
|
|
72
|
+
- Add/remove requires `emoji_type`; remove also requires `reaction_id`.
|
|
73
|
+
|
|
74
|
+
</Accordion>
|
|
75
|
+
|
|
76
|
+
<Accordion title="Signal">
|
|
77
|
+
- Inbound reaction notifications are controlled by `channels.signal.reactionNotifications`: `"off"` disables them, `"own"` (default) emits events when users react to bot messages, and `"all"` emits events for all reactions.
|
|
78
|
+
|
|
79
|
+
</Accordion>
|
|
80
|
+
|
|
81
|
+
<Accordion title="iMessage">
|
|
82
|
+
- Outbound reactions are iMessage tapbacks (`love`, `like`, `dislike`, `laugh`, `emphasize`, and `question`).
|
|
83
|
+
- Inbound tapback notifications are controlled by `channels.imessage.reactionNotifications`: `"off"` disables them, `"own"` (default) emits events when users react to bot-authored messages, and `"all"` emits events for all tapbacks from authorized senders.
|
|
84
|
+
|
|
85
|
+
</Accordion>
|
|
86
|
+
</AccordionGroup>
|
|
87
|
+
|
|
88
|
+
## Reaction level
|
|
89
|
+
|
|
90
|
+
Per-channel `reactionLevel` config controls how broadly the agent uses reactions. Values are typically `off`, `ack`, `minimal`, or `extensive`.
|
|
91
|
+
|
|
92
|
+
- [Telegram reactionLevel](/channels/telegram#reaction-notifications) — `channels.telegram.reactionLevel`
|
|
93
|
+
- [WhatsApp reactionLevel](/channels/whatsapp#reaction-level) — `channels.whatsapp.reactionLevel`
|
|
94
|
+
|
|
95
|
+
Set `reactionLevel` on individual channels to tune how actively the agent reacts to messages on each platform.
|
|
96
|
+
|
|
97
|
+
## Related
|
|
98
|
+
|
|
99
|
+
- [Agent Send](/tools/agent-send) — the `message` tool that includes `react`
|
|
100
|
+
- [Channels](/channels) — channel-specific configuration
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "SearXNG web search -- self-hosted, key-free meta-search provider"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want a self-hosted web search provider
|
|
5
|
+
- You want to use SearXNG for web_search
|
|
6
|
+
- You need a privacy-focused or air-gapped search option
|
|
7
|
+
title: "SearXNG search"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
Nodmix supports [SearXNG](https://docs.searxng.org/) as a **self-hosted,
|
|
11
|
+
key-free** `web_search` provider. SearXNG is an open-source meta-search engine
|
|
12
|
+
that aggregates results from Google, Bing, DuckDuckGo, and other sources.
|
|
13
|
+
|
|
14
|
+
Advantages:
|
|
15
|
+
|
|
16
|
+
- **Free and unlimited** -- no API key or commercial subscription required
|
|
17
|
+
- **Privacy / air-gap** -- queries never leave your network
|
|
18
|
+
- **Works anywhere** -- no region restrictions on commercial search APIs
|
|
19
|
+
|
|
20
|
+
## Setup
|
|
21
|
+
|
|
22
|
+
<Steps>
|
|
23
|
+
<Step title="Run a SearXNG instance">
|
|
24
|
+
```bash
|
|
25
|
+
docker run -d -p 8888:8080 searxng/searxng
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Or use any existing SearXNG deployment you have access to. See the
|
|
29
|
+
[SearXNG documentation](https://docs.searxng.org/) for production setup.
|
|
30
|
+
|
|
31
|
+
</Step>
|
|
32
|
+
<Step title="Configure">
|
|
33
|
+
```bash
|
|
34
|
+
nodmix configure --section web
|
|
35
|
+
# Select "searxng" as the provider
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Or set the env var and let auto-detection find it:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
export SEARXNG_BASE_URL="http://localhost:8888"
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
</Step>
|
|
45
|
+
</Steps>
|
|
46
|
+
|
|
47
|
+
## Config
|
|
48
|
+
|
|
49
|
+
```json5
|
|
50
|
+
{
|
|
51
|
+
tools: {
|
|
52
|
+
web: {
|
|
53
|
+
search: {
|
|
54
|
+
provider: "searxng",
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Plugin-level settings for the SearXNG instance:
|
|
62
|
+
|
|
63
|
+
```json5
|
|
64
|
+
{
|
|
65
|
+
plugins: {
|
|
66
|
+
entries: {
|
|
67
|
+
searxng: {
|
|
68
|
+
config: {
|
|
69
|
+
webSearch: {
|
|
70
|
+
baseUrl: "http://localhost:8888",
|
|
71
|
+
categories: "general,news", // optional
|
|
72
|
+
language: "en", // optional
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
The `baseUrl` field also accepts SecretRef objects.
|
|
82
|
+
|
|
83
|
+
Transport rules:
|
|
84
|
+
|
|
85
|
+
- `https://` works for public or private SearXNG hosts
|
|
86
|
+
- `http://` is only accepted for trusted private-network or loopback hosts
|
|
87
|
+
- public SearXNG hosts must use `https://`
|
|
88
|
+
- private/internal hosts use the self-hosted network guard; public `https://`
|
|
89
|
+
hosts stay on the strict web-search guard and cannot redirect to private
|
|
90
|
+
addresses
|
|
91
|
+
|
|
92
|
+
## Environment variable
|
|
93
|
+
|
|
94
|
+
Set `SEARXNG_BASE_URL` as an alternative to config:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
export SEARXNG_BASE_URL="http://localhost:8888"
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
When `SEARXNG_BASE_URL` is set and no explicit provider is configured, auto-detection
|
|
101
|
+
picks SearXNG automatically (at the lowest priority -- any API-backed provider with a
|
|
102
|
+
key wins first).
|
|
103
|
+
|
|
104
|
+
## Plugin config reference
|
|
105
|
+
|
|
106
|
+
| Field | Description |
|
|
107
|
+
| ------------ | ------------------------------------------------------------------ |
|
|
108
|
+
| `baseUrl` | Base URL of your SearXNG instance (required) |
|
|
109
|
+
| `categories` | Comma-separated categories such as `general`, `news`, or `science` |
|
|
110
|
+
| `language` | Language code for results such as `en`, `de`, or `fr` |
|
|
111
|
+
|
|
112
|
+
## Notes
|
|
113
|
+
|
|
114
|
+
- **JSON API** -- uses SearXNG's native `format=json` endpoint, not HTML scraping
|
|
115
|
+
- **Image result URLs** -- image-category results include `img_src` when SearXNG
|
|
116
|
+
returns a direct image URL
|
|
117
|
+
- **No API key** -- works with any SearXNG instance out of the box
|
|
118
|
+
- **Base URL validation** -- `baseUrl` must be a valid `http://` or `https://`
|
|
119
|
+
URL; public hosts must use `https://`
|
|
120
|
+
- **Network guard** -- private/internal SearXNG endpoints opt in to
|
|
121
|
+
private-network access; public `https://` SearXNG endpoints keep strict SSRF
|
|
122
|
+
protection
|
|
123
|
+
- **Auto-detection order** -- SearXNG is checked last (order 200) in
|
|
124
|
+
auto-detection. API-backed providers with configured keys run first, then
|
|
125
|
+
DuckDuckGo (order 100), then Ollama Web Search (order 110)
|
|
126
|
+
- **Self-hosted** -- you control the instance, queries, and upstream search engines
|
|
127
|
+
- **Categories** default to `general` when not configured
|
|
128
|
+
- **Category fallback** -- if a non-`general` category request succeeds but
|
|
129
|
+
returns zero results, Nodmix retries the same query once with `general`
|
|
130
|
+
before returning an empty result set
|
|
131
|
+
|
|
132
|
+
<Tip>
|
|
133
|
+
For SearXNG JSON API to work, make sure your SearXNG instance has the `json`
|
|
134
|
+
format enabled in its `settings.yml` under `search.formats`.
|
|
135
|
+
</Tip>
|
|
136
|
+
|
|
137
|
+
## Related
|
|
138
|
+
|
|
139
|
+
- [Web Search overview](/tools/web) -- all providers and auto-detection
|
|
140
|
+
- [DuckDuckGo Search](/tools/duckduckgo-search) -- another key-free fallback
|
|
141
|
+
- [Brave Search](/tools/brave-search) -- structured results with free tier
|