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,112 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "ClawDock shell helpers for Docker-based Nodmix installs"
|
|
3
|
+
read_when:
|
|
4
|
+
- You run Nodmix with Docker often and want shorter day-to-day commands
|
|
5
|
+
- You want a helper layer for dashboard, logs, token setup, and pairing flows
|
|
6
|
+
title: "ClawDock"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
ClawDock is a small shell-helper layer for Docker-based Nodmix installs.
|
|
10
|
+
|
|
11
|
+
It gives you short commands like `clawdock-start`, `clawdock-dashboard`, and `clawdock-fix-token` instead of longer `docker compose ...` invocations.
|
|
12
|
+
|
|
13
|
+
If you have not set up Docker yet, start with [Docker](/install/docker).
|
|
14
|
+
|
|
15
|
+
## Install
|
|
16
|
+
|
|
17
|
+
Use the canonical helper path:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
mkdir -p ~/.clawdock && curl -sL https://raw.githubusercontent.com/nodmix/nodmix/main/scripts/clawdock/clawdock-helpers.sh -o ~/.clawdock/clawdock-helpers.sh
|
|
21
|
+
echo 'source ~/.clawdock/clawdock-helpers.sh' >> ~/.zshrc && source ~/.zshrc
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
If you previously installed ClawDock from `scripts/shell-helpers/clawdock-helpers.sh`, reinstall from the new `scripts/clawdock/clawdock-helpers.sh` path. The old raw GitHub path was removed.
|
|
25
|
+
|
|
26
|
+
## What you get
|
|
27
|
+
|
|
28
|
+
### Basic operations
|
|
29
|
+
|
|
30
|
+
| Command | Description |
|
|
31
|
+
| ------------------ | ---------------------- |
|
|
32
|
+
| `clawdock-start` | Start the gateway |
|
|
33
|
+
| `clawdock-stop` | Stop the gateway |
|
|
34
|
+
| `clawdock-restart` | Restart the gateway |
|
|
35
|
+
| `clawdock-status` | Check container status |
|
|
36
|
+
| `clawdock-logs` | Follow gateway logs |
|
|
37
|
+
|
|
38
|
+
### Container access
|
|
39
|
+
|
|
40
|
+
| Command | Description |
|
|
41
|
+
| ------------------------- | --------------------------------------------- |
|
|
42
|
+
| `clawdock-shell` | Open a shell inside the gateway container |
|
|
43
|
+
| `clawdock-cli <command>` | Run Nodmix CLI commands in Docker |
|
|
44
|
+
| `clawdock-exec <command>` | Execute an arbitrary command in the container |
|
|
45
|
+
|
|
46
|
+
### Web UI and pairing
|
|
47
|
+
|
|
48
|
+
| Command | Description |
|
|
49
|
+
| ----------------------- | ---------------------------- |
|
|
50
|
+
| `clawdock-dashboard` | Open the Control UI URL |
|
|
51
|
+
| `clawdock-devices` | List pending device pairings |
|
|
52
|
+
| `clawdock-approve <id>` | Approve a pairing request |
|
|
53
|
+
|
|
54
|
+
### Setup and maintenance
|
|
55
|
+
|
|
56
|
+
| Command | Description |
|
|
57
|
+
| -------------------- | ------------------------------------------------ |
|
|
58
|
+
| `clawdock-fix-token` | Configure the gateway token inside the container |
|
|
59
|
+
| `clawdock-update` | Pull, rebuild, and restart |
|
|
60
|
+
| `clawdock-rebuild` | Rebuild the Docker image only |
|
|
61
|
+
| `clawdock-clean` | Remove containers and volumes |
|
|
62
|
+
|
|
63
|
+
### Utilities
|
|
64
|
+
|
|
65
|
+
| Command | Description |
|
|
66
|
+
| ---------------------- | --------------------------------------- |
|
|
67
|
+
| `clawdock-health` | Run a gateway health check |
|
|
68
|
+
| `clawdock-token` | Print the gateway token |
|
|
69
|
+
| `clawdock-cd` | Jump to the Nodmix project directory |
|
|
70
|
+
| `clawdock-config` | Open `~/.nodmix` |
|
|
71
|
+
| `clawdock-show-config` | Print config files with redacted values |
|
|
72
|
+
| `clawdock-workspace` | Open the workspace directory |
|
|
73
|
+
|
|
74
|
+
## First-time flow
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
clawdock-start
|
|
78
|
+
clawdock-fix-token
|
|
79
|
+
clawdock-dashboard
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
If the browser says pairing is required:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
clawdock-devices
|
|
86
|
+
clawdock-approve <request-id>
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Config and secrets
|
|
90
|
+
|
|
91
|
+
ClawDock works with the same Docker config split described in [Docker](/install/docker):
|
|
92
|
+
|
|
93
|
+
- `<project>/.env` for Docker-specific values like image name, ports, and the gateway token
|
|
94
|
+
- `~/.nodmix/.env` for env-backed provider keys and bot tokens
|
|
95
|
+
- `~/.nodmix/agents/<agentId>/agent/auth-profiles.json` for stored provider OAuth/API-key auth
|
|
96
|
+
- `~/.nodmix/nodmix.json` for behavior config
|
|
97
|
+
|
|
98
|
+
Use `clawdock-show-config` when you want to inspect the `.env` files and `nodmix.json` quickly. It redacts `.env` values in its printed output.
|
|
99
|
+
|
|
100
|
+
## Related
|
|
101
|
+
|
|
102
|
+
<CardGroup cols={2}>
|
|
103
|
+
<Card title="Docker" href="/install/docker" icon="docker">
|
|
104
|
+
Canonical Docker install for Nodmix.
|
|
105
|
+
</Card>
|
|
106
|
+
<Card title="Docker VM runtime" href="/install/docker-vm-runtime" icon="cube">
|
|
107
|
+
Docker-managed VM runtime for hardened isolation.
|
|
108
|
+
</Card>
|
|
109
|
+
<Card title="Updating" href="/install/updating" icon="arrow-up-right-from-square">
|
|
110
|
+
Updating the Nodmix package and managed services.
|
|
111
|
+
</Card>
|
|
112
|
+
</CardGroup>
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Stable, beta, and dev channels: semantics, switching, pinning, and tagging"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want to switch between stable/beta/dev
|
|
5
|
+
- You want to pin a specific version, tag, or SHA
|
|
6
|
+
- You are tagging or publishing prereleases
|
|
7
|
+
title: "Release channels"
|
|
8
|
+
sidebarTitle: "Release Channels"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
Nodmix ships three update channels:
|
|
12
|
+
|
|
13
|
+
- **stable**: npm dist-tag `latest`. Recommended for most users.
|
|
14
|
+
- **beta**: npm dist-tag `beta` when it is current; if beta is missing or older than
|
|
15
|
+
the latest stable release, the update flow falls back to `latest`.
|
|
16
|
+
- **dev**: moving head of `main` (git). npm dist-tag: `dev` (when published).
|
|
17
|
+
The `main` branch is for experimentation and active development. It may contain
|
|
18
|
+
incomplete features or breaking changes. Do not use it for production gateways.
|
|
19
|
+
|
|
20
|
+
We usually ship stable builds to **beta** first, test them there, then run an
|
|
21
|
+
explicit promotion step that moves the vetted build to `latest` without
|
|
22
|
+
changing the version number. Maintainers can also publish a stable release
|
|
23
|
+
directly to `latest` when needed. Dist-tags are the source of truth for npm
|
|
24
|
+
installs.
|
|
25
|
+
|
|
26
|
+
## Switching channels
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
nodmix update --channel stable
|
|
30
|
+
nodmix update --channel beta
|
|
31
|
+
nodmix update --channel dev
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
`--channel` persists your choice in config (`update.channel`) and aligns the
|
|
35
|
+
install method:
|
|
36
|
+
|
|
37
|
+
- **`stable`** (package installs): updates via npm dist-tag `latest`.
|
|
38
|
+
- **`beta`** (package installs): prefers npm dist-tag `beta`, but falls back to
|
|
39
|
+
`latest` when `beta` is missing or older than the current stable tag.
|
|
40
|
+
- **`stable`** (git installs): checks out the latest stable git tag.
|
|
41
|
+
- **`beta`** (git installs): prefers the latest beta git tag, but falls back to
|
|
42
|
+
the latest stable git tag when beta is missing or older.
|
|
43
|
+
- **`dev`**: ensures a git checkout (default `~/nodmix`, override with
|
|
44
|
+
`NODMIX_GIT_DIR`), switches to `main`, rebases on upstream, builds, and
|
|
45
|
+
installs the global CLI from that checkout.
|
|
46
|
+
|
|
47
|
+
<Tip>
|
|
48
|
+
If you want stable and dev in parallel, keep two clones and point your gateway at the stable one.
|
|
49
|
+
</Tip>
|
|
50
|
+
|
|
51
|
+
## One-off version or tag targeting
|
|
52
|
+
|
|
53
|
+
Use `--tag` to target a specific dist-tag, version, or package spec for a single
|
|
54
|
+
update **without** changing your persisted channel:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# Install a specific version
|
|
58
|
+
nodmix update --tag 2026.4.1-beta.1
|
|
59
|
+
|
|
60
|
+
# Install from the beta dist-tag (one-off, does not persist)
|
|
61
|
+
nodmix update --tag beta
|
|
62
|
+
|
|
63
|
+
# Install from GitHub main branch (npm tarball)
|
|
64
|
+
nodmix update --tag main
|
|
65
|
+
|
|
66
|
+
# Install a specific npm package spec
|
|
67
|
+
nodmix update --tag nodmix@2026.4.1-beta.1
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Notes:
|
|
71
|
+
|
|
72
|
+
- `--tag` applies to **package (npm) installs only**. Git installs ignore it.
|
|
73
|
+
- The tag is not persisted. Your next `nodmix update` uses your configured
|
|
74
|
+
channel as usual.
|
|
75
|
+
- Downgrade protection: if the target version is older than your current version,
|
|
76
|
+
Nodmix prompts for confirmation (skip with `--yes`).
|
|
77
|
+
- `--channel beta` is different from `--tag beta`: the channel flow can fall back
|
|
78
|
+
to stable/latest when beta is missing or older, while `--tag beta` targets the
|
|
79
|
+
raw `beta` dist-tag for that one run.
|
|
80
|
+
|
|
81
|
+
## Dry run
|
|
82
|
+
|
|
83
|
+
Preview what `nodmix update` would do without making changes:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
nodmix update --dry-run
|
|
87
|
+
nodmix update --channel beta --dry-run
|
|
88
|
+
nodmix update --tag 2026.4.1-beta.1 --dry-run
|
|
89
|
+
nodmix update --dry-run --json
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
The dry run shows the effective channel, target version, planned actions, and
|
|
93
|
+
whether a downgrade confirmation would be required.
|
|
94
|
+
|
|
95
|
+
## Plugins and channels
|
|
96
|
+
|
|
97
|
+
When you switch channels with `nodmix update`, Nodmix also syncs plugin
|
|
98
|
+
sources:
|
|
99
|
+
|
|
100
|
+
- `dev` prefers bundled plugins from the git checkout.
|
|
101
|
+
- `stable` and `beta` restore npm-installed plugin packages.
|
|
102
|
+
- npm-installed plugins are updated after the core update completes.
|
|
103
|
+
|
|
104
|
+
## Checking current status
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
nodmix update status
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Shows the active channel, install kind (git or package), current version, and
|
|
111
|
+
source (config, git tag, git branch, or default).
|
|
112
|
+
|
|
113
|
+
## Tagging best practices
|
|
114
|
+
|
|
115
|
+
- Tag releases you want git checkouts to land on (`vYYYY.M.D` for stable,
|
|
116
|
+
`vYYYY.M.D-beta.N` for beta).
|
|
117
|
+
- `vYYYY.M.D.beta.N` is also recognized for compatibility, but prefer `-beta.N`.
|
|
118
|
+
- Legacy `vYYYY.M.D-<patch>` tags are still recognized as stable (non-beta).
|
|
119
|
+
- Keep tags immutable: never move or reuse a tag.
|
|
120
|
+
- npm dist-tags remain the source of truth for npm installs:
|
|
121
|
+
- `latest` -> stable
|
|
122
|
+
- `beta` -> candidate build or beta-first stable build
|
|
123
|
+
- `dev` -> main snapshot (optional)
|
|
124
|
+
|
|
125
|
+
## macOS app availability
|
|
126
|
+
|
|
127
|
+
Beta and dev builds may **not** include a macOS app release. That is OK:
|
|
128
|
+
|
|
129
|
+
- The git tag and npm dist-tag can still be published.
|
|
130
|
+
- Call out "no macOS build for this beta" in release notes or changelog.
|
|
131
|
+
|
|
132
|
+
## Related
|
|
133
|
+
|
|
134
|
+
- [Updating](/install/updating)
|
|
135
|
+
- [Installer internals](/install/installer)
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Host Nodmix on a DigitalOcean Droplet"
|
|
3
|
+
read_when:
|
|
4
|
+
- Setting up Nodmix on DigitalOcean
|
|
5
|
+
- Looking for a simple paid VPS for Nodmix
|
|
6
|
+
title: "DigitalOcean"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
Run a persistent Nodmix Gateway on a DigitalOcean Droplet (~$6/month for the 1 GB Basic plan).
|
|
10
|
+
|
|
11
|
+
DigitalOcean is the simplest paid VPS path. If you prefer cheaper or free options:
|
|
12
|
+
|
|
13
|
+
- [Hetzner](/install/hetzner) — €3.79/mo, more cores/RAM per dollar.
|
|
14
|
+
- [Oracle Cloud](/install/oracle) — Always Free ARM (up to 4 OCPU, 24 GB RAM), but signup can be finicky and ARM-only.
|
|
15
|
+
|
|
16
|
+
## Prerequisites
|
|
17
|
+
|
|
18
|
+
- DigitalOcean account ([signup](https://cloud.digitalocean.com/registrations/new))
|
|
19
|
+
- SSH key pair (or willingness to use password auth)
|
|
20
|
+
- About 20 minutes
|
|
21
|
+
|
|
22
|
+
## Setup
|
|
23
|
+
|
|
24
|
+
<Steps>
|
|
25
|
+
<Step title="Create a Droplet">
|
|
26
|
+
<Warning>
|
|
27
|
+
Use a clean base image (Ubuntu 24.04 LTS). Avoid third-party Marketplace 1-click images unless you have reviewed their startup scripts and firewall defaults.
|
|
28
|
+
</Warning>
|
|
29
|
+
|
|
30
|
+
1. Log into [DigitalOcean](https://cloud.digitalocean.com/).
|
|
31
|
+
2. Click **Create > Droplets**.
|
|
32
|
+
3. Choose:
|
|
33
|
+
- **Region:** Closest to you
|
|
34
|
+
- **Image:** Ubuntu 24.04 LTS
|
|
35
|
+
- **Size:** Basic, Regular, 1 vCPU / 1 GB RAM / 25 GB SSD
|
|
36
|
+
- **Authentication:** SSH key (recommended) or password
|
|
37
|
+
4. Click **Create Droplet** and note the IP address.
|
|
38
|
+
|
|
39
|
+
</Step>
|
|
40
|
+
|
|
41
|
+
<Step title="Connect and install">
|
|
42
|
+
```bash
|
|
43
|
+
ssh root@YOUR_DROPLET_IP
|
|
44
|
+
|
|
45
|
+
apt update && apt upgrade -y
|
|
46
|
+
|
|
47
|
+
# Install Node.js 24
|
|
48
|
+
curl -fsSL https://deb.nodesource.com/setup_24.x | bash -
|
|
49
|
+
apt install -y nodejs
|
|
50
|
+
|
|
51
|
+
# Install Nodmix
|
|
52
|
+
curl -fsSL https://nodmix.ai/install.sh | bash
|
|
53
|
+
|
|
54
|
+
# Create the non-root user that will own Nodmix state and services.
|
|
55
|
+
adduser nodmix
|
|
56
|
+
usermod -aG sudo nodmix
|
|
57
|
+
loginctl enable-linger nodmix
|
|
58
|
+
|
|
59
|
+
su - nodmix
|
|
60
|
+
nodmix --version
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Use the root shell only for system bootstrap. Run Nodmix commands as the non-root `nodmix` user so state lives under `/home/nodmix/.nodmix/` and the Gateway installs as that user's systemd service.
|
|
64
|
+
|
|
65
|
+
</Step>
|
|
66
|
+
|
|
67
|
+
<Step title="Run onboarding">
|
|
68
|
+
```bash
|
|
69
|
+
nodmix onboard --install-daemon
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
The wizard walks you through model auth, channel setup, gateway token generation, and daemon installation (systemd).
|
|
73
|
+
|
|
74
|
+
</Step>
|
|
75
|
+
|
|
76
|
+
<Step title="Add swap (recommended for 1 GB Droplets)">
|
|
77
|
+
```bash
|
|
78
|
+
fallocate -l 2G /swapfile
|
|
79
|
+
chmod 600 /swapfile
|
|
80
|
+
mkswap /swapfile
|
|
81
|
+
swapon /swapfile
|
|
82
|
+
echo '/swapfile none swap sw 0 0' >> /etc/fstab
|
|
83
|
+
```
|
|
84
|
+
</Step>
|
|
85
|
+
|
|
86
|
+
<Step title="Verify the gateway">
|
|
87
|
+
```bash
|
|
88
|
+
nodmix status
|
|
89
|
+
systemctl --user status nodmix-gateway.service
|
|
90
|
+
journalctl --user -u nodmix-gateway.service -f
|
|
91
|
+
```
|
|
92
|
+
</Step>
|
|
93
|
+
|
|
94
|
+
<Step title="Access the Control UI">
|
|
95
|
+
The gateway binds to loopback by default. Pick one of these options.
|
|
96
|
+
|
|
97
|
+
**Option A: SSH tunnel (simplest)**
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
# From your local machine
|
|
101
|
+
ssh -L 18789:localhost:18789 root@YOUR_DROPLET_IP
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Then open `http://localhost:18789`.
|
|
105
|
+
|
|
106
|
+
**Option B: Tailscale Serve**
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
curl -fsSL https://tailscale.com/install.sh | sudo sh
|
|
110
|
+
sudo tailscale up
|
|
111
|
+
nodmix config set gateway.tailscale.mode serve
|
|
112
|
+
nodmix gateway restart
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Then open `https://<magicdns>/` from any device on your tailnet.
|
|
116
|
+
|
|
117
|
+
Tailscale Serve authenticates Control UI and WebSocket traffic via tailnet identity headers, which assumes the gateway host itself is trusted. HTTP API endpoints follow the gateway's normal auth mode (token/password) regardless. To require explicit shared-secret credentials over Serve, set `gateway.auth.allowTailscale: false` and use `gateway.auth.mode: "token"` or `"password"`.
|
|
118
|
+
|
|
119
|
+
**Option C: Tailnet bind (no Serve)**
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
nodmix config set gateway.bind tailnet
|
|
123
|
+
nodmix gateway restart
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Then open `http://<tailscale-ip>:18789` (token required).
|
|
127
|
+
|
|
128
|
+
</Step>
|
|
129
|
+
</Steps>
|
|
130
|
+
|
|
131
|
+
## Persistence and backups
|
|
132
|
+
|
|
133
|
+
Nodmix state lives under:
|
|
134
|
+
|
|
135
|
+
- `~/.nodmix/` — `nodmix.json`, per-agent `auth-profiles.json`, channel/provider state, and session data.
|
|
136
|
+
- `~/.nodmix/workspace/` — the agent workspace (SOUL.md, memory, artifacts).
|
|
137
|
+
|
|
138
|
+
These survive Droplet reboots. To take a portable snapshot:
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
nodmix backup create
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
DigitalOcean snapshots back the whole Droplet up; `nodmix backup create` is portable across hosts.
|
|
145
|
+
|
|
146
|
+
## 1 GB RAM tips
|
|
147
|
+
|
|
148
|
+
The $6 Droplet only has 1 GB RAM. To keep things smooth:
|
|
149
|
+
|
|
150
|
+
- Make sure the swap step above is in `/etc/fstab` so it survives reboots.
|
|
151
|
+
- Prefer API-based models (Claude, GPT) over local ones — local LLM inference does not fit in 1 GB.
|
|
152
|
+
- Set `agents.defaults.model.primary` to a smaller model if you hit OOMs on large prompts.
|
|
153
|
+
- Monitor with `free -h` and `htop`.
|
|
154
|
+
|
|
155
|
+
## Troubleshooting
|
|
156
|
+
|
|
157
|
+
**Gateway will not start** -- Run `nodmix doctor --non-interactive` and check logs with `journalctl --user -u nodmix-gateway.service -n 50`.
|
|
158
|
+
|
|
159
|
+
**Port already in use** -- Run `lsof -i :18789` to find the process, then stop it.
|
|
160
|
+
|
|
161
|
+
**Out of memory** -- Verify swap is active with `free -h`. If still hitting OOM, use API-based models (Claude, GPT) rather than local models, or upgrade to a 2 GB Droplet.
|
|
162
|
+
|
|
163
|
+
## Next steps
|
|
164
|
+
|
|
165
|
+
- [Channels](/channels) -- connect Telegram, WhatsApp, Discord, and more
|
|
166
|
+
- [Gateway configuration](/gateway/configuration) -- all config options
|
|
167
|
+
- [Updating](/install/updating) -- keep Nodmix up to date
|
|
168
|
+
|
|
169
|
+
## Related
|
|
170
|
+
|
|
171
|
+
- [Install overview](/install)
|
|
172
|
+
- [Fly.io](/install/fly)
|
|
173
|
+
- [Hetzner](/install/hetzner)
|
|
174
|
+
- [VPS hosting](/vps)
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Shared Docker VM runtime steps for long-lived Nodmix Gateway hosts"
|
|
3
|
+
read_when:
|
|
4
|
+
- You are deploying Nodmix on a cloud VM with Docker
|
|
5
|
+
- You need the shared binary bake, persistence, and update flow
|
|
6
|
+
title: "Docker VM runtime"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
Shared runtime steps for VM-based Docker installs such as GCP, Hetzner, and similar VPS providers.
|
|
10
|
+
|
|
11
|
+
## Bake required binaries into the image
|
|
12
|
+
|
|
13
|
+
Installing binaries inside a running container is a trap.
|
|
14
|
+
Anything installed at runtime will be lost on restart.
|
|
15
|
+
|
|
16
|
+
All external binaries required by skills must be installed at image build time.
|
|
17
|
+
|
|
18
|
+
The examples below show three common binaries only:
|
|
19
|
+
|
|
20
|
+
- `gog` (from `gogcli`) for Gmail access
|
|
21
|
+
- `goplaces` for Google Places
|
|
22
|
+
- `wacli` for WhatsApp
|
|
23
|
+
|
|
24
|
+
These are examples, not a complete list.
|
|
25
|
+
You may install as many binaries as needed using the same pattern.
|
|
26
|
+
|
|
27
|
+
If you add new skills later that depend on additional binaries, you must:
|
|
28
|
+
|
|
29
|
+
1. Update the Dockerfile
|
|
30
|
+
2. Rebuild the image
|
|
31
|
+
3. Restart the containers
|
|
32
|
+
|
|
33
|
+
**Example Dockerfile**
|
|
34
|
+
|
|
35
|
+
```dockerfile
|
|
36
|
+
FROM node:24-bookworm
|
|
37
|
+
|
|
38
|
+
RUN apt-get update && apt-get install -y socat && rm -rf /var/lib/apt/lists/*
|
|
39
|
+
|
|
40
|
+
# Example binary 1: Gmail CLI (gogcli — installs as `gog`)
|
|
41
|
+
# Copy the current Linux asset URL from https://github.com/steipete/gogcli/releases
|
|
42
|
+
RUN curl -L https://github.com/steipete/gogcli/releases/latest/download/gogcli_linux_amd64.tar.gz \
|
|
43
|
+
| tar -xzO gog > /usr/local/bin/gog; \
|
|
44
|
+
chmod +x /usr/local/bin/gog
|
|
45
|
+
|
|
46
|
+
# Example binary 2: Google Places CLI
|
|
47
|
+
# Copy the current Linux asset URL from https://github.com/steipete/goplaces/releases
|
|
48
|
+
RUN curl -L https://github.com/steipete/goplaces/releases/latest/download/goplaces_linux_amd64.tar.gz \
|
|
49
|
+
| tar -xzO goplaces > /usr/local/bin/goplaces; \
|
|
50
|
+
chmod +x /usr/local/bin/goplaces
|
|
51
|
+
|
|
52
|
+
# Example binary 3: WhatsApp CLI
|
|
53
|
+
# Copy the current Linux asset URL from https://github.com/steipete/wacli/releases
|
|
54
|
+
RUN curl -L https://github.com/steipete/wacli/releases/latest/download/wacli-linux-amd64.tar.gz \
|
|
55
|
+
| tar -xzO wacli > /usr/local/bin/wacli; \
|
|
56
|
+
chmod +x /usr/local/bin/wacli
|
|
57
|
+
|
|
58
|
+
# Add more binaries below using the same pattern
|
|
59
|
+
|
|
60
|
+
WORKDIR /app
|
|
61
|
+
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc ./
|
|
62
|
+
COPY ui/package.json ./ui/package.json
|
|
63
|
+
COPY scripts ./scripts
|
|
64
|
+
|
|
65
|
+
RUN corepack enable
|
|
66
|
+
RUN pnpm install --frozen-lockfile
|
|
67
|
+
|
|
68
|
+
COPY . .
|
|
69
|
+
RUN pnpm build
|
|
70
|
+
RUN pnpm ui:install
|
|
71
|
+
RUN pnpm ui:build
|
|
72
|
+
|
|
73
|
+
ENV NODE_ENV=production
|
|
74
|
+
|
|
75
|
+
CMD ["node","dist/index.js"]
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
<Note>
|
|
79
|
+
The URLs above are examples. For ARM-based VMs, choose the `arm64` assets. For reproducible builds, pin versioned release URLs.
|
|
80
|
+
</Note>
|
|
81
|
+
|
|
82
|
+
## Build and launch
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
docker compose build
|
|
86
|
+
docker compose up -d nodmix-gateway
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
If build fails with `Killed` or `exit code 137` during `pnpm install --frozen-lockfile`, the VM is out of memory.
|
|
90
|
+
Use a larger machine class before retrying.
|
|
91
|
+
|
|
92
|
+
Verify binaries:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
docker compose exec nodmix-gateway which gog
|
|
96
|
+
docker compose exec nodmix-gateway which goplaces
|
|
97
|
+
docker compose exec nodmix-gateway which wacli
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Expected output:
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
/usr/local/bin/gog
|
|
104
|
+
/usr/local/bin/goplaces
|
|
105
|
+
/usr/local/bin/wacli
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Verify Gateway:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
docker compose logs -f nodmix-gateway
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Expected output:
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
[gateway] listening on ws://0.0.0.0:18789
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## What persists where
|
|
121
|
+
|
|
122
|
+
Nodmix runs in Docker, but Docker is not the source of truth.
|
|
123
|
+
All long-lived state must survive restarts, rebuilds, and reboots.
|
|
124
|
+
|
|
125
|
+
| Component | Location | Persistence mechanism | Notes |
|
|
126
|
+
| ------------------- | ------------------------------------------------------ | ---------------------- | ------------------------------------------------------------- |
|
|
127
|
+
| Gateway config | `/home/node/.nodmix/` | Host volume mount | Includes `nodmix.json`, `.env` |
|
|
128
|
+
| Model auth profiles | `/home/node/.nodmix/agents/` | Host volume mount | `agents/<agentId>/agent/auth-profiles.json` (OAuth, API keys) |
|
|
129
|
+
| Auth profile key | `/home/node/.config/nodmix/` | Host volume mount | Local encryption key for OAuth auth profile token material |
|
|
130
|
+
| Skill configs | `/home/node/.nodmix/skills/` | Host volume mount | Skill-level state |
|
|
131
|
+
| Agent workspace | `/home/node/.nodmix/workspace/` | Host volume mount | Code and agent artifacts |
|
|
132
|
+
| WhatsApp session | `/home/node/.nodmix/` | Host volume mount | Preserves QR login |
|
|
133
|
+
| Gmail keyring | `/home/node/.nodmix/` | Host volume + password | Requires `GOG_KEYRING_PASSWORD` |
|
|
134
|
+
| Plugin packages | `/home/node/.nodmix/npm`, `/home/node/.nodmix/git` | Host volume mount | Downloadable plugin package roots |
|
|
135
|
+
| External binaries | `/usr/local/bin/` | Docker image | Must be baked at build time |
|
|
136
|
+
| Node runtime | Container filesystem | Docker image | Rebuilt every image build |
|
|
137
|
+
| OS packages | Container filesystem | Docker image | Do not install at runtime |
|
|
138
|
+
| Docker container | Ephemeral | Restartable | Safe to destroy |
|
|
139
|
+
|
|
140
|
+
## Updates
|
|
141
|
+
|
|
142
|
+
To update Nodmix on the VM:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
git pull
|
|
146
|
+
docker compose build
|
|
147
|
+
docker compose up -d
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## Related
|
|
151
|
+
|
|
152
|
+
- [Docker](/install/docker)
|
|
153
|
+
- [Podman](/install/podman)
|
|
154
|
+
- [ClawDock](/install/clawdock)
|