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.
Files changed (827) hide show
  1. package/CHANGELOG.md +11573 -0
  2. package/LICENSE +21 -0
  3. package/README.md +486 -0
  4. package/docs/.i18n/README.md +81 -0
  5. package/docs/.i18n/ar-navigation.json +18 -0
  6. package/docs/.i18n/de-navigation.json +18 -0
  7. package/docs/.i18n/es-navigation.json +18 -0
  8. package/docs/.i18n/fr-navigation.json +18 -0
  9. package/docs/.i18n/glossary.ar.json +78 -0
  10. package/docs/.i18n/glossary.de.json +78 -0
  11. package/docs/.i18n/glossary.es.json +78 -0
  12. package/docs/.i18n/glossary.fa.json +78 -0
  13. package/docs/.i18n/glossary.fr.json +78 -0
  14. package/docs/.i18n/glossary.id.json +78 -0
  15. package/docs/.i18n/glossary.it.json +78 -0
  16. package/docs/.i18n/glossary.ja-JP.json +98 -0
  17. package/docs/.i18n/glossary.ko.json +78 -0
  18. package/docs/.i18n/glossary.nl.json +78 -0
  19. package/docs/.i18n/glossary.pl.json +78 -0
  20. package/docs/.i18n/glossary.pt-BR.json +78 -0
  21. package/docs/.i18n/glossary.th.json +78 -0
  22. package/docs/.i18n/glossary.tr.json +78 -0
  23. package/docs/.i18n/glossary.uk.json +78 -0
  24. package/docs/.i18n/glossary.vi.json +78 -0
  25. package/docs/.i18n/glossary.zh-CN.json +1002 -0
  26. package/docs/.i18n/glossary.zh-TW.json +78 -0
  27. package/docs/.i18n/id-navigation.json +18 -0
  28. package/docs/.i18n/it-navigation.json +18 -0
  29. package/docs/.i18n/ja-navigation.json +18 -0
  30. package/docs/.i18n/ko-navigation.json +18 -0
  31. package/docs/.i18n/pl-navigation.json +18 -0
  32. package/docs/.i18n/pt-BR-navigation.json +18 -0
  33. package/docs/.i18n/tr-navigation.json +18 -0
  34. package/docs/.i18n/translation-workflow.md +111 -0
  35. package/docs/.i18n/zh-Hans-navigation.json +542 -0
  36. package/docs/AGENTS.md +36 -0
  37. package/docs/announcements/bluebubbles-imessage.md +79 -0
  38. package/docs/assets/install-script.svg +1 -0
  39. package/docs/assets/macos-onboarding/01-macos-warning.jpeg +0 -0
  40. package/docs/assets/macos-onboarding/02-local-networks.jpeg +0 -0
  41. package/docs/assets/macos-onboarding/03-security-notice.png +0 -0
  42. package/docs/assets/macos-onboarding/04-choose-gateway.png +0 -0
  43. package/docs/assets/macos-onboarding/05-permissions.png +0 -0
  44. package/docs/assets/openclaw-logo-text-dark.png +0 -0
  45. package/docs/assets/openclaw-logo-text-dark.svg +418 -0
  46. package/docs/assets/openclaw-logo-text.png +0 -0
  47. package/docs/assets/openclaw-logo-text.svg +418 -0
  48. package/docs/assets/pixel-lobster.svg +60 -0
  49. package/docs/assets/pr/quick-settings-browser-tools.png +0 -0
  50. package/docs/assets/showcase/agents-ui.jpg +0 -0
  51. package/docs/assets/showcase/bambu-cli.png +0 -0
  52. package/docs/assets/showcase/codexmonitor.png +0 -0
  53. package/docs/assets/showcase/gohome-grafana.png +0 -0
  54. package/docs/assets/showcase/ios-testflight.jpg +0 -0
  55. package/docs/assets/showcase/oura-health.png +0 -0
  56. package/docs/assets/showcase/padel-cli.svg +11 -0
  57. package/docs/assets/showcase/padel-screenshot.jpg +0 -0
  58. package/docs/assets/showcase/papla-tts.jpg +0 -0
  59. package/docs/assets/showcase/pr-review-telegram.jpg +0 -0
  60. package/docs/assets/showcase/roborock-screenshot.jpg +0 -0
  61. package/docs/assets/showcase/roborock-status.svg +13 -0
  62. package/docs/assets/showcase/roof-camera-sky.jpg +0 -0
  63. package/docs/assets/showcase/snag.png +0 -0
  64. package/docs/assets/showcase/tesco-shop.jpg +0 -0
  65. package/docs/assets/showcase/wienerlinien.png +0 -0
  66. package/docs/assets/showcase/wine-cellar-skill.jpg +0 -0
  67. package/docs/assets/showcase/winix-air-purifier.jpg +0 -0
  68. package/docs/assets/showcase/xuezh-pronunciation.jpeg +0 -0
  69. package/docs/assets/sponsors/blacksmith-light.svg +14 -0
  70. package/docs/assets/sponsors/blacksmith.svg +14 -0
  71. package/docs/assets/sponsors/convex-light.svg +16 -0
  72. package/docs/assets/sponsors/convex.svg +16 -0
  73. package/docs/assets/sponsors/github-light.svg +3 -0
  74. package/docs/assets/sponsors/github.svg +3 -0
  75. package/docs/assets/sponsors/nvidia-dark.svg +9 -0
  76. package/docs/assets/sponsors/nvidia.svg +9 -0
  77. package/docs/assets/sponsors/openai-light.svg +3 -0
  78. package/docs/assets/sponsors/openai.svg +3 -0
  79. package/docs/assets/sponsors/vercel-light.svg +5 -0
  80. package/docs/assets/sponsors/vercel.svg +5 -0
  81. package/docs/auth-credential-semantics.md +124 -0
  82. package/docs/automation/auth-monitoring.md +11 -0
  83. package/docs/automation/clawflow.md +12 -0
  84. package/docs/automation/cron-jobs.md +500 -0
  85. package/docs/automation/cron-vs-heartbeat.md +11 -0
  86. package/docs/automation/gmail-pubsub.md +11 -0
  87. package/docs/automation/hooks.md +365 -0
  88. package/docs/automation/index.md +135 -0
  89. package/docs/automation/poll.md +12 -0
  90. package/docs/automation/standing-orders.md +250 -0
  91. package/docs/automation/taskflow.md +155 -0
  92. package/docs/automation/tasks.md +374 -0
  93. package/docs/automation/troubleshooting.md +12 -0
  94. package/docs/automation/webhook.md +12 -0
  95. package/docs/brave-search.md +11 -0
  96. package/docs/channels/access-groups.md +201 -0
  97. package/docs/channels/ambient-room-events.md +214 -0
  98. package/docs/channels/bot-loop-protection.md +131 -0
  99. package/docs/channels/broadcast-groups.md +472 -0
  100. package/docs/channels/channel-routing.md +162 -0
  101. package/docs/channels/clickclack.md +138 -0
  102. package/docs/channels/discord.md +1762 -0
  103. package/docs/channels/feishu.md +502 -0
  104. package/docs/channels/googlechat.md +284 -0
  105. package/docs/channels/group-messages.md +95 -0
  106. package/docs/channels/groups.md +519 -0
  107. package/docs/channels/imessage-from-bluebubbles.md +259 -0
  108. package/docs/channels/imessage.md +813 -0
  109. package/docs/channels/index.md +64 -0
  110. package/docs/channels/irc.md +253 -0
  111. package/docs/channels/line.md +243 -0
  112. package/docs/channels/location.md +71 -0
  113. package/docs/channels/matrix-migration.md +370 -0
  114. package/docs/channels/matrix-presentation.md +77 -0
  115. package/docs/channels/matrix-push-rules.md +150 -0
  116. package/docs/channels/matrix.md +921 -0
  117. package/docs/channels/mattermost.md +542 -0
  118. package/docs/channels/msteams.md +1042 -0
  119. package/docs/channels/nextcloud-talk.md +176 -0
  120. package/docs/channels/nostr.md +253 -0
  121. package/docs/channels/pairing.md +214 -0
  122. package/docs/channels/qqbot.md +309 -0
  123. package/docs/channels/signal.md +400 -0
  124. package/docs/channels/slack.md +1564 -0
  125. package/docs/channels/synology-chat.md +187 -0
  126. package/docs/channels/telegram.md +1107 -0
  127. package/docs/channels/tlon.md +296 -0
  128. package/docs/channels/troubleshooting.md +161 -0
  129. package/docs/channels/twitch.md +431 -0
  130. package/docs/channels/wechat.md +171 -0
  131. package/docs/channels/whatsapp.md +739 -0
  132. package/docs/channels/yuanbao.md +416 -0
  133. package/docs/channels/zalo.md +253 -0
  134. package/docs/channels/zalouser.md +199 -0
  135. package/docs/ci.md +612 -0
  136. package/docs/clawhub/publishing.md +96 -0
  137. package/docs/cli/acp.md +370 -0
  138. package/docs/cli/agent.md +103 -0
  139. package/docs/cli/agents.md +232 -0
  140. package/docs/cli/approvals.md +190 -0
  141. package/docs/cli/backup.md +97 -0
  142. package/docs/cli/browser.md +307 -0
  143. package/docs/cli/channels.md +154 -0
  144. package/docs/cli/clawbot.md +25 -0
  145. package/docs/cli/commitments.md +90 -0
  146. package/docs/cli/completion.md +39 -0
  147. package/docs/cli/config.md +504 -0
  148. package/docs/cli/configure.md +77 -0
  149. package/docs/cli/crestodian.md +332 -0
  150. package/docs/cli/cron.md +281 -0
  151. package/docs/cli/daemon.md +67 -0
  152. package/docs/cli/dashboard.md +33 -0
  153. package/docs/cli/devices.md +204 -0
  154. package/docs/cli/directory.md +68 -0
  155. package/docs/cli/dns.md +53 -0
  156. package/docs/cli/docs.md +73 -0
  157. package/docs/cli/doctor.md +237 -0
  158. package/docs/cli/flows.md +52 -0
  159. package/docs/cli/gateway.md +567 -0
  160. package/docs/cli/health.md +43 -0
  161. package/docs/cli/hooks.md +345 -0
  162. package/docs/cli/index.md +396 -0
  163. package/docs/cli/infer.md +364 -0
  164. package/docs/cli/logs.md +65 -0
  165. package/docs/cli/mcp.md +529 -0
  166. package/docs/cli/memory.md +183 -0
  167. package/docs/cli/message.md +317 -0
  168. package/docs/cli/migrate.md +290 -0
  169. package/docs/cli/models.md +224 -0
  170. package/docs/cli/node.md +177 -0
  171. package/docs/cli/nodes.md +76 -0
  172. package/docs/cli/onboard.md +245 -0
  173. package/docs/cli/pairing.md +77 -0
  174. package/docs/cli/path.md +502 -0
  175. package/docs/cli/plugins.md +454 -0
  176. package/docs/cli/policy.md +418 -0
  177. package/docs/cli/proxy.md +89 -0
  178. package/docs/cli/qr.md +56 -0
  179. package/docs/cli/reset.md +39 -0
  180. package/docs/cli/sandbox.md +208 -0
  181. package/docs/cli/secrets.md +202 -0
  182. package/docs/cli/security.md +124 -0
  183. package/docs/cli/sessions.md +164 -0
  184. package/docs/cli/setup.md +59 -0
  185. package/docs/cli/skills.md +102 -0
  186. package/docs/cli/status.md +45 -0
  187. package/docs/cli/system.md +89 -0
  188. package/docs/cli/tasks.md +111 -0
  189. package/docs/cli/tui.md +89 -0
  190. package/docs/cli/uninstall.md +44 -0
  191. package/docs/cli/update.md +242 -0
  192. package/docs/cli/voicecall.md +204 -0
  193. package/docs/cli/webhooks.md +117 -0
  194. package/docs/cli/wiki.md +256 -0
  195. package/docs/concepts/active-memory.md +856 -0
  196. package/docs/concepts/agent-loop.md +185 -0
  197. package/docs/concepts/agent-runtimes.md +243 -0
  198. package/docs/concepts/agent-workspace.md +230 -0
  199. package/docs/concepts/agent.md +136 -0
  200. package/docs/concepts/architecture.md +154 -0
  201. package/docs/concepts/channel-docking.md +145 -0
  202. package/docs/concepts/commitments.md +150 -0
  203. package/docs/concepts/compaction.md +203 -0
  204. package/docs/concepts/context-engine.md +306 -0
  205. package/docs/concepts/context.md +199 -0
  206. package/docs/concepts/delegate-architecture.md +319 -0
  207. package/docs/concepts/dreaming.md +261 -0
  208. package/docs/concepts/experimental-features.md +108 -0
  209. package/docs/concepts/features.md +91 -0
  210. package/docs/concepts/mantis-slack-desktop-runbook.md +202 -0
  211. package/docs/concepts/mantis.md +740 -0
  212. package/docs/concepts/markdown-formatting.md +139 -0
  213. package/docs/concepts/memory-builtin.md +146 -0
  214. package/docs/concepts/memory-honcho.md +144 -0
  215. package/docs/concepts/memory-qmd.md +271 -0
  216. package/docs/concepts/memory-search.md +166 -0
  217. package/docs/concepts/memory.md +258 -0
  218. package/docs/concepts/message-lifecycle-refactor.md +1128 -0
  219. package/docs/concepts/messages.md +214 -0
  220. package/docs/concepts/model-failover.md +385 -0
  221. package/docs/concepts/model-providers.md +715 -0
  222. package/docs/concepts/models.md +370 -0
  223. package/docs/concepts/multi-agent.md +619 -0
  224. package/docs/concepts/oauth.md +198 -0
  225. package/docs/concepts/openclaw-sdk.md +323 -0
  226. package/docs/concepts/parallel-specialist-lanes.md +127 -0
  227. package/docs/concepts/personal-agent-benchmark-pack.md +74 -0
  228. package/docs/concepts/presence.md +117 -0
  229. package/docs/concepts/progress-drafts.md +362 -0
  230. package/docs/concepts/qa-e2e-automation.md +820 -0
  231. package/docs/concepts/qa-matrix.md +139 -0
  232. package/docs/concepts/queue-steering.md +90 -0
  233. package/docs/concepts/queue.md +122 -0
  234. package/docs/concepts/retry.md +86 -0
  235. package/docs/concepts/session-pruning.md +104 -0
  236. package/docs/concepts/session-tool.md +190 -0
  237. package/docs/concepts/session.md +164 -0
  238. package/docs/concepts/soul.md +116 -0
  239. package/docs/concepts/streaming.md +251 -0
  240. package/docs/concepts/system-prompt.md +310 -0
  241. package/docs/concepts/timezone.md +47 -0
  242. package/docs/concepts/typebox.md +309 -0
  243. package/docs/concepts/typing-indicators.md +88 -0
  244. package/docs/concepts/usage-tracking.md +66 -0
  245. package/docs/date-time.md +126 -0
  246. package/docs/debug/node-issue.md +90 -0
  247. package/docs/diagnostics/flags.md +138 -0
  248. package/docs/docs.json +1832 -0
  249. package/docs/gateway/authentication.md +239 -0
  250. package/docs/gateway/background-process.md +147 -0
  251. package/docs/gateway/bonjour.md +303 -0
  252. package/docs/gateway/bridge-protocol.md +94 -0
  253. package/docs/gateway/cli-backends.md +420 -0
  254. package/docs/gateway/config-agents.md +1514 -0
  255. package/docs/gateway/config-channels.md +945 -0
  256. package/docs/gateway/config-tools.md +769 -0
  257. package/docs/gateway/configuration-examples.md +705 -0
  258. package/docs/gateway/configuration-reference.md +1393 -0
  259. package/docs/gateway/configuration.md +737 -0
  260. package/docs/gateway/diagnostics.md +213 -0
  261. package/docs/gateway/discovery.md +154 -0
  262. package/docs/gateway/doctor.md +574 -0
  263. package/docs/gateway/gateway-lock.md +37 -0
  264. package/docs/gateway/health.md +73 -0
  265. package/docs/gateway/heartbeat.md +493 -0
  266. package/docs/gateway/index.md +383 -0
  267. package/docs/gateway/local-model-services.md +205 -0
  268. package/docs/gateway/local-models.md +355 -0
  269. package/docs/gateway/logging.md +149 -0
  270. package/docs/gateway/multiple-gateways.md +178 -0
  271. package/docs/gateway/network-model.md +15 -0
  272. package/docs/gateway/openai-http-api.md +350 -0
  273. package/docs/gateway/openresponses-http-api.md +347 -0
  274. package/docs/gateway/openshell.md +316 -0
  275. package/docs/gateway/opentelemetry.md +404 -0
  276. package/docs/gateway/operator-scopes.md +111 -0
  277. package/docs/gateway/pairing.md +207 -0
  278. package/docs/gateway/prometheus.md +230 -0
  279. package/docs/gateway/protocol.md +803 -0
  280. package/docs/gateway/remote-gateway-readme.md +169 -0
  281. package/docs/gateway/remote.md +280 -0
  282. package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +146 -0
  283. package/docs/gateway/sandboxing.md +545 -0
  284. package/docs/gateway/secrets-plan-contract.md +114 -0
  285. package/docs/gateway/secrets.md +609 -0
  286. package/docs/gateway/security/audit-checks.md +127 -0
  287. package/docs/gateway/security/index.md +1326 -0
  288. package/docs/gateway/security/secure-file-operations.md +76 -0
  289. package/docs/gateway/tailscale.md +156 -0
  290. package/docs/gateway/tools-invoke-http-api.md +169 -0
  291. package/docs/gateway/troubleshooting.md +772 -0
  292. package/docs/gateway/trusted-proxy-auth.md +451 -0
  293. package/docs/help/debugging.md +344 -0
  294. package/docs/help/environment.md +214 -0
  295. package/docs/help/faq-first-run.md +867 -0
  296. package/docs/help/faq-models.md +553 -0
  297. package/docs/help/faq.md +1975 -0
  298. package/docs/help/gpt55-codex-agentic-parity-maintainers.md +196 -0
  299. package/docs/help/gpt55-codex-agentic-parity.md +230 -0
  300. package/docs/help/index.md +39 -0
  301. package/docs/help/scripts.md +56 -0
  302. package/docs/help/testing-live.md +580 -0
  303. package/docs/help/testing-updates-plugins.md +291 -0
  304. package/docs/help/testing.md +928 -0
  305. package/docs/help/troubleshooting.md +424 -0
  306. package/docs/images/configure-model-picker-unsearchable.png +0 -0
  307. package/docs/images/feishu-get-group-id.png +0 -0
  308. package/docs/images/groups-flow.svg +52 -0
  309. package/docs/images/mobile-ui-screenshot.png +0 -0
  310. package/docs/index.md +196 -0
  311. package/docs/install/ansible.md +233 -0
  312. package/docs/install/azure.md +315 -0
  313. package/docs/install/bun.md +59 -0
  314. package/docs/install/clawdock.md +112 -0
  315. package/docs/install/development-channels.md +135 -0
  316. package/docs/install/digitalocean.md +174 -0
  317. package/docs/install/docker-vm-runtime.md +154 -0
  318. package/docs/install/docker.md +562 -0
  319. package/docs/install/exe-dev.md +201 -0
  320. package/docs/install/fly.md +524 -0
  321. package/docs/install/gcp.md +418 -0
  322. package/docs/install/hetzner.md +285 -0
  323. package/docs/install/hostinger.md +98 -0
  324. package/docs/install/index.md +221 -0
  325. package/docs/install/installer.md +455 -0
  326. package/docs/install/kubernetes.md +196 -0
  327. package/docs/install/macos-vm.md +281 -0
  328. package/docs/install/migrating-claude.md +165 -0
  329. package/docs/install/migrating-hermes.md +177 -0
  330. package/docs/install/migrating.md +137 -0
  331. package/docs/install/nix.md +112 -0
  332. package/docs/install/node.md +142 -0
  333. package/docs/install/northflank.mdx +44 -0
  334. package/docs/install/oracle.md +218 -0
  335. package/docs/install/podman.md +210 -0
  336. package/docs/install/railway.mdx +92 -0
  337. package/docs/install/raspberry-pi.md +234 -0
  338. package/docs/install/render.mdx +167 -0
  339. package/docs/install/uninstall.md +131 -0
  340. package/docs/install/updating.md +280 -0
  341. package/docs/logging.md +318 -0
  342. package/docs/nav-tabs-underline.js +100 -0
  343. package/docs/network.md +72 -0
  344. package/docs/nodes/audio.md +215 -0
  345. package/docs/nodes/camera.md +166 -0
  346. package/docs/nodes/images.md +77 -0
  347. package/docs/nodes/index.md +439 -0
  348. package/docs/nodes/location-command.md +102 -0
  349. package/docs/nodes/media-understanding.md +469 -0
  350. package/docs/nodes/talk.md +154 -0
  351. package/docs/nodes/troubleshooting.md +123 -0
  352. package/docs/nodes/voicewake.md +93 -0
  353. package/docs/perplexity.md +11 -0
  354. package/docs/pi-dev.md +82 -0
  355. package/docs/pi.md +573 -0
  356. package/docs/plan/codex-context-engine-harness.md +624 -0
  357. package/docs/plan/ui-channels.md +284 -0
  358. package/docs/platforms/android.md +285 -0
  359. package/docs/platforms/digitalocean.md +12 -0
  360. package/docs/platforms/index.md +60 -0
  361. package/docs/platforms/ios.md +283 -0
  362. package/docs/platforms/linux.md +141 -0
  363. package/docs/platforms/mac/bundled-gateway.md +79 -0
  364. package/docs/platforms/mac/canvas.md +128 -0
  365. package/docs/platforms/mac/child-process.md +72 -0
  366. package/docs/platforms/mac/dev-setup.md +112 -0
  367. package/docs/platforms/mac/health.md +39 -0
  368. package/docs/platforms/mac/icon.md +36 -0
  369. package/docs/platforms/mac/logging.md +62 -0
  370. package/docs/platforms/mac/menu-bar.md +93 -0
  371. package/docs/platforms/mac/peekaboo.md +92 -0
  372. package/docs/platforms/mac/permissions.md +53 -0
  373. package/docs/platforms/mac/remote.md +123 -0
  374. package/docs/platforms/mac/signing.md +52 -0
  375. package/docs/platforms/mac/skills.md +43 -0
  376. package/docs/platforms/mac/voice-overlay.md +66 -0
  377. package/docs/platforms/mac/voicewake.md +73 -0
  378. package/docs/platforms/mac/webchat.md +54 -0
  379. package/docs/platforms/mac/xpc.md +66 -0
  380. package/docs/platforms/macos.md +226 -0
  381. package/docs/platforms/oracle.md +12 -0
  382. package/docs/platforms/raspberry-pi.md +13 -0
  383. package/docs/platforms/windows.md +286 -0
  384. package/docs/plugins/adding-capabilities.md +133 -0
  385. package/docs/plugins/admin-http-rpc.md +216 -0
  386. package/docs/plugins/agent-tools.md +13 -0
  387. package/docs/plugins/architecture-internals.md +1195 -0
  388. package/docs/plugins/architecture.md +481 -0
  389. package/docs/plugins/building-extensions.md +13 -0
  390. package/docs/plugins/building-plugins.md +330 -0
  391. package/docs/plugins/bundles.md +310 -0
  392. package/docs/plugins/cli-backend-plugins.md +310 -0
  393. package/docs/plugins/codex-computer-use.md +293 -0
  394. package/docs/plugins/codex-harness-reference.md +409 -0
  395. package/docs/plugins/codex-harness-runtime.md +247 -0
  396. package/docs/plugins/codex-harness.md +746 -0
  397. package/docs/plugins/codex-native-plugins.md +276 -0
  398. package/docs/plugins/community.md +77 -0
  399. package/docs/plugins/compatibility.md +164 -0
  400. package/docs/plugins/dependency-resolution.md +143 -0
  401. package/docs/plugins/google-meet.md +1737 -0
  402. package/docs/plugins/hooks.md +459 -0
  403. package/docs/plugins/install-overrides.md +80 -0
  404. package/docs/plugins/manage-plugins.md +210 -0
  405. package/docs/plugins/manifest.md +1359 -0
  406. package/docs/plugins/memory-lancedb.md +385 -0
  407. package/docs/plugins/memory-wiki.md +529 -0
  408. package/docs/plugins/message-presentation.md +473 -0
  409. package/docs/plugins/oc-path.md +166 -0
  410. package/docs/plugins/plugin-inventory.md +182 -0
  411. package/docs/plugins/reference/acpx.md +23 -0
  412. package/docs/plugins/reference/admin-http-rpc.md +23 -0
  413. package/docs/plugins/reference/alibaba.md +23 -0
  414. package/docs/plugins/reference/amazon-bedrock-mantle.md +23 -0
  415. package/docs/plugins/reference/amazon-bedrock.md +23 -0
  416. package/docs/plugins/reference/anthropic-vertex.md +19 -0
  417. package/docs/plugins/reference/anthropic.md +23 -0
  418. package/docs/plugins/reference/arcee.md +23 -0
  419. package/docs/plugins/reference/azure-speech.md +23 -0
  420. package/docs/plugins/reference/bonjour.md +19 -0
  421. package/docs/plugins/reference/brave.md +23 -0
  422. package/docs/plugins/reference/browser.md +23 -0
  423. package/docs/plugins/reference/byteplus.md +19 -0
  424. package/docs/plugins/reference/canvas.md +19 -0
  425. package/docs/plugins/reference/cerebras.md +23 -0
  426. package/docs/plugins/reference/chutes.md +23 -0
  427. package/docs/plugins/reference/clickclack.md +23 -0
  428. package/docs/plugins/reference/cloudflare-ai-gateway.md +23 -0
  429. package/docs/plugins/reference/codex.md +23 -0
  430. package/docs/plugins/reference/comfy.md +23 -0
  431. package/docs/plugins/reference/copilot-proxy.md +19 -0
  432. package/docs/plugins/reference/deepgram.md +23 -0
  433. package/docs/plugins/reference/deepinfra.md +23 -0
  434. package/docs/plugins/reference/deepseek.md +23 -0
  435. package/docs/plugins/reference/diagnostics-otel.md +19 -0
  436. package/docs/plugins/reference/diagnostics-prometheus.md +19 -0
  437. package/docs/plugins/reference/diffs.md +19 -0
  438. package/docs/plugins/reference/discord.md +23 -0
  439. package/docs/plugins/reference/document-extract.md +23 -0
  440. package/docs/plugins/reference/duckduckgo.md +23 -0
  441. package/docs/plugins/reference/elevenlabs.md +23 -0
  442. package/docs/plugins/reference/exa.md +23 -0
  443. package/docs/plugins/reference/fal.md +23 -0
  444. package/docs/plugins/reference/feishu.md +23 -0
  445. package/docs/plugins/reference/file-transfer.md +19 -0
  446. package/docs/plugins/reference/firecrawl.md +23 -0
  447. package/docs/plugins/reference/fireworks.md +23 -0
  448. package/docs/plugins/reference/github-copilot.md +23 -0
  449. package/docs/plugins/reference/google-meet.md +23 -0
  450. package/docs/plugins/reference/google.md +23 -0
  451. package/docs/plugins/reference/googlechat.md +23 -0
  452. package/docs/plugins/reference/gradium.md +23 -0
  453. package/docs/plugins/reference/groq.md +23 -0
  454. package/docs/plugins/reference/huggingface.md +23 -0
  455. package/docs/plugins/reference/imessage.md +23 -0
  456. package/docs/plugins/reference/inworld.md +23 -0
  457. package/docs/plugins/reference/irc.md +23 -0
  458. package/docs/plugins/reference/kilocode.md +23 -0
  459. package/docs/plugins/reference/kimi.md +23 -0
  460. package/docs/plugins/reference/line.md +23 -0
  461. package/docs/plugins/reference/litellm.md +23 -0
  462. package/docs/plugins/reference/llm-task.md +19 -0
  463. package/docs/plugins/reference/lmstudio.md +23 -0
  464. package/docs/plugins/reference/lobster.md +19 -0
  465. package/docs/plugins/reference/matrix.md +23 -0
  466. package/docs/plugins/reference/mattermost.md +23 -0
  467. package/docs/plugins/reference/memory-core.md +19 -0
  468. package/docs/plugins/reference/memory-lancedb.md +23 -0
  469. package/docs/plugins/reference/memory-wiki.md +23 -0
  470. package/docs/plugins/reference/microsoft-foundry.md +19 -0
  471. package/docs/plugins/reference/microsoft.md +19 -0
  472. package/docs/plugins/reference/migrate-claude.md +19 -0
  473. package/docs/plugins/reference/migrate-hermes.md +19 -0
  474. package/docs/plugins/reference/minimax.md +23 -0
  475. package/docs/plugins/reference/mistral.md +23 -0
  476. package/docs/plugins/reference/moonshot.md +23 -0
  477. package/docs/plugins/reference/msteams.md +23 -0
  478. package/docs/plugins/reference/nextcloud-talk.md +23 -0
  479. package/docs/plugins/reference/nostr.md +23 -0
  480. package/docs/plugins/reference/nvidia.md +23 -0
  481. package/docs/plugins/reference/oc-path.md +23 -0
  482. package/docs/plugins/reference/ollama.md +23 -0
  483. package/docs/plugins/reference/open-prose.md +19 -0
  484. package/docs/plugins/reference/openai.md +23 -0
  485. package/docs/plugins/reference/opencode-go.md +23 -0
  486. package/docs/plugins/reference/opencode.md +23 -0
  487. package/docs/plugins/reference/openrouter.md +23 -0
  488. package/docs/plugins/reference/openshell.md +19 -0
  489. package/docs/plugins/reference/perplexity.md +23 -0
  490. package/docs/plugins/reference/policy.md +23 -0
  491. package/docs/plugins/reference/qa-channel.md +23 -0
  492. package/docs/plugins/reference/qa-lab.md +19 -0
  493. package/docs/plugins/reference/qa-matrix.md +19 -0
  494. package/docs/plugins/reference/qianfan.md +23 -0
  495. package/docs/plugins/reference/qqbot.md +23 -0
  496. package/docs/plugins/reference/qwen.md +23 -0
  497. package/docs/plugins/reference/runway.md +23 -0
  498. package/docs/plugins/reference/searxng.md +19 -0
  499. package/docs/plugins/reference/senseaudio.md +23 -0
  500. package/docs/plugins/reference/sglang.md +23 -0
  501. package/docs/plugins/reference/signal.md +23 -0
  502. package/docs/plugins/reference/skill-workshop.md +23 -0
  503. package/docs/plugins/reference/slack.md +23 -0
  504. package/docs/plugins/reference/stepfun.md +23 -0
  505. package/docs/plugins/reference/synology-chat.md +23 -0
  506. package/docs/plugins/reference/synthetic.md +23 -0
  507. package/docs/plugins/reference/tavily.md +23 -0
  508. package/docs/plugins/reference/telegram.md +23 -0
  509. package/docs/plugins/reference/tencent.md +23 -0
  510. package/docs/plugins/reference/tlon.md +23 -0
  511. package/docs/plugins/reference/together.md +23 -0
  512. package/docs/plugins/reference/tokenjuice.md +23 -0
  513. package/docs/plugins/reference/tts-local-cli.md +19 -0
  514. package/docs/plugins/reference/twitch.md +23 -0
  515. package/docs/plugins/reference/venice.md +23 -0
  516. package/docs/plugins/reference/vercel-ai-gateway.md +23 -0
  517. package/docs/plugins/reference/vllm.md +23 -0
  518. package/docs/plugins/reference/voice-call.md +23 -0
  519. package/docs/plugins/reference/volcengine.md +23 -0
  520. package/docs/plugins/reference/voyage.md +19 -0
  521. package/docs/plugins/reference/vydra.md +23 -0
  522. package/docs/plugins/reference/web-readability.md +19 -0
  523. package/docs/plugins/reference/webhooks.md +23 -0
  524. package/docs/plugins/reference/whatsapp.md +23 -0
  525. package/docs/plugins/reference/xai.md +23 -0
  526. package/docs/plugins/reference/xiaomi.md +23 -0
  527. package/docs/plugins/reference/zai.md +23 -0
  528. package/docs/plugins/reference/zalo.md +23 -0
  529. package/docs/plugins/reference/zalouser.md +24 -0
  530. package/docs/plugins/reference.md +138 -0
  531. package/docs/plugins/sdk-agent-harness.md +339 -0
  532. package/docs/plugins/sdk-channel-ingress.md +137 -0
  533. package/docs/plugins/sdk-channel-message.md +458 -0
  534. package/docs/plugins/sdk-channel-plugins.md +762 -0
  535. package/docs/plugins/sdk-channel-turn.md +580 -0
  536. package/docs/plugins/sdk-entrypoints.md +333 -0
  537. package/docs/plugins/sdk-migration.md +949 -0
  538. package/docs/plugins/sdk-overview.md +501 -0
  539. package/docs/plugins/sdk-provider-plugins.md +807 -0
  540. package/docs/plugins/sdk-runtime.md +676 -0
  541. package/docs/plugins/sdk-setup.md +550 -0
  542. package/docs/plugins/sdk-subpaths.md +396 -0
  543. package/docs/plugins/sdk-testing.md +401 -0
  544. package/docs/plugins/skill-workshop.md +713 -0
  545. package/docs/plugins/tool-plugins.md +411 -0
  546. package/docs/plugins/voice-call.md +943 -0
  547. package/docs/plugins/webhooks.md +192 -0
  548. package/docs/plugins/zalouser.md +86 -0
  549. package/docs/prose.md +137 -0
  550. package/docs/providers/alibaba.md +158 -0
  551. package/docs/providers/anthropic.md +344 -0
  552. package/docs/providers/arcee.md +144 -0
  553. package/docs/providers/azure-speech.md +119 -0
  554. package/docs/providers/bedrock-mantle.md +211 -0
  555. package/docs/providers/bedrock.md +414 -0
  556. package/docs/providers/cerebras.md +130 -0
  557. package/docs/providers/chutes.md +153 -0
  558. package/docs/providers/claude-max-api-proxy.md +188 -0
  559. package/docs/providers/cloudflare-ai-gateway.md +119 -0
  560. package/docs/providers/comfy.md +362 -0
  561. package/docs/providers/deepgram.md +184 -0
  562. package/docs/providers/deepinfra.md +87 -0
  563. package/docs/providers/deepseek.md +146 -0
  564. package/docs/providers/ds4.md +309 -0
  565. package/docs/providers/elevenlabs.md +130 -0
  566. package/docs/providers/fal.md +204 -0
  567. package/docs/providers/fireworks.md +144 -0
  568. package/docs/providers/github-copilot.md +225 -0
  569. package/docs/providers/glm.md +137 -0
  570. package/docs/providers/google.md +472 -0
  571. package/docs/providers/gradium.md +123 -0
  572. package/docs/providers/groq.md +180 -0
  573. package/docs/providers/huggingface.md +235 -0
  574. package/docs/providers/index.md +102 -0
  575. package/docs/providers/inferrs.md +272 -0
  576. package/docs/providers/inworld.md +120 -0
  577. package/docs/providers/kilocode.md +135 -0
  578. package/docs/providers/litellm.md +234 -0
  579. package/docs/providers/lmstudio.md +224 -0
  580. package/docs/providers/minimax.md +505 -0
  581. package/docs/providers/mistral.md +235 -0
  582. package/docs/providers/models.md +65 -0
  583. package/docs/providers/moonshot.md +413 -0
  584. package/docs/providers/nvidia.md +140 -0
  585. package/docs/providers/ollama.md +1180 -0
  586. package/docs/providers/openai.md +1057 -0
  587. package/docs/providers/opencode-go.md +123 -0
  588. package/docs/providers/opencode.md +149 -0
  589. package/docs/providers/openrouter.md +349 -0
  590. package/docs/providers/perplexity-provider.md +123 -0
  591. package/docs/providers/qianfan.md +132 -0
  592. package/docs/providers/qwen.md +332 -0
  593. package/docs/providers/runway.md +103 -0
  594. package/docs/providers/senseaudio.md +68 -0
  595. package/docs/providers/sglang.md +161 -0
  596. package/docs/providers/stepfun.md +229 -0
  597. package/docs/providers/synthetic.md +154 -0
  598. package/docs/providers/tencent.md +130 -0
  599. package/docs/providers/together.md +141 -0
  600. package/docs/providers/venice.md +315 -0
  601. package/docs/providers/vercel-ai-gateway.md +128 -0
  602. package/docs/providers/vllm.md +383 -0
  603. package/docs/providers/volcengine.md +199 -0
  604. package/docs/providers/vydra.md +180 -0
  605. package/docs/providers/xai.md +560 -0
  606. package/docs/providers/xiaomi.md +188 -0
  607. package/docs/providers/zai.md +203 -0
  608. package/docs/refactor/access.md +9 -0
  609. package/docs/refactor/acp.md +298 -0
  610. package/docs/refactor/canvas.md +131 -0
  611. package/docs/refactor/ingress-core.md +341 -0
  612. package/docs/reference/AGENTS.default.md +129 -0
  613. package/docs/reference/RELEASING.md +767 -0
  614. package/docs/reference/api-usage-costs.md +202 -0
  615. package/docs/reference/application-modernization-plan.md +208 -0
  616. package/docs/reference/code-mode.md +757 -0
  617. package/docs/reference/credits.md +33 -0
  618. package/docs/reference/device-models.md +50 -0
  619. package/docs/reference/full-release-validation.md +202 -0
  620. package/docs/reference/memory-config.md +630 -0
  621. package/docs/reference/openclaw-sdk-api-design.md +390 -0
  622. package/docs/reference/prompt-caching.md +358 -0
  623. package/docs/reference/rich-output-protocol.md +79 -0
  624. package/docs/reference/rpc.md +43 -0
  625. package/docs/reference/secretref-credential-surface.md +159 -0
  626. package/docs/reference/secretref-user-supplied-credentials-matrix.json +663 -0
  627. package/docs/reference/session-management-compaction.md +461 -0
  628. package/docs/reference/templates/AGENTS.dev.md +89 -0
  629. package/docs/reference/templates/AGENTS.md +225 -0
  630. package/docs/reference/templates/BOOT.md +16 -0
  631. package/docs/reference/templates/BOOTSTRAP.md +66 -0
  632. package/docs/reference/templates/HEARTBEAT.md +16 -0
  633. package/docs/reference/templates/IDENTITY.dev.md +52 -0
  634. package/docs/reference/templates/IDENTITY.md +34 -0
  635. package/docs/reference/templates/SOUL.dev.md +82 -0
  636. package/docs/reference/templates/SOUL.md +49 -0
  637. package/docs/reference/templates/TOOLS.dev.md +29 -0
  638. package/docs/reference/templates/TOOLS.md +51 -0
  639. package/docs/reference/templates/USER.dev.md +23 -0
  640. package/docs/reference/templates/USER.md +28 -0
  641. package/docs/reference/test.md +239 -0
  642. package/docs/reference/token-use.md +233 -0
  643. package/docs/reference/transcript-hygiene.md +214 -0
  644. package/docs/reference/wizard.md +252 -0
  645. package/docs/security/CONTRIBUTING-THREAT-MODEL.md +101 -0
  646. package/docs/security/THREAT-MODEL-ATLAS.md +611 -0
  647. package/docs/security/formal-verification.md +170 -0
  648. package/docs/security/incident-response.md +59 -0
  649. package/docs/security/network-proxy.md +268 -0
  650. package/docs/snippets/plugin-publish/minimal-openclaw.plugin.json +12 -0
  651. package/docs/snippets/plugin-publish/minimal-package.json +16 -0
  652. package/docs/start/bootstrapping.md +49 -0
  653. package/docs/start/docs-directory.md +69 -0
  654. package/docs/start/getting-started.md +152 -0
  655. package/docs/start/hubs.md +201 -0
  656. package/docs/start/lore.md +223 -0
  657. package/docs/start/onboarding-overview.md +72 -0
  658. package/docs/start/onboarding.md +95 -0
  659. package/docs/start/openclaw.md +244 -0
  660. package/docs/start/quickstart.md +25 -0
  661. package/docs/start/setup.md +178 -0
  662. package/docs/start/showcase.md +383 -0
  663. package/docs/start/wizard-cli-automation.md +232 -0
  664. package/docs/start/wizard-cli-reference.md +331 -0
  665. package/docs/start/wizard.md +141 -0
  666. package/docs/style.css +184 -0
  667. package/docs/superpowers/specs/2026-04-22-tweakcn-custom-theme-import-design.md +316 -0
  668. package/docs/tools/acp-agents-setup.md +352 -0
  669. package/docs/tools/acp-agents.md +847 -0
  670. package/docs/tools/agent-send.md +112 -0
  671. package/docs/tools/apply-patch.md +64 -0
  672. package/docs/tools/brave-search.md +139 -0
  673. package/docs/tools/browser-control.md +391 -0
  674. package/docs/tools/browser-linux-troubleshooting.md +173 -0
  675. package/docs/tools/browser-login.md +77 -0
  676. package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +219 -0
  677. package/docs/tools/browser.md +769 -0
  678. package/docs/tools/btw.md +159 -0
  679. package/docs/tools/capability-cookbook.md +12 -0
  680. package/docs/tools/clawhub.md +5 -0
  681. package/docs/tools/code-execution.md +173 -0
  682. package/docs/tools/creating-skills.md +120 -0
  683. package/docs/tools/diffs.md +506 -0
  684. package/docs/tools/duckduckgo-search.md +109 -0
  685. package/docs/tools/elevated.md +128 -0
  686. package/docs/tools/exa-search.md +152 -0
  687. package/docs/tools/exec-approvals-advanced.md +360 -0
  688. package/docs/tools/exec-approvals.md +474 -0
  689. package/docs/tools/exec.md +282 -0
  690. package/docs/tools/firecrawl.md +155 -0
  691. package/docs/tools/gemini-search.md +114 -0
  692. package/docs/tools/grok-search.md +113 -0
  693. package/docs/tools/image-generation.md +433 -0
  694. package/docs/tools/index.md +178 -0
  695. package/docs/tools/kimi-search.md +105 -0
  696. package/docs/tools/llm-task.md +137 -0
  697. package/docs/tools/lobster.md +365 -0
  698. package/docs/tools/loop-detection.md +154 -0
  699. package/docs/tools/media-overview.md +157 -0
  700. package/docs/tools/minimax-search.md +102 -0
  701. package/docs/tools/multi-agent-sandbox-tools.md +409 -0
  702. package/docs/tools/music-generation.md +371 -0
  703. package/docs/tools/ollama-search.md +153 -0
  704. package/docs/tools/pdf.md +195 -0
  705. package/docs/tools/perplexity-search.md +220 -0
  706. package/docs/tools/plugin.md +327 -0
  707. package/docs/tools/reactions.md +100 -0
  708. package/docs/tools/searxng-search.md +141 -0
  709. package/docs/tools/skills-config.md +195 -0
  710. package/docs/tools/skills.md +535 -0
  711. package/docs/tools/slash-commands.md +488 -0
  712. package/docs/tools/steer.md +84 -0
  713. package/docs/tools/subagents.md +650 -0
  714. package/docs/tools/tavily.md +162 -0
  715. package/docs/tools/thinking.md +140 -0
  716. package/docs/tools/tokenjuice.md +81 -0
  717. package/docs/tools/tool-search.md +269 -0
  718. package/docs/tools/trajectory.md +229 -0
  719. package/docs/tools/tts.md +1004 -0
  720. package/docs/tools/video-generation.md +552 -0
  721. package/docs/tools/web-fetch.md +195 -0
  722. package/docs/tools/web.md +459 -0
  723. package/docs/tts.md +11 -0
  724. package/docs/vps.md +139 -0
  725. package/docs/web/control-ui.md +503 -0
  726. package/docs/web/dashboard.md +107 -0
  727. package/docs/web/index.md +133 -0
  728. package/docs/web/tui.md +246 -0
  729. package/docs/web/webchat.md +99 -0
  730. package/docs/whatsapp-openclaw-ai-zh.jpg +0 -0
  731. package/docs/whatsapp-openclaw.jpg +0 -0
  732. package/nodmix.mjs +487 -0
  733. package/package.json +1852 -0
  734. package/patches/.gitkeep +0 -0
  735. package/patches/@agentclientprotocol__claude-agent-acp@0.36.1.patch +41 -0
  736. package/pnpm-workspace.yaml +63 -0
  737. package/scripts/crabbox-wrapper.mjs +353 -0
  738. package/scripts/lib/official-external-channel-catalog.json +559 -0
  739. package/scripts/lib/official-external-plugin-catalog.json +192 -0
  740. package/scripts/lib/official-external-provider-catalog.json +117 -0
  741. package/scripts/lib/package-dist-imports.mjs +171 -0
  742. package/scripts/npm-runner.mjs +91 -0
  743. package/scripts/postinstall-bundled-plugins.mjs +978 -0
  744. package/scripts/preinstall-package-manager-warning.mjs +64 -0
  745. package/scripts/windows-cmd-helpers.mjs +20 -0
  746. package/skills/1password/SKILL.md +70 -0
  747. package/skills/1password/references/cli-examples.md +29 -0
  748. package/skills/1password/references/get-started.md +17 -0
  749. package/skills/apple-notes/SKILL.md +77 -0
  750. package/skills/apple-reminders/SKILL.md +118 -0
  751. package/skills/bear-notes/SKILL.md +107 -0
  752. package/skills/blogwatcher/SKILL.md +69 -0
  753. package/skills/blucli/SKILL.md +47 -0
  754. package/skills/camsnap/SKILL.md +45 -0
  755. package/skills/canvas/SKILL.md +78 -0
  756. package/skills/clawhub/SKILL.md +77 -0
  757. package/skills/coding-agent/SKILL.md +149 -0
  758. package/skills/diagram-maker/SKILL.md +53 -0
  759. package/skills/diagram-maker/references/excalidraw-patterns.md +85 -0
  760. package/skills/diagram-maker/references/svg-template.md +112 -0
  761. package/skills/discord/SKILL.md +136 -0
  762. package/skills/eightctl/SKILL.md +50 -0
  763. package/skills/gemini/SKILL.md +47 -0
  764. package/skills/gh-issues/SKILL.md +213 -0
  765. package/skills/gifgrep/SKILL.md +85 -0
  766. package/skills/github/SKILL.md +84 -0
  767. package/skills/gog/SKILL.md +116 -0
  768. package/skills/goplaces/SKILL.md +52 -0
  769. package/skills/healthcheck/SKILL.md +105 -0
  770. package/skills/himalaya/SKILL.md +80 -0
  771. package/skills/himalaya/references/configuration.md +184 -0
  772. package/skills/himalaya/references/message-composition.md +199 -0
  773. package/skills/imsg/SKILL.md +122 -0
  774. package/skills/mcporter/SKILL.md +61 -0
  775. package/skills/meme-maker/SKILL.md +42 -0
  776. package/skills/meme-maker/references/templates.json +358 -0
  777. package/skills/meme-maker/scripts/meme.mjs +398 -0
  778. package/skills/model-usage/SKILL.md +69 -0
  779. package/skills/model-usage/references/codexbar-cli.md +33 -0
  780. package/skills/model-usage/scripts/model_usage.py +319 -0
  781. package/skills/model-usage/scripts/test_model_usage.py +40 -0
  782. package/skills/nano-pdf/SKILL.md +38 -0
  783. package/skills/node-connect/SKILL.md +142 -0
  784. package/skills/node-inspect-debugger/SKILL.md +85 -0
  785. package/skills/notion/SKILL.md +150 -0
  786. package/skills/obsidian/SKILL.md +119 -0
  787. package/skills/openai-whisper/SKILL.md +38 -0
  788. package/skills/openai-whisper-api/SKILL.md +71 -0
  789. package/skills/openai-whisper-api/scripts/transcribe.sh +154 -0
  790. package/skills/openhue/SKILL.md +112 -0
  791. package/skills/oracle/SKILL.md +126 -0
  792. package/skills/ordercli/SKILL.md +78 -0
  793. package/skills/peekaboo/SKILL.md +190 -0
  794. package/skills/pyproject.toml +10 -0
  795. package/skills/python-debugpy/SKILL.md +73 -0
  796. package/skills/sag/SKILL.md +87 -0
  797. package/skills/session-logs/SKILL.md +151 -0
  798. package/skills/sherpa-onnx-tts/SKILL.md +109 -0
  799. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
  800. package/skills/skill-creator/SKILL.md +78 -0
  801. package/skills/skill-creator/license.txt +202 -0
  802. package/skills/skill-creator/scripts/init_skill.py +378 -0
  803. package/skills/skill-creator/scripts/package_skill.py +139 -0
  804. package/skills/skill-creator/scripts/quick_validate.py +169 -0
  805. package/skills/skill-creator/scripts/test_package_skill.py +161 -0
  806. package/skills/skill-creator/scripts/test_quick_validate.py +116 -0
  807. package/skills/slack/SKILL.md +78 -0
  808. package/skills/songsee/SKILL.md +49 -0
  809. package/skills/sonoscli/SKILL.md +65 -0
  810. package/skills/spike/SKILL.md +51 -0
  811. package/skills/spotify-player/SKILL.md +64 -0
  812. package/skills/summarize/SKILL.md +87 -0
  813. package/skills/taskflow/SKILL.md +149 -0
  814. package/skills/taskflow/examples/inbox-triage.lobster +33 -0
  815. package/skills/taskflow/examples/pr-intake.lobster +32 -0
  816. package/skills/taskflow-inbox-triage/SKILL.md +119 -0
  817. package/skills/things-mac/SKILL.md +86 -0
  818. package/skills/tmux/SKILL.md +91 -0
  819. package/skills/tmux/scripts/find-sessions.sh +112 -0
  820. package/skills/tmux/scripts/wait-for-text.sh +83 -0
  821. package/skills/trello/SKILL.md +108 -0
  822. package/skills/video-frames/SKILL.md +46 -0
  823. package/skills/video-frames/scripts/frame.sh +81 -0
  824. package/skills/voice-call/SKILL.md +45 -0
  825. package/skills/wacli/SKILL.md +72 -0
  826. package/skills/weather/SKILL.md +64 -0
  827. package/skills/xurl/SKILL.md +120 -0
