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,562 @@
1
+ ---
2
+ summary: "Optional Docker-based setup and onboarding for Nodmix"
3
+ read_when:
4
+ - You want a containerized gateway instead of local installs
5
+ - You are validating the Docker flow
6
+ title: "Docker"
7
+ ---
8
+
9
+ Docker is **optional**. Use it only if you want a containerized gateway or to validate the Docker flow.
10
+
11
+ ## Is Docker right for me?
12
+
13
+ - **Yes**: you want an isolated, throwaway gateway environment or to run Nodmix on a host without local installs.
14
+ - **No**: you are running on your own machine and just want the fastest dev loop. Use the normal install flow instead.
15
+ - **Sandboxing note**: the default sandbox backend uses Docker when sandboxing is enabled, but sandboxing is off by default and does **not** require the full gateway to run in Docker. SSH and OpenShell sandbox backends are also available. See [Sandboxing](/gateway/sandboxing).
16
+
17
+ ## Prerequisites
18
+
19
+ - Docker Desktop (or Docker Engine) + Docker Compose v2
20
+ - At least 2 GB RAM for image build (`pnpm install` may be OOM-killed on 1 GB hosts with exit 137)
21
+ - Enough disk for images and logs
22
+ - If running on a VPS/public host, review
23
+ [Security hardening for network exposure](/gateway/security),
24
+ especially Docker `DOCKER-USER` firewall policy.
25
+
26
+ ## Containerized gateway
27
+
28
+ <Steps>
29
+ <Step title="Build the image">
30
+ From the repo root, run the setup script:
31
+
32
+ ```bash
33
+ ./scripts/docker/setup.sh
34
+ ```
35
+
36
+ This builds the gateway image locally. To use a pre-built image instead:
37
+
38
+ ```bash
39
+ export NODMIX_IMAGE="ghcr.io/nodmix/nodmix:latest"
40
+ ./scripts/docker/setup.sh
41
+ ```
42
+
43
+ Pre-built images are published at the
44
+ [GitHub Container Registry](https://github.com/nodmix/nodmix/pkgs/container/nodmix).
45
+ Common tags: `main`, `latest`, `<version>` (e.g. `2026.2.26`).
46
+
47
+ </Step>
48
+
49
+ <Step title="Complete onboarding">
50
+ The setup script runs onboarding automatically. It will:
51
+
52
+ - prompt for provider API keys
53
+ - generate a gateway token and write it to `.env`
54
+ - create the auth-profile secret key directory
55
+ - start the gateway via Docker Compose
56
+
57
+ During setup, pre-start onboarding and config writes run through
58
+ `nodmix-gateway` directly. `nodmix-cli` is for commands you run after
59
+ the gateway container already exists.
60
+
61
+ </Step>
62
+
63
+ <Step title="Open the Control UI">
64
+ Open `http://127.0.0.1:18789/` in your browser and paste the configured
65
+ shared secret into Settings. The setup script writes a token to `.env` by
66
+ default; if you switch the container config to password auth, use that
67
+ password instead.
68
+
69
+ Need the URL again?
70
+
71
+ ```bash
72
+ docker compose run --rm nodmix-cli dashboard --no-open
73
+ ```
74
+
75
+ </Step>
76
+
77
+ <Step title="Configure channels (optional)">
78
+ Use the CLI container to add messaging channels:
79
+
80
+ ```bash
81
+ # WhatsApp (QR)
82
+ docker compose run --rm nodmix-cli channels login
83
+
84
+ # Telegram
85
+ docker compose run --rm nodmix-cli channels add --channel telegram --token "<token>"
86
+
87
+ # Discord
88
+ docker compose run --rm nodmix-cli channels add --channel discord --token "<token>"
89
+ ```
90
+
91
+ Docs: [WhatsApp](/channels/whatsapp), [Telegram](/channels/telegram), [Discord](/channels/discord)
92
+
93
+ </Step>
94
+ </Steps>
95
+
96
+ ### Manual flow
97
+
98
+ If you prefer to run each step yourself instead of using the setup script:
99
+
100
+ ```bash
101
+ docker build -t nodmix:local -f Dockerfile .
102
+ docker compose run --rm --no-deps --entrypoint node nodmix-gateway \
103
+ dist/index.js onboard --mode local --no-install-daemon
104
+ docker compose run --rm --no-deps --entrypoint node nodmix-gateway \
105
+ dist/index.js config set --batch-json '[{"path":"gateway.mode","value":"local"},{"path":"gateway.bind","value":"lan"},{"path":"gateway.controlUi.allowedOrigins","value":["http://localhost:18789","http://127.0.0.1:18789"]}]'
106
+ docker compose up -d nodmix-gateway
107
+ ```
108
+
109
+ <Note>
110
+ Run `docker compose` from the repo root. If you enabled `NODMIX_EXTRA_MOUNTS`
111
+ or `NODMIX_HOME_VOLUME`, the setup script writes `docker-compose.extra.yml`;
112
+ include it with `-f docker-compose.yml -f docker-compose.extra.yml`.
113
+ </Note>
114
+
115
+ <Note>
116
+ Because `nodmix-cli` shares `nodmix-gateway`'s network namespace, it is a
117
+ post-start tool. Before `docker compose up -d nodmix-gateway`, run onboarding
118
+ and setup-time config writes through `nodmix-gateway` with
119
+ `--no-deps --entrypoint node`.
120
+ </Note>
121
+
122
+ ### Environment variables
123
+
124
+ The setup script accepts these optional environment variables:
125
+
126
+ | Variable | Purpose |
127
+ | ------------------------------------------ | --------------------------------------------------------------------- |
128
+ | `NODMIX_IMAGE` | Use a remote image instead of building locally |
129
+ | `NODMIX_IMAGE_APT_PACKAGES` | Install extra apt packages during build (space-separated) |
130
+ | `NODMIX_IMAGE_PIP_PACKAGES` | Install extra Python packages during build (space-separated) |
131
+ | `NODMIX_EXTENSIONS` | Pre-install plugin dependencies at build time (space-separated names) |
132
+ | `NODMIX_EXTRA_MOUNTS` | Extra host bind mounts (comma-separated `source:target[:opts]`) |
133
+ | `NODMIX_HOME_VOLUME` | Persist `/home/node` in a named Docker volume |
134
+ | `NODMIX_SANDBOX` | Opt in to sandbox bootstrap (`1`, `true`, `yes`, `on`) |
135
+ | `NODMIX_SKIP_ONBOARDING` | Skip the interactive onboarding step (`1`, `true`, `yes`, `on`) |
136
+ | `NODMIX_DOCKER_SOCKET` | Override Docker socket path |
137
+ | `NODMIX_DISABLE_BONJOUR` | Disable Bonjour/mDNS advertising (defaults to `1` for Docker) |
138
+ | `NODMIX_DISABLE_BUNDLED_SOURCE_OVERLAYS` | Disable bundled plugin source bind-mount overlays |
139
+ | `OTEL_EXPORTER_OTLP_ENDPOINT` | Shared OTLP/HTTP collector endpoint for OpenTelemetry export |
140
+ | `OTEL_EXPORTER_OTLP_*_ENDPOINT` | Signal-specific OTLP endpoints for traces, metrics, or logs |
141
+ | `OTEL_EXPORTER_OTLP_PROTOCOL` | OTLP protocol override. Only `http/protobuf` is supported today |
142
+ | `OTEL_SERVICE_NAME` | Service name used for OpenTelemetry resources |
143
+ | `OTEL_SEMCONV_STABILITY_OPT_IN` | Opt in to latest experimental GenAI semantic attributes |
144
+ | `NODMIX_OTEL_PRELOADED` | Skip starting a second OpenTelemetry SDK when one is preloaded |
145
+
146
+ The official Docker image does not ship Homebrew. During onboarding, Nodmix
147
+ hides brew-only skill dependency installers when it is running in a Linux
148
+ container without `brew`; those dependencies must be provided by a custom image
149
+ or installed manually. For dependencies available from Debian packages, use
150
+ `NODMIX_IMAGE_APT_PACKAGES` during image build. The legacy
151
+ `NODMIX_DOCKER_APT_PACKAGES` name is still accepted.
152
+ For Python dependencies, use `NODMIX_IMAGE_PIP_PACKAGES`. This runs
153
+ `python3 -m pip install --break-system-packages` during the image build, so pin
154
+ package versions and use only package indexes you trust.
155
+
156
+ Maintainers can test bundled plugin source against a packaged image by mounting
157
+ one plugin source directory over its packaged source path, for example
158
+ `NODMIX_EXTRA_MOUNTS=/path/to/fork/extensions/synology-chat:/app/extensions/synology-chat:ro`.
159
+ That mounted source directory overrides the matching compiled
160
+ `/app/dist/extensions/synology-chat` bundle for the same plugin id.
161
+
162
+ ### Observability
163
+
164
+ OpenTelemetry export is outbound from the Gateway container to your OTLP
165
+ collector. It does not require a published Docker port. If you build the image
166
+ locally and want the bundled OpenTelemetry exporter available inside the image,
167
+ include its runtime dependencies:
168
+
169
+ ```bash
170
+ export NODMIX_EXTENSIONS="diagnostics-otel"
171
+ export OTEL_EXPORTER_OTLP_ENDPOINT="http://otel-collector:4318"
172
+ export OTEL_SERVICE_NAME="nodmix-gateway"
173
+ ./scripts/docker/setup.sh
174
+ ```
175
+
176
+ Install the official `@nodmix/diagnostics-otel` plugin from ClawHub in
177
+ packaged Docker installs before enabling export. Custom source-built images can
178
+ still include the local plugin source with
179
+ `NODMIX_EXTENSIONS=diagnostics-otel`. To enable export, allow and enable the
180
+ `diagnostics-otel` plugin in config, then set
181
+ `diagnostics.otel.enabled=true` or use the config example in [OpenTelemetry
182
+ export](/gateway/opentelemetry). Collector auth headers are configured through
183
+ `diagnostics.otel.headers`, not through Docker environment variables.
184
+
185
+ Prometheus metrics use the already-published Gateway port. Install
186
+ `clawhub:@nodmix/diagnostics-prometheus`, enable the
187
+ `diagnostics-prometheus` plugin, then scrape:
188
+
189
+ ```text
190
+ http://<gateway-host>:18789/api/diagnostics/prometheus
191
+ ```
192
+
193
+ The route is protected by Gateway authentication. Do not expose a separate
194
+ public `/metrics` port or unauthenticated reverse-proxy path. See
195
+ [Prometheus metrics](/gateway/prometheus).
196
+
197
+ ### Health checks
198
+
199
+ Container probe endpoints (no auth required):
200
+
201
+ ```bash
202
+ curl -fsS http://127.0.0.1:18789/healthz # liveness
203
+ curl -fsS http://127.0.0.1:18789/readyz # readiness
204
+ ```
205
+
206
+ The Docker image includes a built-in `HEALTHCHECK` that pings `/healthz`.
207
+ If checks keep failing, Docker marks the container as `unhealthy` and
208
+ orchestration systems can restart or replace it.
209
+
210
+ Authenticated deep health snapshot:
211
+
212
+ ```bash
213
+ docker compose exec nodmix-gateway node dist/index.js health --token "$NODMIX_GATEWAY_TOKEN"
214
+ ```
215
+
216
+ ### LAN vs loopback
217
+
218
+ `scripts/docker/setup.sh` defaults `NODMIX_GATEWAY_BIND=lan` so host access to
219
+ `http://127.0.0.1:18789` works with Docker port publishing.
220
+
221
+ - `lan` (default): host browser and host CLI can reach the published gateway port.
222
+ - `loopback`: only processes inside the container network namespace can reach
223
+ the gateway directly.
224
+
225
+ <Note>
226
+ Use bind mode values in `gateway.bind` (`lan` / `loopback` / `custom` /
227
+ `tailnet` / `auto`), not host aliases like `0.0.0.0` or `127.0.0.1`.
228
+ </Note>
229
+
230
+ ### Host Local Providers
231
+
232
+ When Nodmix runs in Docker, `127.0.0.1` inside the container is the container
233
+ itself, not your host machine. Use `host.docker.internal` for AI providers that
234
+ run on the host:
235
+
236
+ | Provider | Host default URL | Docker setup URL |
237
+ | --------- | ------------------------ | ----------------------------------- |
238
+ | LM Studio | `http://127.0.0.1:1234` | `http://host.docker.internal:1234` |
239
+ | Ollama | `http://127.0.0.1:11434` | `http://host.docker.internal:11434` |
240
+
241
+ The bundled Docker setup uses those host URLs as the LM Studio and Ollama
242
+ onboarding defaults, and `docker-compose.yml` maps `host.docker.internal` to
243
+ Docker's host gateway for Linux Docker Engine. Docker Desktop already provides
244
+ the same hostname on macOS and Windows.
245
+
246
+ Host services must also listen on an address reachable from Docker:
247
+
248
+ ```bash
249
+ lms server start --port 1234 --bind 0.0.0.0
250
+ OLLAMA_HOST=0.0.0.0:11434 ollama serve
251
+ ```
252
+
253
+ If you use your own Compose file or `docker run` command, add the same host
254
+ mapping yourself, for example
255
+ `--add-host=host.docker.internal:host-gateway`.
256
+
257
+ ### Bonjour / mDNS
258
+
259
+ Docker bridge networking usually does not forward Bonjour/mDNS multicast
260
+ (`224.0.0.251:5353`) reliably. The bundled Compose setup therefore defaults
261
+ `NODMIX_DISABLE_BONJOUR=1` so the Gateway does not crash-loop or repeatedly
262
+ restart advertising when the bridge drops multicast traffic.
263
+
264
+ Use the published Gateway URL, Tailscale, or wide-area DNS-SD for Docker hosts.
265
+ Set `NODMIX_DISABLE_BONJOUR=0` only when running with host networking, macvlan,
266
+ or another network where mDNS multicast is known to work.
267
+
268
+ For gotchas and troubleshooting, see [Bonjour discovery](/gateway/bonjour).
269
+
270
+ ### Storage and persistence
271
+
272
+ Docker Compose bind-mounts `NODMIX_CONFIG_DIR` to `/home/node/.nodmix`,
273
+ `NODMIX_WORKSPACE_DIR` to `/home/node/.nodmix/workspace`, and
274
+ `NODMIX_AUTH_PROFILE_SECRET_DIR` to `/home/node/.config/nodmix`, so those
275
+ paths survive container replacement. When any variable is unset, the bundled
276
+ `docker-compose.yml` falls back under `${HOME}`, or `/tmp` when `HOME` itself is
277
+ also missing. That keeps `docker compose up` from emitting an empty-source
278
+ volume spec on bare environments.
279
+
280
+ That mounted config directory is where Nodmix keeps:
281
+
282
+ - `nodmix.json` for behavior config
283
+ - `agents/<agentId>/agent/auth-profiles.json` for stored provider OAuth/API-key auth
284
+ - `.env` for env-backed runtime secrets such as `NODMIX_GATEWAY_TOKEN`
285
+
286
+ The auth-profile secret key directory stores the local encryption key used for
287
+ OAuth-backed auth profile token material. Keep it with your Docker host state,
288
+ but separate from `NODMIX_CONFIG_DIR`.
289
+
290
+ Installed downloadable plugins store their package state under the mounted
291
+ Nodmix home, so plugin install records and package roots survive container
292
+ replacement. Gateway startup does not generate bundled-plugin dependency trees.
293
+
294
+ For full persistence details on VM deployments, see
295
+ [Docker VM Runtime - What persists where](/install/docker-vm-runtime#what-persists-where).
296
+
297
+ **Disk growth hotspots:** watch `media/`, session JSONL files,
298
+ `cron/runs/*.jsonl`, installed plugin package roots, and rolling file logs
299
+ under `/tmp/nodmix/`.
300
+
301
+ ### Shell helpers (optional)
302
+
303
+ For easier day-to-day Docker management, install `ClawDock`:
304
+
305
+ ```bash
306
+ mkdir -p ~/.clawdock && curl -sL https://raw.githubusercontent.com/nodmix/nodmix/main/scripts/clawdock/clawdock-helpers.sh -o ~/.clawdock/clawdock-helpers.sh
307
+ echo 'source ~/.clawdock/clawdock-helpers.sh' >> ~/.zshrc && source ~/.zshrc
308
+ ```
309
+
310
+ If you installed ClawDock from the older `scripts/shell-helpers/clawdock-helpers.sh` raw path, rerun the install command above so your local helper file tracks the new location.
311
+
312
+ Then use `clawdock-start`, `clawdock-stop`, `clawdock-dashboard`, etc. Run
313
+ `clawdock-help` for all commands.
314
+ See [ClawDock](/install/clawdock) for the full helper guide.
315
+
316
+ <AccordionGroup>
317
+ <Accordion title="Enable agent sandbox for Docker gateway">
318
+ ```bash
319
+ export NODMIX_SANDBOX=1
320
+ ./scripts/docker/setup.sh
321
+ ```
322
+
323
+ Custom socket path (e.g. rootless Docker):
324
+
325
+ ```bash
326
+ export NODMIX_SANDBOX=1
327
+ export NODMIX_DOCKER_SOCKET=/run/user/1000/docker.sock
328
+ ./scripts/docker/setup.sh
329
+ ```
330
+
331
+ The script mounts `docker.sock` only after sandbox prerequisites pass. If
332
+ sandbox setup cannot complete, the script resets `agents.defaults.sandbox.mode`
333
+ to `off`. Codex code-mode turns are still constrained to Codex
334
+ `workspace-write` while the Nodmix sandbox is active; do not mount the
335
+ host Docker socket into agent sandbox containers.
336
+
337
+ </Accordion>
338
+
339
+ <Accordion title="Automation / CI (non-interactive)">
340
+ Disable Compose pseudo-TTY allocation with `-T`:
341
+
342
+ ```bash
343
+ docker compose run -T --rm nodmix-cli gateway probe
344
+ docker compose run -T --rm nodmix-cli devices list --json
345
+ ```
346
+
347
+ </Accordion>
348
+
349
+ <Accordion title="Shared-network security note">
350
+ `nodmix-cli` uses `network_mode: "service:nodmix-gateway"` so CLI
351
+ commands can reach the gateway over `127.0.0.1`. Treat this as a shared
352
+ trust boundary. The compose config drops `NET_RAW`/`NET_ADMIN` and enables
353
+ `no-new-privileges` on both `nodmix-gateway` and `nodmix-cli`.
354
+ </Accordion>
355
+
356
+ <Accordion title="Docker Desktop DNS failures in nodmix-cli">
357
+ Some Docker Desktop setups fail DNS lookups from the shared-network
358
+ `nodmix-cli` sidecar after `NET_RAW` is dropped, which shows up as
359
+ `EAI_AGAIN` during npm-backed commands such as `nodmix plugins install`.
360
+ Keep the default hardened compose file for normal gateway operation. The
361
+ local override below loosens the CLI container's security posture by
362
+ restoring Docker's default capabilities, so use it only for the one-off CLI
363
+ command that needs package registry access, not as your default Compose
364
+ invocation:
365
+
366
+ ```bash
367
+ printf '%s\n' \
368
+ 'services:' \
369
+ ' nodmix-cli:' \
370
+ ' cap_drop: !reset []' \
371
+ > docker-compose.cli-no-dropped-caps.local.yml
372
+
373
+ docker compose -f docker-compose.yml -f docker-compose.cli-no-dropped-caps.local.yml run --rm nodmix-cli plugins install <package>
374
+ ```
375
+
376
+ If you already created a long-running `nodmix-cli` container, recreate it
377
+ with the same override. `docker compose exec` and `docker exec` cannot
378
+ change Linux capabilities on an already-created container.
379
+
380
+ </Accordion>
381
+
382
+ <Accordion title="Permissions and EACCES">
383
+ The image runs as `node` (uid 1000). If you see permission errors on
384
+ `/home/node/.nodmix`, make sure your host bind mounts are owned by uid 1000:
385
+
386
+ ```bash
387
+ sudo chown -R 1000:1000 /path/to/nodmix-config /path/to/nodmix-workspace
388
+ ```
389
+
390
+ The same mismatch can show up as a plugin warning such as
391
+ `blocked plugin candidate: suspicious ownership (... uid=1000, expected uid=0 or root)`
392
+ followed by `plugin present but blocked`. That means the process uid and the
393
+ mounted plugin directory owner disagree. Prefer running the container as the
394
+ default uid 1000 and fixing the bind mount ownership. Only chown
395
+ `/path/to/nodmix-config/npm` to `root:root` if you intentionally run
396
+ Nodmix as root long term.
397
+
398
+ </Accordion>
399
+
400
+ <Accordion title="Faster rebuilds">
401
+ Order your Dockerfile so dependency layers are cached. This avoids re-running
402
+ `pnpm install` unless lockfiles change:
403
+
404
+ ```dockerfile
405
+ FROM node:24-bookworm
406
+ RUN curl -fsSL https://bun.sh/install | bash
407
+ ENV PATH="/root/.bun/bin:${PATH}"
408
+ RUN corepack enable
409
+ WORKDIR /app
410
+ COPY package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc ./
411
+ COPY ui/package.json ./ui/package.json
412
+ COPY scripts ./scripts
413
+ RUN pnpm install --frozen-lockfile
414
+ COPY . .
415
+ RUN pnpm build
416
+ RUN pnpm ui:install
417
+ RUN pnpm ui:build
418
+ ENV NODE_ENV=production
419
+ CMD ["node","dist/index.js"]
420
+ ```
421
+
422
+ </Accordion>
423
+
424
+ <Accordion title="Power-user container options">
425
+ The default image is security-first and runs as non-root `node`. For a more
426
+ full-featured container:
427
+
428
+ 1. **Persist `/home/node`**: `export NODMIX_HOME_VOLUME="nodmix_home"`
429
+ 2. **Bake system deps**: `export NODMIX_IMAGE_APT_PACKAGES="git curl jq"`
430
+ 3. **Bake Python deps**: `export NODMIX_IMAGE_PIP_PACKAGES="requests==2.32.5 humanize==4.14.0"`
431
+ 4. **Bake Playwright Chromium**: `export NODMIX_INSTALL_BROWSER=1`
432
+ 5. **Or install Playwright browsers into a persisted volume**:
433
+ ```bash
434
+ docker compose run --rm nodmix-cli \
435
+ node /app/node_modules/playwright-core/cli.js install chromium
436
+ ```
437
+ 6. **Persist browser downloads**: use `NODMIX_HOME_VOLUME` or
438
+ `NODMIX_EXTRA_MOUNTS`. Nodmix auto-detects the Docker image's
439
+ Playwright-managed Chromium on Linux.
440
+
441
+ </Accordion>
442
+
443
+ <Accordion title="OpenAI Codex OAuth (headless Docker)">
444
+ If you pick OpenAI Codex OAuth in the wizard, it opens a browser URL. In
445
+ Docker or headless setups, copy the full redirect URL you land on and paste
446
+ it back into the wizard to finish auth.
447
+ </Accordion>
448
+
449
+ <Accordion title="Base image metadata">
450
+ The main Docker runtime image uses `node:24-bookworm-slim` and includes `tini` as the entrypoint init process (PID 1) to ensure zombie processes are reaped and signals are handled correctly in long-running containers. It publishes OCI base-image annotations including `org.opencontainers.image.base.name`,
451
+ `org.opencontainers.image.source`, and others. The Node base digest is
452
+ refreshed through Dependabot Docker base-image PRs; release builds do not run
453
+ a distro upgrade layer. See
454
+ [OCI image annotations](https://github.com/opencontainers/image-spec/blob/main/annotations.md).
455
+ </Accordion>
456
+ </AccordionGroup>
457
+
458
+ ### Running on a VPS?
459
+
460
+ See [Hetzner (Docker VPS)](/install/hetzner) and
461
+ [Docker VM Runtime](/install/docker-vm-runtime) for shared VM deployment steps
462
+ including binary baking, persistence, and updates.
463
+
464
+ ## Agent sandbox
465
+
466
+ When `agents.defaults.sandbox` is enabled with the Docker backend, the gateway
467
+ runs agent tool execution (shell, file read/write, etc.) inside isolated Docker
468
+ containers while the gateway itself stays on the host. This gives you a hard wall
469
+ around untrusted or multi-tenant agent sessions without containerizing the entire
470
+ gateway.
471
+
472
+ Sandbox scope can be per-agent (default), per-session, or shared. Each scope
473
+ gets its own workspace mounted at `/workspace`. You can also configure
474
+ allow/deny tool policies, network isolation, resource limits, and browser
475
+ containers.
476
+
477
+ For full configuration, images, security notes, and multi-agent profiles, see:
478
+
479
+ - [Sandboxing](/gateway/sandboxing) -- complete sandbox reference
480
+ - [OpenShell](/gateway/openshell) -- interactive shell access to sandbox containers
481
+ - [Multi-Agent Sandbox and Tools](/tools/multi-agent-sandbox-tools) -- per-agent overrides
482
+
483
+ ### Quick enable
484
+
485
+ ```json5
486
+ {
487
+ agents: {
488
+ defaults: {
489
+ sandbox: {
490
+ mode: "non-main", // off | non-main | all
491
+ scope: "agent", // session | agent | shared
492
+ },
493
+ },
494
+ },
495
+ }
496
+ ```
497
+
498
+ Build the default sandbox image (from a source checkout):
499
+
500
+ ```bash
501
+ scripts/sandbox-setup.sh
502
+ ```
503
+
504
+ For npm installs without a source checkout, see [Sandboxing § Images and setup](/gateway/sandboxing#images-and-setup) for inline `docker build` commands.
505
+
506
+ ## Troubleshooting
507
+
508
+ <AccordionGroup>
509
+ <Accordion title="Image missing or sandbox container not starting">
510
+ Build the sandbox image with
511
+ [`scripts/sandbox-setup.sh`](https://github.com/nodmix/nodmix/blob/main/scripts/sandbox-setup.sh)
512
+ (source checkout) or the inline `docker build` command from [Sandboxing § Images and setup](/gateway/sandboxing#images-and-setup) (npm install),
513
+ or set `agents.defaults.sandbox.docker.image` to your custom image.
514
+ Containers are auto-created per session on demand.
515
+ </Accordion>
516
+
517
+ <Accordion title="Permission errors in sandbox">
518
+ Set `docker.user` to a UID:GID that matches your mounted workspace ownership,
519
+ or chown the workspace folder.
520
+ </Accordion>
521
+
522
+ <Accordion title="Custom tools not found in sandbox">
523
+ Nodmix runs commands with `sh -lc` (login shell), which sources
524
+ `/etc/profile` and may reset PATH. Set `docker.env.PATH` to prepend your
525
+ custom tool paths, or add a script under `/etc/profile.d/` in your Dockerfile.
526
+ </Accordion>
527
+
528
+ <Accordion title="OOM-killed during image build (exit 137)">
529
+ The VM needs at least 2 GB RAM. Use a larger machine class and retry.
530
+ </Accordion>
531
+
532
+ <Accordion title="Unauthorized or pairing required in Control UI">
533
+ Fetch a fresh dashboard link and approve the browser device:
534
+
535
+ ```bash
536
+ docker compose run --rm nodmix-cli dashboard --no-open
537
+ docker compose run --rm nodmix-cli devices list
538
+ docker compose run --rm nodmix-cli devices approve <requestId>
539
+ ```
540
+
541
+ More detail: [Dashboard](/web/dashboard), [Devices](/cli/devices).
542
+
543
+ </Accordion>
544
+
545
+ <Accordion title="Gateway target shows ws://172.x.x.x or pairing errors from Docker CLI">
546
+ Reset gateway mode and bind:
547
+
548
+ ```bash
549
+ docker compose run --rm nodmix-cli config set --batch-json '[{"path":"gateway.mode","value":"local"},{"path":"gateway.bind","value":"lan"}]'
550
+ docker compose run --rm nodmix-cli devices list --url ws://127.0.0.1:18789
551
+ ```
552
+
553
+ </Accordion>
554
+ </AccordionGroup>
555
+
556
+ ## Related
557
+
558
+ - [Install Overview](/install) — all installation methods
559
+ - [Podman](/install/podman) — Podman alternative to Docker
560
+ - [ClawDock](/install/clawdock) — Docker Compose community setup
561
+ - [Updating](/install/updating) — keeping Nodmix up to date
562
+ - [Configuration](/gateway/configuration) — gateway configuration after install