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,162 @@
1
+ ---
2
+ summary: "Tavily search and extract tools"
3
+ read_when:
4
+ - You want Tavily-backed web search
5
+ - You need a Tavily API key
6
+ - You want Tavily as a web_search provider
7
+ - You want content extraction from URLs
8
+ title: "Tavily"
9
+ ---
10
+
11
+ [Tavily](https://tavily.com) is a search API designed for AI applications. Nodmix exposes it in two ways:
12
+
13
+ - as the `web_search` provider for the generic search tool
14
+ - as explicit plugin tools: `tavily_search` and `tavily_extract`
15
+
16
+ Tavily returns structured results optimized for LLM consumption with configurable search depth, topic filtering, domain filters, AI-generated answer summaries, and content extraction from URLs (including JavaScript-rendered pages).
17
+
18
+ | Property | Value |
19
+ | ------------- | ----------------------------------- |
20
+ | Plugin id | `tavily` |
21
+ | Auth | `TAVILY_API_KEY` or config `apiKey` |
22
+ | Base URL | `https://api.tavily.com` (default) |
23
+ | Bundled tools | `tavily_search`, `tavily_extract` |
24
+
25
+ ## Getting started
26
+
27
+ <Steps>
28
+ <Step title="Get an API key">
29
+ Create a Tavily account at [tavily.com](https://tavily.com), then generate an API key in the dashboard.
30
+ </Step>
31
+ <Step title="Configure the plugin and provider">
32
+ ```json5
33
+ {
34
+ plugins: {
35
+ entries: {
36
+ tavily: {
37
+ enabled: true,
38
+ config: {
39
+ webSearch: {
40
+ apiKey: "tvly-...", // optional if TAVILY_API_KEY is set
41
+ baseUrl: "https://api.tavily.com",
42
+ },
43
+ },
44
+ },
45
+ },
46
+ },
47
+ tools: {
48
+ web: {
49
+ search: {
50
+ provider: "tavily",
51
+ },
52
+ },
53
+ },
54
+ }
55
+ ```
56
+ </Step>
57
+ <Step title="Verify search runs">
58
+ Trigger a `web_search` from any agent, or call `tavily_search` directly.
59
+ </Step>
60
+ </Steps>
61
+
62
+ <Tip>
63
+ Choosing Tavily in onboarding or `nodmix configure --section web` enables the bundled Tavily plugin automatically.
64
+ </Tip>
65
+
66
+ ## Tool reference
67
+
68
+ ### `tavily_search`
69
+
70
+ Use this when you want Tavily-specific search controls instead of generic `web_search`.
71
+
72
+ | Parameter | Type | Constraints / default | Description |
73
+ | ----------------- | ------------ | -------------------------------------- | ----------------------------------------------- |
74
+ | `query` | string | required | Search query string. Keep under 400 characters. |
75
+ | `search_depth` | enum | `basic` (default), `advanced` | `advanced` is slower but higher relevance. |
76
+ | `topic` | enum | `general` (default), `news`, `finance` | Filter by topic family. |
77
+ | `max_results` | integer | 1-20 | Number of results. |
78
+ | `include_answer` | boolean | default `false` | Include a Tavily AI-generated answer summary. |
79
+ | `time_range` | enum | `day`, `week`, `month`, `year` | Filter results by recency. |
80
+ | `include_domains` | string array | (none) | Only include results from these domains. |
81
+ | `exclude_domains` | string array | (none) | Exclude results from these domains. |
82
+
83
+ Search depth tradeoff:
84
+
85
+ | Depth | Speed | Relevance | Best for |
86
+ | ---------- | ------ | --------- | ------------------------------------ |
87
+ | `basic` | Faster | High | General-purpose queries (default). |
88
+ | `advanced` | Slower | Highest | Precision research and fact-finding. |
89
+
90
+ ### `tavily_extract`
91
+
92
+ Use this to extract clean content from one or more URLs. Handles JavaScript-rendered pages and supports query-focused chunking for targeted extraction.
93
+
94
+ | Parameter | Type | Constraints / default | Description |
95
+ | ------------------- | ------------ | ----------------------------- | ----------------------------------------------------------- |
96
+ | `urls` | string array | required, 1-20 | URLs to extract content from. |
97
+ | `query` | string | (optional) | Rerank extracted chunks by relevance to this query. |
98
+ | `extract_depth` | enum | `basic` (default), `advanced` | Use `advanced` for JS-heavy pages, SPAs, or dynamic tables. |
99
+ | `chunks_per_source` | integer | 1-5; **requires `query`** | Chunks returned per URL. Errors if set without `query`. |
100
+ | `include_images` | boolean | default `false` | Include image URLs in results. |
101
+
102
+ Extract depth tradeoff:
103
+
104
+ | Depth | When to use |
105
+ | ---------- | ------------------------------------------ |
106
+ | `basic` | Simple pages. Try this first. |
107
+ | `advanced` | JS-rendered SPAs, dynamic content, tables. |
108
+
109
+ <Tip>
110
+ Batch larger URL lists into multiple `tavily_extract` calls (max 20 per request). Use `query` plus `chunks_per_source` to get only relevant content instead of full pages.
111
+ </Tip>
112
+
113
+ ## Choosing the right tool
114
+
115
+ | Need | Tool |
116
+ | ------------------------------------ | ---------------- |
117
+ | Quick web search, no special options | `web_search` |
118
+ | Search with depth, topic, AI answers | `tavily_search` |
119
+ | Extract content from specific URLs | `tavily_extract` |
120
+
121
+ <Note>
122
+ The generic `web_search` tool with Tavily as provider supports `query` and `count` (up to 20 results). For Tavily-specific controls (`search_depth`, `topic`, `include_answer`, domain filters, time range), use `tavily_search` instead.
123
+ </Note>
124
+
125
+ ## Advanced configuration
126
+
127
+ <AccordionGroup>
128
+ <Accordion title="API key resolution order">
129
+ The Tavily client looks up its API key in this order:
130
+
131
+ 1. `plugins.entries.tavily.config.webSearch.apiKey` (resolved through SecretRefs).
132
+ 2. `TAVILY_API_KEY` from the gateway environment.
133
+
134
+ `tavily_extract` raises a setup error if neither is present.
135
+
136
+ </Accordion>
137
+
138
+ <Accordion title="Custom base URL">
139
+ Override `plugins.entries.tavily.config.webSearch.baseUrl` if you front Tavily through a proxy. The default is `https://api.tavily.com`.
140
+ </Accordion>
141
+
142
+ <Accordion title="`chunks_per_source` requires `query`">
143
+ `tavily_extract` rejects calls that pass `chunks_per_source` without a `query`. Tavily ranks chunks by query relevance, so the parameter is meaningless without one.
144
+ </Accordion>
145
+ </AccordionGroup>
146
+
147
+ ## Related
148
+
149
+ <CardGroup cols={2}>
150
+ <Card title="Web Search overview" href="/tools/web" icon="magnifying-glass">
151
+ All providers and auto-detection rules.
152
+ </Card>
153
+ <Card title="Firecrawl" href="/tools/firecrawl" icon="fire">
154
+ Search plus scraping with content extraction.
155
+ </Card>
156
+ <Card title="Exa Search" href="/tools/exa-search" icon="binoculars">
157
+ Neural search with content extraction.
158
+ </Card>
159
+ <Card title="Configuration" href="/gateway/configuration" icon="gear">
160
+ Full config schema for plugin entries and tool routing.
161
+ </Card>
162
+ </CardGroup>
@@ -0,0 +1,140 @@
1
+ ---
2
+ summary: "Directive syntax for /think, /fast, /verbose, /trace, and reasoning visibility"
3
+ read_when:
4
+ - Adjusting thinking, fast-mode, or verbose directive parsing or defaults
5
+ title: "Thinking levels"
6
+ ---
7
+
8
+ ## What it does
9
+
10
+ - Inline directive in any inbound body: `/t <level>`, `/think:<level>`, or `/thinking <level>`.
11
+ - Levels (aliases): `off | minimal | low | medium | high | xhigh | adaptive | max`
12
+ - minimal → "think"
13
+ - low → "think hard"
14
+ - medium → "think harder"
15
+ - high → "ultrathink" (max budget)
16
+ - xhigh → "ultrathink+" (GPT-5.2+ and Codex models, plus Anthropic Claude Opus 4.7 effort)
17
+ - adaptive → provider-managed adaptive thinking (supported for Claude 4.6 on Anthropic/Bedrock, Anthropic Claude Opus 4.7, and Google Gemini dynamic thinking)
18
+ - max → provider max reasoning (Anthropic Claude Opus 4.7; Ollama maps this to its highest native `think` effort)
19
+ - `x-high`, `x_high`, `extra-high`, `extra high`, and `extra_high` map to `xhigh`.
20
+ - `highest` maps to `high`.
21
+ - Provider notes:
22
+ - Thinking menus and pickers are provider-profile driven. Provider plugins declare the exact level set for the selected model, including labels such as binary `on`.
23
+ - `adaptive`, `xhigh`, and `max` are only advertised for provider/model profiles that support them. Typed directives for unsupported levels are rejected with that model's valid options.
24
+ - Existing stored unsupported levels are remapped by provider profile rank. `adaptive` falls back to `medium` on non-adaptive models, while `xhigh` and `max` fall back to the largest supported non-off level for the selected model.
25
+ - Anthropic Claude 4.6 models default to `adaptive` when no explicit thinking level is set.
26
+ - Anthropic Claude Opus 4.7 does not default to adaptive thinking. Its API effort default remains provider-owned unless you explicitly set a thinking level.
27
+ - Anthropic Claude Opus 4.7 maps `/think xhigh` to adaptive thinking plus `output_config.effort: "xhigh"`, because `/think` is a thinking directive and `xhigh` is the Opus 4.7 effort setting.
28
+ - Anthropic Claude Opus 4.7 also exposes `/think max`; it maps to the same provider-owned max effort path.
29
+ - Direct DeepSeek V4 models expose `/think xhigh|max`; both map to DeepSeek `reasoning_effort: "max"` while lower non-off levels map to `high`.
30
+ - OpenRouter-routed DeepSeek V4 models expose `/think xhigh` and send OpenRouter-supported `reasoning_effort` values. Stored `max` overrides fall back to `xhigh`.
31
+ - Ollama thinking-capable models expose `/think low|medium|high|max`; `max` maps to native `think: "high"` because Ollama's native API accepts `low`, `medium`, and `high` effort strings.
32
+ - OpenAI GPT models map `/think` through model-specific Responses API effort support. `/think off` sends `reasoning.effort: "none"` only when the target model supports it; otherwise Nodmix omits the disabled reasoning payload instead of sending an unsupported value.
33
+ - Custom OpenAI-compatible catalog entries can opt into `/think xhigh` by setting `models.providers.<provider>.models[].compat.supportedReasoningEfforts` to include `"xhigh"`. This uses the same compat metadata that maps outbound OpenAI reasoning effort payloads, so menus, session validation, agent CLI, and `llm-task` agree with transport behavior.
34
+ - Stale configured OpenRouter Hunter Alpha refs skip proxy reasoning injection because that retired route could return final answer text through reasoning fields.
35
+ - Google Gemini maps `/think adaptive` to Gemini's provider-owned dynamic thinking. Gemini 3 requests omit a fixed `thinkingLevel`, while Gemini 2.5 requests send `thinkingBudget: -1`; fixed levels still map to the closest Gemini `thinkingLevel` or budget for that model family.
36
+ - MiniMax (`minimax/*`) on the Anthropic-compatible streaming path defaults to `thinking: { type: "disabled" }` unless you explicitly set thinking in model params or request params. This avoids leaked `reasoning_content` deltas from MiniMax's non-native Anthropic stream format.
37
+ - Z.AI (`zai/*`) only supports binary thinking (`on`/`off`). Any non-`off` level is treated as `on` (mapped to `low`).
38
+ - Moonshot (`moonshot/*`) maps `/think off` to `thinking: { type: "disabled" }` and any non-`off` level to `thinking: { type: "enabled" }`. When thinking is enabled, Moonshot only accepts `tool_choice` `auto|none`; Nodmix normalizes incompatible values to `auto`.
39
+
40
+ ## Resolution order
41
+
42
+ 1. Inline directive on the message (applies only to that message).
43
+ 2. Session override (set by sending a directive-only message).
44
+ 3. Per-agent default (`agents.list[].thinkingDefault` in config).
45
+ 4. Global default (`agents.defaults.thinkingDefault` in config).
46
+ 5. Fallback: provider-declared default when available; otherwise reasoning-capable models resolve to `medium` or the nearest supported non-`off` level for that model, and non-reasoning models stay `off`.
47
+
48
+ ## Setting a session default
49
+
50
+ - Send a message that is **only** the directive (whitespace allowed), e.g. `/think:medium` or `/t high`.
51
+ - That sticks for the current session (per-sender by default). Use `/think default` to clear the session override and inherit the configured/provider default; aliases include `inherit`, `clear`, `reset`, and `unpin`.
52
+ - `/think off` stores an explicit off override. It disables thinking until you change or clear the session override.
53
+ - Confirmation reply is sent (`Thinking level set to high.` / `Thinking disabled.`). If the level is invalid (e.g. `/thinking big`), the command is rejected with a hint and the session state is left unchanged.
54
+ - Send `/think` (or `/think:`) with no argument to see the current thinking level.
55
+
56
+ ## Application by agent
57
+
58
+ - **Embedded Pi**: the resolved level is passed to the in-process Pi agent runtime.
59
+ - **Claude CLI backend**: non-off levels are passed to Claude Code as `--effort` when using `claude-cli`; see [CLI backends](/gateway/cli-backends).
60
+
61
+ ## Fast mode (/fast)
62
+
63
+ - Levels: `on|off|default`.
64
+ - Directive-only message toggles a session fast-mode override and replies `Fast mode enabled.` / `Fast mode disabled.`. Use `/fast default` to clear the session override and inherit the configured default; aliases include `inherit`, `clear`, `reset`, and `unpin`.
65
+ - Send `/fast` (or `/fast status`) with no mode to see the current effective fast-mode state.
66
+ - Nodmix resolves fast mode in this order:
67
+ 1. Inline/directive-only `/fast on|off` override (`/fast default` clears this layer)
68
+ 2. Session override
69
+ 3. Per-agent default (`agents.list[].fastModeDefault`)
70
+ 4. Per-model config: `agents.defaults.models["<provider>/<model>"].params.fastMode`
71
+ 5. Fallback: `off`
72
+ - For `openai/*`, fast mode maps to OpenAI priority processing by sending `service_tier=priority` on supported Responses requests.
73
+ - For `openai-codex/*`, fast mode sends the same `service_tier=priority` flag on Codex Responses. Nodmix keeps one shared `/fast` toggle across both auth paths.
74
+ - For direct public `anthropic/*` requests, including OAuth-authenticated traffic sent to `api.anthropic.com`, fast mode maps to Anthropic service tiers: `/fast on` sets `service_tier=auto`, `/fast off` sets `service_tier=standard_only`.
75
+ - For `minimax/*` on the Anthropic-compatible path, `/fast on` (or `params.fastMode: true`) rewrites `MiniMax-M2.7` to `MiniMax-M2.7-highspeed`.
76
+ - Explicit Anthropic `serviceTier` / `service_tier` model params override the fast-mode default when both are set. Nodmix still skips Anthropic service-tier injection for non-Anthropic proxy base URLs.
77
+ - `/status` shows `Fast` only when fast mode is enabled.
78
+
79
+ ## Verbose directives (/verbose or /v)
80
+
81
+ - Levels: `on` (minimal) | `full` | `off` (default).
82
+ - Directive-only message toggles session verbose and replies `Verbose logging enabled.` / `Verbose logging disabled.`; invalid levels return a hint without changing state.
83
+ - `/verbose off` stores an explicit session override; clear it via the Sessions UI by choosing `inherit`.
84
+ - Inline directive affects only that message; session/global defaults apply otherwise.
85
+ - Send `/verbose` (or `/verbose:`) with no argument to see the current verbose level.
86
+ - When verbose is on, agents that emit structured tool results (Pi, other JSON agents) send each tool call back as its own metadata-only message, prefixed with `<emoji> <tool-name>: <arg>` when available. These tool summaries are sent as soon as each tool starts (separate bubbles), not as streaming deltas.
87
+ - Tool failure summaries remain visible in normal mode, but raw error detail suffixes are hidden unless verbose is `full`.
88
+ - When verbose is `full`, tool outputs are also forwarded after completion (separate bubble, truncated to a safe length). If you toggle `/verbose on|full|off` while a run is in-flight, subsequent tool bubbles honor the new setting.
89
+ - `agents.defaults.toolProgressDetail` controls the shape of `/verbose` tool summaries and progress-draft tool lines. Use `"explain"` (default) for compact human labels such as `🛠️ Exec: checking JS syntax`; use `"raw"` when you also want the raw command/detail appended for debugging. Per-agent `agents.list[].toolProgressDetail` overrides the default.
90
+ - `explain`: `🛠️ Exec: check JS syntax for /tmp/app.js`
91
+ - `raw`: `🛠️ Exec: check JS syntax for /tmp/app.js, node --check /tmp/app.js`
92
+
93
+ ## Plugin trace directives (/trace)
94
+
95
+ - Levels: `on` | `off` (default).
96
+ - Directive-only message toggles session plugin trace output and replies `Plugin trace enabled.` / `Plugin trace disabled.`.
97
+ - Inline directive affects only that message; session/global defaults apply otherwise.
98
+ - Send `/trace` (or `/trace:`) with no argument to see the current trace level.
99
+ - `/trace` is narrower than `/verbose`: it only exposes plugin-owned trace/debug lines such as Active Memory debug summaries.
100
+ - Trace lines can appear in `/status` and as a follow-up diagnostic message after the normal assistant reply.
101
+
102
+ ## Reasoning visibility (/reasoning)
103
+
104
+ - Levels: `on|off|stream`.
105
+ - Directive-only message toggles whether thinking blocks are shown in replies.
106
+ - When enabled, reasoning is sent as a **separate message** prefixed with `Thinking`.
107
+ - `stream` (Telegram only): streams reasoning into the Telegram draft bubble while the reply is generating, then sends the final answer without reasoning.
108
+ - Alias: `/reason`.
109
+ - Send `/reasoning` (or `/reasoning:`) with no argument to see the current reasoning level.
110
+ - Resolution order: inline directive, then session override, then per-agent default (`agents.list[].reasoningDefault`), then global default (`agents.defaults.reasoningDefault`), then fallback (`off`).
111
+
112
+ Malformed local-model reasoning tags are handled conservatively. Closed `<think>...</think>` blocks stay hidden on normal replies, and unclosed reasoning after already visible text is also hidden. If a reply is fully wrapped in a single unclosed opening tag and would otherwise deliver as empty text, Nodmix removes the malformed opening tag and delivers the remaining text.
113
+
114
+ ## Related
115
+
116
+ - Elevated mode docs live in [Elevated mode](/tools/elevated).
117
+
118
+ ## Heartbeats
119
+
120
+ - Heartbeat probe body is the configured heartbeat prompt (default: `Read HEARTBEAT.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK.`). Inline directives in a heartbeat message apply as usual (but avoid changing session defaults from heartbeats).
121
+ - Heartbeat delivery defaults to the final payload only. To also send the separate `Thinking` message (when available), set `agents.defaults.heartbeat.includeReasoning: true` or per-agent `agents.list[].heartbeat.includeReasoning: true`.
122
+
123
+ ## Web chat UI
124
+
125
+ - The web chat thinking selector mirrors the session's stored level from the inbound session store/config when the page loads.
126
+ - Picking another level writes the session override immediately via `sessions.patch`; it does not wait for the next send and it is not a one-shot `thinkingOnce` override.
127
+ - The first option is always the clear-override choice. It shows `Inherited: <resolved level>` when the session is inheriting a non-off effective default, or `Off` when inherited thinking is disabled.
128
+ - Explicit picker choices are labeled as overrides, while preserving provider labels when present (for example `Override: maximum` for a provider-labeled `max` option).
129
+ - The picker uses `thinkingLevels` returned by the gateway session row/defaults, with `thinkingOptions` kept as a legacy label list. The browser UI does not keep its own provider regex list; plugins own model-specific level sets.
130
+ - `/think:<level>` still works and updates the same stored session level, so chat directives and the picker stay in sync.
131
+
132
+ ## Provider profiles
133
+
134
+ - Provider plugins can expose `resolveThinkingProfile(ctx)` to define the model's supported levels and default.
135
+ - Provider plugins that proxy Claude models should reuse `resolveClaudeThinkingProfile(modelId)` from `nodmix/plugin-sdk/provider-model-shared` so direct Anthropic and proxy catalogs stay aligned.
136
+ - Each profile level has a stored canonical `id` (`off`, `minimal`, `low`, `medium`, `high`, `xhigh`, `adaptive`, or `max`) and may include a display `label`. Binary providers use `{ id: "low", label: "on" }`.
137
+ - Tool plugins that need to validate an explicit thinking override should use `api.runtime.agent.resolveThinkingPolicy({ provider, model })` plus `api.runtime.agent.normalizeThinkingLevel(...)`; they should not keep their own provider/model level lists.
138
+ - Tool plugins with access to configured custom model metadata can pass `catalog` into `resolveThinkingPolicy` so `compat.supportedReasoningEfforts` opt-ins are reflected in plugin-side validation.
139
+ - Published legacy hooks (`supportsXHighThinking`, `isBinaryThinking`, and `resolveDefaultThinkingLevel`) remain as compatibility adapters, but new custom level sets should use `resolveThinkingProfile`.
140
+ - Gateway rows/defaults expose `thinkingLevels`, `thinkingOptions`, and `thinkingDefault` so ACP/chat clients render the same profile ids and labels that runtime validation uses.
@@ -0,0 +1,81 @@
1
+ ---
2
+ summary: "Compact noisy exec and bash tool results with an optional bundled plugin"
3
+ title: "Tokenjuice"
4
+ read_when:
5
+ - You want shorter `exec` or `bash` tool results in Nodmix
6
+ - You want to enable the bundled tokenjuice plugin
7
+ - You need to understand what tokenjuice changes and what it leaves raw
8
+ ---
9
+
10
+ `tokenjuice` is an optional bundled plugin that compacts noisy `exec` and `bash`
11
+ tool results after the command has already run.
12
+
13
+ It changes the returned `tool_result`, not the command itself. Tokenjuice does
14
+ not rewrite shell input, rerun commands, or change exit codes.
15
+
16
+ Today this applies to PI embedded runs and Nodmix dynamic tools in the Codex
17
+ app-server harness. Tokenjuice hooks Nodmix's tool-result middleware and
18
+ trims the output before it goes back into the active harness session.
19
+
20
+ ## Enable the plugin
21
+
22
+ Fast path:
23
+
24
+ ```bash
25
+ nodmix config set plugins.entries.tokenjuice.enabled true
26
+ ```
27
+
28
+ Equivalent:
29
+
30
+ ```bash
31
+ nodmix plugins enable tokenjuice
32
+ ```
33
+
34
+ Nodmix already ships the plugin. There is no separate `plugins install`
35
+ or `tokenjuice install nodmix` step.
36
+
37
+ If you prefer editing config directly:
38
+
39
+ ```json5
40
+ {
41
+ plugins: {
42
+ entries: {
43
+ tokenjuice: {
44
+ enabled: true,
45
+ },
46
+ },
47
+ },
48
+ }
49
+ ```
50
+
51
+ ## What tokenjuice changes
52
+
53
+ - Compacts noisy `exec` and `bash` results before they are fed back into the session.
54
+ - Keeps the original command execution untouched.
55
+ - Preserves exact file-content reads and other commands that tokenjuice should leave raw.
56
+ - Stays opt-in: disable the plugin if you want verbatim output everywhere.
57
+
58
+ ## Verify it is working
59
+
60
+ 1. Enable the plugin.
61
+ 2. Start a session that can call `exec`.
62
+ 3. Run a noisy command such as `git status`.
63
+ 4. Check that the returned tool result is shorter and more structured than the raw shell output.
64
+
65
+ ## Disable the plugin
66
+
67
+ ```bash
68
+ nodmix config set plugins.entries.tokenjuice.enabled false
69
+ ```
70
+
71
+ Or:
72
+
73
+ ```bash
74
+ nodmix plugins disable tokenjuice
75
+ ```
76
+
77
+ ## Related
78
+
79
+ - [Exec tool](/tools/exec)
80
+ - [Thinking levels](/tools/thinking)
81
+ - [Context engine](/concepts/context-engine)
@@ -0,0 +1,269 @@
1
+ ---
2
+ summary: "Tool Search: compact large PI tool catalogs behind search, describe, and call"
3
+ title: "Tool Search"
4
+ read_when:
5
+ - You want PI agents to use a large tool catalog without adding every tool schema to the prompt
6
+ - You want Nodmix tools, MCP tools, and client tools exposed through one compact PI surface
7
+ - You are implementing or debugging tool discovery for PI runs
8
+ ---
9
+
10
+ Tool Search is an experimental Nodmix PI-agent feature. It gives PI agents one
11
+ compact way to discover and call large tool catalogs. It is useful when the run
12
+ has many available tools but the model is likely to need only a few of them.
13
+
14
+ This page documents Nodmix PI Tool Search. It is not the Codex-native tool
15
+ search or dynamic-tools surface. Codex-native code mode, tool search, deferred
16
+ dynamic tools, and nested tool calls are stable Codex harness surfaces and do
17
+ not depend on `tools.toolSearch`.
18
+
19
+ When enabled for PI, the model receives one `tool_search_code` tool by default.
20
+ That tool runs a short JavaScript body in an isolated Node subprocess with an
21
+ `nodmix.tools` bridge:
22
+
23
+ ```js
24
+ const hits = await nodmix.tools.search("create a GitHub issue");
25
+ const tool = await nodmix.tools.describe(hits[0].id);
26
+ return await nodmix.tools.call(tool.id, {
27
+ title: "Crash on startup",
28
+ body: "Steps to reproduce...",
29
+ });
30
+ ```
31
+
32
+ The catalog can include Nodmix tools, plugin tools, MCP tools, and
33
+ client-provided tools. The model does not see every full schema up front.
34
+ Instead, it searches compact descriptors, describes one selected tool when it
35
+ needs the exact schema, and calls that tool through Nodmix.
36
+
37
+ Codex harness runs do not receive these experimental Nodmix Tool Search
38
+ controls. Nodmix passes product capabilities to Codex as dynamic tools, and
39
+ Codex owns the stable native code mode, native tool search, deferred dynamic
40
+ tools, and nested tool calls.
41
+
42
+ ## How a turn runs
43
+
44
+ At planning time the PI embedded runner builds the effective catalog for the
45
+ run:
46
+
47
+ 1. Resolve the active tool policy for the agent, profile, sandbox, and session.
48
+ 2. List eligible Nodmix and plugin tools.
49
+ 3. List eligible MCP tools through the session MCP runtime.
50
+ 4. Add eligible client tools supplied for the current run.
51
+ 5. Index compact descriptors for search.
52
+ 6. Expose either the PI code bridge or the structured fallback tools to the
53
+ model.
54
+
55
+ At execution time every real tool call returns to Nodmix. The isolated Node
56
+ runtime does not hold plugin implementations, MCP client objects, or secrets.
57
+ `nodmix.tools.call(...)` crosses the bridge back into the Gateway, where the
58
+ normal policy, approval, hook, logging, and result handling still apply.
59
+
60
+ ## Modes
61
+
62
+ `tools.toolSearch` has two model-facing modes:
63
+
64
+ - `code`: exposes `tool_search_code`, the default compact JavaScript bridge.
65
+ - `tools`: exposes `tool_search`, `tool_describe`, and `tool_call` as plain
66
+ structured tools for providers that should not receive code.
67
+
68
+ Both modes use the same catalog and execution path. The only difference is the
69
+ shape the model sees. If the current runtime cannot launch the isolated Node
70
+ code-mode child process, the default `code` mode falls back to `tools` before
71
+ catalog compaction.
72
+
73
+ Both modes are experimental. Prefer direct tool exposure for small PI tool
74
+ catalogs, and prefer the Codex-native stable surfaces for Codex harness runs.
75
+
76
+ There is no separate source-selection config. When Tool Search is enabled, the
77
+ catalog includes eligible Nodmix, MCP, and client tools after normal policy
78
+ filtering.
79
+
80
+ ## Why this exists
81
+
82
+ Large catalogs are useful but expensive. Sending every tool schema to the model
83
+ makes the request larger, slows planning, and increases accidental tool
84
+ selection.
85
+
86
+ Tool Search changes the shape:
87
+
88
+ - direct tools: the model sees every selected schema before the first token
89
+ - Tool Search code mode: the model sees one compact code tool and a short API
90
+ contract
91
+ - Tool Search tools mode: the model sees three compact structured fallback
92
+ tools
93
+ - during the turn: the model loads only the tool schemas it actually needs
94
+
95
+ Direct tool exposure is still the right default for small catalogs. Tool Search
96
+ is best when one run can see many tools, especially from MCP servers or
97
+ client-provided app tools.
98
+
99
+ ## API
100
+
101
+ `nodmix.tools.search(query, options?)`
102
+
103
+ Searches the effective catalog for the current run. Results are compact and safe
104
+ to put back into prompt context.
105
+
106
+ ```js
107
+ const hits = await nodmix.tools.search("calendar event", { limit: 5 });
108
+ ```
109
+
110
+ `nodmix.tools.describe(id)`
111
+
112
+ Loads full metadata for one search result, including the exact input schema.
113
+
114
+ ```js
115
+ const calendarCreate = await nodmix.tools.describe("mcp:calendar:create_event");
116
+ ```
117
+
118
+ `nodmix.tools.call(id, args)`
119
+
120
+ Calls a selected tool through Nodmix.
121
+
122
+ ```js
123
+ await nodmix.tools.call(calendarCreate.id, {
124
+ summary: "Planning",
125
+ start: "2026-05-09T14:00:00Z",
126
+ });
127
+ ```
128
+
129
+ The structured fallback mode exposes the same operations as tools:
130
+
131
+ - `tool_search`
132
+ - `tool_describe`
133
+ - `tool_call`
134
+
135
+ ## Runtime boundary
136
+
137
+ The code bridge runs in a short-lived Node subprocess. The subprocess starts
138
+ with Node permission mode enabled, an empty environment, no filesystem or
139
+ network grants, and no child-process or worker grants. Nodmix enforces a
140
+ parent-process wall-clock timeout and kills the subprocess on timeout, including
141
+ after async continuations.
142
+
143
+ The runtime exposes only:
144
+
145
+ - `console.log`, `console.warn`, and `console.error`
146
+ - `nodmix.tools.search`
147
+ - `nodmix.tools.describe`
148
+ - `nodmix.tools.call`
149
+
150
+ Normal Nodmix behavior still applies to final calls:
151
+
152
+ - tool allow and deny policies
153
+ - per-agent and per-sandbox tool restrictions
154
+ - channel/runtime tool policy
155
+ - approval hooks
156
+ - plugin `before_tool_call` hooks
157
+ - session identity, logs, and telemetry
158
+
159
+ ## Config
160
+
161
+ Enable Tool Search for PI runs with the default code bridge:
162
+
163
+ ```bash
164
+ nodmix config set tools.toolSearch true
165
+ ```
166
+
167
+ Equivalent JSON:
168
+
169
+ ```json5
170
+ {
171
+ tools: {
172
+ toolSearch: true,
173
+ },
174
+ }
175
+ ```
176
+
177
+ Use the structured fallback tools instead for PI runs:
178
+
179
+ ```json5
180
+ {
181
+ tools: {
182
+ toolSearch: {
183
+ mode: "tools",
184
+ },
185
+ },
186
+ }
187
+ ```
188
+
189
+ Tune code-mode timeout and search result limits:
190
+
191
+ ```json5
192
+ {
193
+ tools: {
194
+ toolSearch: {
195
+ mode: "code",
196
+ codeTimeoutMs: 10000,
197
+ searchDefaultLimit: 8,
198
+ maxSearchLimit: 20,
199
+ },
200
+ },
201
+ }
202
+ ```
203
+
204
+ Disable it:
205
+
206
+ ```json5
207
+ {
208
+ tools: {
209
+ toolSearch: false,
210
+ },
211
+ }
212
+ ```
213
+
214
+ ## Prompt and telemetry
215
+
216
+ Tool Search records enough telemetry to compare it with direct tool exposure:
217
+
218
+ - total serialized tool and prompt bytes sent to the harness
219
+ - catalog size and source breakdown
220
+ - search, describe, and call counts
221
+ - final tool calls executed through Nodmix
222
+ - selected tool ids and sources
223
+
224
+ Session logs should make it possible to answer:
225
+
226
+ - how many tool schemas the model saw up front
227
+ - how many search and describe operations it performed
228
+ - which final tool was called
229
+ - whether the result came from Nodmix, MCP, or a client tool
230
+
231
+ ## E2E validation
232
+
233
+ The gateway E2E runner proves both paths with the PI harness:
234
+
235
+ ```bash
236
+ node --import tsx scripts/tool-search-gateway-e2e.ts
237
+ ```
238
+
239
+ It creates a temporary fake plugin with a large tool catalog, starts the mock
240
+ OpenAI provider, starts a Gateway once in direct mode and once with Tool Search
241
+ enabled, then compares provider request payloads and session logs.
242
+
243
+ The regression proves:
244
+
245
+ 1. Direct mode can call the fake plugin tool.
246
+ 2. Tool Search can call the same fake plugin tool.
247
+ 3. Direct mode exposes the fake plugin tool schemas directly to the provider.
248
+ 4. Tool Search exposes only the compact bridge.
249
+ 5. The Tool Search request payload is smaller for the large fake catalog.
250
+ 6. Session logs show the expected tool-call counts and bridged call telemetry.
251
+
252
+ ## Failure behavior
253
+
254
+ Tool Search should fail closed:
255
+
256
+ - if a tool is not in the effective policy, search should not return it
257
+ - if a selected tool becomes unavailable, `tool_call` should fail
258
+ - if policy or approval blocks execution, the call result should report that
259
+ block instead of bypassing it
260
+ - if the code bridge cannot create an isolated runtime, use `mode: "tools"` or
261
+ disable Tool Search for that deployment
262
+
263
+ ## Related
264
+
265
+ - [Tools and plugins](/tools)
266
+ - [Multi-agent sandbox and tools](/tools/multi-agent-sandbox-tools)
267
+ - [Exec tool](/tools/exec)
268
+ - [ACP agents setup](/tools/acp-agents-setup)
269
+ - [Building plugins](/plugins/building-plugins)