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,137 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Migration hub: cross-system imports, machine-to-machine moves, and plugin upgrades"
|
|
3
|
+
read_when:
|
|
4
|
+
- You are moving Nodmix to a new laptop or server
|
|
5
|
+
- You are coming from another agent system and want to keep state
|
|
6
|
+
- You are upgrading an in-place plugin
|
|
7
|
+
title: "Migration guide"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
Nodmix supports three migration paths: importing from another agent system, moving an existing install to a new machine, and upgrading a plugin in place.
|
|
11
|
+
|
|
12
|
+
## Import from another agent system
|
|
13
|
+
|
|
14
|
+
Use the bundled migration providers to bring instructions, MCP servers, skills, model config, and (opt-in) API keys into Nodmix. Plans are previewed before any change, secrets are redacted in reports, and apply is backed by a verified backup.
|
|
15
|
+
|
|
16
|
+
<CardGroup cols={2}>
|
|
17
|
+
<Card title="Migrating from Claude" href="/install/migrating-claude" icon="brain">
|
|
18
|
+
Import Claude Code and Claude Desktop state, including `CLAUDE.md`, MCP servers, skills, and project commands.
|
|
19
|
+
</Card>
|
|
20
|
+
<Card title="Migrating from Hermes" href="/install/migrating-hermes" icon="feather">
|
|
21
|
+
Import Hermes config, providers, MCP servers, memory, skills, and supported `.env` keys.
|
|
22
|
+
</Card>
|
|
23
|
+
</CardGroup>
|
|
24
|
+
|
|
25
|
+
The CLI entry point is [`nodmix migrate`](/cli/migrate). Onboarding can also offer migration when it detects a known source (`nodmix onboard --flow import`).
|
|
26
|
+
|
|
27
|
+
## Move Nodmix to a new machine
|
|
28
|
+
|
|
29
|
+
Copy the **state directory** (`~/.nodmix/` by default) and your **workspace** to preserve:
|
|
30
|
+
|
|
31
|
+
- **Config** — `nodmix.json` and all gateway settings.
|
|
32
|
+
- **Auth** — per-agent `auth-profiles.json` (API keys plus OAuth), plus any channel or provider state under `credentials/`.
|
|
33
|
+
- **Sessions** — conversation history and agent state.
|
|
34
|
+
- **Channel state** — WhatsApp login, Telegram session, and similar.
|
|
35
|
+
- **Workspace files** — `MEMORY.md`, `USER.md`, skills, and prompts.
|
|
36
|
+
|
|
37
|
+
<Tip>
|
|
38
|
+
Run `nodmix status` on the old machine to confirm your state directory path. Custom profiles use `~/.nodmix-<profile>/` or a path set via `NODMIX_STATE_DIR`.
|
|
39
|
+
</Tip>
|
|
40
|
+
|
|
41
|
+
### Migration steps
|
|
42
|
+
|
|
43
|
+
<Steps>
|
|
44
|
+
<Step title="Stop the gateway and back up">
|
|
45
|
+
On the **old** machine, stop the gateway so files are not changing mid-copy, then archive:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
nodmix gateway stop
|
|
49
|
+
cd ~
|
|
50
|
+
tar -czf nodmix-state.tgz .nodmix
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
If you use multiple profiles (for example `~/.nodmix-work`), archive each separately.
|
|
54
|
+
|
|
55
|
+
</Step>
|
|
56
|
+
|
|
57
|
+
<Step title="Install Nodmix on the new machine">
|
|
58
|
+
[Install](/install) the CLI (and Node if needed) on the new machine. It is fine if onboarding creates a fresh `~/.nodmix/`. You will overwrite it next.
|
|
59
|
+
</Step>
|
|
60
|
+
|
|
61
|
+
<Step title="Copy state directory and workspace">
|
|
62
|
+
Transfer the archive via `scp`, `rsync -a`, or an external drive, then extract:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
cd ~
|
|
66
|
+
tar -xzf nodmix-state.tgz
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Ensure hidden directories were included and file ownership matches the user that will run the gateway.
|
|
70
|
+
|
|
71
|
+
</Step>
|
|
72
|
+
|
|
73
|
+
<Step title="Run doctor and verify">
|
|
74
|
+
On the new machine, run [Doctor](/gateway/doctor) to apply config migrations and repair services:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
nodmix doctor
|
|
78
|
+
nodmix gateway restart
|
|
79
|
+
nodmix status
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
</Step>
|
|
83
|
+
</Steps>
|
|
84
|
+
|
|
85
|
+
If Telegram or Discord uses the default env fallback (`TELEGRAM_BOT_TOKEN` or `DISCORD_BOT_TOKEN`), verify the migrated state-dir `.env` contains those keys without printing the secret values:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
awk -F= '/^(TELEGRAM_BOT_TOKEN|DISCORD_BOT_TOKEN)=/ { print $1 "=present" }' ~/.nodmix/.env
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
`nodmix doctor` also warns when an enabled default Telegram or Discord account has no configured token and the matching env variable is unavailable to the doctor process.
|
|
92
|
+
|
|
93
|
+
### Common pitfalls
|
|
94
|
+
|
|
95
|
+
<AccordionGroup>
|
|
96
|
+
<Accordion title="Profile or state-dir mismatch">
|
|
97
|
+
If the old gateway used `--profile` or `NODMIX_STATE_DIR` and the new one does not, channels will appear logged out and sessions will be empty. Launch the gateway with the **same** profile or state-dir you migrated, then rerun `nodmix doctor`.
|
|
98
|
+
</Accordion>
|
|
99
|
+
|
|
100
|
+
<Accordion title="Copying only nodmix.json">
|
|
101
|
+
The config file alone is not enough. Model auth profiles live under `agents/<agentId>/agent/auth-profiles.json`, and channel and provider state lives under `credentials/`. Always migrate the **entire** state directory.
|
|
102
|
+
</Accordion>
|
|
103
|
+
|
|
104
|
+
<Accordion title="Permissions and ownership">
|
|
105
|
+
If you copied as root or switched users, the gateway may fail to read credentials. Ensure the state directory and workspace are owned by the user running the gateway.
|
|
106
|
+
</Accordion>
|
|
107
|
+
|
|
108
|
+
<Accordion title="Remote mode">
|
|
109
|
+
If your UI points at a **remote** gateway, the remote host owns sessions and workspace. Migrate the gateway host itself, not your local laptop. See [FAQ](/help/faq#where-things-live-on-disk).
|
|
110
|
+
</Accordion>
|
|
111
|
+
|
|
112
|
+
<Accordion title="Secrets in backups">
|
|
113
|
+
The state directory contains auth profiles, channel credentials, and other provider state. Store backups encrypted, avoid insecure transfer channels, and rotate keys if you suspect exposure.
|
|
114
|
+
</Accordion>
|
|
115
|
+
</AccordionGroup>
|
|
116
|
+
|
|
117
|
+
### Verification checklist
|
|
118
|
+
|
|
119
|
+
On the new machine, confirm:
|
|
120
|
+
|
|
121
|
+
- [ ] `nodmix status` shows the gateway running.
|
|
122
|
+
- [ ] Channels are still connected (no re-pairing needed).
|
|
123
|
+
- [ ] The dashboard opens and shows existing sessions.
|
|
124
|
+
- [ ] Workspace files (memory, configs) are present.
|
|
125
|
+
|
|
126
|
+
## Upgrade a plugin in place
|
|
127
|
+
|
|
128
|
+
In-place plugin upgrades preserve the same plugin id and config keys but may move on-disk state into the current layout. Plugin-specific upgrade guides live alongside their channels:
|
|
129
|
+
|
|
130
|
+
- [Matrix migration](/channels/matrix-migration): encrypted-state recovery limits, automatic snapshot behavior, and manual recovery commands.
|
|
131
|
+
|
|
132
|
+
## Related
|
|
133
|
+
|
|
134
|
+
- [`nodmix migrate`](/cli/migrate): CLI reference for cross-system imports.
|
|
135
|
+
- [Install overview](/install): all installation methods.
|
|
136
|
+
- [Doctor](/gateway/doctor): post-migration health check.
|
|
137
|
+
- [Uninstall](/install/uninstall): removing Nodmix cleanly.
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Install Nodmix declaratively with Nix"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want reproducible, rollback-able installs
|
|
5
|
+
- You're already using Nix/NixOS/Home Manager
|
|
6
|
+
- You want everything pinned and managed declaratively
|
|
7
|
+
title: "Nix"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
Install Nodmix declaratively with **[nix-nodmix](https://github.com/nodmix/nix-nodmix)** - the first-party, batteries-included Home Manager module.
|
|
11
|
+
|
|
12
|
+
<Info>
|
|
13
|
+
The [nix-nodmix](https://github.com/nodmix/nix-nodmix) repo is the source of truth for Nix installation. This page is a quick overview.
|
|
14
|
+
</Info>
|
|
15
|
+
|
|
16
|
+
## What you get
|
|
17
|
+
|
|
18
|
+
- Gateway + macOS app + tools (whisper, spotify, cameras) -- all pinned
|
|
19
|
+
- Launchd service that survives reboots
|
|
20
|
+
- Plugin system with declarative config
|
|
21
|
+
- Instant rollback: `home-manager switch --rollback`
|
|
22
|
+
|
|
23
|
+
## Quick start
|
|
24
|
+
|
|
25
|
+
<Steps>
|
|
26
|
+
<Step title="Install Determinate Nix">
|
|
27
|
+
If Nix is not already installed, follow the [Determinate Nix installer](https://github.com/DeterminateSystems/nix-installer) instructions.
|
|
28
|
+
</Step>
|
|
29
|
+
<Step title="Create a local flake">
|
|
30
|
+
Use the agent-first template from the nix-nodmix repo:
|
|
31
|
+
```bash
|
|
32
|
+
mkdir -p ~/code/nodmix-local
|
|
33
|
+
# Copy templates/agent-first/flake.nix from the nix-nodmix repo
|
|
34
|
+
```
|
|
35
|
+
</Step>
|
|
36
|
+
<Step title="Configure secrets">
|
|
37
|
+
Set up your messaging bot token and model provider API key. Plain files at `~/.secrets/` work fine.
|
|
38
|
+
</Step>
|
|
39
|
+
<Step title="Fill in template placeholders and switch">
|
|
40
|
+
```bash
|
|
41
|
+
home-manager switch
|
|
42
|
+
```
|
|
43
|
+
</Step>
|
|
44
|
+
<Step title="Verify">
|
|
45
|
+
Confirm the launchd service is running and your bot responds to messages.
|
|
46
|
+
</Step>
|
|
47
|
+
</Steps>
|
|
48
|
+
|
|
49
|
+
See the [nix-nodmix README](https://github.com/nodmix/nix-nodmix) for full module options and examples.
|
|
50
|
+
|
|
51
|
+
## Nix-mode runtime behavior
|
|
52
|
+
|
|
53
|
+
When `NODMIX_NIX_MODE=1` is set (automatic with nix-nodmix), Nodmix enters a deterministic mode for Nix-managed installs. Other Nix packages can set the same mode; nix-nodmix is the first-party reference.
|
|
54
|
+
|
|
55
|
+
You can also set it manually:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
export NODMIX_NIX_MODE=1
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
On macOS, the GUI app does not automatically inherit shell environment variables. Enable Nix mode via defaults instead:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
defaults write ai.nodmix.mac nodmix.nixMode -bool true
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### What changes in Nix mode
|
|
68
|
+
|
|
69
|
+
- Auto-install and self-mutation flows are disabled
|
|
70
|
+
- `nodmix.json` is treated as immutable. Startup-derived defaults stay runtime-only, and config writers such as setup, onboarding, mutating `nodmix update`, plugin install/update/uninstall/enable, `doctor --fix`, `doctor --generate-gateway-token`, and `nodmix config set` refuse to edit the file.
|
|
71
|
+
- Agents should edit the Nix source instead. For nix-nodmix, use the agent-first [Quick Start](https://github.com/nodmix/nix-nodmix#quick-start) and set config under `programs.nodmix.config` or `instances.<name>.config`.
|
|
72
|
+
- Missing dependencies surface Nix-specific remediation messages
|
|
73
|
+
- UI surfaces a read-only Nix mode banner
|
|
74
|
+
|
|
75
|
+
### Config and state paths
|
|
76
|
+
|
|
77
|
+
Nodmix reads JSON5 config from `NODMIX_CONFIG_PATH` and stores mutable data in `NODMIX_STATE_DIR`. When running under Nix, set these explicitly to Nix-managed locations so runtime state and config stay out of the immutable store.
|
|
78
|
+
|
|
79
|
+
| Variable | Default |
|
|
80
|
+
| ---------------------- | --------------------------------------- |
|
|
81
|
+
| `NODMIX_HOME` | `HOME` / `USERPROFILE` / `os.homedir()` |
|
|
82
|
+
| `NODMIX_STATE_DIR` | `~/.nodmix` |
|
|
83
|
+
| `NODMIX_CONFIG_PATH` | `$NODMIX_STATE_DIR/nodmix.json` |
|
|
84
|
+
|
|
85
|
+
### Service PATH discovery
|
|
86
|
+
|
|
87
|
+
The launchd/systemd gateway service auto-discovers Nix-profile binaries so
|
|
88
|
+
plugins and tools that shell out to `nix`-installed executables work without
|
|
89
|
+
manual PATH setup:
|
|
90
|
+
|
|
91
|
+
- When `NIX_PROFILES` is set, every entry is added to the service PATH in
|
|
92
|
+
right-to-left precedence (matches Nix shell precedence - rightmost wins).
|
|
93
|
+
- When `NIX_PROFILES` is unset, `~/.nix-profile/bin` is added as a fallback.
|
|
94
|
+
|
|
95
|
+
This applies to both macOS launchd and Linux systemd service environments.
|
|
96
|
+
|
|
97
|
+
## Related
|
|
98
|
+
|
|
99
|
+
<CardGroup cols={2}>
|
|
100
|
+
<Card title="nix-nodmix" href="https://github.com/nodmix/nix-nodmix" icon="arrow-up-right-from-square">
|
|
101
|
+
Source-of-truth Home Manager module and full setup guide.
|
|
102
|
+
</Card>
|
|
103
|
+
<Card title="Setup wizard" href="/start/wizard" icon="wand-magic-sparkles">
|
|
104
|
+
Non-Nix CLI setup walkthrough.
|
|
105
|
+
</Card>
|
|
106
|
+
<Card title="Docker" href="/install/docker" icon="docker">
|
|
107
|
+
Containerized setup as a non-Nix alternative.
|
|
108
|
+
</Card>
|
|
109
|
+
<Card title="Updating" href="/install/updating" icon="arrow-up-right-from-square">
|
|
110
|
+
Updating Home Manager-managed installs alongside the package.
|
|
111
|
+
</Card>
|
|
112
|
+
</CardGroup>
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Install and configure Node.js for Nodmix - version requirements, install options, and PATH troubleshooting"
|
|
3
|
+
title: "Node.js"
|
|
4
|
+
read_when:
|
|
5
|
+
- "You need to install Node.js before installing Nodmix"
|
|
6
|
+
- "You installed Nodmix but `nodmix` is command not found"
|
|
7
|
+
- "npm install -g fails with permissions or PATH issues"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
Nodmix requires **Node 22.19 or newer**. **Node 24 is the default and recommended runtime** for installs, CI, and release workflows. Node 22 remains supported via the active LTS line. The [installer script](/install#alternative-install-methods) will detect and install Node automatically - this page is for when you want to set up Node yourself and make sure everything is wired up correctly (versions, PATH, global installs).
|
|
11
|
+
|
|
12
|
+
## Check your version
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
node -v
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
If this prints `v24.x.x` or higher, you're on the recommended default. If it prints `v22.19.x` or higher, you're on the supported Node 22 LTS path, but we still recommend upgrading to Node 24 when convenient. If Node isn't installed or the version is too old, pick an install method below.
|
|
19
|
+
|
|
20
|
+
## Install Node
|
|
21
|
+
|
|
22
|
+
<Tabs>
|
|
23
|
+
<Tab title="macOS">
|
|
24
|
+
**Homebrew** (recommended):
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
brew install node
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Or download the macOS installer from [nodejs.org](https://nodejs.org/).
|
|
31
|
+
|
|
32
|
+
</Tab>
|
|
33
|
+
<Tab title="Linux">
|
|
34
|
+
**Ubuntu / Debian:**
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -
|
|
38
|
+
sudo apt-get install -y nodejs
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**Fedora / RHEL:**
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
sudo dnf install nodejs
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Or use a version manager (see below).
|
|
48
|
+
|
|
49
|
+
</Tab>
|
|
50
|
+
<Tab title="Windows">
|
|
51
|
+
**winget** (recommended):
|
|
52
|
+
|
|
53
|
+
```powershell
|
|
54
|
+
winget install OpenJS.NodeJS.LTS
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Chocolatey:**
|
|
58
|
+
|
|
59
|
+
```powershell
|
|
60
|
+
choco install nodejs-lts
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Or download the Windows installer from [nodejs.org](https://nodejs.org/).
|
|
64
|
+
|
|
65
|
+
</Tab>
|
|
66
|
+
</Tabs>
|
|
67
|
+
|
|
68
|
+
<Accordion title="Using a version manager (nvm, fnm, mise, asdf)">
|
|
69
|
+
Version managers let you switch between Node versions easily. Popular options:
|
|
70
|
+
|
|
71
|
+
- [**fnm**](https://github.com/Schniz/fnm) - fast, cross-platform
|
|
72
|
+
- [**nvm**](https://github.com/nvm-sh/nvm) - widely used on macOS/Linux
|
|
73
|
+
- [**mise**](https://mise.jdx.dev/) - polyglot (Node, Python, Ruby, etc.)
|
|
74
|
+
|
|
75
|
+
Example with fnm:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
fnm install 24
|
|
79
|
+
fnm use 24
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
<Warning>
|
|
83
|
+
Make sure your version manager is initialized in your shell startup file (`~/.zshrc` or `~/.bashrc`). If it isn't, `nodmix` may not be found in new terminal sessions because the PATH won't include Node's bin directory.
|
|
84
|
+
</Warning>
|
|
85
|
+
</Accordion>
|
|
86
|
+
|
|
87
|
+
## Troubleshooting
|
|
88
|
+
|
|
89
|
+
### `nodmix: command not found`
|
|
90
|
+
|
|
91
|
+
This almost always means npm's global bin directory isn't on your PATH.
|
|
92
|
+
|
|
93
|
+
<Steps>
|
|
94
|
+
<Step title="Find your global npm prefix">
|
|
95
|
+
```bash
|
|
96
|
+
npm prefix -g
|
|
97
|
+
```
|
|
98
|
+
</Step>
|
|
99
|
+
<Step title="Check if it's on your PATH">
|
|
100
|
+
```bash
|
|
101
|
+
echo "$PATH"
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Look for `<npm-prefix>/bin` (macOS/Linux) or `<npm-prefix>` (Windows) in the output.
|
|
105
|
+
|
|
106
|
+
</Step>
|
|
107
|
+
<Step title="Add it to your shell startup file">
|
|
108
|
+
<Tabs>
|
|
109
|
+
<Tab title="macOS / Linux">
|
|
110
|
+
Add to `~/.zshrc` or `~/.bashrc`:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
export PATH="$(npm prefix -g)/bin:$PATH"
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Then open a new terminal (or run `rehash` in zsh / `hash -r` in bash).
|
|
117
|
+
</Tab>
|
|
118
|
+
<Tab title="Windows">
|
|
119
|
+
Add the output of `npm prefix -g` to your system PATH via Settings → System → Environment Variables.
|
|
120
|
+
</Tab>
|
|
121
|
+
</Tabs>
|
|
122
|
+
|
|
123
|
+
</Step>
|
|
124
|
+
</Steps>
|
|
125
|
+
|
|
126
|
+
### Permission errors on `npm install -g` (Linux)
|
|
127
|
+
|
|
128
|
+
If you see `EACCES` errors, switch npm's global prefix to a user-writable directory:
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
mkdir -p "$HOME/.npm-global"
|
|
132
|
+
npm config set prefix "$HOME/.npm-global"
|
|
133
|
+
export PATH="$HOME/.npm-global/bin:$PATH"
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Add the `export PATH=...` line to your `~/.bashrc` or `~/.zshrc` to make it permanent.
|
|
137
|
+
|
|
138
|
+
## Related
|
|
139
|
+
|
|
140
|
+
- [Install Overview](/install) - all installation methods
|
|
141
|
+
- [Updating](/install/updating) - keeping Nodmix up to date
|
|
142
|
+
- [Getting Started](/start/getting-started) - first steps after install
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Deploy Nodmix on Northflank with one-click template"
|
|
3
|
+
read_when:
|
|
4
|
+
- Deploying Nodmix to Northflank
|
|
5
|
+
- You want a one-click cloud deploy with browser-based Control UI
|
|
6
|
+
title: "Northflank"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Northflank
|
|
10
|
+
|
|
11
|
+
Deploy Nodmix on Northflank with a one-click template and access it through the web Control UI.
|
|
12
|
+
This is the easiest "no terminal on the server" path: Northflank runs the Gateway for you.
|
|
13
|
+
|
|
14
|
+
## How to get started
|
|
15
|
+
|
|
16
|
+
1. Click [Deploy Nodmix](https://northflank.com/stacks/deploy-nodmix) to open the template.
|
|
17
|
+
2. Create an [account on Northflank](https://app.northflank.com/signup) if you don't already have one.
|
|
18
|
+
3. Click **Deploy Nodmix now**.
|
|
19
|
+
4. Set the required environment variable: `NODMIX_GATEWAY_TOKEN` (use a strong random value).
|
|
20
|
+
5. Click **Deploy stack** to build and run the Nodmix template.
|
|
21
|
+
6. Wait for the deployment to complete, then click **View resources**.
|
|
22
|
+
7. Open the Nodmix service.
|
|
23
|
+
8. Open the public Nodmix URL at `/nodmix` and connect using the configured shared secret. This template uses `NODMIX_GATEWAY_TOKEN` by default; if you replace it with password auth, use that password instead.
|
|
24
|
+
|
|
25
|
+
## What you get
|
|
26
|
+
|
|
27
|
+
- Hosted Nodmix Gateway + Control UI
|
|
28
|
+
- Persistent storage via Northflank Volume (`/data`) so `nodmix.json`,
|
|
29
|
+
per-agent `auth-profiles.json`, channel/provider state, sessions, and
|
|
30
|
+
workspace survive redeploys
|
|
31
|
+
|
|
32
|
+
## Connect a channel
|
|
33
|
+
|
|
34
|
+
Use the Control UI at `/nodmix` or run `nodmix onboard` via SSH for channel setup instructions:
|
|
35
|
+
|
|
36
|
+
- [Telegram](/channels/telegram) (fastest — just a bot token)
|
|
37
|
+
- [Discord](/channels/discord)
|
|
38
|
+
- [All channels](/channels)
|
|
39
|
+
|
|
40
|
+
## Next steps
|
|
41
|
+
|
|
42
|
+
- Set up messaging channels: [Channels](/channels)
|
|
43
|
+
- Configure the Gateway: [Gateway configuration](/gateway/configuration)
|
|
44
|
+
- Keep Nodmix up to date: [Updating](/install/updating)
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Host Nodmix on Oracle Cloud's Always Free ARM tier"
|
|
3
|
+
read_when:
|
|
4
|
+
- Setting up Nodmix on Oracle Cloud
|
|
5
|
+
- Looking for free VPS hosting for Nodmix
|
|
6
|
+
- Want 24/7 Nodmix on a small server
|
|
7
|
+
title: "Oracle Cloud"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
Run a persistent Nodmix Gateway on Oracle Cloud's **Always Free** ARM tier (up to 4 OCPU, 24 GB RAM, 200 GB storage) at no cost.
|
|
11
|
+
|
|
12
|
+
## Prerequisites
|
|
13
|
+
|
|
14
|
+
- Oracle Cloud account ([signup](https://www.oracle.com/cloud/free/)) -- see [community signup guide](https://gist.github.com/rssnyder/51e3cfedd730e7dd5f4a816143b25dbd) if you hit issues
|
|
15
|
+
- Tailscale account (free at [tailscale.com](https://tailscale.com))
|
|
16
|
+
- An SSH key pair
|
|
17
|
+
- About 30 minutes
|
|
18
|
+
|
|
19
|
+
## Setup
|
|
20
|
+
|
|
21
|
+
<Steps>
|
|
22
|
+
<Step title="Create an OCI instance">
|
|
23
|
+
1. Log into [Oracle Cloud Console](https://cloud.oracle.com/).
|
|
24
|
+
2. Navigate to **Compute > Instances > Create Instance**.
|
|
25
|
+
3. Configure:
|
|
26
|
+
- **Name:** `nodmix`
|
|
27
|
+
- **Image:** Ubuntu 24.04 (aarch64)
|
|
28
|
+
- **Shape:** `VM.Standard.A1.Flex` (Ampere ARM)
|
|
29
|
+
- **OCPUs:** 2 (or up to 4)
|
|
30
|
+
- **Memory:** 12 GB (or up to 24 GB)
|
|
31
|
+
- **Boot volume:** 50 GB (up to 200 GB free)
|
|
32
|
+
- **SSH key:** Add your public key
|
|
33
|
+
4. Click **Create** and note the public IP address.
|
|
34
|
+
|
|
35
|
+
<Tip>
|
|
36
|
+
If instance creation fails with "Out of capacity", try a different availability domain or retry later. Free tier capacity is limited.
|
|
37
|
+
</Tip>
|
|
38
|
+
|
|
39
|
+
</Step>
|
|
40
|
+
|
|
41
|
+
<Step title="Connect and update the system">
|
|
42
|
+
```bash
|
|
43
|
+
ssh ubuntu@YOUR_PUBLIC_IP
|
|
44
|
+
|
|
45
|
+
sudo apt update && sudo apt upgrade -y
|
|
46
|
+
sudo apt install -y build-essential
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
`build-essential` is required for ARM compilation of some dependencies.
|
|
50
|
+
|
|
51
|
+
</Step>
|
|
52
|
+
|
|
53
|
+
<Step title="Configure user and hostname">
|
|
54
|
+
```bash
|
|
55
|
+
sudo hostnamectl set-hostname nodmix
|
|
56
|
+
sudo passwd ubuntu
|
|
57
|
+
sudo loginctl enable-linger ubuntu
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Enabling linger keeps user services running after logout.
|
|
61
|
+
|
|
62
|
+
</Step>
|
|
63
|
+
|
|
64
|
+
<Step title="Install Tailscale">
|
|
65
|
+
```bash
|
|
66
|
+
curl -fsSL https://tailscale.com/install.sh | sh
|
|
67
|
+
sudo tailscale up --ssh --hostname=nodmix
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
From now on, connect via Tailscale: `ssh ubuntu@nodmix`.
|
|
71
|
+
|
|
72
|
+
</Step>
|
|
73
|
+
|
|
74
|
+
<Step title="Install Nodmix">
|
|
75
|
+
```bash
|
|
76
|
+
curl -fsSL https://nodmix.ai/install.sh | bash
|
|
77
|
+
source ~/.bashrc
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
When prompted "How do you want to hatch your bot?", select **Do this later**.
|
|
81
|
+
|
|
82
|
+
</Step>
|
|
83
|
+
|
|
84
|
+
<Step title="Configure the gateway">
|
|
85
|
+
Use token auth with Tailscale Serve for secure remote access.
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
nodmix config set gateway.bind loopback
|
|
89
|
+
nodmix config set gateway.auth.mode token
|
|
90
|
+
nodmix doctor --generate-gateway-token
|
|
91
|
+
nodmix config set gateway.tailscale.mode serve
|
|
92
|
+
nodmix config set gateway.trustedProxies '["127.0.0.1"]'
|
|
93
|
+
|
|
94
|
+
systemctl --user restart nodmix-gateway.service
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
`gateway.trustedProxies=["127.0.0.1"]` here is only for the local Tailscale Serve proxy's forwarded-IP/local-client handling. It is **not** `gateway.auth.mode: "trusted-proxy"`. Diff viewer routes keep fail-closed behavior in this setup: raw `127.0.0.1` viewer requests without forwarded proxy headers can return `Diff not found`. Use `mode=file` / `mode=both` for attachments, or intentionally enable remote viewers and set `plugins.entries.diffs.config.viewerBaseUrl` (or pass a proxy `baseUrl`) if you need shareable viewer links.
|
|
98
|
+
|
|
99
|
+
</Step>
|
|
100
|
+
|
|
101
|
+
<Step title="Lock down VCN security">
|
|
102
|
+
Block all traffic except Tailscale at the network edge:
|
|
103
|
+
|
|
104
|
+
1. Go to **Networking > Virtual Cloud Networks** in the OCI Console.
|
|
105
|
+
2. Click your VCN, then **Security Lists > Default Security List**.
|
|
106
|
+
3. **Remove** all ingress rules except `0.0.0.0/0 UDP 41641` (Tailscale).
|
|
107
|
+
4. Keep default egress rules (allow all outbound).
|
|
108
|
+
|
|
109
|
+
This blocks SSH on port 22, HTTP, HTTPS, and everything else at the network edge. You can only connect via Tailscale from this point on.
|
|
110
|
+
|
|
111
|
+
</Step>
|
|
112
|
+
|
|
113
|
+
<Step title="Verify">
|
|
114
|
+
```bash
|
|
115
|
+
nodmix --version
|
|
116
|
+
systemctl --user status nodmix-gateway.service
|
|
117
|
+
tailscale serve status
|
|
118
|
+
curl http://localhost:18789
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Access the Control UI from any device on your tailnet:
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
https://nodmix.<tailnet-name>.ts.net/
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Replace `<tailnet-name>` with your tailnet name (visible in `tailscale status`).
|
|
128
|
+
|
|
129
|
+
</Step>
|
|
130
|
+
</Steps>
|
|
131
|
+
|
|
132
|
+
## Verify the security posture
|
|
133
|
+
|
|
134
|
+
With the VCN locked down (only UDP 41641 open) and the Gateway bound to loopback, public traffic is blocked at the network edge and admin access is tailnet-only. That removes the need for several traditional VPS hardening steps:
|
|
135
|
+
|
|
136
|
+
| Traditional step | Needed? | Why |
|
|
137
|
+
| ------------------ | ----------- | ------------------------------------------------------------------------- |
|
|
138
|
+
| UFW firewall | No | The VCN blocks traffic before it reaches the instance. |
|
|
139
|
+
| fail2ban | No | Port 22 is blocked at the VCN; no brute-force surface. |
|
|
140
|
+
| sshd hardening | No | Tailscale SSH does not use sshd. |
|
|
141
|
+
| Disable root login | No | Tailscale authenticates by tailnet identity, not system users. |
|
|
142
|
+
| SSH key-only auth | No | Same — tailnet identity replaces system SSH keys. |
|
|
143
|
+
| IPv6 hardening | Usually not | Depends on VCN/subnet settings; verify what is actually assigned/exposed. |
|
|
144
|
+
|
|
145
|
+
Still recommended:
|
|
146
|
+
|
|
147
|
+
- `chmod 700 ~/.nodmix` to restrict credential file permissions.
|
|
148
|
+
- `nodmix security audit` for an Nodmix-specific posture check.
|
|
149
|
+
- Regular `sudo apt update && sudo apt upgrade` for OS patches.
|
|
150
|
+
- Review devices in the [Tailscale admin console](https://login.tailscale.com/admin) periodically.
|
|
151
|
+
|
|
152
|
+
Quick verification commands:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
# Confirm no public ports are listening
|
|
156
|
+
sudo ss -tlnp | grep -v '127.0.0.1\|::1'
|
|
157
|
+
|
|
158
|
+
# Verify Tailscale SSH is active
|
|
159
|
+
tailscale status | grep -q 'offers: ssh' && echo "Tailscale SSH active"
|
|
160
|
+
|
|
161
|
+
# Optional: disable sshd entirely once Tailscale SSH is confirmed working
|
|
162
|
+
sudo systemctl disable --now ssh
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
## ARM notes
|
|
166
|
+
|
|
167
|
+
The Always Free tier is ARM (`aarch64`). Most Nodmix features work fine; a small number of native binaries need ARM builds:
|
|
168
|
+
|
|
169
|
+
- Node.js, Telegram, WhatsApp (Baileys): pure JavaScript, no issues.
|
|
170
|
+
- Most npm packages with native code: pre-built `linux-arm64` artifacts available.
|
|
171
|
+
- Optional CLI helpers (e.g. Go/Rust binaries shipped by skills): check for an `aarch64` / `linux-arm64` release before installing.
|
|
172
|
+
|
|
173
|
+
Verify the architecture with `uname -m` (should print `aarch64`). For binaries without an ARM build, install from source or skip them.
|
|
174
|
+
|
|
175
|
+
## Persistence and backups
|
|
176
|
+
|
|
177
|
+
Nodmix state lives under:
|
|
178
|
+
|
|
179
|
+
- `~/.nodmix/` — `nodmix.json`, per-agent `auth-profiles.json`, channel/provider state, and session data.
|
|
180
|
+
- `~/.nodmix/workspace/` — the agent workspace (SOUL.md, memory, artifacts).
|
|
181
|
+
|
|
182
|
+
These survive reboots. To take a portable snapshot:
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
nodmix backup create
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Fallback: SSH tunnel
|
|
189
|
+
|
|
190
|
+
If Tailscale Serve is not working, use an SSH tunnel from your local machine:
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
ssh -L 18789:127.0.0.1:18789 ubuntu@nodmix
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Then open `http://localhost:18789`.
|
|
197
|
+
|
|
198
|
+
## Troubleshooting
|
|
199
|
+
|
|
200
|
+
**Instance creation fails ("Out of capacity")** -- Free tier ARM instances are popular. Try a different availability domain or retry during off-peak hours.
|
|
201
|
+
|
|
202
|
+
**Tailscale will not connect** -- Run `sudo tailscale up --ssh --hostname=nodmix --reset` to re-authenticate.
|
|
203
|
+
|
|
204
|
+
**Gateway will not start** -- Run `nodmix doctor --non-interactive` and check logs with `journalctl --user -u nodmix-gateway.service -n 50`.
|
|
205
|
+
|
|
206
|
+
**ARM binary issues** -- Most npm packages work on ARM64. For native binaries, look for `linux-arm64` or `aarch64` releases. Verify architecture with `uname -m`.
|
|
207
|
+
|
|
208
|
+
## Next steps
|
|
209
|
+
|
|
210
|
+
- [Channels](/channels) -- connect Telegram, WhatsApp, Discord, and more
|
|
211
|
+
- [Gateway configuration](/gateway/configuration) -- all config options
|
|
212
|
+
- [Updating](/install/updating) -- keep Nodmix up to date
|
|
213
|
+
|
|
214
|
+
## Related
|
|
215
|
+
|
|
216
|
+
- [Install overview](/install)
|
|
217
|
+
- [GCP](/install/gcp)
|
|
218
|
+
- [VPS hosting](/vps)
|