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,195 @@
1
+ ---
2
+ summary: "web_fetch tool -- HTTP fetch with readable content extraction"
3
+ read_when:
4
+ - You want to fetch a URL and extract readable content
5
+ - You need to configure web_fetch or its Firecrawl fallback
6
+ - You want to understand web_fetch limits and caching
7
+ title: "Web fetch"
8
+ sidebarTitle: "Web Fetch"
9
+ ---
10
+
11
+ The `web_fetch` tool does a plain HTTP GET and extracts readable content
12
+ (HTML to markdown or text). It does **not** execute JavaScript.
13
+
14
+ For JS-heavy sites or login-protected pages, use the
15
+ [Web Browser](/tools/browser) instead.
16
+
17
+ ## Quick start
18
+
19
+ `web_fetch` is **enabled by default** -- no configuration needed. The agent can
20
+ call it immediately:
21
+
22
+ ```javascript
23
+ await web_fetch({ url: "https://example.com/article" });
24
+ ```
25
+
26
+ ## Tool parameters
27
+
28
+ <ParamField path="url" type="string" required>
29
+ URL to fetch. `http(s)` only.
30
+ </ParamField>
31
+
32
+ <ParamField path="extractMode" type="'markdown' | 'text'" default="markdown">
33
+ Output format after main-content extraction.
34
+ </ParamField>
35
+
36
+ <ParamField path="maxChars" type="number">
37
+ Truncate output to this many characters.
38
+ </ParamField>
39
+
40
+ ## How it works
41
+
42
+ <Steps>
43
+ <Step title="Fetch">
44
+ Sends an HTTP GET with a Chrome-like User-Agent and `Accept-Language`
45
+ header. Blocks private/internal hostnames and re-checks redirects.
46
+ </Step>
47
+ <Step title="Extract">
48
+ Runs Readability (main-content extraction) on the HTML response.
49
+ </Step>
50
+ <Step title="Fallback (optional)">
51
+ If Readability fails and Firecrawl is configured, retries through the
52
+ Firecrawl API with bot-circumvention mode.
53
+ </Step>
54
+ <Step title="Cache">
55
+ Results are cached for 15 minutes (configurable) to reduce repeated
56
+ fetches of the same URL.
57
+ </Step>
58
+ </Steps>
59
+
60
+ ## Config
61
+
62
+ ```json5
63
+ {
64
+ tools: {
65
+ web: {
66
+ fetch: {
67
+ enabled: true, // default: true
68
+ provider: "firecrawl", // optional; omit for auto-detect
69
+ maxChars: 50000, // max output chars
70
+ maxCharsCap: 50000, // hard cap for maxChars param
71
+ maxResponseBytes: 2000000, // max download size before truncation
72
+ timeoutSeconds: 30,
73
+ cacheTtlMinutes: 15,
74
+ maxRedirects: 3,
75
+ useTrustedEnvProxy: false, // let a trusted HTTP(S) env proxy resolve DNS
76
+ readability: true, // use Readability extraction
77
+ userAgent: "Mozilla/5.0 ...", // override User-Agent
78
+ ssrfPolicy: {
79
+ allowRfc2544BenchmarkRange: true, // opt-in for trusted fake-IP proxies using 198.18.0.0/15
80
+ allowIpv6UniqueLocalRange: true, // opt-in for trusted fake-IP proxies using fc00::/7
81
+ },
82
+ },
83
+ },
84
+ },
85
+ }
86
+ ```
87
+
88
+ ## Firecrawl fallback
89
+
90
+ If Readability extraction fails, `web_fetch` can fall back to
91
+ [Firecrawl](/tools/firecrawl) for bot-circumvention and better extraction:
92
+
93
+ ```json5
94
+ {
95
+ tools: {
96
+ web: {
97
+ fetch: {
98
+ provider: "firecrawl", // optional; omit for auto-detect from available credentials
99
+ },
100
+ },
101
+ },
102
+ plugins: {
103
+ entries: {
104
+ firecrawl: {
105
+ enabled: true,
106
+ config: {
107
+ webFetch: {
108
+ apiKey: "fc-...", // optional if FIRECRAWL_API_KEY is set
109
+ baseUrl: "https://api.firecrawl.dev",
110
+ onlyMainContent: true,
111
+ maxAgeMs: 86400000, // cache duration (1 day)
112
+ timeoutSeconds: 60,
113
+ },
114
+ },
115
+ },
116
+ },
117
+ },
118
+ }
119
+ ```
120
+
121
+ `plugins.entries.firecrawl.config.webFetch.apiKey` supports SecretRef objects.
122
+ Legacy `tools.web.fetch.firecrawl.*` config is auto-migrated by `nodmix doctor --fix`.
123
+
124
+ <Note>
125
+ If Firecrawl is enabled and its SecretRef is unresolved with no
126
+ `FIRECRAWL_API_KEY` env fallback, gateway startup fails fast.
127
+ </Note>
128
+
129
+ <Note>
130
+ Firecrawl `baseUrl` overrides are locked down: hosted traffic uses
131
+ `https://api.firecrawl.dev`; self-hosted overrides must target private or
132
+ internal endpoints, and `http://` is accepted only for those private targets.
133
+ </Note>
134
+
135
+ Current runtime behavior:
136
+
137
+ - `tools.web.fetch.provider` selects the fetch fallback provider explicitly.
138
+ - If `provider` is omitted, Nodmix auto-detects the first ready web-fetch
139
+ provider from available credentials. Non-sandboxed `web_fetch` can use
140
+ installed plugins that declare `contracts.webFetchProviders` and register a
141
+ matching provider at runtime. Today the bundled provider is Firecrawl.
142
+ - Sandboxed `web_fetch` calls stay limited to bundled providers.
143
+ - If Readability is disabled, `web_fetch` skips straight to the selected
144
+ provider fallback. If no provider is available, it fails closed.
145
+
146
+ ## Trusted env proxy
147
+
148
+ If your deployment requires `web_fetch` to go through a trusted outbound
149
+ HTTP(S) proxy, set `tools.web.fetch.useTrustedEnvProxy: true`.
150
+
151
+ In this mode, Nodmix still applies hostname-based SSRF checks before sending
152
+ the request, but it lets the proxy resolve DNS instead of doing local DNS
153
+ pinning. Enable this only when the proxy is operator-controlled and enforces
154
+ outbound policy after DNS resolution.
155
+
156
+ <Note>
157
+ If no HTTP(S) proxy env var is configured, or the target host is excluded by
158
+ `NO_PROXY`, `web_fetch` falls back to the normal strict path with local DNS
159
+ pinning.
160
+ </Note>
161
+
162
+ ## Limits and safety
163
+
164
+ - `maxChars` is clamped to `tools.web.fetch.maxCharsCap`
165
+ - Response body is capped at `maxResponseBytes` before parsing; oversized
166
+ responses are truncated with a warning
167
+ - Private/internal hostnames are blocked
168
+ - `tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRange` and
169
+ `tools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange` are narrow opt-ins
170
+ for trusted fake-IP proxy stacks; leave them unset unless your proxy owns
171
+ those synthetic ranges and enforces its own destination policy
172
+ - Redirects are checked and limited by `maxRedirects`
173
+ - `useTrustedEnvProxy` is an explicit opt-in and should only be enabled for
174
+ operator-controlled proxies that still enforce outbound policy after DNS
175
+ resolution
176
+ - `web_fetch` is best-effort -- some sites need the [Web Browser](/tools/browser)
177
+
178
+ ## Tool profiles
179
+
180
+ If you use tool profiles or allowlists, add `web_fetch` or `group:web`:
181
+
182
+ ```json5
183
+ {
184
+ tools: {
185
+ allow: ["web_fetch"],
186
+ // or: allow: ["group:web"] (includes web_fetch, web_search, and x_search)
187
+ },
188
+ }
189
+ ```
190
+
191
+ ## Related
192
+
193
+ - [Web Search](/tools/web) -- search the web with multiple providers
194
+ - [Web Browser](/tools/browser) -- full browser automation for JS-heavy sites
195
+ - [Firecrawl](/tools/firecrawl) -- Firecrawl search and scrape tools
@@ -0,0 +1,459 @@
1
+ ---
2
+ summary: "web_search, x_search, and web_fetch -- search the web, search X posts, or fetch page content"
3
+ title: "Web search"
4
+ sidebarTitle: "Web Search"
5
+ read_when:
6
+ - You want to enable or configure web_search
7
+ - You want to enable or configure x_search
8
+ - You need to choose a search provider
9
+ - You want to understand auto-detection and provider fallback
10
+ ---
11
+
12
+ The `web_search` tool searches the web using your configured provider and
13
+ returns results. Results are cached by query for 15 minutes (configurable).
14
+
15
+ Nodmix also includes `x_search` for X (formerly Twitter) posts and
16
+ `web_fetch` for lightweight URL fetching. In this phase, `web_fetch` stays
17
+ local while `web_search` and `x_search` can use xAI Responses under the hood.
18
+
19
+ <Info>
20
+ `web_search` is a lightweight HTTP tool, not browser automation. For
21
+ JS-heavy sites or logins, use the [Web Browser](/tools/browser). For
22
+ fetching a specific URL, use [Web Fetch](/tools/web-fetch).
23
+ </Info>
24
+
25
+ ## Quick start
26
+
27
+ <Steps>
28
+ <Step title="Choose a provider">
29
+ Pick a provider and complete any required setup. Some providers are
30
+ key-free, while others use API keys. See the provider pages below for
31
+ details.
32
+ </Step>
33
+ <Step title="Configure">
34
+ ```bash
35
+ nodmix configure --section web
36
+ ```
37
+ This stores the provider and any needed credential. You can also set an env
38
+ var (for example `BRAVE_API_KEY`) and skip this step for API-backed
39
+ providers.
40
+ </Step>
41
+ <Step title="Use it">
42
+ The agent can now call `web_search`:
43
+
44
+ ```javascript
45
+ await web_search({ query: "Nodmix plugin SDK" });
46
+ ```
47
+
48
+ For X posts, use:
49
+
50
+ ```javascript
51
+ await x_search({ query: "dinner recipes" });
52
+ ```
53
+
54
+ </Step>
55
+ </Steps>
56
+
57
+ ## Choosing a provider
58
+
59
+ <CardGroup cols={2}>
60
+ <Card title="Brave Search" icon="shield" href="/tools/brave-search">
61
+ Structured results with snippets. Supports `llm-context` mode, country/language filters. Free tier available.
62
+ </Card>
63
+ <Card title="DuckDuckGo" icon="bird" href="/tools/duckduckgo-search">
64
+ Key-free fallback. No API key needed. Unofficial HTML-based integration.
65
+ </Card>
66
+ <Card title="Exa" icon="brain" href="/tools/exa-search">
67
+ Neural + keyword search with content extraction (highlights, text, summaries).
68
+ </Card>
69
+ <Card title="Firecrawl" icon="flame" href="/tools/firecrawl">
70
+ Structured results. Best paired with `firecrawl_search` and `firecrawl_scrape` for deep extraction.
71
+ </Card>
72
+ <Card title="Gemini" icon="sparkles" href="/tools/gemini-search">
73
+ AI-synthesized answers with citations via Google Search grounding.
74
+ </Card>
75
+ <Card title="Grok" icon="zap" href="/tools/grok-search">
76
+ AI-synthesized answers with citations via xAI web grounding.
77
+ </Card>
78
+ <Card title="Kimi" icon="moon" href="/tools/kimi-search">
79
+ AI-synthesized answers with citations via Moonshot web search; ungrounded chat fallbacks fail explicitly.
80
+ </Card>
81
+ <Card title="MiniMax Search" icon="globe" href="/tools/minimax-search">
82
+ Structured results via the MiniMax Token Plan search API.
83
+ </Card>
84
+ <Card title="Ollama Web Search" icon="globe" href="/tools/ollama-search">
85
+ Search via a signed-in local Ollama host or the hosted Ollama API.
86
+ </Card>
87
+ <Card title="Perplexity" icon="search" href="/tools/perplexity-search">
88
+ Structured results with content extraction controls and domain filtering.
89
+ </Card>
90
+ <Card title="SearXNG" icon="server" href="/tools/searxng-search">
91
+ Self-hosted meta-search. No API key needed. Aggregates Google, Bing, DuckDuckGo, and more.
92
+ </Card>
93
+ <Card title="Tavily" icon="globe" href="/tools/tavily">
94
+ Structured results with search depth, topic filtering, and `tavily_extract` for URL extraction.
95
+ </Card>
96
+ </CardGroup>
97
+
98
+ ### Provider comparison
99
+
100
+ | Provider | Result style | Filters | API key |
101
+ | ----------------------------------------- | -------------------------------------------------------------- | ------------------------------------------------ | --------------------------------------------------------------------------------------- |
102
+ | [Brave](/tools/brave-search) | Structured snippets | Country, language, time, `llm-context` mode | `BRAVE_API_KEY` |
103
+ | [DuckDuckGo](/tools/duckduckgo-search) | Structured snippets | -- | None (key-free) |
104
+ | [Exa](/tools/exa-search) | Structured + extracted | Neural/keyword mode, date, content extraction | `EXA_API_KEY` |
105
+ | [Firecrawl](/tools/firecrawl) | Structured snippets | Via `firecrawl_search` tool | `FIRECRAWL_API_KEY` |
106
+ | [Gemini](/tools/gemini-search) | AI-synthesized + citations | -- | `GEMINI_API_KEY` |
107
+ | [Grok](/tools/grok-search) | AI-synthesized + citations | -- | `XAI_API_KEY` |
108
+ | [Kimi](/tools/kimi-search) | AI-synthesized + citations; fails on ungrounded chat fallbacks | -- | `KIMI_API_KEY` / `MOONSHOT_API_KEY` |
109
+ | [MiniMax Search](/tools/minimax-search) | Structured snippets | Region (`global` / `cn`) | `MINIMAX_CODE_PLAN_KEY` / `MINIMAX_CODING_API_KEY` / `MINIMAX_OAUTH_TOKEN` |
110
+ | [Ollama Web Search](/tools/ollama-search) | Structured snippets | -- | None for signed-in local hosts; `OLLAMA_API_KEY` for direct `https://ollama.com` search |
111
+ | [Perplexity](/tools/perplexity-search) | Structured snippets | Country, language, time, domains, content limits | `PERPLEXITY_API_KEY` / `OPENROUTER_API_KEY` |
112
+ | [SearXNG](/tools/searxng-search) | Structured snippets | Categories, language | None (self-hosted) |
113
+ | [Tavily](/tools/tavily) | Structured snippets | Via `tavily_search` tool | `TAVILY_API_KEY` |
114
+
115
+ ## Auto-detection
116
+
117
+ ## Native OpenAI web search
118
+
119
+ Direct OpenAI Responses models use OpenAI's hosted `web_search` tool automatically when Nodmix web search is enabled and no managed provider is pinned. This is provider-owned behavior in the bundled OpenAI plugin and only applies to native OpenAI API traffic, not OpenAI-compatible proxy base URLs or Azure routes. Set `tools.web.search.provider` to another provider such as `brave` to keep the managed `web_search` tool for OpenAI models, or set `tools.web.search.enabled: false` to disable both managed search and native OpenAI search.
120
+
121
+ ## Native Codex web search
122
+
123
+ Codex-capable models can optionally use the provider-native Responses `web_search` tool instead of Nodmix's managed `web_search` function.
124
+
125
+ - Configure it under `tools.web.search.openaiCodex`
126
+ - It only activates for Codex-capable models (`openai-codex/*` or providers using `api: "openai-codex-responses"`)
127
+ - Managed `web_search` still applies to non-Codex models
128
+ - `mode: "cached"` is the default and recommended setting
129
+ - `tools.web.search.enabled: false` disables both managed and native search
130
+
131
+ ```json5
132
+ {
133
+ tools: {
134
+ web: {
135
+ search: {
136
+ enabled: true,
137
+ openaiCodex: {
138
+ enabled: true,
139
+ mode: "cached",
140
+ allowedDomains: ["example.com"],
141
+ contextSize: "high",
142
+ userLocation: {
143
+ country: "US",
144
+ city: "New York",
145
+ timezone: "America/New_York",
146
+ },
147
+ },
148
+ },
149
+ },
150
+ },
151
+ }
152
+ ```
153
+
154
+ If native Codex search is enabled but the current model is not Codex-capable, Nodmix keeps the normal managed `web_search` behavior.
155
+
156
+ ## Network safety
157
+
158
+ Managed `web_search` provider calls use Nodmix's guarded fetch path. For
159
+ trusted provider API hosts, Nodmix allows Surge, Clash, and sing-box fake-IP
160
+ DNS answers in `198.18.0.0/15` and `fc00::/7` only for that provider hostname.
161
+ Other private, loopback, link-local, and metadata destinations remain blocked.
162
+
163
+ This automatic allowance does not apply to arbitrary `web_fetch` URLs. For
164
+ `web_fetch`, enable `tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRange` and
165
+ `tools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange` explicitly only when your
166
+ trusted proxy owns those synthetic ranges.
167
+
168
+ ## Setting up web search
169
+
170
+ Provider lists in docs and setup flows are alphabetical. Auto-detection keeps a
171
+ separate precedence order.
172
+
173
+ If no `provider` is set, Nodmix checks providers in this order and uses the
174
+ first one that is ready:
175
+
176
+ API-backed providers first:
177
+
178
+ 1. **Brave** -- `BRAVE_API_KEY` or `plugins.entries.brave.config.webSearch.apiKey` (order 10)
179
+ 2. **MiniMax Search** -- `MINIMAX_CODE_PLAN_KEY` / `MINIMAX_CODING_API_KEY` / `MINIMAX_OAUTH_TOKEN` / `MINIMAX_API_KEY` or `plugins.entries.minimax.config.webSearch.apiKey` (order 15)
180
+ 3. **Gemini** -- `plugins.entries.google.config.webSearch.apiKey`, `GEMINI_API_KEY`, or `models.providers.google.apiKey` (order 20)
181
+ 4. **Grok** -- `XAI_API_KEY` or `plugins.entries.xai.config.webSearch.apiKey` (order 30)
182
+ 5. **Kimi** -- `KIMI_API_KEY` / `MOONSHOT_API_KEY` or `plugins.entries.moonshot.config.webSearch.apiKey` (order 40)
183
+ 6. **Perplexity** -- `PERPLEXITY_API_KEY` / `OPENROUTER_API_KEY` or `plugins.entries.perplexity.config.webSearch.apiKey` (order 50)
184
+ 7. **Firecrawl** -- `FIRECRAWL_API_KEY` or `plugins.entries.firecrawl.config.webSearch.apiKey` (order 60)
185
+ 8. **Exa** -- `EXA_API_KEY` or `plugins.entries.exa.config.webSearch.apiKey`; optional `plugins.entries.exa.config.webSearch.baseUrl` overrides the Exa endpoint (order 65)
186
+ 9. **Tavily** -- `TAVILY_API_KEY` or `plugins.entries.tavily.config.webSearch.apiKey` (order 70)
187
+
188
+ Key-free fallbacks after that:
189
+
190
+ 10. **DuckDuckGo** -- key-free HTML fallback with no account or API key (order 100)
191
+ 11. **Ollama Web Search** -- key-free fallback via your configured local Ollama host when it is reachable and signed in with `ollama signin`; can reuse Ollama provider bearer auth when the host needs it, and can call direct `https://ollama.com` search when configured with `OLLAMA_API_KEY` (order 110)
192
+ 12. **SearXNG** -- `SEARXNG_BASE_URL` or `plugins.entries.searxng.config.webSearch.baseUrl` (order 200)
193
+
194
+ If no provider is detected, it falls back to Brave (you will get a missing-key
195
+ error prompting you to configure one).
196
+
197
+ <Note>
198
+ All provider key fields support SecretRef objects. Plugin-scoped SecretRefs
199
+ under `plugins.entries.<plugin>.config.webSearch.apiKey` are resolved for the
200
+ bundled API-backed web search providers, including Brave, Exa, Firecrawl,
201
+ Gemini, Grok, Kimi, MiniMax, Perplexity, and Tavily,
202
+ whether the provider is picked explicitly via `tools.web.search.provider` or
203
+ selected through auto-detect. In auto-detect mode, Nodmix resolves only the
204
+ selected provider key -- non-selected SecretRefs stay inactive, so you can
205
+ keep multiple providers configured without paying resolution cost for the
206
+ ones you are not using.
207
+ </Note>
208
+
209
+ ## Config
210
+
211
+ ```json5
212
+ {
213
+ tools: {
214
+ web: {
215
+ search: {
216
+ enabled: true, // default: true
217
+ provider: "brave", // or omit for auto-detection
218
+ maxResults: 5,
219
+ timeoutSeconds: 30,
220
+ cacheTtlMinutes: 15,
221
+ },
222
+ },
223
+ },
224
+ }
225
+ ```
226
+
227
+ Provider-specific config (API keys, base URLs, modes) lives under
228
+ `plugins.entries.<plugin>.config.webSearch.*`. Gemini can also reuse
229
+ `models.providers.google.apiKey` and `models.providers.google.baseUrl` as lower-priority
230
+ fallbacks after its dedicated web-search config and `GEMINI_API_KEY`. See the
231
+ provider pages for examples.
232
+
233
+ `tools.web.search.provider` is validated against the web-search provider ids
234
+ declared by bundled and installed plugin manifests. A typo such as `"brvae"`
235
+ fails config validation instead of silently falling back to auto-detection. If a
236
+ configured provider only has stale plugin evidence, such as a leftover
237
+ `plugins.entries.<plugin>` block after uninstalling a third-party plugin,
238
+ Nodmix keeps startup resilient and reports a warning so you can reinstall the
239
+ plugin or run `nodmix doctor --fix` to clean up the stale config.
240
+
241
+ `web_fetch` fallback provider selection is separate:
242
+
243
+ - choose it with `tools.web.fetch.provider`
244
+ - or omit that field and let Nodmix auto-detect the first ready web-fetch
245
+ provider from available credentials
246
+ - non-sandboxed `web_fetch` can use installed plugin providers that declare
247
+ `contracts.webFetchProviders`; sandboxed fetches stay bundled-only
248
+ - today the bundled web-fetch provider is Firecrawl, configured under
249
+ `plugins.entries.firecrawl.config.webFetch.*`
250
+
251
+ When you choose **Kimi** during `nodmix onboard` or
252
+ `nodmix configure --section web`, Nodmix can also ask for:
253
+
254
+ - the Moonshot API region (`https://api.moonshot.ai/v1` or `https://api.moonshot.cn/v1`)
255
+ - the default Kimi web-search model (defaults to `kimi-k2.6`)
256
+
257
+ For `x_search`, configure `plugins.entries.xai.config.xSearch.*`. It uses the
258
+ same xAI auth profile as chat, or the `XAI_API_KEY` / plugin web-search
259
+ credential used by Grok web search.
260
+ Legacy `tools.web.x_search.*` config is auto-migrated by `nodmix doctor --fix`.
261
+ When you choose Grok during `nodmix onboard` or `nodmix configure --section web`,
262
+ Nodmix can also offer optional `x_search` setup with the same key.
263
+ This is a separate follow-up step inside the Grok path, not a separate top-level
264
+ web-search provider choice. If you pick another provider, Nodmix does not
265
+ show the `x_search` prompt.
266
+
267
+ ### Storing API keys
268
+
269
+ <Tabs>
270
+ <Tab title="Config file">
271
+ Run `nodmix configure --section web` or set the key directly:
272
+
273
+ ```json5
274
+ {
275
+ plugins: {
276
+ entries: {
277
+ brave: {
278
+ config: {
279
+ webSearch: {
280
+ apiKey: "YOUR_KEY", // pragma: allowlist secret
281
+ },
282
+ },
283
+ },
284
+ },
285
+ },
286
+ }
287
+ ```
288
+
289
+ </Tab>
290
+ <Tab title="Environment variable">
291
+ Set the provider env var in the Gateway process environment:
292
+
293
+ ```bash
294
+ export BRAVE_API_KEY="YOUR_KEY"
295
+ ```
296
+
297
+ For a gateway install, put it in `~/.nodmix/.env`.
298
+ See [Env vars](/help/faq#env-vars-and-env-loading).
299
+
300
+ </Tab>
301
+ </Tabs>
302
+
303
+ ## Tool parameters
304
+
305
+ | Parameter | Description |
306
+ | --------------------- | ----------------------------------------------------- |
307
+ | `query` | Search query (required) |
308
+ | `count` | Results to return (1-10, default: 5) |
309
+ | `country` | 2-letter ISO country code (e.g. "US", "DE") |
310
+ | `language` | ISO 639-1 language code (e.g. "en", "de") |
311
+ | `search_lang` | Search-language code (Brave only) |
312
+ | `freshness` | Time filter: `day`, `week`, `month`, or `year` |
313
+ | `date_after` | Results after this date (YYYY-MM-DD) |
314
+ | `date_before` | Results before this date (YYYY-MM-DD) |
315
+ | `ui_lang` | UI language code (Brave only) |
316
+ | `domain_filter` | Domain allowlist/denylist array (Perplexity only) |
317
+ | `max_tokens` | Total content budget, default 25000 (Perplexity only) |
318
+ | `max_tokens_per_page` | Per-page token limit, default 2048 (Perplexity only) |
319
+
320
+ <Warning>
321
+ Not all parameters work with all providers. Brave `llm-context` mode
322
+ rejects `ui_lang`; `date_before` also needs `date_after` because Brave custom
323
+ freshness ranges require both start and end dates.
324
+ Gemini, Grok, and Kimi return one synthesized answer with citations. They
325
+ accept `count` for shared-tool compatibility, but it does not change the
326
+ grounded answer shape. Gemini supports `freshness`, `date_after`, and
327
+ `date_before` by converting them to Google Search grounding time ranges.
328
+ Perplexity behaves the same way when you use the Sonar/OpenRouter
329
+ compatibility path (`plugins.entries.perplexity.config.webSearch.baseUrl` /
330
+ `model` or `OPENROUTER_API_KEY`).
331
+ SearXNG accepts `http://` only for trusted private-network or loopback hosts;
332
+ public SearXNG endpoints must use `https://`.
333
+ Firecrawl and Tavily only support `query` and `count` through `web_search`
334
+ -- use their dedicated tools for advanced options.
335
+ </Warning>
336
+
337
+ ## x_search
338
+
339
+ `x_search` queries X (formerly Twitter) posts using xAI and returns
340
+ AI-synthesized answers with citations. It accepts natural-language queries and
341
+ optional structured filters. Nodmix only enables the built-in xAI `x_search`
342
+ tool on the request that serves this tool call.
343
+
344
+ <Note>
345
+ xAI documents `x_search` as supporting keyword search, semantic search, user
346
+ search, and thread fetch. For per-post engagement stats such as reposts,
347
+ replies, bookmarks, or views, prefer a targeted lookup for the exact post URL
348
+ or status ID. Broad keyword searches may find the right post but return less
349
+ complete per-post metadata. A good pattern is: locate the post first, then
350
+ run a second `x_search` query focused on that exact post.
351
+ </Note>
352
+
353
+ ### x_search config
354
+
355
+ ```json5
356
+ {
357
+ plugins: {
358
+ entries: {
359
+ xai: {
360
+ config: {
361
+ xSearch: {
362
+ enabled: true,
363
+ model: "grok-4-1-fast-non-reasoning",
364
+ baseUrl: "https://api.x.ai/v1", // optional, overrides webSearch.baseUrl
365
+ inlineCitations: false,
366
+ maxTurns: 2,
367
+ timeoutSeconds: 30,
368
+ cacheTtlMinutes: 15,
369
+ },
370
+ webSearch: {
371
+ apiKey: "xai-...", // optional if an xAI auth profile or XAI_API_KEY is set
372
+ baseUrl: "https://api.x.ai/v1", // optional shared xAI Responses base URL
373
+ },
374
+ },
375
+ },
376
+ },
377
+ },
378
+ }
379
+ ```
380
+
381
+ `x_search` posts to `<baseUrl>/responses` when
382
+ `plugins.entries.xai.config.xSearch.baseUrl` is set. If that field is omitted,
383
+ it falls back to `plugins.entries.xai.config.webSearch.baseUrl`, then the
384
+ legacy `tools.web.search.grok.baseUrl`, and finally the public xAI endpoint.
385
+
386
+ ### x_search parameters
387
+
388
+ | Parameter | Description |
389
+ | ---------------------------- | ------------------------------------------------------ |
390
+ | `query` | Search query (required) |
391
+ | `allowed_x_handles` | Restrict results to specific X handles |
392
+ | `excluded_x_handles` | Exclude specific X handles |
393
+ | `from_date` | Only include posts on or after this date (YYYY-MM-DD) |
394
+ | `to_date` | Only include posts on or before this date (YYYY-MM-DD) |
395
+ | `enable_image_understanding` | Let xAI inspect images attached to matching posts |
396
+ | `enable_video_understanding` | Let xAI inspect videos attached to matching posts |
397
+
398
+ ### x_search example
399
+
400
+ ```javascript
401
+ await x_search({
402
+ query: "dinner recipes",
403
+ allowed_x_handles: ["nytfood"],
404
+ from_date: "2026-03-01",
405
+ });
406
+ ```
407
+
408
+ ```javascript
409
+ // Per-post stats: use the exact status URL or status ID when possible
410
+ await x_search({
411
+ query: "https://x.com/huntharo/status/1905678901234567890",
412
+ });
413
+ ```
414
+
415
+ ## Examples
416
+
417
+ ```javascript
418
+ // Basic search
419
+ await web_search({ query: "Nodmix plugin SDK" });
420
+
421
+ // German-specific search
422
+ await web_search({ query: "TV online schauen", country: "DE", language: "de" });
423
+
424
+ // Recent results (past week)
425
+ await web_search({ query: "AI developments", freshness: "week" });
426
+
427
+ // Date range
428
+ await web_search({
429
+ query: "climate research",
430
+ date_after: "2024-01-01",
431
+ date_before: "2024-06-30",
432
+ });
433
+
434
+ // Domain filtering (Perplexity only)
435
+ await web_search({
436
+ query: "product reviews",
437
+ domain_filter: ["-reddit.com", "-pinterest.com"],
438
+ });
439
+ ```
440
+
441
+ ## Tool profiles
442
+
443
+ If you use tool profiles or allowlists, add `web_search`, `x_search`, or `group:web`:
444
+
445
+ ```json5
446
+ {
447
+ tools: {
448
+ allow: ["web_search", "x_search"],
449
+ // or: allow: ["group:web"] (includes web_search, x_search, and web_fetch)
450
+ },
451
+ }
452
+ ```
453
+
454
+ ## Related
455
+
456
+ - [Web Fetch](/tools/web-fetch) -- fetch a URL and extract readable content
457
+ - [Web Browser](/tools/browser) -- full browser automation for JS-heavy sites
458
+ - [Grok Search](/tools/grok-search) -- Grok as the `web_search` provider
459
+ - [Ollama Web Search](/tools/ollama-search) -- key-free web search through your Ollama host
package/docs/tts.md ADDED
@@ -0,0 +1,11 @@
1
+ ---
2
+ summary: "Redirect to /tools/tts"
3
+ title: "Text-to-speech"
4
+ redirect: /tools/tts
5
+ ---
6
+
7
+ This page has moved to [Text-to-Speech](/tools/tts).
8
+
9
+ ## Related
10
+
11
+ - [Text-to-speech](/tools/tts)