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,535 @@
1
+ ---
2
+ summary: "Skills: managed vs workspace, gating rules, agent allowlists, and config wiring"
3
+ read_when:
4
+ - Adding or modifying skills
5
+ - Changing skill gating, allowlists, or load rules
6
+ - Understanding skill precedence and snapshot behavior
7
+ title: "Skills"
8
+ sidebarTitle: "Skills"
9
+ ---
10
+
11
+ Nodmix uses **[AgentSkills](https://agentskills.io)-compatible** skill
12
+ folders to teach the agent how to use tools. Each skill is a directory
13
+ containing a `SKILL.md` with YAML frontmatter and instructions. Nodmix
14
+ loads bundled skills plus optional local overrides, and filters them at
15
+ load time based on environment, config, and binary presence.
16
+
17
+ ## Locations and precedence
18
+
19
+ Nodmix loads skills from these sources, **highest precedence first**:
20
+
21
+ | # | Source | Path |
22
+ | --- | --------------------- | -------------------------------- |
23
+ | 1 | Workspace skills | `<workspace>/skills` |
24
+ | 2 | Project agent skills | `<workspace>/.agents/skills` |
25
+ | 3 | Personal agent skills | `~/.agents/skills` |
26
+ | 4 | Managed/local skills | `~/.nodmix/skills` |
27
+ | 5 | Bundled skills | shipped with the install |
28
+ | 6 | Extra skill folders | `skills.load.extraDirs` (config) |
29
+
30
+ If a skill name conflicts, the highest source wins.
31
+
32
+ Codex CLI's native `$CODEX_HOME/skills` directory is not one of these Nodmix
33
+ skill roots. In Codex harness mode, local app-server launches use isolated
34
+ per-agent Codex homes, so skills in the operator's personal `~/.codex/skills`
35
+ are not loaded implicitly. Codex-native `.agents` discovery uses inherited
36
+ `HOME` separately; Nodmix's own skill roots above already include
37
+ `~/.agents/skills`. Use `nodmix migrate codex --dry-run` to inventory skills
38
+ from the Codex home, then `nodmix migrate codex` to choose skill directories
39
+ with an interactive
40
+ checkbox prompt before copying them into the current Nodmix agent workspace.
41
+ For non-interactive runs, repeat `--skill <name>` for the exact skills to copy.
42
+
43
+ ## Per-agent vs shared skills
44
+
45
+ In **multi-agent** setups each agent has its own workspace:
46
+
47
+ | Scope | Path | Visible to |
48
+ | -------------------- | ------------------------------------------- | --------------------------- |
49
+ | Per-agent | `<workspace>/skills` | Only that agent |
50
+ | Project-agent | `<workspace>/.agents/skills` | Only that workspace's agent |
51
+ | Personal-agent | `~/.agents/skills` | All agents on that machine |
52
+ | Shared managed/local | `~/.nodmix/skills` | All agents on that machine |
53
+ | Shared extra dirs | `skills.load.extraDirs` (lowest precedence) | All agents on that machine |
54
+
55
+ Same name in multiple places → highest source wins. Workspace beats
56
+ project-agent, beats personal-agent, beats managed/local, beats bundled,
57
+ beats extra dirs.
58
+
59
+ ## Agent skill allowlists
60
+
61
+ Skill **location** and skill **visibility** are separate controls.
62
+ Location/precedence decides which copy of a same-named skill wins; agent
63
+ allowlists decide which skills an agent can actually use.
64
+
65
+ ```json5
66
+ {
67
+ agents: {
68
+ defaults: {
69
+ skills: ["github", "weather"],
70
+ },
71
+ list: [
72
+ { id: "writer" }, // inherits github, weather
73
+ { id: "docs", skills: ["docs-search"] }, // replaces defaults
74
+ { id: "locked-down", skills: [] }, // no skills
75
+ ],
76
+ },
77
+ }
78
+ ```
79
+
80
+ <AccordionGroup>
81
+ <Accordion title="Allowlist rules">
82
+ - Omit `agents.defaults.skills` for unrestricted skills by default.
83
+ - Omit `agents.list[].skills` to inherit `agents.defaults.skills`.
84
+ - Set `agents.list[].skills: []` for no skills.
85
+ - A non-empty `agents.list[].skills` list is the **final** set for that
86
+ agent - it does not merge with defaults.
87
+ - The effective allowlist applies across prompt building, skill
88
+ slash-command discovery, sandbox sync, and skill snapshots.
89
+ </Accordion>
90
+ </AccordionGroup>
91
+
92
+ ## Plugins and skills
93
+
94
+ Plugins can ship their own skills by listing `skills` directories in
95
+ `nodmix.plugin.json` (paths relative to the plugin root). Plugin skills
96
+ load when the plugin is enabled. This is the right place for tool-specific
97
+ operating guides that are too long for the tool description but should be
98
+ available whenever the plugin is installed - for example, the browser
99
+ plugin ships a `browser-automation` skill for multi-step browser control.
100
+
101
+ Plugin skill directories are merged into the same low-precedence path as
102
+ `skills.load.extraDirs`, so a same-named bundled, managed, agent, or
103
+ workspace skill overrides them. You can gate them via
104
+ `metadata.nodmix.requires.config` on the plugin's config entry.
105
+
106
+ See [Plugins](/tools/plugin) for discovery/config and [Tools](/tools) for
107
+ the tool surface those skills teach.
108
+
109
+ ## Skill Workshop
110
+
111
+ The optional, experimental **Skill Workshop** plugin can create or update
112
+ workspace skills from reusable procedures observed during agent work. It
113
+ is disabled by default and must be explicitly enabled via
114
+ `plugins.entries.skill-workshop`.
115
+
116
+ Skill Workshop writes only to `<workspace>/skills`, scans generated
117
+ content, supports pending approval or automatic safe writes, quarantines
118
+ unsafe proposals, and refreshes the skill snapshot after successful
119
+ writes so new skills become available without a Gateway restart.
120
+
121
+ Use it for corrections such as _"next time, verify GIF attribution"_ or
122
+ hard-won workflows such as media QA checklists. Start with pending
123
+ approval; use automatic writes only in trusted workspaces after reviewing
124
+ its proposals. Full guide: [Skill Workshop plugin](/plugins/skill-workshop).
125
+
126
+ ## ClawHub (install and sync)
127
+
128
+ [ClawHub](https://clawhub.ai) is the public skills registry for Nodmix.
129
+ Use native `nodmix skills` commands for discover/install/update, or the
130
+ separate `clawhub` CLI for publish/sync workflows. Full guide:
131
+ [ClawHub](/clawhub).
132
+
133
+ | Action | Command |
134
+ | -------------------------------------- | ------------------------------------------------------ |
135
+ | Install a ClawHub skill into workspace | `nodmix skills install <skill-slug>` |
136
+ | Install a Git skill into workspace | `nodmix skills install git:owner/repo@ref` |
137
+ | Install a local skill into workspace | `nodmix skills install ./path/to/skill --as my-tool` |
138
+ | Install a skill for all local agents | `nodmix skills install <skill-slug> --global` |
139
+ | Update all workspace-installed skills | `nodmix skills update --all` |
140
+ | Update a single shared managed skill | `nodmix skills update <skill-slug> --global` |
141
+ | Update all shared managed/local skills | `nodmix skills update --all --global` |
142
+ | Sync (scan + publish updates) | `clawhub sync --all` |
143
+
144
+ Native `nodmix skills install` installs into the active workspace
145
+ `skills/` directory by default. Add `--global` to install into the shared
146
+ managed/local directory (`~/.nodmix/skills` by default), which is visible to
147
+ all local agents unless agent skill allowlists narrow visibility. The separate
148
+ `clawhub` CLI also installs into `./skills` under your current working
149
+ directory (or falls back to the configured Nodmix workspace). Nodmix picks
150
+ that up as `<workspace>/skills` on the next session.
151
+ Configured skill roots also support one grouping level, such as
152
+ `skills/<group>/<skill>/SKILL.md`, so related third-party skills can be
153
+ kept under a shared folder without broad recursive scanning.
154
+
155
+ Git and local directory installs expect a `SKILL.md` at the source root. The
156
+ install slug comes from `SKILL.md` frontmatter `name` when it is a valid slug,
157
+ then falls back to the source directory or repository name. Use `--as <slug>` to
158
+ override the inferred slug. `--version` applies only to ClawHub installs. Skill
159
+ installs do not support npm package specs or zip/archive paths. `nodmix skills
160
+ update` updates ClawHub-tracked installs only; reinstall Git or local sources to
161
+ refresh them.
162
+
163
+ Gateway clients that need private, non-ClawHub delivery can stage a zip skill
164
+ archive with `skills.upload.begin`, `skills.upload.chunk`, and
165
+ `skills.upload.commit`, then install the committed upload with
166
+ `skills.install({ source: "upload", uploadId, slug, force?, sha256? })`. This is
167
+ an explicit admin upload path for trusted clients, not the normal
168
+ `nodmix skills install <slug>` or ClawHub install flow. It is off by default
169
+ and only works when `skills.install.allowUploadedArchives: true` is set in
170
+ `nodmix.json`. Upload mode still installs into the default agent workspace
171
+ `skills/<slug>` directory; the archive's internal folder name is ignored for the
172
+ final install target.
173
+
174
+ ClawHub skill pages expose the latest security scan state before install,
175
+ with scanner detail pages for VirusTotal, ClawScan, and static analysis.
176
+ `nodmix skills install <slug>` remains only the install path; publishers
177
+ recover false positives through the ClawHub dashboard or
178
+ `clawhub skill rescan <slug>`.
179
+
180
+ ## Security
181
+
182
+ <Warning>
183
+ Treat third-party skills as **untrusted code**. Read them before enabling.
184
+ Prefer sandboxed runs for untrusted inputs and risky tools. See
185
+ [Sandboxing](/gateway/sandboxing) for the agent-side controls.
186
+ </Warning>
187
+
188
+ - Workspace, project-agent, and extra-dir skill discovery only accepts skill roots whose resolved realpath stays inside the configured root unless `skills.load.allowSymlinkTargets` explicitly trusts a target root. Bundled skills always stay contained. Managed `~/.nodmix/skills` and personal `~/.agents/skills` roots may contain symlinked skill folders installed by ClawHub or another local skill manager, but every `SKILL.md` realpath must still stay inside its resolved skill directory.
189
+ - Gateway private archive installs are off by default. When explicitly enabled,
190
+ they require a committed zip upload containing `SKILL.md` and reuse the same
191
+ archive extraction, path traversal, symlink, force, and rollback protections as
192
+ ClawHub skill installs. They are gated by
193
+ `skills.install.allowUploadedArchives`; normal ClawHub installs do not require
194
+ that setting.
195
+ - Gateway-backed skill dependency installs (`skills.install`, onboarding, and the Skills settings UI) run the built-in dangerous-code scanner before executing installer metadata. `critical` findings block by default unless the caller explicitly sets the dangerous override; suspicious findings still warn only.
196
+ - `nodmix skills install <slug>` is different — it downloads a ClawHub skill
197
+ folder into the workspace, or into shared managed/local skills with
198
+ `--global`, and does not use the installer-metadata path above. Git and local
199
+ directory installs copy a trusted `SKILL.md` directory into the same skills
200
+ root, but are not tracked by `nodmix skills update`.
201
+ - `skills.entries.*.env` and `skills.entries.*.apiKey` inject secrets into the **host** process for that agent turn (not the sandbox). Keep secrets out of prompts and logs.
202
+
203
+ For a broader threat model and checklists, see [Security](/gateway/security).
204
+
205
+ ## SKILL.md format
206
+
207
+ `SKILL.md` must include at least:
208
+
209
+ ```markdown
210
+ ---
211
+ name: image-lab
212
+ description: Generate or edit images via a provider-backed image workflow
213
+ ---
214
+ ```
215
+
216
+ Nodmix follows the AgentSkills spec for layout/intent. The parser used
217
+ by the embedded agent supports **single-line** frontmatter keys only;
218
+ `metadata` should be a **single-line JSON object**. Use `{baseDir}` in
219
+ instructions to reference the skill folder path.
220
+
221
+ ### Optional frontmatter keys
222
+
223
+ <ParamField path="homepage" type="string">
224
+ URL surfaced as "Website" in the macOS Skills UI. Also supported via `metadata.nodmix.homepage`.
225
+ </ParamField>
226
+ <ParamField path="user-invocable" type="boolean" default="true">
227
+ When `true`, the skill is exposed as a user slash command.
228
+ </ParamField>
229
+ <ParamField path="disable-model-invocation" type="boolean" default="false">
230
+ When `true`, Nodmix keeps the skill's instructions out of the agent's normal
231
+ prompt. The skill is still installed and can still be run explicitly as a
232
+ slash command when `user-invocable` is also `true`.
233
+ </ParamField>
234
+ <ParamField path="command-dispatch" type='"tool"'>
235
+ When set to `tool`, the slash command bypasses the model and dispatches directly to a tool.
236
+ </ParamField>
237
+ <ParamField path="command-tool" type="string">
238
+ Tool name to invoke when `command-dispatch: tool` is set.
239
+ </ParamField>
240
+ <ParamField path="command-arg-mode" type='"raw"' default="raw">
241
+ For tool dispatch, forwards the raw args string to the tool (no core parsing). The tool is invoked with `{ command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }`.
242
+ </ParamField>
243
+
244
+ ## Gating (load-time filters)
245
+
246
+ Nodmix filters skills at load time using `metadata` (single-line JSON):
247
+
248
+ ```markdown
249
+ ---
250
+ name: image-lab
251
+ description: Generate or edit images via a provider-backed image workflow
252
+ metadata:
253
+ {
254
+ "nodmix":
255
+ {
256
+ "requires": { "bins": ["uv"], "env": ["GEMINI_API_KEY"], "config": ["browser.enabled"] },
257
+ "primaryEnv": "GEMINI_API_KEY",
258
+ },
259
+ }
260
+ ---
261
+ ```
262
+
263
+ Fields under `metadata.nodmix`:
264
+
265
+ <ParamField path="always" type="boolean">
266
+ When `true`, always include the skill (skip other gates).
267
+ </ParamField>
268
+ <ParamField path="emoji" type="string">
269
+ Optional emoji used by the macOS Skills UI.
270
+ </ParamField>
271
+ <ParamField path="homepage" type="string">
272
+ Optional URL shown as "Website" in the macOS Skills UI.
273
+ </ParamField>
274
+ <ParamField path="os" type='"darwin" | "linux" | "win32"' >
275
+ Optional list of platforms. If set, the skill is only eligible on those OSes.
276
+ </ParamField>
277
+ <ParamField path="requires.bins" type="string[]">
278
+ Each must exist on `PATH`.
279
+ </ParamField>
280
+ <ParamField path="requires.anyBins" type="string[]">
281
+ At least one must exist on `PATH`.
282
+ </ParamField>
283
+ <ParamField path="requires.env" type="string[]">
284
+ Env var must exist or be provided in config.
285
+ </ParamField>
286
+ <ParamField path="requires.config" type="string[]">
287
+ List of `nodmix.json` paths that must be truthy.
288
+ </ParamField>
289
+ <ParamField path="primaryEnv" type="string">
290
+ Env var name associated with `skills.entries.<name>.apiKey`.
291
+ </ParamField>
292
+ <ParamField path="install" type="object[]">
293
+ Optional installer specs used by the macOS Skills UI (brew/node/go/uv/download).
294
+ </ParamField>
295
+
296
+ If no `metadata.nodmix` is present, the skill is always eligible (unless
297
+ disabled in config or blocked by `skills.allowBundled` for bundled skills).
298
+
299
+ <Note>
300
+ Legacy `metadata.clawdbot` blocks are still accepted when
301
+ `metadata.nodmix` is absent, so older installed skills keep their
302
+ dependency gates and installer hints. New and updated skills should use
303
+ `metadata.nodmix`.
304
+ </Note>
305
+
306
+ ### Sandboxing notes
307
+
308
+ - `requires.bins` is checked on the **host** at skill load time.
309
+ - If an agent is sandboxed, the binary must also exist **inside the container**. Install it via `agents.defaults.sandbox.docker.setupCommand` (or a custom image). `setupCommand` runs once after the container is created. Package installs also require network egress, a writable root FS, and a root user in the sandbox.
310
+ - Example: the `summarize` skill (`skills/summarize/SKILL.md`) needs the `summarize` CLI in the sandbox container to run there.
311
+
312
+ ### Installer specs
313
+
314
+ ```markdown
315
+ ---
316
+ name: gemini
317
+ description: Use Gemini CLI for coding assistance and Google search lookups.
318
+ metadata:
319
+ {
320
+ "nodmix":
321
+ {
322
+ "emoji": "♊️",
323
+ "requires": { "bins": ["gemini"] },
324
+ "install":
325
+ [
326
+ {
327
+ "id": "brew",
328
+ "kind": "brew",
329
+ "formula": "gemini-cli",
330
+ "bins": ["gemini"],
331
+ "label": "Install Gemini CLI (brew)",
332
+ },
333
+ ],
334
+ },
335
+ }
336
+ ---
337
+ ```
338
+
339
+ <AccordionGroup>
340
+ <Accordion title="Installer selection rules">
341
+ - If multiple installers are listed, the gateway picks a single preferred option (brew when available, otherwise node).
342
+ - If all installers are `download`, Nodmix lists each entry so you can see the available artifacts.
343
+ - Installer specs can include `os: ["darwin"|"linux"|"win32"]` to filter options by platform.
344
+ - Node installs honor `skills.install.nodeManager` in `nodmix.json` (default: npm; options: npm/pnpm/yarn/bun). This only affects skill installs; the Gateway runtime should still be Node - Bun is not recommended for WhatsApp/Telegram.
345
+ - Gateway-backed installer selection is preference-driven: when install specs mix kinds, Nodmix prefers Homebrew when `skills.install.preferBrew` is enabled and `brew` exists, then `uv`, then the configured node manager, then other fallbacks like `go` or `download`.
346
+ - If every install spec is `download`, Nodmix surfaces all download options instead of collapsing to one preferred installer.
347
+
348
+ </Accordion>
349
+ <Accordion title="Per-installer details">
350
+ - **Homebrew installs:** Nodmix does not auto-install Homebrew or translate
351
+ brew formulas into system package manager commands. In Linux containers
352
+ without `brew`, onboarding hides brew-only dependency installers; use a
353
+ custom image or install the dependency manually before enabling that skill.
354
+ - **Go installs:** if `go` is missing and `brew` is available, the gateway installs Go via Homebrew first and sets `GOBIN` to Homebrew's `bin` when possible.
355
+ - **Download installs:** `url` (required), `archive` (`tar.gz` | `tar.bz2` | `zip`), `extract` (default: auto when archive detected), `stripComponents`, `targetDir` (default: `~/.nodmix/tools/<skillKey>`).
356
+
357
+ </Accordion>
358
+ </AccordionGroup>
359
+
360
+ ## Config overrides
361
+
362
+ Bundled and managed skills can be toggled and supplied with env values
363
+ under `skills.entries` in `~/.nodmix/nodmix.json`:
364
+
365
+ ```json5
366
+ {
367
+ skills: {
368
+ entries: {
369
+ "image-lab": {
370
+ enabled: true,
371
+ apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, // or plaintext string
372
+ env: {
373
+ GEMINI_API_KEY: "GEMINI_KEY_HERE",
374
+ },
375
+ config: {
376
+ endpoint: "https://example.invalid",
377
+ model: "nano-pro",
378
+ },
379
+ },
380
+ peekaboo: { enabled: true },
381
+ sag: { enabled: false },
382
+ },
383
+ },
384
+ }
385
+ ```
386
+
387
+ <ParamField path="enabled" type="boolean">
388
+ `false` disables the skill even if it is bundled or installed.
389
+ The bundled `coding-agent` skill is opt-in: set
390
+ `skills.entries.coding-agent.enabled: true` before exposing it to agents,
391
+ then make sure one of `claude`, `codex`, `opencode`, or `pi` is installed and
392
+ authenticated for its own CLI.
393
+ </ParamField>
394
+ <ParamField path="apiKey" type='string | { source, provider, id }'>
395
+ Convenience for skills that declare `metadata.nodmix.primaryEnv`. Supports plaintext or SecretRef.
396
+ </ParamField>
397
+ <ParamField path="env" type="Record<string, string>">
398
+ Injected only if the variable is not already set in the process.
399
+ </ParamField>
400
+ <ParamField path="config" type="object">
401
+ Optional bag for custom per-skill fields. Custom keys must live here.
402
+ </ParamField>
403
+ <ParamField path="allowBundled" type="string[]">
404
+ Optional allowlist for **bundled** skills only. If set, only bundled skills in the list are eligible (managed/workspace skills unaffected).
405
+ </ParamField>
406
+
407
+ If the skill name contains hyphens, quote the key (JSON5 allows quoted
408
+ keys). Config keys match the **skill name** by default - if a skill
409
+ defines `metadata.nodmix.skillKey`, use that key under `skills.entries`.
410
+
411
+ <Note>
412
+ For stock image generation/editing inside Nodmix, use the core
413
+ `image_generate` tool with `agents.defaults.imageGenerationModel` instead
414
+ of a bundled skill. Skill examples here are for custom or third-party
415
+ workflows. For native image analysis use the `image` tool with
416
+ `agents.defaults.imageModel`. If you pick `openai/*`, `google/*`,
417
+ `fal/*`, or another provider-specific image model, add that provider's
418
+ auth/API key too.
419
+ </Note>
420
+
421
+ ## Environment injection
422
+
423
+ When an agent run starts, Nodmix:
424
+
425
+ 1. Reads skill metadata.
426
+ 2. Applies `skills.entries.<key>.env` and `skills.entries.<key>.apiKey` to `process.env`.
427
+ 3. Builds the system prompt with **eligible** skills.
428
+ 4. Restores the original environment after the run ends.
429
+
430
+ Environment injection is **scoped to the agent run**, not a global shell
431
+ environment.
432
+
433
+ For the bundled `claude-cli` backend, Nodmix also materializes the same
434
+ eligible snapshot as a temporary Claude Code plugin and passes it with
435
+ `--plugin-dir`. Claude Code can then use its native skill resolver while
436
+ Nodmix still owns precedence, per-agent allowlists, gating, and
437
+ `skills.entries.*` env/API key injection. Other CLI backends use the
438
+ prompt catalog only.
439
+
440
+ ## Snapshots and refresh
441
+
442
+ Nodmix snapshots the eligible skills **when a session starts** and
443
+ reuses that list for subsequent turns in the same session. Changes to
444
+ skills or config take effect on the next new session.
445
+
446
+ Skills can refresh mid-session in two cases:
447
+
448
+ - The skills watcher is enabled.
449
+ - A new eligible remote node appears.
450
+
451
+ Think of this as a **hot reload**: the refreshed list is picked up on the
452
+ next agent turn. If the effective agent skill allowlist changes for that
453
+ session, Nodmix refreshes the snapshot so visible skills stay aligned
454
+ with the current agent.
455
+
456
+ ### Skills watcher
457
+
458
+ By default, Nodmix watches skill folders and bumps the skills snapshot
459
+ when `SKILL.md` files change. Configure under `skills.load`:
460
+
461
+ ```json5
462
+ {
463
+ skills: {
464
+ load: {
465
+ extraDirs: ["~/Projects/agent-scripts/skills"],
466
+ allowSymlinkTargets: ["~/Projects/manager/skills"],
467
+ watch: true,
468
+ watchDebounceMs: 250,
469
+ },
470
+ },
471
+ }
472
+ ```
473
+
474
+ Use `allowSymlinkTargets` for intentional workspace, project-agent, or extra-dir
475
+ layouts where a skill root contains a symlink, for example
476
+ `<workspace>/skills/manager -> ~/Projects/manager/skills`. Managed
477
+ `~/.nodmix/skills` and personal `~/.agents/skills` can follow skill-directory
478
+ symlinks from local skill managers by default, but the target list is still
479
+ matched after realpath resolution and should stay narrow when configured.
480
+
481
+ ### Remote macOS nodes (Linux gateway)
482
+
483
+ If the Gateway runs on Linux but a **macOS node** is connected with
484
+ `system.run` allowed (Exec approvals security not set to `deny`),
485
+ Nodmix can treat macOS-only skills as eligible when the required
486
+ binaries are present on that node. The agent should execute those skills
487
+ via the `exec` tool with `host=node`.
488
+
489
+ This relies on the node reporting its command support and on a bin probe
490
+ via `system.which` or `system.run`. Offline nodes do **not** make
491
+ remote-only skills visible. If a connected node stops answering bin
492
+ probes, Nodmix clears its cached bin matches so agents no longer see
493
+ skills that cannot currently run there.
494
+
495
+ ## Token impact
496
+
497
+ When skills are eligible, Nodmix injects a compact XML list of available
498
+ skills into the system prompt (via `formatSkillsForPrompt` in
499
+ `pi-coding-agent`). The cost is deterministic:
500
+
501
+ - **Base overhead** (only when ≥1 skill): 195 characters.
502
+ - **Per skill:** 97 characters + the length of the XML-escaped `<name>`, `<description>`, and `<location>` values.
503
+
504
+ Formula (characters):
505
+
506
+ ```text
507
+ total = 195 + Σ (97 + len(name_escaped) + len(description_escaped) + len(location_escaped))
508
+ ```
509
+
510
+ XML escaping expands `& < > " '` into entities (`&amp;`, `&lt;`, etc.),
511
+ increasing length. Token counts vary by model tokenizer. A rough
512
+ OpenAI-style estimate is ~4 chars/token, so **97 chars ≈ 24 tokens** per
513
+ skill plus your actual field lengths.
514
+
515
+ ## Managed skills lifecycle
516
+
517
+ Nodmix ships a baseline set of skills as **bundled skills** with the
518
+ install (npm package or Nodmix.app). `~/.nodmix/skills` exists for
519
+ local overrides - for example, pinning or patching a skill without
520
+ changing the bundled copy. Workspace skills are user-owned and override
521
+ both on name conflicts.
522
+
523
+ ## Looking for more skills?
524
+
525
+ Browse [https://clawhub.ai](https://clawhub.ai). Full configuration
526
+ schema: [Skills config](/tools/skills-config).
527
+
528
+ ## Related
529
+
530
+ - [ClawHub](/clawhub) - public skills registry
531
+ - [Creating skills](/tools/creating-skills) - building custom skills
532
+ - [Plugins](/tools/plugin) - plugin system overview
533
+ - [Skill Workshop plugin](/plugins/skill-workshop) - generate skills from agent work
534
+ - [Skills config](/tools/skills-config) - skill configuration reference
535
+ - [Slash commands](/tools/slash-commands) - all available slash commands