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,33 @@
1
+ ---
2
+ summary: "CLI reference for `nodmix dashboard` (open the Control UI)"
3
+ read_when:
4
+ - You want to open the Control UI with your current token
5
+ - You want to print the URL without launching a browser
6
+ title: "Dashboard"
7
+ ---
8
+
9
+ # `nodmix dashboard`
10
+
11
+ Open the Control UI using your current auth.
12
+
13
+ ```bash
14
+ nodmix dashboard
15
+ nodmix dashboard --no-open
16
+ ```
17
+
18
+ Notes:
19
+
20
+ - `dashboard` resolves configured `gateway.auth.token` SecretRefs when possible.
21
+ - `dashboard` follows `gateway.tls.enabled`: TLS-enabled gateways print/open
22
+ `https://` Control UI URLs and connect over `wss://`.
23
+ - If clipboard/browser delivery fails for a token-authenticated dashboard URL,
24
+ `dashboard` logs a safe manual-auth hint naming `NODMIX_GATEWAY_TOKEN`,
25
+ `gateway.auth.token`, and fragment key `token` without printing the token
26
+ value.
27
+ - For SecretRef-managed tokens (resolved or unresolved), `dashboard` prints/copies/opens a non-tokenized URL to avoid exposing external secrets in terminal output, clipboard history, or browser-launch arguments.
28
+ - If `gateway.auth.token` is SecretRef-managed but unresolved in this command path, the command prints a non-tokenized URL and explicit remediation guidance instead of embedding an invalid token placeholder.
29
+
30
+ ## Related
31
+
32
+ - [CLI reference](/cli)
33
+ - [Dashboard](/web/dashboard)
@@ -0,0 +1,204 @@
1
+ ---
2
+ summary: "CLI reference for `nodmix devices` (device pairing + token rotation/revocation)"
3
+ read_when:
4
+ - You are approving device pairing requests
5
+ - You need to rotate or revoke device tokens
6
+ title: "Devices"
7
+ ---
8
+
9
+ # `nodmix devices`
10
+
11
+ Manage device pairing requests and device-scoped tokens.
12
+
13
+ ## Commands
14
+
15
+ ### `nodmix devices list`
16
+
17
+ List pending pairing requests and paired devices.
18
+
19
+ ```
20
+ nodmix devices list
21
+ nodmix devices list --json
22
+ ```
23
+
24
+ Pending request output shows the requested access next to the device's current
25
+ approved access when the device is already paired. This makes scope/role
26
+ upgrades explicit instead of looking like the pairing was lost.
27
+
28
+ ### `nodmix devices remove <deviceId>`
29
+
30
+ Remove one paired device entry.
31
+
32
+ When you are authenticated with a paired device token, non-admin callers can
33
+ remove only **their own** device entry. Removing some other device requires
34
+ `operator.admin`.
35
+
36
+ ```
37
+ nodmix devices remove <deviceId>
38
+ nodmix devices remove <deviceId> --json
39
+ ```
40
+
41
+ ### `nodmix devices clear --yes [--pending]`
42
+
43
+ Clear paired devices in bulk.
44
+
45
+ ```
46
+ nodmix devices clear --yes
47
+ nodmix devices clear --yes --pending
48
+ nodmix devices clear --yes --pending --json
49
+ ```
50
+
51
+ ### `nodmix devices approve [requestId] [--latest]`
52
+
53
+ Approve a pending device pairing request by exact `requestId`. If `requestId`
54
+ is omitted or `--latest` is passed, Nodmix only prints the selected pending
55
+ request and exits; rerun approval with the exact request ID after verifying
56
+ the details.
57
+
58
+ <Note>
59
+ If a device retries pairing with changed auth details (role, scopes, or public key), Nodmix supersedes the previous pending entry and issues a new `requestId`. Run `nodmix devices list` right before approval to use the current ID.
60
+ </Note>
61
+
62
+ If the device is already paired and asks for broader scopes or a broader role,
63
+ Nodmix keeps the existing approval in place and creates a new pending upgrade
64
+ request. Review the `Requested` vs `Approved` columns in `nodmix devices list`
65
+ or use `nodmix devices approve --latest` to preview the exact upgrade before
66
+ approving it.
67
+
68
+ If the Gateway is explicitly configured with
69
+ `gateway.nodes.pairing.autoApproveCidrs`, first-time `role: node` requests from
70
+ matching client IPs can be approved before they appear in this list. That policy
71
+ is disabled by default and never applies to operator/browser clients or upgrade
72
+ requests.
73
+
74
+ ```
75
+ nodmix devices approve
76
+ nodmix devices approve <requestId>
77
+ nodmix devices approve --latest
78
+ ```
79
+
80
+ ### `nodmix devices reject <requestId>`
81
+
82
+ Reject a pending device pairing request.
83
+
84
+ ```
85
+ nodmix devices reject <requestId>
86
+ ```
87
+
88
+ ### `nodmix devices rotate --device <id> --role <role> [--scope <scope...>]`
89
+
90
+ Rotate a device token for a specific role (optionally updating scopes).
91
+ The target role must already exist in that device's approved pairing contract;
92
+ rotation cannot mint a new unapproved role.
93
+ If you omit `--scope`, later reconnects with the stored rotated token reuse that
94
+ token's cached approved scopes. If you pass explicit `--scope` values, those
95
+ become the stored scope set for future cached-token reconnects.
96
+ Non-admin paired-device callers can rotate only their **own** device token.
97
+ The target token scope set must stay within the caller session's own operator
98
+ scopes; rotation cannot mint or preserve a broader operator token than the
99
+ caller already has.
100
+
101
+ ```
102
+ nodmix devices rotate --device <deviceId> --role operator --scope operator.read --scope operator.write
103
+ ```
104
+
105
+ Returns rotation metadata as JSON. If the caller is rotating its own token while
106
+ authenticated with that device token, the response also includes the replacement
107
+ token so the client can persist it before reconnecting. Shared/admin rotations
108
+ do not echo the bearer token.
109
+
110
+ ### `nodmix devices revoke --device <id> --role <role>`
111
+
112
+ Revoke a device token for a specific role.
113
+
114
+ Non-admin paired-device callers can revoke only their **own** device token.
115
+ Revoking some other device's token requires `operator.admin`.
116
+ The target token scope set must also fit within the caller session's own
117
+ operator scopes; pairing-only callers cannot revoke admin/write operator tokens.
118
+
119
+ ```
120
+ nodmix devices revoke --device <deviceId> --role node
121
+ ```
122
+
123
+ Returns the revoke result as JSON.
124
+
125
+ ## Common options
126
+
127
+ - `--url <url>`: Gateway WebSocket URL (defaults to `gateway.remote.url` when configured).
128
+ - `--token <token>`: Gateway token (if required).
129
+ - `--password <password>`: Gateway password (password auth).
130
+ - `--timeout <ms>`: RPC timeout.
131
+ - `--json`: JSON output (recommended for scripting).
132
+
133
+ <Warning>
134
+ When you set `--url`, the CLI does not fall back to config or environment credentials. Pass `--token` or `--password` explicitly. Missing explicit credentials is an error.
135
+ </Warning>
136
+
137
+ ## Notes
138
+
139
+ - Token rotation returns a new token (sensitive). Treat it like a secret.
140
+ - These commands require `operator.pairing` (or `operator.admin`) scope. Some
141
+ approvals also require the caller to hold the operator scopes that the target
142
+ device would mint or inherit; see [Operator scopes](/gateway/operator-scopes).
143
+ - `gateway.nodes.pairing.autoApproveCidrs` is an opt-in Gateway policy for
144
+ fresh node device pairing only; it does not change CLI approval authority.
145
+ - Token rotation and revocation stay inside the approved pairing role set and
146
+ approved scope baseline for that device. A stray cached token entry does not
147
+ grant a token-management target.
148
+ - For paired-device token sessions, cross-device management is admin-only:
149
+ `remove`, `rotate`, and `revoke` are self-only unless the caller has
150
+ `operator.admin`.
151
+ - Token mutation is also caller-scope contained: a pairing-only session cannot
152
+ rotate or revoke a token that currently carries `operator.admin` or
153
+ `operator.write`.
154
+ - `devices clear` is intentionally gated by `--yes`.
155
+ - If pairing scope is unavailable on local loopback (and no explicit `--url` is passed), list/approve can use a local pairing fallback.
156
+ - `devices approve` requires an explicit request ID before minting tokens; omitting `requestId` or passing `--latest` only previews the newest pending request.
157
+
158
+ ## Token drift recovery checklist
159
+
160
+ Use this when Control UI or other clients keep failing with `AUTH_TOKEN_MISMATCH`, `AUTH_DEVICE_TOKEN_MISMATCH`, or `AUTH_SCOPE_MISMATCH`.
161
+
162
+ 1. Confirm current gateway token source:
163
+
164
+ ```bash
165
+ nodmix config get gateway.auth.token
166
+ ```
167
+
168
+ 2. List paired devices and identify the affected device id:
169
+
170
+ ```bash
171
+ nodmix devices list
172
+ ```
173
+
174
+ 3. Rotate operator token for the affected device:
175
+
176
+ ```bash
177
+ nodmix devices rotate --device <deviceId> --role operator
178
+ ```
179
+
180
+ 4. If rotation is not enough, remove stale pairing and approve again:
181
+
182
+ ```bash
183
+ nodmix devices remove <deviceId>
184
+ nodmix devices list
185
+ nodmix devices approve <requestId>
186
+ ```
187
+
188
+ 5. Retry client connection with the current shared token/password.
189
+
190
+ Notes:
191
+
192
+ - Normal reconnect auth precedence is explicit shared token/password first, then explicit `deviceToken`, then stored device token, then bootstrap token.
193
+ - Trusted `AUTH_TOKEN_MISMATCH` recovery can temporarily send both the shared token and the stored device token together for the one bounded retry.
194
+ - `AUTH_SCOPE_MISMATCH` means the device token was recognized but does not carry the requested scope set; fix the pairing/scope approval contract before changing shared gateway auth.
195
+
196
+ Related:
197
+
198
+ - [Dashboard auth troubleshooting](/web/dashboard#if-you-see-unauthorized-1008)
199
+ - [Gateway troubleshooting](/gateway/troubleshooting#dashboard-control-ui-connectivity)
200
+
201
+ ## Related
202
+
203
+ - [CLI reference](/cli)
204
+ - [Nodes](/nodes)
@@ -0,0 +1,68 @@
1
+ ---
2
+ summary: "CLI reference for `nodmix directory` (self, peers, groups)"
3
+ read_when:
4
+ - You want to look up contacts/groups/self ids for a channel
5
+ - You are developing a channel directory adapter
6
+ title: "Directory"
7
+ ---
8
+
9
+ # `nodmix directory`
10
+
11
+ Directory lookups for channels that support it (contacts/peers, groups, and "me").
12
+
13
+ ## Common flags
14
+
15
+ - `--channel <name>`: channel id/alias (required when multiple channels are configured; auto when only one is configured)
16
+ - `--account <id>`: account id (default: channel default)
17
+ - `--json`: output JSON
18
+
19
+ ## Notes
20
+
21
+ - `directory` is meant to help you find IDs you can paste into other commands (especially `nodmix message send --target ...`).
22
+ - For many channels, results are config-backed (allowlists / configured groups) rather than a live provider directory.
23
+ - Installed channel plugins can still omit directory support; in that case the command reports the unsupported directory operation instead of reinstalling the plugin.
24
+ - Default output is `id` (and sometimes `name`) separated by a tab; use `--json` for scripting.
25
+
26
+ ## Using results with `message send`
27
+
28
+ ```bash
29
+ nodmix directory peers list --channel slack --query "U0"
30
+ nodmix message send --channel slack --target user:U012ABCDEF --message "hello"
31
+ ```
32
+
33
+ ## ID formats (by channel)
34
+
35
+ - WhatsApp: `+15551234567` (DM), `1234567890-1234567890@g.us` (group), `120363123456789@newsletter` (Channel/Newsletter outbound target)
36
+ - Telegram: `@username` or numeric chat id; groups are numeric ids
37
+ - Slack: `user:U…` and `channel:C…`
38
+ - Discord: `user:<id>` and `channel:<id>`
39
+ - Matrix (plugin): `user:@user:server`, `room:!roomId:server`, or `#alias:server`
40
+ - Microsoft Teams (plugin): `user:<id>` and `conversation:<id>`
41
+ - Zalo (plugin): user id (Bot API)
42
+ - Zalo Personal / `zalouser` (plugin): thread id (DM/group) from `zca` (`me`, `friend list`, `group list`)
43
+
44
+ ## Self ("me")
45
+
46
+ ```bash
47
+ nodmix directory self --channel zalouser
48
+ ```
49
+
50
+ ## Peers (contacts/users)
51
+
52
+ ```bash
53
+ nodmix directory peers list --channel zalouser
54
+ nodmix directory peers list --channel zalouser --query "name"
55
+ nodmix directory peers list --channel zalouser --limit 50
56
+ ```
57
+
58
+ ## Groups
59
+
60
+ ```bash
61
+ nodmix directory groups list --channel zalouser
62
+ nodmix directory groups list --channel zalouser --query "work"
63
+ nodmix directory groups members --channel zalouser --group-id <id>
64
+ ```
65
+
66
+ ## Related
67
+
68
+ - [CLI reference](/cli)
@@ -0,0 +1,53 @@
1
+ ---
2
+ summary: "CLI reference for `nodmix dns` (wide-area discovery helpers)"
3
+ read_when:
4
+ - You want wide-area discovery (DNS-SD) via Tailscale + CoreDNS
5
+ - You're setting up split DNS for a custom discovery domain (example: nodmix.internal)
6
+ title: "DNS"
7
+ ---
8
+
9
+ # `nodmix dns`
10
+
11
+ DNS helpers for wide-area discovery (Tailscale + CoreDNS). Currently focused on macOS + Homebrew CoreDNS.
12
+
13
+ Related:
14
+
15
+ - Gateway discovery: [Discovery](/gateway/discovery)
16
+ - Wide-area discovery config: [Configuration](/gateway/configuration)
17
+
18
+ ## Setup
19
+
20
+ ```bash
21
+ nodmix dns setup
22
+ nodmix dns setup --domain nodmix.internal
23
+ nodmix dns setup --apply
24
+ ```
25
+
26
+ ## `dns setup`
27
+
28
+ Plan or apply CoreDNS setup for unicast DNS-SD discovery.
29
+
30
+ Options:
31
+
32
+ - `--domain <domain>`: wide-area discovery domain (for example `nodmix.internal`)
33
+ - `--apply`: install or update CoreDNS config and restart the service (requires sudo; macOS only)
34
+
35
+ What it shows:
36
+
37
+ - resolved discovery domain
38
+ - zone file path
39
+ - current tailnet IPs
40
+ - recommended `nodmix.json` discovery config
41
+ - the Tailscale Split DNS nameserver/domain values to set
42
+
43
+ Notes:
44
+
45
+ - Without `--apply`, the command is a planning helper only and prints the recommended setup.
46
+ - If `--domain` is omitted, Nodmix uses `discovery.wideArea.domain` from config.
47
+ - `--apply` currently supports macOS only and expects Homebrew CoreDNS.
48
+ - `--apply` bootstraps the zone file if needed, ensures the CoreDNS import stanza exists, and restarts the `coredns` brew service.
49
+
50
+ ## Related
51
+
52
+ - [CLI reference](/cli)
53
+ - [Discovery](/gateway/discovery)
@@ -0,0 +1,73 @@
1
+ ---
2
+ summary: "CLI reference for `nodmix docs` (search the live docs index)"
3
+ read_when:
4
+ - You want to search the live Nodmix docs from the terminal
5
+ - You need to know which helper binaries the docs CLI shells out to
6
+ title: "Docs"
7
+ ---
8
+
9
+ # `nodmix docs`
10
+
11
+ Search the live Nodmix docs index from the terminal. The command shells out to the public Mintlify-hosted docs MCP search endpoint at `https://docs.nodmix.ai/mcp.search_open_claw` and renders the results in your terminal.
12
+
13
+ ## Usage
14
+
15
+ ```bash
16
+ nodmix docs # print docs entrypoint and example search
17
+ nodmix docs <query...> # search the live docs index
18
+ ```
19
+
20
+ Arguments:
21
+
22
+ | Argument | Description |
23
+ | ------------ | ---------------------------------------------------------------------------------- |
24
+ | `[query...]` | Free-form search query. Multi-word queries are joined with spaces and sent as one. |
25
+
26
+ ## Examples
27
+
28
+ ```bash
29
+ nodmix docs browser existing-session
30
+ nodmix docs sandbox allowHostControl
31
+ nodmix docs gateway token secretref
32
+ ```
33
+
34
+ With no query, `nodmix docs` prints the docs entrypoint URL plus a sample search command instead of running a search.
35
+
36
+ ## How it works
37
+
38
+ `nodmix docs` invokes the `mcporter` CLI to call the docs search MCP tool, then parses the `Title: / Link: / Content:` blocks from the tool output into a list of results.
39
+
40
+ To resolve `mcporter`, Nodmix checks in order:
41
+
42
+ 1. `mcporter` on `PATH` (used directly if present).
43
+ 2. `pnpm dlx mcporter ...` if `pnpm` is installed.
44
+ 3. `npx -y mcporter ...` if `npx` is installed.
45
+
46
+ If none are available, the command fails with a hint to install `pnpm` (`npm install -g pnpm`).
47
+
48
+ The search call uses a fixed 30 second timeout. Result snippets are truncated to ~220 characters per entry.
49
+
50
+ ## Output
51
+
52
+ In a rich (TTY) terminal, results render as a heading followed by a bullet list. Each bullet shows the page title, the linked docs URL, and a short snippet on the next line. Empty results print "No results.".
53
+
54
+ In non-rich output (piped, `--no-color`, scripts), the same data renders as Markdown:
55
+
56
+ ```markdown
57
+ # Docs search: <query>
58
+
59
+ - [Title](https://docs.nodmix.ai/...) - snippet
60
+ - [Title](https://docs.nodmix.ai/...) - snippet
61
+ ```
62
+
63
+ ## Exit codes
64
+
65
+ | Code | Meaning |
66
+ | ---- | --------------------------------------------------- |
67
+ | `0` | Search succeeded (including zero-result responses). |
68
+ | `1` | The MCP tool call failed; stderr is printed inline. |
69
+
70
+ ## Related
71
+
72
+ - [CLI reference](/cli)
73
+ - [Live docs](https://docs.nodmix.ai)
@@ -0,0 +1,237 @@
1
+ ---
2
+ summary: "CLI reference for `nodmix doctor` (health checks + guided repairs)"
3
+ read_when:
4
+ - You have connectivity/auth issues and want guided fixes
5
+ - You updated and want a sanity check
6
+ title: "Doctor"
7
+ ---
8
+
9
+ # `nodmix doctor`
10
+
11
+ Health checks + quick fixes for the gateway and channels.
12
+
13
+ Related:
14
+
15
+ - Troubleshooting: [Troubleshooting](/gateway/troubleshooting)
16
+ - Security audit: [Security](/gateway/security)
17
+
18
+ ## Why Use It
19
+
20
+ `nodmix doctor` is the Nodmix health surface. Use it when the gateway,
21
+ channels, plugins, skills, model routing, local state, or config migrations are
22
+ not behaving as expected and you want one command that can explain what is
23
+ wrong.
24
+
25
+ Doctor has three postures:
26
+
27
+ | Posture | Command | Behavior |
28
+ | ------- | ------------------------ | ------------------------------------------------------------------------------- |
29
+ | Inspect | `nodmix doctor` | Human-oriented checks and guided prompts. |
30
+ | Repair | `nodmix doctor --fix` | Applies supported repairs, using prompts unless non-interactive repair is safe. |
31
+ | Lint | `nodmix doctor --lint` | Read-only structured findings for CI, preflight, and review gates. |
32
+
33
+ Prefer `--lint` when automation needs a stable result. Prefer `--fix` when a
34
+ human operator intentionally wants doctor to edit config or state.
35
+
36
+ ## Examples
37
+
38
+ ```bash
39
+ nodmix doctor
40
+ nodmix doctor --lint
41
+ nodmix doctor --lint --json
42
+ nodmix doctor --lint --severity-min warning
43
+ nodmix doctor --deep
44
+ nodmix doctor --fix
45
+ nodmix doctor --fix --non-interactive
46
+ nodmix doctor --generate-gateway-token
47
+ ```
48
+
49
+ For channel-specific permissions, use the channel probes instead of `doctor`:
50
+
51
+ ```bash
52
+ nodmix channels capabilities --channel discord --target channel:<channel-id>
53
+ nodmix channels status --probe
54
+ ```
55
+
56
+ The targeted Discord capabilities probe reports the bot's effective channel permissions; the status probe audits configured Discord channels and voice auto-join targets.
57
+
58
+ ## Options
59
+
60
+ - `--no-workspace-suggestions`: disable workspace memory/search suggestions
61
+ - `--yes`: accept defaults without prompting
62
+ - `--repair`: apply recommended non-service repairs without prompting; gateway service installs and rewrites still require interactive confirmation or explicit gateway commands
63
+ - `--fix`: alias for `--repair`
64
+ - `--force`: apply aggressive repairs, including overwriting custom service config when needed
65
+ - `--non-interactive`: run without prompts; safe migrations and non-service repairs only
66
+ - `--generate-gateway-token`: generate and configure a gateway token
67
+ - `--deep`: scan system services for extra gateway installs and report recent Gateway supervisor restart handoffs
68
+ - `--lint`: run modernized health checks in read-only mode and emit diagnostic findings
69
+ - `--json`: with `--lint`, emit JSON findings instead of human output
70
+ - `--severity-min <level>`: with `--lint`, drop findings below `info`, `warning`, or `error`
71
+ - `--skip <id>`: with `--lint`, skip a check id; repeat to skip more than one
72
+ - `--only <id>`: with `--lint`, run only a check id; repeat to run a small selected set
73
+
74
+ ## Lint mode
75
+
76
+ `nodmix doctor --lint` is the read-only automation posture for doctor checks.
77
+ It uses the structured health-check path, does not prompt, and does not repair
78
+ or rewrite config/state. Use it in CI, preflight scripts, and review workflows
79
+ when you want machine-readable findings instead of guided repair prompts.
80
+ Lint-output options such as `--json`, `--severity-min`, `--only`, and `--skip`
81
+ are only accepted with `--lint`.
82
+
83
+ ```bash
84
+ nodmix doctor --lint
85
+ nodmix doctor --lint --severity-min warning
86
+ nodmix doctor --lint --json
87
+ nodmix doctor --lint --only core/doctor/gateway-config --json
88
+ ```
89
+
90
+ Human output is compact:
91
+
92
+ ```text
93
+ doctor --lint: ran 6 check(s), 1 finding(s)
94
+ [warning] core/doctor/gateway-config gateway.mode - gateway.mode is unset; gateway start will be blocked.
95
+ fix: Run `nodmix configure` and set Gateway mode (local/remote), or `nodmix config set gateway.mode local`.
96
+ ```
97
+
98
+ JSON output is the scripting surface for lint runs:
99
+
100
+ ```json
101
+ {
102
+ "ok": false,
103
+ "checksRun": 5,
104
+ "checksSkipped": 0,
105
+ "findings": [
106
+ {
107
+ "checkId": "core/doctor/gateway-config",
108
+ "severity": "warning",
109
+ "message": "gateway.mode is unset; gateway start will be blocked.",
110
+ "path": "gateway.mode",
111
+ "fixHint": "Run `nodmix configure` and set Gateway mode (local/remote), or `nodmix config set gateway.mode local`."
112
+ }
113
+ ]
114
+ }
115
+ ```
116
+
117
+ Exit behavior:
118
+
119
+ - `0`: no findings at or above the selected severity threshold
120
+ - `1`: at least one finding meets the selected threshold
121
+ - `2`: command/runtime failure before lint findings can be produced
122
+
123
+ `--severity-min` controls both visible findings and the exit threshold. For
124
+ example, `nodmix doctor --lint --severity-min error` can print no findings and
125
+ exit `0` even when lower-severity `info` or `warning` findings exist.
126
+
127
+ ## Structured Health Checks
128
+
129
+ Modern doctor checks use a small structured contract:
130
+
131
+ ```ts
132
+ detect(ctx, scope?) -> HealthFinding[]
133
+ repair?(ctx, findings) -> HealthRepairResult
134
+ ```
135
+
136
+ `detect()` powers `doctor --lint`. `repair()` is optional and is only considered
137
+ by `doctor --fix` / `doctor --repair`. Checks that have not migrated to this
138
+ shape continue to use the legacy doctor contribution flow.
139
+
140
+ The split is intentional: `detect()` owns diagnosis, while `repair()` owns
141
+ reporting what it changed or would change. Repair contexts can carry
142
+ `dryRun`/`diff` requests, and repair results can return structured `diffs` for
143
+ config/file edits plus `effects` for service, process, package, state, or other
144
+ side effects. That lets converted checks grow toward `doctor --fix --dry-run`
145
+ and diff reporting without moving mutation planning into `detect()`.
146
+
147
+ `repair()` reports whether it attempted the requested repair with `status:
148
+ "repaired" | "skipped" | "failed"`. Omitted status means `repaired`, so simple
149
+ repair checks only need to return changes. When repair returns `skipped` or
150
+ `failed`, doctor reports the reason and does not run validation for that check.
151
+
152
+ After a successful structured repair, doctor re-runs `detect()` with the
153
+ repaired findings as scope. Checks can use selected findings, paths, or `ocPath`
154
+ values for focused validation. If the finding is still present, doctor reports a
155
+ repair warning instead of treating the change as silently complete.
156
+
157
+ A finding includes:
158
+
159
+ | Field | Purpose |
160
+ | ----------------- | ------------------------------------------------------ |
161
+ | `checkId` | Stable id for skip/only filters and CI allowlists. |
162
+ | `severity` | `info`, `warning`, or `error`. |
163
+ | `message` | Human-readable problem statement. |
164
+ | `path` | Config, file, or logical path when available. |
165
+ | `line` / `column` | Source location when available. |
166
+ | `ocPath` | Precise `oc://` address when a check can point to one. |
167
+ | `fixHint` | Suggested operator action or repair summary. |
168
+
169
+ This release registers the modernized core doctor checks on the structured
170
+ health path. The `nodmix/plugin-sdk/health` subpath exposes the same
171
+ contract for bundled follow-up consumers, but plugin-backed checks only run
172
+ after their owning package registers them in the active command path.
173
+
174
+ ## Check Selection
175
+
176
+ Use `--only` and `--skip` when a workflow wants a focused gate:
177
+
178
+ ```bash
179
+ nodmix doctor --lint --only core/doctor/gateway-config --json
180
+ nodmix doctor --lint --skip core/doctor/skills-readiness
181
+ ```
182
+
183
+ `--only` and `--skip` accept full check ids and may be repeated. If an `--only`
184
+ id is not registered, no check runs for that id; use the command's `checksRun`
185
+ and `checksSkipped` fields to verify a focused gate is selecting the checks you
186
+ expect.
187
+
188
+ Notes:
189
+
190
+ - In Nix mode (`NODMIX_NIX_MODE=1`), read-only doctor checks still work, but `doctor --fix`, `doctor --repair`, `doctor --yes`, and `doctor --generate-gateway-token` are disabled because `nodmix.json` is immutable. Edit the Nix source for this install instead; for nix-nodmix, use the agent-first [Quick Start](https://github.com/nodmix/nix-nodmix#quick-start).
191
+ - Interactive prompts (like keychain/OAuth fixes) only run when stdin is a TTY and `--non-interactive` is **not** set. Headless runs (cron, Telegram, no terminal) will skip prompts.
192
+ - Performance: non-interactive `doctor` runs skip eager plugin loading so headless health checks stay fast. Interactive doctor sessions still load the plugin surfaces needed by the legacy health and repair flow.
193
+ - `--lint` is stricter than `--non-interactive`: it is always read-only, never prompts, and never applies safe migrations. Run `doctor --fix` or `doctor --repair` when you want doctor to make changes.
194
+ - `--fix` (alias for `--repair`) writes a backup to `~/.nodmix/nodmix.json.bak` and drops unknown config keys, listing each removal.
195
+ - Modernized health checks can expose a `repair()` path for `doctor --fix`; checks that do not expose one continue through the existing doctor repair flow.
196
+ - `doctor --fix --non-interactive` reports missing or stale gateway service definitions but does not install or rewrite them outside update repair mode. Run `nodmix gateway install` for a missing service, or `nodmix gateway install --force` when you intentionally want to replace the launcher.
197
+ - State integrity checks now detect orphan transcript files in the sessions directory. Archiving them as `.deleted.<timestamp>` requires an interactive confirmation; `--fix`, `--yes`, and headless runs leave them in place.
198
+ - Doctor also scans `~/.nodmix/cron/jobs.json` (or `cron.store`) for legacy cron job shapes and can rewrite them in place before the scheduler has to auto-normalize them at runtime.
199
+ - Doctor reports cron jobs with explicit `payload.model` overrides, including provider namespace counts and mismatches against `agents.defaults.model`, so scheduled jobs that do not inherit the default model are visible during auth or billing investigations.
200
+ - On Linux, doctor warns when the user's crontab still runs legacy `~/.nodmix/bin/ensure-whatsapp.sh`; that script is no longer maintained and can log false WhatsApp gateway outages when cron lacks the systemd user-bus environment.
201
+ - When WhatsApp is enabled, doctor checks for a degraded Gateway event loop with local `nodmix-tui` clients still running. `doctor --fix` stops only verified local TUI clients so WhatsApp replies are not queued behind stale TUI refresh loops.
202
+ - Doctor rewrites legacy `openai-codex/*` model refs to canonical `openai/*` refs across primary models, fallbacks, heartbeat/subagent/compaction overrides, hooks, channel model overrides, and stale session route pins. `--fix` moves Codex intent onto provider/model-scoped `agentRuntime.id: "codex"` entries, preserves session auth-profile pins such as `openai-codex:...`, removes stale whole-agent/session runtime pins, and keeps repaired OpenAI agent refs on Codex auth routing instead of direct OpenAI API-key auth.
203
+ - Doctor cleans legacy plugin dependency staging state created by older Nodmix versions and relinks the host `nodmix` package for managed npm plugins that declare it as a peer dependency. It also repairs missing downloadable plugins that are referenced by config, such as `plugins.entries`, configured channels, configured provider/search settings, or configured agent runtimes. During package updates, doctor skips package-manager plugin repair until the package swap is complete; rerun `nodmix doctor --fix` afterward if a configured plugin still needs recovery. If the download fails, doctor reports the install error and preserves the configured plugin entry for the next repair attempt.
204
+ - Doctor repairs stale plugin config by removing missing plugin ids from `plugins.allow`/`plugins.deny`/`plugins.entries`, plus matching dangling channel config, heartbeat targets, and channel model overrides when plugin discovery is healthy.
205
+ - Doctor quarantines invalid plugin config by disabling the affected `plugins.entries.<id>` entry and removing its invalid `config` payload. Gateway startup already skips only that bad plugin so other plugins and channels can keep running.
206
+ - Set `NODMIX_SERVICE_REPAIR_POLICY=external` when another supervisor owns the gateway lifecycle. Doctor still reports gateway/service health and applies non-service repairs, but skips service install/start/restart/bootstrap and legacy service cleanup.
207
+ - On Linux, doctor ignores inactive extra gateway-like systemd units and does not rewrite command/entrypoint metadata for a running systemd gateway service during repair. Stop the service first or use `nodmix gateway install --force` when you intentionally want to replace the active launcher.
208
+ - Doctor auto-migrates legacy flat Talk config (`talk.voiceId`, `talk.modelId`, and friends) into `talk.provider` + `talk.providers.<provider>`.
209
+ - Repeat `doctor --fix` runs no longer report/apply Talk normalization when the only difference is object key order.
210
+ - Doctor includes a memory-search readiness check and can recommend `nodmix configure --section model` when embedding credentials are missing.
211
+ - Doctor warns when no command owner is configured. The command owner is the human operator account allowed to run owner-only commands and approve dangerous actions. DM pairing only lets someone talk to the bot; if you approved a sender before first-owner bootstrap existed, set `commands.ownerAllowFrom` explicitly.
212
+ - Doctor warns when Codex-mode agents are configured and personal Codex CLI assets exist in the operator's Codex home. Local Codex app-server launches use isolated per-agent homes, so use `nodmix migrate codex --dry-run` to inventory assets that should be promoted deliberately.
213
+ - Doctor removes retired `plugins.entries.codex.config.codexDynamicToolsProfile`; Codex app-server always keeps Codex-native workspace tools native.
214
+ - Doctor warns when skills allowed for the default agent are unavailable in the current runtime environment because bins, env vars, config, or OS requirements are missing. `doctor --fix` can disable those unavailable skills with `skills.entries.<skill>.enabled=false`; install/configure the missing requirement instead when you want to keep the skill active.
215
+ - If sandbox mode is enabled but Docker is unavailable, doctor reports a high-signal warning with remediation (`install Docker` or `nodmix config set agents.defaults.sandbox.mode off`).
216
+ - If legacy sandbox registry files (`~/.nodmix/sandbox/containers.json` or `~/.nodmix/sandbox/browsers.json`) are present, doctor reports them; `nodmix doctor --fix` migrates valid entries into sharded registry directories and quarantines invalid legacy files.
217
+ - If `gateway.auth.token`/`gateway.auth.password` are SecretRef-managed and unavailable in the current command path, doctor reports a read-only warning and does not write plaintext fallback credentials.
218
+ - If channel SecretRef inspection fails in a fix path, doctor continues and reports a warning instead of exiting early.
219
+ - After state-directory migrations, doctor warns when enabled default Telegram or Discord accounts depend on env fallback and `TELEGRAM_BOT_TOKEN` or `DISCORD_BOT_TOKEN` is unavailable to the doctor process.
220
+ - Telegram `allowFrom` username auto-resolution (`doctor --fix`) requires a resolvable Telegram token in the current command path. If token inspection is unavailable, doctor reports a warning and skips auto-resolution for that pass.
221
+
222
+ ## macOS: `launchctl` env overrides
223
+
224
+ If you previously ran `launchctl setenv NODMIX_GATEWAY_TOKEN ...` (or `...PASSWORD`), that value overrides your config file and can cause persistent "unauthorized" errors.
225
+
226
+ ```bash
227
+ launchctl getenv NODMIX_GATEWAY_TOKEN
228
+ launchctl getenv NODMIX_GATEWAY_PASSWORD
229
+
230
+ launchctl unsetenv NODMIX_GATEWAY_TOKEN
231
+ launchctl unsetenv NODMIX_GATEWAY_PASSWORD
232
+ ```
233
+
234
+ ## Related
235
+
236
+ - [CLI reference](/cli)
237
+ - [Gateway doctor](/gateway/doctor)