@@ -0,0 +1,418 @@
1
+ ---
2
+ summary: "Run Nodmix Gateway 24/7 on a GCP Compute Engine VM (Docker) with durable state"
3
+ read_when:
4
+ - You want Nodmix running 24/7 on GCP
5
+ - You want a production-grade, always-on Gateway on your own VM
6
+ - You want full control over persistence, binaries, and restart behavior
7
+ title: "GCP"
8
+ ---
9
+
10
+ Run a persistent Nodmix Gateway on a GCP Compute Engine VM using Docker, with durable state, baked-in binaries, and safe restart behavior.
11
+
12
+ If you want "Nodmix 24/7 for ~$5-12/mo", this is a reliable setup on Google Cloud.
13
+ Pricing varies by machine type and region; pick the smallest VM that fits your workload and scale up if you hit OOMs.
14
+
15
+ ## What are we doing (simple terms)?
16
+
17
+ - Create a GCP project and enable billing
18
+ - Create a Compute Engine VM
19
+ - Install Docker (isolated app runtime)
20
+ - Start the Nodmix Gateway in Docker
21
+ - Persist `~/.nodmix` + `~/.nodmix/workspace` on the host (survives restarts/rebuilds)
22
+ - Access the Control UI from your laptop via an SSH tunnel
23
+
24
+ That mounted `~/.nodmix` state includes `nodmix.json`, per-agent
25
+ `agents/<agentId>/agent/auth-profiles.json`, and `.env`.
26
+
27
+ The Gateway can be accessed via:
28
+
29
+ - SSH port forwarding from your laptop
30
+ - Direct port exposure if you manage firewalling and tokens yourself
31
+
32
+ This guide uses Debian on GCP Compute Engine.
33
+ Ubuntu also works; map packages accordingly.
34
+ For the generic Docker flow, see [Docker](/install/docker).
35
+
36
+ ---
37
+
38
+ ## Quick path (experienced operators)
39
+
40
+ 1. Create GCP project + enable Compute Engine API
41
+ 2. Create Compute Engine VM (e2-small, Debian 12, 20GB)
42
+ 3. SSH into the VM
43
+ 4. Install Docker
44
+ 5. Clone Nodmix repository
45
+ 6. Create persistent host directories
46
+ 7. Configure `.env` and `docker-compose.yml`
47
+ 8. Bake required binaries, build, and launch
48
+
49
+ ---
50
+
51
+ ## What you need
52
+
53
+ - GCP account (free tier eligible for e2-micro)
54
+ - gcloud CLI installed (or use Cloud Console)
55
+ - SSH access from your laptop
56
+ - Basic comfort with SSH + copy/paste
57
+ - ~20-30 minutes
58
+ - Docker and Docker Compose
59
+ - Model auth credentials
60
+ - Optional provider credentials
61
+ - WhatsApp QR
62
+ - Telegram bot token
63
+ - Gmail OAuth
64
+
65
+ ---
66
+
67
+ <Steps>
68
+ <Step title="Install gcloud CLI (or use Console)">
69
+ **Option A: gcloud CLI** (recommended for automation)
70
+
71
+ Install from [https://cloud.google.com/sdk/docs/install](https://cloud.google.com/sdk/docs/install)
72
+
73
+ Initialize and authenticate:
74
+
75
+ ```bash
76
+ gcloud init
77
+ gcloud auth login
78
+ ```
79
+
80
+ **Option B: Cloud Console**
81
+
82
+ All steps can be done via the web UI at [https://console.cloud.google.com](https://console.cloud.google.com)
83
+
84
+ </Step>
85
+
86
+ <Step title="Create a GCP project">
87
+ **CLI:**
88
+
89
+ ```bash
90
+ gcloud projects create my-nodmix-project --name="Nodmix Gateway"
91
+ gcloud config set project my-nodmix-project
92
+ ```
93
+
94
+ Enable billing at [https://console.cloud.google.com/billing](https://console.cloud.google.com/billing) (required for Compute Engine).
95
+
96
+ Enable the Compute Engine API:
97
+
98
+ ```bash
99
+ gcloud services enable compute.googleapis.com
100
+ ```
101
+
102
+ **Console:**
103
+
104
+ 1. Go to IAM & Admin > Create Project
105
+ 2. Name it and create
106
+ 3. Enable billing for the project
107
+ 4. Navigate to APIs & Services > Enable APIs > search "Compute Engine API" > Enable
108
+
109
+ </Step>
110
+
111
+ <Step title="Create the VM">
112
+ **Machine types:**
113
+
114
+ | Type | Specs | Cost | Notes |
115
+ | --------- | ------------------------ | ------------------ | -------------------------------------------- |
116
+ | e2-medium | 2 vCPU, 4GB RAM | ~$25/mo | Most reliable for local Docker builds |
117
+ | e2-small | 2 vCPU, 2GB RAM | ~$12/mo | Minimum recommended for Docker build |
118
+ | e2-micro | 2 vCPU (shared), 1GB RAM | Free tier eligible | Often fails with Docker build OOM (exit 137) |
119
+
120
+ **CLI:**
121
+
122
+ ```bash
123
+ gcloud compute instances create nodmix-gateway \
124
+ --zone=us-central1-a \
125
+ --machine-type=e2-small \
126
+ --boot-disk-size=20GB \
127
+ --image-family=debian-12 \
128
+ --image-project=debian-cloud
129
+ ```
130
+
131
+ **Console:**
132
+
133
+ 1. Go to Compute Engine > VM instances > Create instance
134
+ 2. Name: `nodmix-gateway`
135
+ 3. Region: `us-central1`, Zone: `us-central1-a`
136
+ 4. Machine type: `e2-small`
137
+ 5. Boot disk: Debian 12, 20GB
138
+ 6. Create
139
+
140
+ </Step>
141
+
142
+ <Step title="SSH into the VM">
143
+ **CLI:**
144
+
145
+ ```bash
146
+ gcloud compute ssh nodmix-gateway --zone=us-central1-a
147
+ ```
148
+
149
+ **Console:**
150
+
151
+ Click the "SSH" button next to your VM in the Compute Engine dashboard.
152
+
153
+ Note: SSH key propagation can take 1-2 minutes after VM creation. If connection is refused, wait and retry.
154
+
155
+ </Step>
156
+
157
+ <Step title="Install Docker (on the VM)">
158
+ ```bash
159
+ sudo apt-get update
160
+ sudo apt-get install -y git curl ca-certificates
161
+ curl -fsSL https://get.docker.com | sudo sh
162
+ sudo usermod -aG docker $USER
163
+ ```
164
+
165
+ Log out and back in for the group change to take effect:
166
+
167
+ ```bash
168
+ exit
169
+ ```
170
+
171
+ Then SSH back in:
172
+
173
+ ```bash
174
+ gcloud compute ssh nodmix-gateway --zone=us-central1-a
175
+ ```
176
+
177
+ Verify:
178
+
179
+ ```bash
180
+ docker --version
181
+ docker compose version
182
+ ```
183
+
184
+ </Step>
185
+
186
+ <Step title="Clone the Nodmix repository">
187
+ ```bash
188
+ git clone https://github.com/nodmix/nodmix.git
189
+ cd nodmix
190
+ ```
191
+
192
+ This guide assumes you will build a custom image to guarantee binary persistence.
193
+
194
+ </Step>
195
+
196
+ <Step title="Create persistent host directories">
197
+ Docker containers are ephemeral.
198
+ All long-lived state must live on the host.
199
+
200
+ ```bash
201
+ mkdir -p ~/.nodmix
202
+ mkdir -p ~/.nodmix/workspace
203
+ ```
204
+
205
+ </Step>
206
+
207
+ <Step title="Configure environment variables">
208
+ Create `.env` in the repository root.
209
+
210
+ ```bash
211
+ NODMIX_IMAGE=nodmix:latest
212
+ NODMIX_GATEWAY_TOKEN=
213
+ NODMIX_GATEWAY_BIND=lan
214
+ NODMIX_GATEWAY_PORT=18789
215
+
216
+ NODMIX_CONFIG_DIR=/home/$USER/.nodmix
217
+ NODMIX_WORKSPACE_DIR=/home/$USER/.nodmix/workspace
218
+
219
+ GOG_KEYRING_PASSWORD=
220
+ XDG_CONFIG_HOME=/home/node/.nodmix
221
+ ```
222
+
223
+ Set `NODMIX_GATEWAY_TOKEN` when you want to manage the stable gateway
224
+ token through `.env`; otherwise configure `gateway.auth.token` before
225
+ relying on clients across restarts. If neither source exists, Nodmix uses
226
+ a runtime-only token for that startup. Generate a keyring password and paste
227
+ it into `GOG_KEYRING_PASSWORD`:
228
+
229
+ ```bash
230
+ openssl rand -hex 32
231
+ ```
232
+
233
+ **Do not commit this file.**
234
+
235
+ This `.env` file is for container/runtime env such as `NODMIX_GATEWAY_TOKEN`.
236
+ Stored provider OAuth/API-key auth lives in the mounted
237
+ `~/.nodmix/agents/<agentId>/agent/auth-profiles.json`.
238
+
239
+ </Step>
240
+
241
+ <Step title="Docker Compose configuration">
242
+ Create or update `docker-compose.yml`.
243
+
244
+ ```yaml
245
+ services:
246
+ nodmix-gateway:
247
+ image: ${NODMIX_IMAGE}
248
+ build: .
249
+ restart: unless-stopped
250
+ env_file:
251
+ - .env
252
+ environment:
253
+ - HOME=/home/node
254
+ - NODE_ENV=production
255
+ - TERM=xterm-256color
256
+ - NODMIX_GATEWAY_BIND=${NODMIX_GATEWAY_BIND}
257
+ - NODMIX_GATEWAY_PORT=${NODMIX_GATEWAY_PORT}
258
+ - NODMIX_GATEWAY_TOKEN=${NODMIX_GATEWAY_TOKEN}
259
+ - GOG_KEYRING_PASSWORD=${GOG_KEYRING_PASSWORD}
260
+ - XDG_CONFIG_HOME=${XDG_CONFIG_HOME}
261
+ - PATH=/home/linuxbrew/.linuxbrew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
262
+ volumes:
263
+ - ${NODMIX_CONFIG_DIR}:/home/node/.nodmix
264
+ - ${NODMIX_WORKSPACE_DIR}:/home/node/.nodmix/workspace
265
+ ports:
266
+ # Recommended: keep the Gateway loopback-only on the VM; access via SSH tunnel.
267
+ # To expose it publicly, remove the `127.0.0.1:` prefix and firewall accordingly.
268
+ - "127.0.0.1:${NODMIX_GATEWAY_PORT}:18789"
269
+ command:
270
+ [
271
+ "node",
272
+ "dist/index.js",
273
+ "gateway",
274
+ "--bind",
275
+ "${NODMIX_GATEWAY_BIND}",
276
+ "--port",
277
+ "${NODMIX_GATEWAY_PORT}",
278
+ "--allow-unconfigured",
279
+ ]
280
+ ```
281
+
282
+ `--allow-unconfigured` is only for bootstrap convenience, it is not a replacement for a proper gateway configuration. Still set auth (`gateway.auth.token` or password) and use safe bind settings for your deployment.
283
+
284
+ </Step>
285
+
286
+ <Step title="Shared Docker VM runtime steps">
287
+ Use the shared runtime guide for the common Docker host flow:
288
+
289
+ - [Bake required binaries into the image](/install/docker-vm-runtime#bake-required-binaries-into-the-image)
290
+ - [Build and launch](/install/docker-vm-runtime#build-and-launch)
291
+ - [What persists where](/install/docker-vm-runtime#what-persists-where)
292
+ - [Updates](/install/docker-vm-runtime#updates)
293
+
294
+ </Step>
295
+
296
+ <Step title="GCP-specific launch notes">
297
+ On GCP, if build fails with `Killed` or `exit code 137` during `pnpm install --frozen-lockfile`, the VM is out of memory. Use `e2-small` minimum, or `e2-medium` for more reliable first builds.
298
+
299
+ When binding to LAN (`NODMIX_GATEWAY_BIND=lan`), configure a trusted browser origin before continuing:
300
+
301
+ ```bash
302
+ docker compose run --rm nodmix-cli config set gateway.controlUi.allowedOrigins '["http://127.0.0.1:18789"]' --strict-json
303
+ ```
304
+
305
+ If you changed the gateway port, replace `18789` with your configured port.
306
+
307
+ </Step>
308
+
309
+ <Step title="Access from your laptop">
310
+ Create an SSH tunnel to forward the Gateway port:
311
+
312
+ ```bash
313
+ gcloud compute ssh nodmix-gateway --zone=us-central1-a -- -L 18789:127.0.0.1:18789
314
+ ```
315
+
316
+ Open in your browser:
317
+
318
+ `http://127.0.0.1:18789/`
319
+
320
+ Reprint a clean dashboard link:
321
+
322
+ ```bash
323
+ docker compose run --rm nodmix-cli dashboard --no-open
324
+ ```
325
+
326
+ If the UI prompts for shared-secret auth, paste the configured token or
327
+ password into Control UI settings. This Docker flow writes a token by
328
+ default; if you switch the container config to password auth, use that
329
+ password instead.
330
+
331
+ If Control UI shows `unauthorized` or `disconnected (1008): pairing required`, approve the browser device:
332
+
333
+ ```bash
334
+ docker compose run --rm nodmix-cli devices list
335
+ docker compose run --rm nodmix-cli devices approve <requestId>
336
+ ```
337
+
338
+ Need the shared persistence and update reference again?
339
+ See [Docker VM Runtime](/install/docker-vm-runtime#what-persists-where) and [Docker VM Runtime updates](/install/docker-vm-runtime#updates).
340
+
341
+ </Step>
342
+ </Steps>
343
+
344
+ ---
345
+
346
+ ## Troubleshooting
347
+
348
+ **SSH connection refused**
349
+
350
+ SSH key propagation can take 1-2 minutes after VM creation. Wait and retry.
351
+
352
+ **OS Login issues**
353
+
354
+ Check your OS Login profile:
355
+
356
+ ```bash
357
+ gcloud compute os-login describe-profile
358
+ ```
359
+
360
+ Ensure your account has the required IAM permissions (Compute OS Login or Compute OS Admin Login).
361
+
362
+ **Out of memory (OOM)**
363
+
364
+ If Docker build fails with `Killed` and `exit code 137`, the VM was OOM-killed. Upgrade to e2-small (minimum) or e2-medium (recommended for reliable local builds):
365
+
366
+ ```bash
367
+ # Stop the VM first
368
+ gcloud compute instances stop nodmix-gateway --zone=us-central1-a
369
+
370
+ # Change machine type
371
+ gcloud compute instances set-machine-type nodmix-gateway \
372
+ --zone=us-central1-a \
373
+ --machine-type=e2-small
374
+
375
+ # Start the VM
376
+ gcloud compute instances start nodmix-gateway --zone=us-central1-a
377
+ ```
378
+
379
+ ---
380
+
381
+ ## Service accounts (security best practice)
382
+
383
+ For personal use, your default user account works fine.
384
+
385
+ For automation or CI/CD pipelines, create a dedicated service account with minimal permissions:
386
+
387
+ 1. Create a service account:
388
+
389
+ ```bash
390
+ gcloud iam service-accounts create nodmix-deploy \
391
+ --display-name="Nodmix Deployment"
392
+ ```
393
+
394
+ 2. Grant Compute Instance Admin role (or narrower custom role):
395
+
396
+ ```bash
397
+ gcloud projects add-iam-policy-binding my-nodmix-project \
398
+ --member="serviceAccount:nodmix-deploy@my-nodmix-project.iam.gserviceaccount.com" \
399
+ --role="roles/compute.instanceAdmin.v1"
400
+ ```
401
+
402
+ Avoid using the Owner role for automation. Use the principle of least privilege.
403
+
404
+ See [https://cloud.google.com/iam/docs/understanding-roles](https://cloud.google.com/iam/docs/understanding-roles) for IAM role details.
405
+
406
+ ---
407
+
408
+ ## Next steps
409
+
410
+ - Set up messaging channels: [Channels](/channels)
411
+ - Pair local devices as nodes: [Nodes](/nodes)
412
+ - Configure the Gateway: [Gateway configuration](/gateway/configuration)
413
+
414
+ ## Related
415
+
416
+ - [Install overview](/install)
417
+ - [Azure](/install/azure)
418
+ - [VPS hosting](/vps)
@@ -0,0 +1,285 @@
1
+ ---
2
+ summary: "Run Nodmix Gateway 24/7 on a cheap Hetzner VPS (Docker) with durable state and baked-in binaries"
3
+ read_when:
4
+ - You want Nodmix running 24/7 on a cloud VPS (not your laptop)
5
+ - You want a production-grade, always-on Gateway on your own VPS
6
+ - You want full control over persistence, binaries, and restart behavior
7
+ - You are running Nodmix in Docker on Hetzner or a similar provider
8
+ title: "Hetzner"
9
+ ---
10
+
11
+ ## Goal
12
+
13
+ Run a persistent Nodmix Gateway on a Hetzner VPS using Docker, with durable state, baked-in binaries, and safe restart behavior.
14
+
15
+ If you want "Nodmix 24/7 for ~$5", this is the simplest reliable setup.
16
+ Hetzner pricing changes; pick the smallest Debian/Ubuntu VPS and scale up if you hit OOMs.
17
+
18
+ Security model reminder:
19
+
20
+ - Company-shared agents are fine when everyone is in the same trust boundary and the runtime is business-only.
21
+ - Keep strict separation: dedicated VPS/runtime + dedicated accounts; no personal Apple/Google/browser/password-manager profiles on that host.
22
+ - If users are adversarial to each other, split by gateway/host/OS user.
23
+
24
+ See [Security](/gateway/security) and [VPS hosting](/vps).
25
+
26
+ ## What are we doing (simple terms)?
27
+
28
+ - Rent a small Linux server (Hetzner VPS)
29
+ - Install Docker (isolated app runtime)
30
+ - Start the Nodmix Gateway in Docker
31
+ - Persist `~/.nodmix` + `~/.nodmix/workspace` on the host (survives restarts/rebuilds)
32
+ - Access the Control UI from your laptop via an SSH tunnel
33
+
34
+ That mounted `~/.nodmix` state includes `nodmix.json`, per-agent
35
+ `agents/<agentId>/agent/auth-profiles.json`, and `.env`.
36
+
37
+ The Gateway can be accessed via:
38
+
39
+ - SSH port forwarding from your laptop
40
+ - Direct port exposure if you manage firewalling and tokens yourself
41
+
42
+ This guide assumes Ubuntu or Debian on Hetzner.
43
+ If you are on another Linux VPS, map packages accordingly.
44
+ For the generic Docker flow, see [Docker](/install/docker).
45
+
46
+ ---
47
+
48
+ ## Quick path (experienced operators)
49
+
50
+ 1. Provision Hetzner VPS
51
+ 2. Install Docker
52
+ 3. Clone Nodmix repository
53
+ 4. Create persistent host directories
54
+ 5. Configure `.env` and `docker-compose.yml`
55
+ 6. Bake required binaries into the image
56
+ 7. `docker compose up -d`
57
+ 8. Verify persistence and Gateway access
58
+
59
+ ---
60
+
61
+ ## What you need
62
+
63
+ - Hetzner VPS with root access
64
+ - SSH access from your laptop
65
+ - Basic comfort with SSH + copy/paste
66
+ - ~20 minutes
67
+ - Docker and Docker Compose
68
+ - Model auth credentials
69
+ - Optional provider credentials
70
+ - WhatsApp QR
71
+ - Telegram bot token
72
+ - Gmail OAuth
73
+
74
+ ---
75
+
76
+ <Steps>
77
+ <Step title="Provision the VPS">
78
+ Create an Ubuntu or Debian VPS in Hetzner.
79
+
80
+ Connect as root:
81
+
82
+ ```bash
83
+ ssh root@YOUR_VPS_IP
84
+ ```
85
+
86
+ This guide assumes the VPS is stateful.
87
+ Do not treat it as disposable infrastructure.
88
+
89
+ </Step>
90
+
91
+ <Step title="Install Docker (on the VPS)">
92
+ ```bash
93
+ apt-get update
94
+ apt-get install -y git curl ca-certificates
95
+ curl -fsSL https://get.docker.com | sh
96
+ ```
97
+
98
+ Verify:
99
+
100
+ ```bash
101
+ docker --version
102
+ docker compose version
103
+ ```
104
+
105
+ </Step>
106
+
107
+ <Step title="Clone the Nodmix repository">
108
+ ```bash
109
+ git clone https://github.com/nodmix/nodmix.git
110
+ cd nodmix
111
+ ```
112
+
113
+ This guide assumes you will build a custom image to guarantee binary persistence.
114
+
115
+ </Step>
116
+
117
+ <Step title="Create persistent host directories">
118
+ Docker containers are ephemeral.
119
+ All long-lived state must live on the host.
120
+
121
+ ```bash
122
+ mkdir -p /root/.nodmix/workspace
123
+
124
+ # Set ownership to the container user (uid 1000):
125
+ chown -R 1000:1000 /root/.nodmix
126
+ ```
127
+
128
+ </Step>
129
+
130
+ <Step title="Configure environment variables">
131
+ Create `.env` in the repository root.
132
+
133
+ ```bash
134
+ NODMIX_IMAGE=nodmix:latest
135
+ NODMIX_GATEWAY_TOKEN=
136
+ NODMIX_GATEWAY_BIND=lan
137
+ NODMIX_GATEWAY_PORT=18789
138
+
139
+ NODMIX_CONFIG_DIR=/root/.nodmix
140
+ NODMIX_WORKSPACE_DIR=/root/.nodmix/workspace
141
+
142
+ GOG_KEYRING_PASSWORD=
143
+ XDG_CONFIG_HOME=/home/node/.nodmix
144
+ ```
145
+
146
+ Set `NODMIX_GATEWAY_TOKEN` when you want to manage the stable gateway
147
+ token through `.env`; otherwise configure `gateway.auth.token` before
148
+ relying on clients across restarts. If neither source exists, Nodmix uses
149
+ a runtime-only token for that startup. Generate a keyring password and paste
150
+ it into `GOG_KEYRING_PASSWORD`:
151
+
152
+ ```bash
153
+ openssl rand -hex 32
154
+ ```
155
+
156
+ **Do not commit this file.**
157
+
158
+ This `.env` file is for container/runtime env such as `NODMIX_GATEWAY_TOKEN`.
159
+ Stored provider OAuth/API-key auth lives in the mounted
160
+ `~/.nodmix/agents/<agentId>/agent/auth-profiles.json`.
161
+
162
+ </Step>
163
+
164
+ <Step title="Docker Compose configuration">
165
+ Create or update `docker-compose.yml`.
166
+
167
+ ```yaml
168
+ services:
169
+ nodmix-gateway:
170
+ image: ${NODMIX_IMAGE}
171
+ build: .
172
+ restart: unless-stopped
173
+ env_file:
174
+ - .env
175
+ environment:
176
+ - HOME=/home/node
177
+ - NODE_ENV=production
178
+ - TERM=xterm-256color
179
+ - NODMIX_GATEWAY_BIND=${NODMIX_GATEWAY_BIND}
180
+ - NODMIX_GATEWAY_PORT=${NODMIX_GATEWAY_PORT}
181
+ - NODMIX_GATEWAY_TOKEN=${NODMIX_GATEWAY_TOKEN}
182
+ - GOG_KEYRING_PASSWORD=${GOG_KEYRING_PASSWORD}
183
+ - XDG_CONFIG_HOME=${XDG_CONFIG_HOME}
184
+ - PATH=/home/linuxbrew/.linuxbrew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
185
+ volumes:
186
+ - ${NODMIX_CONFIG_DIR}:/home/node/.nodmix
187
+ - ${NODMIX_WORKSPACE_DIR}:/home/node/.nodmix/workspace
188
+ ports:
189
+ # Recommended: keep the Gateway loopback-only on the VPS; access via SSH tunnel.
190
+ # To expose it publicly, remove the `127.0.0.1:` prefix and firewall accordingly.
191
+ - "127.0.0.1:${NODMIX_GATEWAY_PORT}:18789"
192
+ command:
193
+ [
194
+ "node",
195
+ "dist/index.js",
196
+ "gateway",
197
+ "--bind",
198
+ "${NODMIX_GATEWAY_BIND}",
199
+ "--port",
200
+ "${NODMIX_GATEWAY_PORT}",
201
+ "--allow-unconfigured",
202
+ ]
203
+ ```
204
+
205
+ `--allow-unconfigured` is only for bootstrap convenience, it is not a replacement for a proper gateway configuration. Still set auth (`gateway.auth.token` or password) and use safe bind settings for your deployment.
206
+
207
+ </Step>
208
+
209
+ <Step title="Shared Docker VM runtime steps">
210
+ Use the shared runtime guide for the common Docker host flow:
211
+
212
+ - [Bake required binaries into the image](/install/docker-vm-runtime#bake-required-binaries-into-the-image)
213
+ - [Build and launch](/install/docker-vm-runtime#build-and-launch)
214
+ - [What persists where](/install/docker-vm-runtime#what-persists-where)
215
+ - [Updates](/install/docker-vm-runtime#updates)
216
+
217
+ </Step>
218
+
219
+ <Step title="Hetzner-specific access">
220
+ After the shared build and launch steps, complete the following setup to open the tunnel:
221
+
222
+ **Prerequisite:** Ensure your VPS sshd config allows TCP forwarding. If you
223
+ have hardened your SSH config, check `/etc/ssh/sshd_config` and set:
224
+
225
+ ```
226
+ AllowTcpForwarding local
227
+ ```
228
+
229
+ `local` allows `ssh -L` local forwards from your laptop while blocking
230
+ remote forwards from the server. Setting it to `no` will fail the tunnel
231
+ with:
232
+ `channel 3: open failed: administratively prohibited: open failed`
233
+
234
+ After confirming TCP forwarding is enabled, restart the SSH service
235
+ (`systemctl restart ssh`) and run the tunnel from your laptop:
236
+
237
+ ```bash
238
+ ssh -N -L 18789:127.0.0.1:18789 root@YOUR_VPS_IP
239
+ ```
240
+
241
+ Open:
242
+
243
+ `http://127.0.0.1:18789/`
244
+
245
+ Paste the configured shared secret. This guide uses the gateway token by
246
+ default; if you switched to password auth, use that password instead.
247
+
248
+ </Step>
249
+ </Steps>
250
+
251
+ The shared persistence map lives in [Docker VM Runtime](/install/docker-vm-runtime#what-persists-where).
252
+
253
+ ## Infrastructure as Code (Terraform)
254
+
255
+ For teams preferring infrastructure-as-code workflows, a community-maintained Terraform setup provides:
256
+
257
+ - Modular Terraform configuration with remote state management
258
+ - Automated provisioning via cloud-init
259
+ - Deployment scripts (bootstrap, deploy, backup/restore)
260
+ - Security hardening (firewall, UFW, SSH-only access)
261
+ - SSH tunnel configuration for gateway access
262
+
263
+ **Repositories:**
264
+
265
+ - Infrastructure: [nodmix-terraform-hetzner](https://github.com/andreesg/nodmix-terraform-hetzner)
266
+ - Docker config: [nodmix-docker-config](https://github.com/andreesg/nodmix-docker-config)
267
+
268
+ This approach complements the Docker setup above with reproducible deployments, version-controlled infrastructure, and automated disaster recovery.
269
+
270
+ <Note>
271
+ Community-maintained. For issues or contributions, see the repository links above.
272
+ </Note>
273
+
274
+ ## Next steps
275
+
276
+ - Set up messaging channels: [Channels](/channels)
277
+ - Configure the Gateway: [Gateway configuration](/gateway/configuration)
278
+ - Keep Nodmix up to date: [Updating](/install/updating)
279
+
280
+ ## Related
281
+
282
+ - [Install overview](/install)
283
+ - [Fly.io](/install/fly)
284
+ - [Docker](/install/docker)
285
+ - [VPS hosting](/vps)