vilvona 1.0.0

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 (812) hide show
  1. package/CHANGELOG.md +12331 -0
  2. package/LICENSE +24 -0
  3. package/README.md +314 -0
  4. package/THIRD_PARTY_NOTICES.md +37 -0
  5. package/docs/.i18n/README.md +81 -0
  6. package/docs/.i18n/ar-navigation.json +18 -0
  7. package/docs/.i18n/de-navigation.json +18 -0
  8. package/docs/.i18n/es-navigation.json +18 -0
  9. package/docs/.i18n/fr-navigation.json +18 -0
  10. package/docs/.i18n/glossary.ar.json +82 -0
  11. package/docs/.i18n/glossary.de.json +82 -0
  12. package/docs/.i18n/glossary.es.json +82 -0
  13. package/docs/.i18n/glossary.fa.json +82 -0
  14. package/docs/.i18n/glossary.fr.json +82 -0
  15. package/docs/.i18n/glossary.id.json +82 -0
  16. package/docs/.i18n/glossary.it.json +82 -0
  17. package/docs/.i18n/glossary.ja-JP.json +102 -0
  18. package/docs/.i18n/glossary.ko.json +82 -0
  19. package/docs/.i18n/glossary.nl.json +82 -0
  20. package/docs/.i18n/glossary.pl.json +82 -0
  21. package/docs/.i18n/glossary.pt-BR.json +82 -0
  22. package/docs/.i18n/glossary.th.json +82 -0
  23. package/docs/.i18n/glossary.tr.json +82 -0
  24. package/docs/.i18n/glossary.uk.json +82 -0
  25. package/docs/.i18n/glossary.vi.json +82 -0
  26. package/docs/.i18n/glossary.zh-CN.json +1182 -0
  27. package/docs/.i18n/glossary.zh-TW.json +162 -0
  28. package/docs/.i18n/id-navigation.json +18 -0
  29. package/docs/.i18n/it-navigation.json +18 -0
  30. package/docs/.i18n/ja-navigation.json +18 -0
  31. package/docs/.i18n/ko-navigation.json +18 -0
  32. package/docs/.i18n/pl-navigation.json +18 -0
  33. package/docs/.i18n/pt-BR-navigation.json +18 -0
  34. package/docs/.i18n/tr-navigation.json +18 -0
  35. package/docs/.i18n/translation-workflow.md +111 -0
  36. package/docs/.i18n/zh-Hans-navigation.json +552 -0
  37. package/docs/AGENTS.md +36 -0
  38. package/docs/agent-runtime-architecture.md +48 -0
  39. package/docs/announcements/bluebubbles-imessage.md +79 -0
  40. package/docs/auth-credential-semantics.md +124 -0
  41. package/docs/automation/auth-monitoring.md +11 -0
  42. package/docs/automation/clawflow.md +12 -0
  43. package/docs/automation/cron-jobs.md +569 -0
  44. package/docs/automation/cron-vs-heartbeat.md +11 -0
  45. package/docs/automation/gmail-pubsub.md +11 -0
  46. package/docs/automation/hooks.md +387 -0
  47. package/docs/automation/index.md +135 -0
  48. package/docs/automation/poll.md +12 -0
  49. package/docs/automation/standing-orders.md +250 -0
  50. package/docs/automation/taskflow.md +155 -0
  51. package/docs/automation/tasks.md +374 -0
  52. package/docs/automation/troubleshooting.md +12 -0
  53. package/docs/automation/webhook.md +12 -0
  54. package/docs/brave-search.md +11 -0
  55. package/docs/channels/access-groups.md +201 -0
  56. package/docs/channels/ambient-room-events.md +214 -0
  57. package/docs/channels/bot-loop-protection.md +131 -0
  58. package/docs/channels/broadcast-groups.md +472 -0
  59. package/docs/channels/channel-routing.md +162 -0
  60. package/docs/channels/clickclack.md +146 -0
  61. package/docs/channels/discord.md +1758 -0
  62. package/docs/channels/feishu.md +654 -0
  63. package/docs/channels/googlechat.md +286 -0
  64. package/docs/channels/group-messages.md +95 -0
  65. package/docs/channels/groups.md +610 -0
  66. package/docs/channels/imessage-from-bluebubbles.md +259 -0
  67. package/docs/channels/imessage.md +864 -0
  68. package/docs/channels/index.md +65 -0
  69. package/docs/channels/irc.md +253 -0
  70. package/docs/channels/line.md +243 -0
  71. package/docs/channels/location.md +71 -0
  72. package/docs/channels/matrix-migration.md +375 -0
  73. package/docs/channels/matrix-presentation.md +77 -0
  74. package/docs/channels/matrix-push-rules.md +150 -0
  75. package/docs/channels/matrix.md +935 -0
  76. package/docs/channels/mattermost.md +542 -0
  77. package/docs/channels/msteams.md +1097 -0
  78. package/docs/channels/nextcloud-talk.md +176 -0
  79. package/docs/channels/nostr.md +253 -0
  80. package/docs/channels/pairing.md +214 -0
  81. package/docs/channels/qqbot.md +317 -0
  82. package/docs/channels/signal.md +417 -0
  83. package/docs/channels/slack.md +1623 -0
  84. package/docs/channels/sms.md +380 -0
  85. package/docs/channels/synology-chat.md +187 -0
  86. package/docs/channels/telegram.md +1121 -0
  87. package/docs/channels/tlon.md +296 -0
  88. package/docs/channels/troubleshooting.md +162 -0
  89. package/docs/channels/twitch.md +431 -0
  90. package/docs/channels/wechat.md +171 -0
  91. package/docs/channels/whatsapp.md +796 -0
  92. package/docs/channels/yuanbao.md +416 -0
  93. package/docs/channels/zalo.md +253 -0
  94. package/docs/channels/zalouser.md +217 -0
  95. package/docs/ci.md +665 -0
  96. package/docs/clawhub/cli.md +82 -0
  97. package/docs/clawhub/publishing.md +96 -0
  98. package/docs/cli/acp.md +370 -0
  99. package/docs/cli/agent.md +109 -0
  100. package/docs/cli/agents.md +253 -0
  101. package/docs/cli/approvals.md +193 -0
  102. package/docs/cli/backup.md +98 -0
  103. package/docs/cli/browser.md +322 -0
  104. package/docs/cli/channels.md +154 -0
  105. package/docs/cli/clawbot.md +25 -0
  106. package/docs/cli/commitments.md +90 -0
  107. package/docs/cli/completion.md +39 -0
  108. package/docs/cli/config.md +504 -0
  109. package/docs/cli/configure.md +77 -0
  110. package/docs/cli/crestodian.md +337 -0
  111. package/docs/cli/cron.md +344 -0
  112. package/docs/cli/daemon.md +67 -0
  113. package/docs/cli/dashboard.md +33 -0
  114. package/docs/cli/devices.md +240 -0
  115. package/docs/cli/directory.md +68 -0
  116. package/docs/cli/dns.md +53 -0
  117. package/docs/cli/docs.md +63 -0
  118. package/docs/cli/doctor.md +254 -0
  119. package/docs/cli/flows.md +52 -0
  120. package/docs/cli/gateway.md +572 -0
  121. package/docs/cli/health.md +43 -0
  122. package/docs/cli/hooks.md +345 -0
  123. package/docs/cli/index.md +406 -0
  124. package/docs/cli/infer.md +364 -0
  125. package/docs/cli/logs.md +68 -0
  126. package/docs/cli/mcp.md +851 -0
  127. package/docs/cli/memory.md +183 -0
  128. package/docs/cli/message.md +317 -0
  129. package/docs/cli/migrate.md +334 -0
  130. package/docs/cli/models.md +239 -0
  131. package/docs/cli/node.md +178 -0
  132. package/docs/cli/nodes.md +76 -0
  133. package/docs/cli/onboard.md +251 -0
  134. package/docs/cli/pairing.md +77 -0
  135. package/docs/cli/path.md +511 -0
  136. package/docs/cli/plugins.md +480 -0
  137. package/docs/cli/policy.md +929 -0
  138. package/docs/cli/proxy.md +89 -0
  139. package/docs/cli/qr.md +56 -0
  140. package/docs/cli/reset.md +39 -0
  141. package/docs/cli/sandbox.md +208 -0
  142. package/docs/cli/secrets.md +202 -0
  143. package/docs/cli/security.md +135 -0
  144. package/docs/cli/sessions.md +178 -0
  145. package/docs/cli/setup.md +60 -0
  146. package/docs/cli/skills.md +156 -0
  147. package/docs/cli/status.md +45 -0
  148. package/docs/cli/system.md +89 -0
  149. package/docs/cli/tasks.md +111 -0
  150. package/docs/cli/transcripts.md +151 -0
  151. package/docs/cli/tui.md +92 -0
  152. package/docs/cli/uninstall.md +45 -0
  153. package/docs/cli/update.md +283 -0
  154. package/docs/cli/voicecall.md +204 -0
  155. package/docs/cli/webhooks.md +117 -0
  156. package/docs/cli/wiki.md +256 -0
  157. package/docs/cli/workboard.md +228 -0
  158. package/docs/concepts/active-memory.md +856 -0
  159. package/docs/concepts/agent-loop.md +185 -0
  160. package/docs/concepts/agent-runtimes.md +276 -0
  161. package/docs/concepts/agent-workspace.md +230 -0
  162. package/docs/concepts/agent.md +142 -0
  163. package/docs/concepts/architecture.md +154 -0
  164. package/docs/concepts/channel-docking.md +145 -0
  165. package/docs/concepts/commitments.md +150 -0
  166. package/docs/concepts/compaction.md +203 -0
  167. package/docs/concepts/context-engine.md +347 -0
  168. package/docs/concepts/context.md +199 -0
  169. package/docs/concepts/delegate-architecture.md +319 -0
  170. package/docs/concepts/dreaming.md +279 -0
  171. package/docs/concepts/experimental-features.md +111 -0
  172. package/docs/concepts/features.md +91 -0
  173. package/docs/concepts/mantis-slack-desktop-runbook.md +231 -0
  174. package/docs/concepts/mantis.md +744 -0
  175. package/docs/concepts/markdown-formatting.md +139 -0
  176. package/docs/concepts/memory-builtin.md +151 -0
  177. package/docs/concepts/memory-honcho.md +144 -0
  178. package/docs/concepts/memory-qmd.md +277 -0
  179. package/docs/concepts/memory-search.md +175 -0
  180. package/docs/concepts/memory.md +299 -0
  181. package/docs/concepts/message-lifecycle-refactor.md +1126 -0
  182. package/docs/concepts/messages.md +216 -0
  183. package/docs/concepts/model-failover.md +405 -0
  184. package/docs/concepts/model-providers.md +719 -0
  185. package/docs/concepts/models.md +371 -0
  186. package/docs/concepts/multi-agent.md +625 -0
  187. package/docs/concepts/oauth.md +218 -0
  188. package/docs/concepts/parallel-specialist-lanes.md +127 -0
  189. package/docs/concepts/personal-agent-benchmark-pack.md +74 -0
  190. package/docs/concepts/presence.md +117 -0
  191. package/docs/concepts/progress-drafts.md +406 -0
  192. package/docs/concepts/qa-e2e-automation.md +979 -0
  193. package/docs/concepts/qa-matrix.md +139 -0
  194. package/docs/concepts/queue-steering.md +90 -0
  195. package/docs/concepts/queue.md +136 -0
  196. package/docs/concepts/retry.md +86 -0
  197. package/docs/concepts/session-pruning.md +104 -0
  198. package/docs/concepts/session-tool.md +201 -0
  199. package/docs/concepts/session.md +164 -0
  200. package/docs/concepts/soul.md +116 -0
  201. package/docs/concepts/streaming.md +258 -0
  202. package/docs/concepts/system-prompt.md +330 -0
  203. package/docs/concepts/timezone.md +47 -0
  204. package/docs/concepts/typebox.md +309 -0
  205. package/docs/concepts/typing-indicators.md +88 -0
  206. package/docs/concepts/usage-tracking.md +72 -0
  207. package/docs/date-time.md +126 -0
  208. package/docs/debug/node-issue.md +90 -0
  209. package/docs/diagnostics/flags.md +182 -0
  210. package/docs/docs.json +1885 -0
  211. package/docs/gateway/authentication.md +286 -0
  212. package/docs/gateway/background-process.md +147 -0
  213. package/docs/gateway/bonjour.md +303 -0
  214. package/docs/gateway/bridge-protocol.md +97 -0
  215. package/docs/gateway/cli-backends.md +463 -0
  216. package/docs/gateway/config-agents.md +1525 -0
  217. package/docs/gateway/config-channels.md +942 -0
  218. package/docs/gateway/config-tools.md +806 -0
  219. package/docs/gateway/configuration-examples.md +706 -0
  220. package/docs/gateway/configuration-reference.md +1449 -0
  221. package/docs/gateway/configuration.md +748 -0
  222. package/docs/gateway/diagnostics.md +213 -0
  223. package/docs/gateway/discovery.md +154 -0
  224. package/docs/gateway/doctor.md +576 -0
  225. package/docs/gateway/external-apps.md +86 -0
  226. package/docs/gateway/gateway-lock.md +37 -0
  227. package/docs/gateway/health.md +73 -0
  228. package/docs/gateway/heartbeat.md +498 -0
  229. package/docs/gateway/index.md +385 -0
  230. package/docs/gateway/local-model-services.md +205 -0
  231. package/docs/gateway/local-models.md +355 -0
  232. package/docs/gateway/logging.md +149 -0
  233. package/docs/gateway/multiple-gateways.md +178 -0
  234. package/docs/gateway/network-model.md +15 -0
  235. package/docs/gateway/openai-http-api.md +379 -0
  236. package/docs/gateway/openresponses-http-api.md +349 -0
  237. package/docs/gateway/openshell.md +316 -0
  238. package/docs/gateway/opentelemetry.md +440 -0
  239. package/docs/gateway/operator-scopes.md +119 -0
  240. package/docs/gateway/pairing.md +207 -0
  241. package/docs/gateway/prometheus.md +249 -0
  242. package/docs/gateway/protocol.md +839 -0
  243. package/docs/gateway/remote-gateway-readme.md +169 -0
  244. package/docs/gateway/remote.md +280 -0
  245. package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +148 -0
  246. package/docs/gateway/sandboxing.md +546 -0
  247. package/docs/gateway/secrets-plan-contract.md +159 -0
  248. package/docs/gateway/secrets.md +805 -0
  249. package/docs/gateway/security/audit-checks.md +127 -0
  250. package/docs/gateway/security/exposure-runbook.md +212 -0
  251. package/docs/gateway/security/index.md +1344 -0
  252. package/docs/gateway/security/secure-file-operations.md +76 -0
  253. package/docs/gateway/security/shrinkwrap.md +111 -0
  254. package/docs/gateway/tailscale.md +180 -0
  255. package/docs/gateway/tools-invoke-http-api.md +175 -0
  256. package/docs/gateway/troubleshooting.md +881 -0
  257. package/docs/gateway/trusted-proxy-auth.md +483 -0
  258. package/docs/help/debugging.md +341 -0
  259. package/docs/help/environment.md +240 -0
  260. package/docs/help/faq-first-run.md +872 -0
  261. package/docs/help/faq-models.md +557 -0
  262. package/docs/help/faq.md +2115 -0
  263. package/docs/help/index.md +39 -0
  264. package/docs/help/scripts.md +56 -0
  265. package/docs/help/testing-live.md +592 -0
  266. package/docs/help/testing-updates-plugins.md +299 -0
  267. package/docs/help/testing.md +977 -0
  268. package/docs/help/troubleshooting.md +500 -0
  269. package/docs/index.md +196 -0
  270. package/docs/install/ansible.md +233 -0
  271. package/docs/install/azure.md +315 -0
  272. package/docs/install/bun.md +59 -0
  273. package/docs/install/clawdock.md +112 -0
  274. package/docs/install/development-channels.md +148 -0
  275. package/docs/install/digitalocean.md +174 -0
  276. package/docs/install/docker-vm-runtime.md +154 -0
  277. package/docs/install/docker.md +564 -0
  278. package/docs/install/exe-dev.md +201 -0
  279. package/docs/install/fly.md +524 -0
  280. package/docs/install/gcp.md +418 -0
  281. package/docs/install/hetzner.md +285 -0
  282. package/docs/install/hostinger.md +98 -0
  283. package/docs/install/index.md +236 -0
  284. package/docs/install/installer.md +447 -0
  285. package/docs/install/kubernetes.md +196 -0
  286. package/docs/install/macos-vm.md +281 -0
  287. package/docs/install/migrating-claude.md +165 -0
  288. package/docs/install/migrating-hermes.md +178 -0
  289. package/docs/install/migrating.md +137 -0
  290. package/docs/install/nix.md +112 -0
  291. package/docs/install/node.md +142 -0
  292. package/docs/install/northflank.mdx +44 -0
  293. package/docs/install/oracle.md +218 -0
  294. package/docs/install/podman.md +216 -0
  295. package/docs/install/railway.mdx +92 -0
  296. package/docs/install/raspberry-pi.md +234 -0
  297. package/docs/install/render.mdx +167 -0
  298. package/docs/install/uninstall.md +140 -0
  299. package/docs/install/updating.md +284 -0
  300. package/docs/install/upstash.md +96 -0
  301. package/docs/logging.md +322 -0
  302. package/docs/maturity-scores.yaml +5361 -0
  303. package/docs/nav-tabs-underline.js +104 -0
  304. package/docs/network.md +72 -0
  305. package/docs/nodes/audio.md +216 -0
  306. package/docs/nodes/camera.md +166 -0
  307. package/docs/nodes/images.md +77 -0
  308. package/docs/nodes/index.md +444 -0
  309. package/docs/nodes/location-command.md +102 -0
  310. package/docs/nodes/media-understanding.md +495 -0
  311. package/docs/nodes/talk.md +160 -0
  312. package/docs/nodes/troubleshooting.md +123 -0
  313. package/docs/nodes/voicewake.md +93 -0
  314. package/docs/openclaw-agent-runtime.md +82 -0
  315. package/docs/perplexity.md +11 -0
  316. package/docs/plan/codex-context-engine-harness.md +624 -0
  317. package/docs/plan/ui-channels.md +284 -0
  318. package/docs/platforms/android.md +286 -0
  319. package/docs/platforms/digitalocean.md +12 -0
  320. package/docs/platforms/easyrunner.md +109 -0
  321. package/docs/platforms/index.md +65 -0
  322. package/docs/platforms/ios.md +287 -0
  323. package/docs/platforms/linux.md +141 -0
  324. package/docs/platforms/mac/bundled-gateway.md +79 -0
  325. package/docs/platforms/mac/canvas.md +128 -0
  326. package/docs/platforms/mac/child-process.md +72 -0
  327. package/docs/platforms/mac/dev-setup.md +112 -0
  328. package/docs/platforms/mac/health.md +39 -0
  329. package/docs/platforms/mac/icon.md +36 -0
  330. package/docs/platforms/mac/logging.md +62 -0
  331. package/docs/platforms/mac/menu-bar.md +93 -0
  332. package/docs/platforms/mac/peekaboo.md +96 -0
  333. package/docs/platforms/mac/permissions.md +73 -0
  334. package/docs/platforms/mac/remote.md +123 -0
  335. package/docs/platforms/mac/signing.md +52 -0
  336. package/docs/platforms/mac/skills.md +45 -0
  337. package/docs/platforms/mac/voice-overlay.md +66 -0
  338. package/docs/platforms/mac/voicewake.md +79 -0
  339. package/docs/platforms/mac/webchat.md +54 -0
  340. package/docs/platforms/mac/xpc.md +66 -0
  341. package/docs/platforms/macos.md +228 -0
  342. package/docs/platforms/oracle.md +12 -0
  343. package/docs/platforms/raspberry-pi.md +13 -0
  344. package/docs/platforms/windows.md +304 -0
  345. package/docs/plugins/adding-capabilities.md +146 -0
  346. package/docs/plugins/admin-http-rpc.md +216 -0
  347. package/docs/plugins/agent-tools.md +13 -0
  348. package/docs/plugins/architecture-internals.md +1203 -0
  349. package/docs/plugins/architecture.md +483 -0
  350. package/docs/plugins/building-extensions.md +13 -0
  351. package/docs/plugins/building-plugins.md +343 -0
  352. package/docs/plugins/bundles.md +310 -0
  353. package/docs/plugins/cli-backend-plugins.md +328 -0
  354. package/docs/plugins/codex-computer-use.md +297 -0
  355. package/docs/plugins/codex-harness-reference.md +480 -0
  356. package/docs/plugins/codex-harness-runtime.md +268 -0
  357. package/docs/plugins/codex-harness.md +800 -0
  358. package/docs/plugins/codex-native-plugins.md +280 -0
  359. package/docs/plugins/community.md +77 -0
  360. package/docs/plugins/compatibility.md +198 -0
  361. package/docs/plugins/copilot.md +355 -0
  362. package/docs/plugins/dependency-resolution.md +176 -0
  363. package/docs/plugins/google-meet.md +1737 -0
  364. package/docs/plugins/hooks.md +525 -0
  365. package/docs/plugins/install-overrides.md +80 -0
  366. package/docs/plugins/llama-cpp.md +58 -0
  367. package/docs/plugins/manage-plugins.md +214 -0
  368. package/docs/plugins/manifest.md +1468 -0
  369. package/docs/plugins/memory-lancedb.md +385 -0
  370. package/docs/plugins/memory-wiki.md +529 -0
  371. package/docs/plugins/message-presentation.md +487 -0
  372. package/docs/plugins/oc-path.md +166 -0
  373. package/docs/plugins/plugin-inventory.md +318 -0
  374. package/docs/plugins/plugin-permission-requests.md +193 -0
  375. package/docs/plugins/reference/acpx.md +23 -0
  376. package/docs/plugins/reference/admin-http-rpc.md +23 -0
  377. package/docs/plugins/reference/alibaba.md +23 -0
  378. package/docs/plugins/reference/amazon-bedrock-mantle.md +23 -0
  379. package/docs/plugins/reference/amazon-bedrock.md +23 -0
  380. package/docs/plugins/reference/anthropic-vertex.md +29 -0
  381. package/docs/plugins/reference/anthropic.md +23 -0
  382. package/docs/plugins/reference/arcee.md +23 -0
  383. package/docs/plugins/reference/azure-speech.md +23 -0
  384. package/docs/plugins/reference/bonjour.md +19 -0
  385. package/docs/plugins/reference/brave.md +23 -0
  386. package/docs/plugins/reference/browser.md +23 -0
  387. package/docs/plugins/reference/byteplus.md +19 -0
  388. package/docs/plugins/reference/canvas.md +19 -0
  389. package/docs/plugins/reference/cerebras.md +23 -0
  390. package/docs/plugins/reference/chutes.md +23 -0
  391. package/docs/plugins/reference/clickclack.md +23 -0
  392. package/docs/plugins/reference/cloudflare-ai-gateway.md +23 -0
  393. package/docs/plugins/reference/codex-supervisor.md +27 -0
  394. package/docs/plugins/reference/codex.md +23 -0
  395. package/docs/plugins/reference/comfy.md +23 -0
  396. package/docs/plugins/reference/copilot-proxy.md +19 -0
  397. package/docs/plugins/reference/copilot.md +23 -0
  398. package/docs/plugins/reference/deepgram.md +23 -0
  399. package/docs/plugins/reference/deepinfra.md +23 -0
  400. package/docs/plugins/reference/deepseek.md +23 -0
  401. package/docs/plugins/reference/diagnostics-otel.md +19 -0
  402. package/docs/plugins/reference/diagnostics-prometheus.md +19 -0
  403. package/docs/plugins/reference/diffs-language-pack.md +31 -0
  404. package/docs/plugins/reference/diffs.md +19 -0
  405. package/docs/plugins/reference/discord.md +23 -0
  406. package/docs/plugins/reference/document-extract.md +23 -0
  407. package/docs/plugins/reference/duckduckgo.md +23 -0
  408. package/docs/plugins/reference/elevenlabs.md +23 -0
  409. package/docs/plugins/reference/exa.md +23 -0
  410. package/docs/plugins/reference/fal.md +23 -0
  411. package/docs/plugins/reference/feishu.md +23 -0
  412. package/docs/plugins/reference/file-transfer.md +19 -0
  413. package/docs/plugins/reference/firecrawl.md +23 -0
  414. package/docs/plugins/reference/fireworks.md +23 -0
  415. package/docs/plugins/reference/github-copilot.md +23 -0
  416. package/docs/plugins/reference/gmi.md +23 -0
  417. package/docs/plugins/reference/google-meet.md +23 -0
  418. package/docs/plugins/reference/google.md +23 -0
  419. package/docs/plugins/reference/googlechat.md +23 -0
  420. package/docs/plugins/reference/gradium.md +23 -0
  421. package/docs/plugins/reference/groq.md +23 -0
  422. package/docs/plugins/reference/huggingface.md +23 -0
  423. package/docs/plugins/reference/imessage.md +23 -0
  424. package/docs/plugins/reference/inworld.md +23 -0
  425. package/docs/plugins/reference/irc.md +23 -0
  426. package/docs/plugins/reference/kilocode.md +23 -0
  427. package/docs/plugins/reference/kimi.md +23 -0
  428. package/docs/plugins/reference/line.md +23 -0
  429. package/docs/plugins/reference/litellm.md +23 -0
  430. package/docs/plugins/reference/llama-cpp.md +23 -0
  431. package/docs/plugins/reference/llm-task.md +19 -0
  432. package/docs/plugins/reference/lmstudio.md +23 -0
  433. package/docs/plugins/reference/lobster.md +19 -0
  434. package/docs/plugins/reference/matrix.md +23 -0
  435. package/docs/plugins/reference/mattermost.md +23 -0
  436. package/docs/plugins/reference/memory-core.md +19 -0
  437. package/docs/plugins/reference/memory-lancedb.md +23 -0
  438. package/docs/plugins/reference/memory-wiki.md +23 -0
  439. package/docs/plugins/reference/microsoft-foundry.md +113 -0
  440. package/docs/plugins/reference/microsoft.md +19 -0
  441. package/docs/plugins/reference/migrate-claude.md +19 -0
  442. package/docs/plugins/reference/migrate-hermes.md +19 -0
  443. package/docs/plugins/reference/minimax.md +23 -0
  444. package/docs/plugins/reference/mistral.md +23 -0
  445. package/docs/plugins/reference/moonshot.md +23 -0
  446. package/docs/plugins/reference/msteams.md +23 -0
  447. package/docs/plugins/reference/nextcloud-talk.md +23 -0
  448. package/docs/plugins/reference/nostr.md +23 -0
  449. package/docs/plugins/reference/novita.md +23 -0
  450. package/docs/plugins/reference/nvidia.md +23 -0
  451. package/docs/plugins/reference/oc-path.md +23 -0
  452. package/docs/plugins/reference/ollama.md +24 -0
  453. package/docs/plugins/reference/open-prose.md +19 -0
  454. package/docs/plugins/reference/openai.md +23 -0
  455. package/docs/plugins/reference/opencode-go.md +23 -0
  456. package/docs/plugins/reference/opencode.md +23 -0
  457. package/docs/plugins/reference/openrouter.md +23 -0
  458. package/docs/plugins/reference/openshell.md +19 -0
  459. package/docs/plugins/reference/perplexity.md +23 -0
  460. package/docs/plugins/reference/pixverse.md +23 -0
  461. package/docs/plugins/reference/policy.md +79 -0
  462. package/docs/plugins/reference/qa-channel.md +23 -0
  463. package/docs/plugins/reference/qa-lab.md +19 -0
  464. package/docs/plugins/reference/qa-matrix.md +19 -0
  465. package/docs/plugins/reference/qianfan.md +23 -0
  466. package/docs/plugins/reference/qqbot.md +23 -0
  467. package/docs/plugins/reference/qwen.md +24 -0
  468. package/docs/plugins/reference/runway.md +23 -0
  469. package/docs/plugins/reference/searxng.md +19 -0
  470. package/docs/plugins/reference/senseaudio.md +23 -0
  471. package/docs/plugins/reference/sglang.md +23 -0
  472. package/docs/plugins/reference/signal.md +23 -0
  473. package/docs/plugins/reference/slack.md +23 -0
  474. package/docs/plugins/reference/sms.md +23 -0
  475. package/docs/plugins/reference/stepfun.md +23 -0
  476. package/docs/plugins/reference/synology-chat.md +23 -0
  477. package/docs/plugins/reference/synthetic.md +23 -0
  478. package/docs/plugins/reference/tavily.md +23 -0
  479. package/docs/plugins/reference/telegram.md +23 -0
  480. package/docs/plugins/reference/tencent.md +23 -0
  481. package/docs/plugins/reference/tlon.md +23 -0
  482. package/docs/plugins/reference/together.md +23 -0
  483. package/docs/plugins/reference/tokenjuice.md +23 -0
  484. package/docs/plugins/reference/tts-local-cli.md +19 -0
  485. package/docs/plugins/reference/twitch.md +23 -0
  486. package/docs/plugins/reference/venice.md +23 -0
  487. package/docs/plugins/reference/vercel-ai-gateway.md +23 -0
  488. package/docs/plugins/reference/vllm.md +23 -0
  489. package/docs/plugins/reference/voice-call.md +23 -0
  490. package/docs/plugins/reference/volcengine.md +23 -0
  491. package/docs/plugins/reference/voyage.md +19 -0
  492. package/docs/plugins/reference/vydra.md +23 -0
  493. package/docs/plugins/reference/web-readability.md +19 -0
  494. package/docs/plugins/reference/webhooks.md +23 -0
  495. package/docs/plugins/reference/whatsapp.md +23 -0
  496. package/docs/plugins/reference/workboard.md +23 -0
  497. package/docs/plugins/reference/xai.md +23 -0
  498. package/docs/plugins/reference/xiaomi.md +23 -0
  499. package/docs/plugins/reference/zai.md +23 -0
  500. package/docs/plugins/reference/zalo.md +23 -0
  501. package/docs/plugins/reference/zalouser.md +24 -0
  502. package/docs/plugins/reference.md +19 -0
  503. package/docs/plugins/sdk-agent-harness.md +339 -0
  504. package/docs/plugins/sdk-channel-inbound.md +70 -0
  505. package/docs/plugins/sdk-channel-ingress.md +137 -0
  506. package/docs/plugins/sdk-channel-message.md +18 -0
  507. package/docs/plugins/sdk-channel-outbound.md +113 -0
  508. package/docs/plugins/sdk-channel-plugins.md +770 -0
  509. package/docs/plugins/sdk-channel-turn.md +9 -0
  510. package/docs/plugins/sdk-entrypoints.md +344 -0
  511. package/docs/plugins/sdk-migration.md +1011 -0
  512. package/docs/plugins/sdk-overview.md +525 -0
  513. package/docs/plugins/sdk-provider-plugins.md +1019 -0
  514. package/docs/plugins/sdk-runtime.md +683 -0
  515. package/docs/plugins/sdk-setup.md +550 -0
  516. package/docs/plugins/sdk-subpaths.md +401 -0
  517. package/docs/plugins/sdk-testing.md +403 -0
  518. package/docs/plugins/tool-plugins.md +411 -0
  519. package/docs/plugins/voice-call.md +942 -0
  520. package/docs/plugins/webhooks.md +192 -0
  521. package/docs/plugins/workboard.md +402 -0
  522. package/docs/plugins/zalouser.md +86 -0
  523. package/docs/prose.md +191 -0
  524. package/docs/providers/alibaba.md +158 -0
  525. package/docs/providers/anthropic.md +386 -0
  526. package/docs/providers/arcee.md +144 -0
  527. package/docs/providers/azure-speech.md +119 -0
  528. package/docs/providers/bedrock-mantle.md +224 -0
  529. package/docs/providers/bedrock.md +433 -0
  530. package/docs/providers/cerebras.md +130 -0
  531. package/docs/providers/chutes.md +153 -0
  532. package/docs/providers/claude-max-api-proxy.md +191 -0
  533. package/docs/providers/cloudflare-ai-gateway.md +119 -0
  534. package/docs/providers/comfy.md +362 -0
  535. package/docs/providers/deepgram.md +184 -0
  536. package/docs/providers/deepinfra.md +92 -0
  537. package/docs/providers/deepseek.md +146 -0
  538. package/docs/providers/ds4.md +309 -0
  539. package/docs/providers/elevenlabs.md +130 -0
  540. package/docs/providers/fal.md +240 -0
  541. package/docs/providers/fireworks.md +144 -0
  542. package/docs/providers/github-copilot.md +257 -0
  543. package/docs/providers/gmi.md +92 -0
  544. package/docs/providers/google.md +472 -0
  545. package/docs/providers/gradium.md +123 -0
  546. package/docs/providers/groq.md +171 -0
  547. package/docs/providers/huggingface.md +235 -0
  548. package/docs/providers/index.md +105 -0
  549. package/docs/providers/inferrs.md +272 -0
  550. package/docs/providers/inworld.md +120 -0
  551. package/docs/providers/kilocode.md +135 -0
  552. package/docs/providers/litellm.md +234 -0
  553. package/docs/providers/lmstudio.md +224 -0
  554. package/docs/providers/minimax.md +518 -0
  555. package/docs/providers/mistral.md +235 -0
  556. package/docs/providers/models.md +64 -0
  557. package/docs/providers/moonshot.md +413 -0
  558. package/docs/providers/novita.md +92 -0
  559. package/docs/providers/nvidia.md +208 -0
  560. package/docs/providers/ollama-cloud.md +115 -0
  561. package/docs/providers/ollama.md +1225 -0
  562. package/docs/providers/openai.md +1091 -0
  563. package/docs/providers/opencode-go.md +123 -0
  564. package/docs/providers/opencode.md +149 -0
  565. package/docs/providers/openrouter.md +390 -0
  566. package/docs/providers/perplexity-provider.md +123 -0
  567. package/docs/providers/pixverse.md +165 -0
  568. package/docs/providers/qianfan.md +132 -0
  569. package/docs/providers/qwen-oauth.md +115 -0
  570. package/docs/providers/qwen.md +364 -0
  571. package/docs/providers/runway.md +103 -0
  572. package/docs/providers/senseaudio.md +68 -0
  573. package/docs/providers/sglang.md +161 -0
  574. package/docs/providers/stepfun.md +229 -0
  575. package/docs/providers/synthetic.md +154 -0
  576. package/docs/providers/tencent.md +130 -0
  577. package/docs/providers/together.md +140 -0
  578. package/docs/providers/venice.md +312 -0
  579. package/docs/providers/vercel-ai-gateway.md +128 -0
  580. package/docs/providers/vllm.md +407 -0
  581. package/docs/providers/volcengine.md +199 -0
  582. package/docs/providers/vydra.md +180 -0
  583. package/docs/providers/xai.md +571 -0
  584. package/docs/providers/xiaomi.md +286 -0
  585. package/docs/providers/zai.md +224 -0
  586. package/docs/refactor/access.md +9 -0
  587. package/docs/refactor/acp.md +298 -0
  588. package/docs/refactor/canvas.md +131 -0
  589. package/docs/refactor/database-first.md +2263 -0
  590. package/docs/refactor/ingress-core.md +341 -0
  591. package/docs/reference/AGENTS.default.md +131 -0
  592. package/docs/reference/RELEASING.md +844 -0
  593. package/docs/reference/api-usage-costs.md +208 -0
  594. package/docs/reference/application-modernization-plan.md +208 -0
  595. package/docs/reference/code-mode.md +1058 -0
  596. package/docs/reference/credits.md +33 -0
  597. package/docs/reference/device-models.md +50 -0
  598. package/docs/reference/full-release-validation.md +206 -0
  599. package/docs/reference/memory-config.md +630 -0
  600. package/docs/reference/prompt-caching.md +358 -0
  601. package/docs/reference/release-performance-sweep.md +347 -0
  602. package/docs/reference/rich-output-protocol.md +93 -0
  603. package/docs/reference/rpc.md +43 -0
  604. package/docs/reference/secret-placeholder-conventions.md +33 -0
  605. package/docs/reference/secretref-credential-surface.md +163 -0
  606. package/docs/reference/secretref-user-supplied-credentials-matrix.json +691 -0
  607. package/docs/reference/session-management-compaction.md +474 -0
  608. package/docs/reference/templates/AGENTS.dev.md +90 -0
  609. package/docs/reference/templates/AGENTS.md +227 -0
  610. package/docs/reference/templates/BOOT.md +16 -0
  611. package/docs/reference/templates/BOOTSTRAP.md +66 -0
  612. package/docs/reference/templates/HEARTBEAT.md +24 -0
  613. package/docs/reference/templates/IDENTITY.dev.md +52 -0
  614. package/docs/reference/templates/IDENTITY.md +34 -0
  615. package/docs/reference/templates/SOUL.dev.md +82 -0
  616. package/docs/reference/templates/SOUL.md +49 -0
  617. package/docs/reference/templates/TOOLS.dev.md +29 -0
  618. package/docs/reference/templates/TOOLS.md +51 -0
  619. package/docs/reference/templates/USER.dev.md +23 -0
  620. package/docs/reference/templates/USER.md +28 -0
  621. package/docs/reference/test.md +248 -0
  622. package/docs/reference/token-use.md +246 -0
  623. package/docs/reference/transcript-hygiene.md +226 -0
  624. package/docs/reference/wizard.md +252 -0
  625. package/docs/security/CONTRIBUTING-THREAT-MODEL.md +101 -0
  626. package/docs/security/THREAT-MODEL-ATLAS.md +611 -0
  627. package/docs/security/formal-verification.md +170 -0
  628. package/docs/security/incident-response.md +59 -0
  629. package/docs/security/network-proxy.md +268 -0
  630. package/docs/snippets/plugin-publish/minimal-openclaw.plugin.json +12 -0
  631. package/docs/snippets/plugin-publish/minimal-package.json +16 -0
  632. package/docs/specs/claw-supervisor.md +247 -0
  633. package/docs/start/bootstrapping.md +49 -0
  634. package/docs/start/docs-directory.md +69 -0
  635. package/docs/start/getting-started.md +152 -0
  636. package/docs/start/hubs.md +201 -0
  637. package/docs/start/lore.md +223 -0
  638. package/docs/start/onboarding-overview.md +72 -0
  639. package/docs/start/onboarding.md +98 -0
  640. package/docs/start/openclaw.md +246 -0
  641. package/docs/start/quickstart.md +25 -0
  642. package/docs/start/setup.md +178 -0
  643. package/docs/start/showcase.md +371 -0
  644. package/docs/start/wizard-cli-automation.md +232 -0
  645. package/docs/start/wizard-cli-reference.md +331 -0
  646. package/docs/start/wizard.md +142 -0
  647. package/docs/style.css +137 -0
  648. package/docs/tools/acp-agents-setup.md +356 -0
  649. package/docs/tools/acp-agents.md +865 -0
  650. package/docs/tools/agent-send.md +130 -0
  651. package/docs/tools/apply-patch.md +64 -0
  652. package/docs/tools/brave-search.md +139 -0
  653. package/docs/tools/browser-control.md +405 -0
  654. package/docs/tools/browser-linux-troubleshooting.md +173 -0
  655. package/docs/tools/browser-login.md +77 -0
  656. package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +219 -0
  657. package/docs/tools/browser.md +866 -0
  658. package/docs/tools/btw.md +159 -0
  659. package/docs/tools/capability-cookbook.md +12 -0
  660. package/docs/tools/clawhub.md +5 -0
  661. package/docs/tools/code-execution.md +173 -0
  662. package/docs/tools/creating-skills.md +271 -0
  663. package/docs/tools/diffs.md +527 -0
  664. package/docs/tools/duckduckgo-search.md +109 -0
  665. package/docs/tools/elevated.md +128 -0
  666. package/docs/tools/exa-search.md +152 -0
  667. package/docs/tools/exec-approvals-advanced.md +457 -0
  668. package/docs/tools/exec-approvals.md +520 -0
  669. package/docs/tools/exec.md +294 -0
  670. package/docs/tools/firecrawl.md +155 -0
  671. package/docs/tools/gemini-search.md +114 -0
  672. package/docs/tools/goal.md +217 -0
  673. package/docs/tools/grok-search.md +129 -0
  674. package/docs/tools/image-generation.md +538 -0
  675. package/docs/tools/index.md +176 -0
  676. package/docs/tools/kimi-search.md +105 -0
  677. package/docs/tools/llm-task.md +137 -0
  678. package/docs/tools/lobster.md +365 -0
  679. package/docs/tools/loop-detection.md +154 -0
  680. package/docs/tools/media-overview.md +161 -0
  681. package/docs/tools/minimax-search.md +102 -0
  682. package/docs/tools/multi-agent-sandbox-tools.md +409 -0
  683. package/docs/tools/music-generation.md +372 -0
  684. package/docs/tools/ollama-search.md +153 -0
  685. package/docs/tools/parallel-search.md +154 -0
  686. package/docs/tools/pdf.md +213 -0
  687. package/docs/tools/permission-modes.md +111 -0
  688. package/docs/tools/perplexity-search.md +220 -0
  689. package/docs/tools/plugin.md +378 -0
  690. package/docs/tools/reactions.md +100 -0
  691. package/docs/tools/searxng-search.md +141 -0
  692. package/docs/tools/skill-workshop.md +283 -0
  693. package/docs/tools/skills-config.md +457 -0
  694. package/docs/tools/skills.md +591 -0
  695. package/docs/tools/slash-commands.md +518 -0
  696. package/docs/tools/steer.md +77 -0
  697. package/docs/tools/subagents.md +652 -0
  698. package/docs/tools/tavily.md +162 -0
  699. package/docs/tools/thinking.md +142 -0
  700. package/docs/tools/tokenjuice.md +84 -0
  701. package/docs/tools/tool-search.md +269 -0
  702. package/docs/tools/trajectory.md +229 -0
  703. package/docs/tools/tts.md +1013 -0
  704. package/docs/tools/video-generation.md +555 -0
  705. package/docs/tools/web-fetch.md +210 -0
  706. package/docs/tools/web.md +476 -0
  707. package/docs/tts.md +11 -0
  708. package/docs/vps.md +139 -0
  709. package/docs/web/control-ui.md +530 -0
  710. package/docs/web/dashboard.md +107 -0
  711. package/docs/web/index.md +133 -0
  712. package/docs/web/tui.md +258 -0
  713. package/docs/web/webchat.md +102 -0
  714. package/npm-shrinkwrap.json +3485 -0
  715. package/openclaw.mjs +661 -0
  716. package/package.json +1971 -0
  717. package/patches/.gitkeep +0 -0
  718. package/patches/@agentclientprotocol__claude-agent-acp@0.39.0.patch +40 -0
  719. package/pnpm-workspace.yaml +124 -0
  720. package/scripts/crabbox-wrapper.mjs +2470 -0
  721. package/scripts/lib/official-external-channel-catalog.json +570 -0
  722. package/scripts/lib/official-external-plugin-catalog.json +284 -0
  723. package/scripts/lib/official-external-provider-catalog.json +158 -0
  724. package/scripts/lib/package-dist-imports.mjs +174 -0
  725. package/scripts/npm-runner.mjs +95 -0
  726. package/scripts/postinstall-bundled-plugins.mjs +978 -0
  727. package/scripts/preinstall-package-manager-warning.mjs +74 -0
  728. package/scripts/prepare-git-hooks.mjs +73 -0
  729. package/scripts/windows-cmd-helpers.mjs +29 -0
  730. package/skills/1password/SKILL.md +70 -0
  731. package/skills/1password/references/cli-examples.md +29 -0
  732. package/skills/1password/references/get-started.md +17 -0
  733. package/skills/apple-notes/SKILL.md +77 -0
  734. package/skills/apple-reminders/SKILL.md +118 -0
  735. package/skills/bear-notes/SKILL.md +107 -0
  736. package/skills/blogwatcher/SKILL.md +69 -0
  737. package/skills/blucli/SKILL.md +47 -0
  738. package/skills/camsnap/SKILL.md +45 -0
  739. package/skills/canvas/SKILL.md +78 -0
  740. package/skills/clawhub/SKILL.md +77 -0
  741. package/skills/coding-agent/SKILL.md +143 -0
  742. package/skills/diagram-maker/SKILL.md +53 -0
  743. package/skills/diagram-maker/references/excalidraw-patterns.md +85 -0
  744. package/skills/diagram-maker/references/svg-template.md +112 -0
  745. package/skills/discord/SKILL.md +136 -0
  746. package/skills/eightctl/SKILL.md +50 -0
  747. package/skills/gemini/SKILL.md +47 -0
  748. package/skills/gh-issues/SKILL.md +213 -0
  749. package/skills/gifgrep/SKILL.md +85 -0
  750. package/skills/github/SKILL.md +84 -0
  751. package/skills/gog/SKILL.md +116 -0
  752. package/skills/goplaces/SKILL.md +52 -0
  753. package/skills/healthcheck/SKILL.md +105 -0
  754. package/skills/himalaya/SKILL.md +80 -0
  755. package/skills/himalaya/references/configuration.md +184 -0
  756. package/skills/himalaya/references/message-composition.md +199 -0
  757. package/skills/imsg/SKILL.md +122 -0
  758. package/skills/mcporter/SKILL.md +61 -0
  759. package/skills/meme-maker/SKILL.md +42 -0
  760. package/skills/meme-maker/references/templates.json +358 -0
  761. package/skills/meme-maker/scripts/meme.mjs +398 -0
  762. package/skills/model-usage/SKILL.md +71 -0
  763. package/skills/model-usage/references/codexbar-cli.md +33 -0
  764. package/skills/model-usage/scripts/model_usage.py +319 -0
  765. package/skills/model-usage/scripts/test_model_usage.py +40 -0
  766. package/skills/nano-pdf/SKILL.md +38 -0
  767. package/skills/node-connect/SKILL.md +143 -0
  768. package/skills/node-inspect-debugger/SKILL.md +85 -0
  769. package/skills/notion/SKILL.md +150 -0
  770. package/skills/obsidian/SKILL.md +119 -0
  771. package/skills/openai-whisper/SKILL.md +38 -0
  772. package/skills/openai-whisper-api/SKILL.md +71 -0
  773. package/skills/openai-whisper-api/scripts/transcribe.sh +154 -0
  774. package/skills/openhue/SKILL.md +112 -0
  775. package/skills/oracle/SKILL.md +126 -0
  776. package/skills/ordercli/SKILL.md +78 -0
  777. package/skills/peekaboo/SKILL.md +198 -0
  778. package/skills/pyproject.toml +10 -0
  779. package/skills/python-debugpy/SKILL.md +73 -0
  780. package/skills/sag/SKILL.md +87 -0
  781. package/skills/session-logs/SKILL.md +151 -0
  782. package/skills/sherpa-onnx-tts/SKILL.md +109 -0
  783. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
  784. package/skills/skill-creator/SKILL.md +78 -0
  785. package/skills/skill-creator/license.txt +202 -0
  786. package/skills/skill-creator/scripts/init_skill.py +378 -0
  787. package/skills/skill-creator/scripts/package_skill.py +144 -0
  788. package/skills/skill-creator/scripts/quick_validate.py +169 -0
  789. package/skills/skill-creator/scripts/test_package_skill.py +199 -0
  790. package/skills/skill-creator/scripts/test_quick_validate.py +116 -0
  791. package/skills/slack/SKILL.md +78 -0
  792. package/skills/songsee/SKILL.md +49 -0
  793. package/skills/sonoscli/SKILL.md +65 -0
  794. package/skills/spike/SKILL.md +51 -0
  795. package/skills/spotify-player/SKILL.md +64 -0
  796. package/skills/summarize/SKILL.md +87 -0
  797. package/skills/taskflow/SKILL.md +149 -0
  798. package/skills/taskflow/examples/inbox-triage.lobster +33 -0
  799. package/skills/taskflow/examples/pr-intake.lobster +32 -0
  800. package/skills/taskflow-inbox-triage/SKILL.md +119 -0
  801. package/skills/things-mac/SKILL.md +86 -0
  802. package/skills/tmux/SKILL.md +91 -0
  803. package/skills/tmux/scripts/find-sessions.sh +112 -0
  804. package/skills/tmux/scripts/wait-for-text.sh +83 -0
  805. package/skills/trello/SKILL.md +108 -0
  806. package/skills/video-frames/SKILL.md +46 -0
  807. package/skills/video-frames/scripts/frame.sh +81 -0
  808. package/skills/voice-call/SKILL.md +45 -0
  809. package/skills/wacli/SKILL.md +72 -0
  810. package/skills/weather/SKILL.md +87 -0
  811. package/skills/xurl/SKILL.md +120 -0
  812. package/src/agents/templates/HEARTBEAT.md +5 -0
@@ -0,0 +1,378 @@
1
+ ---
2
+ summary: "Install, configure, and manage OpenClaw plugins"
3
+ read_when:
4
+ - Installing or configuring plugins
5
+ - Understanding plugin discovery and load rules
6
+ - Working with Codex/Claude-compatible plugin bundles
7
+ title: "Plugins"
8
+ sidebarTitle: "Getting Started"
9
+ doc-schema-version: 1
10
+ ---
11
+
12
+ Plugins extend OpenClaw with channels, model providers, agent harnesses, tools,
13
+ skills, speech, realtime transcription, voice, media understanding, generation,
14
+ web fetch, web search, and other runtime capabilities.
15
+
16
+ Use this page when you want to install a plugin, restart the Gateway, verify
17
+ that the runtime loaded it, and route common setup failures. For command-only
18
+ examples, see [Manage plugins](/plugins/manage-plugins). For the full generated
19
+ inventory of bundled, official external, and source-only plugins, see
20
+ [Plugin inventory](/plugins/plugin-inventory).
21
+
22
+ ## Requirements
23
+
24
+ Before installing a plugin, make sure you have:
25
+
26
+ - an OpenClaw checkout or installation with the `openclaw` CLI available
27
+ - network access to the selected source, such as ClawHub, npm, or a git host
28
+ - any plugin-specific credentials, config keys, or operating-system tools named
29
+ by that plugin's setup docs
30
+ - permission for the Gateway that serves your channels to reload or restart
31
+
32
+ ## Quick start
33
+
34
+ <Steps>
35
+ <Step title="Find the plugin">
36
+ Search [ClawHub](/clawhub) for public plugin packages:
37
+
38
+ ```bash
39
+ openclaw plugins search "calendar"
40
+ ```
41
+
42
+ ClawHub is the primary discovery surface for community plugins. During the
43
+ launch cutover, ordinary bare package specs still install from npm unless
44
+ they match an official plugin id. Raw `@openclaw/*` package specs that match
45
+ bundled plugins use the bundled copy from the current OpenClaw build. Use an
46
+ explicit prefix when you need one source.
47
+
48
+ </Step>
49
+
50
+ <Step title="Install the plugin">
51
+ ```bash
52
+ # From ClawHub.
53
+ openclaw plugins install clawhub:<package>
54
+
55
+ # From npm.
56
+ openclaw plugins install npm:<package>
57
+
58
+ # From git.
59
+ openclaw plugins install git:github.com/<owner>/<repo>@<ref>
60
+
61
+ # From a local development checkout.
62
+ openclaw plugins install ./my-plugin
63
+ openclaw plugins install --link ./my-plugin
64
+ ```
65
+
66
+ Treat plugin installs like running code. Prefer pinned versions when you
67
+ need reproducible production installs.
68
+
69
+ </Step>
70
+
71
+ <Step title="Configure and enable it">
72
+ Configure plugin-specific settings under `plugins.entries.<id>.config`.
73
+ Enable the plugin when it is not already enabled:
74
+
75
+ ```bash
76
+ openclaw plugins enable <plugin-id>
77
+ ```
78
+
79
+ If your config uses a restrictive `plugins.allow` list, the installed plugin
80
+ id must be present there before the plugin can load.
81
+ `openclaw plugins install` adds the installed id to an existing
82
+ `plugins.allow` list and removes the same id from `plugins.deny` so the
83
+ explicit install can load after restart.
84
+
85
+ </Step>
86
+
87
+ <Step title="Let the Gateway reload">
88
+ Installing, updating, or uninstalling plugin code requires a Gateway
89
+ restart. When a managed Gateway is already running with config reload
90
+ enabled, OpenClaw detects the changed plugin install record and restarts the
91
+ Gateway automatically. If the Gateway is not managed or reload is disabled,
92
+ restart it yourself:
93
+
94
+ ```bash
95
+ openclaw gateway restart
96
+ ```
97
+
98
+ Enable and disable operations update config and refresh the cold registry.
99
+ A runtime inspect is still the clearest verification path for live runtime
100
+ surfaces.
101
+
102
+ </Step>
103
+
104
+ <Step title="Verify runtime registration">
105
+ ```bash
106
+ openclaw plugins inspect <plugin-id> --runtime --json
107
+ ```
108
+
109
+ Use `--runtime` when you need to prove registered tools, hooks, services,
110
+ Gateway methods, or plugin-owned CLI commands. Plain `inspect` is a cold
111
+ manifest and registry check.
112
+
113
+ </Step>
114
+ </Steps>
115
+
116
+ ## Configuration
117
+
118
+ ### Choose an install source
119
+
120
+ | Source | Use when | Example |
121
+ | ----------- | ------------------------------------------------------------------------------ | -------------------------------------------------------------- |
122
+ | ClawHub | You want OpenClaw-native discovery, scans, version metadata, and install hints | `openclaw plugins install clawhub:<package>` |
123
+ | npm | You need direct npm registry or dist-tag workflows | `openclaw plugins install npm:<package>` |
124
+ | git | You need a branch, tag, or commit from a repository | `openclaw plugins install git:github.com/<owner>/<repo>@<ref>` |
125
+ | local path | You are developing or testing a plugin on the same machine | `openclaw plugins install --link ./my-plugin` |
126
+ | marketplace | You are installing a Claude-compatible marketplace plugin | `openclaw plugins install <plugin> --marketplace <source>` |
127
+
128
+ Bare package specs have special compatibility behavior. If the bare name matches
129
+ a bundled plugin id, OpenClaw uses that bundled source. If it matches an
130
+ official external plugin id, OpenClaw uses the official package catalog. Other
131
+ ordinary bare package specs install through npm during the launch cutover. Raw
132
+ `@openclaw/*` package specs that match bundled plugins also resolve to the
133
+ bundled copy before npm fallback. Use `npm:@openclaw/<plugin>@<version>` when
134
+ you deliberately want the external npm package instead of the image-owned
135
+ bundled copy. Use `clawhub:`, `npm:`, `git:`, or `npm-pack:` when you need
136
+ deterministic source selection. See [`openclaw plugins`](/cli/plugins#install)
137
+ for the full command contract.
138
+
139
+ For npm installs, unpinned package specs and `@latest` choose the newest stable
140
+ package that advertises compatibility with this OpenClaw build. If npm's
141
+ current latest release declares a newer `openclaw.compat.pluginApi` or
142
+ `openclaw.install.minHostVersion`, OpenClaw scans older stable package versions
143
+ and installs the newest one that fits. Exact versions and explicit channel tags
144
+ such as `@beta` stay pinned to the selected package and fail when incompatible.
145
+
146
+ ### Operator install policy
147
+
148
+ Configure `security.installPolicy` to run a trusted local policy command before
149
+ plugin install or update proceeds. The policy receives metadata plus the staged
150
+ source path and can allow or block the install. It runs before plugin
151
+ `before_install` hooks. The deprecated `--dangerously-force-unsafe-install`
152
+ flag is accepted for compatibility but does not bypass install policy, hooks, or
153
+ OpenClaw's built-in plugin dependency denylist.
154
+
155
+ See [Skills config](/tools/skills-config#operator-install-policy-securityinstallpolicy)
156
+ for the shared `security.installPolicy` exec schema used by both skills and
157
+ plugins.
158
+
159
+ ### Configure plugin policy
160
+
161
+ The common plugin config shape is:
162
+
163
+ ```json5
164
+ {
165
+ plugins: {
166
+ enabled: true,
167
+ allow: ["voice-call"],
168
+ deny: ["untrusted-plugin"],
169
+ load: { paths: ["~/Projects/oss/voice-call-plugin"] },
170
+ slots: { memory: "memory-core" },
171
+ entries: {
172
+ "voice-call": { enabled: true, config: { provider: "twilio" } },
173
+ },
174
+ },
175
+ }
176
+ ```
177
+
178
+ Key policy rules:
179
+
180
+ - `plugins.enabled: false` disables all plugins and skips plugin discovery/load
181
+ work. Stale plugin references are inert while this is active; re-enable
182
+ plugins before running doctor cleanup when you want stale ids removed.
183
+ - `plugins.deny` wins over allow and per-plugin enablement.
184
+ - `plugins.allow` is an exclusive allowlist. Plugin-owned tools outside the
185
+ allowlist stay unavailable, even when `tools.allow` includes `"*"`.
186
+ - `plugins.entries.<id>.enabled: false` disables one plugin while preserving its
187
+ config.
188
+ - `plugins.load.paths` adds explicit local plugin files or directories. Managed
189
+ `plugins install` local paths must be plugin directories or archives; use
190
+ `plugins.load.paths` for standalone plugin files.
191
+ - Workspace-origin plugins are disabled by default; explicitly enable or
192
+ allowlist them before using local workspace code.
193
+ - Bundled plugins follow their built-in default-on/default-off metadata unless
194
+ config explicitly overrides them.
195
+ - `plugins.slots.<slot>` chooses one plugin for exclusive categories such as
196
+ memory and context engines. Slot selection force-enables the selected plugin
197
+ for that slot by counting as explicit activation; it can load even when it
198
+ would otherwise be opt-in. `plugins.deny` and
199
+ `plugins.entries.<id>.enabled: false` still block it.
200
+ - Bundled opt-in plugins can auto-activate when config names one of their owned
201
+ surfaces, such as a provider/model ref, channel config, CLI backend, or agent
202
+ harness runtime.
203
+ - OpenAI-family Codex routing keeps provider and runtime plugin boundaries
204
+ separate: legacy Codex model refs are legacy config repaired by doctor, while the bundled
205
+ `codex` plugin owns Codex app-server runtime for canonical `openai/*` agent
206
+ refs, explicit `agentRuntime.id: "codex"`, and legacy `codex/*` refs.
207
+
208
+ Run `openclaw doctor` or `openclaw doctor --fix` when config validation reports
209
+ stale plugin ids, allowlist/tool mismatches, or legacy bundled plugin paths.
210
+
211
+ ## Understand plugin formats
212
+
213
+ OpenClaw recognizes two plugin formats:
214
+
215
+ | Format | How it loads | Use when |
216
+ | ---------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
217
+ | Native OpenClaw plugin | `openclaw.plugin.json` plus a runtime module loaded in process | You are installing or building OpenClaw-specific runtime capabilities |
218
+ | Compatible bundle | Codex, Claude, or Cursor plugin layout mapped into OpenClaw plugin inventory | You are reusing compatible skills, commands, hooks, or bundle metadata |
219
+
220
+ Both formats appear in `openclaw plugins list`, `openclaw plugins inspect`,
221
+ `openclaw plugins enable`, and `openclaw plugins disable`. See
222
+ [Plugin bundles](/plugins/bundles) for the bundle compatibility boundary and
223
+ [Building plugins](/plugins/building-plugins) for native plugin authoring.
224
+
225
+ ## Plugin hooks
226
+
227
+ Plugins can register hooks at runtime, but there are two different APIs with
228
+ different jobs.
229
+
230
+ - Use typed hooks via `api.on(...)` for runtime lifecycle hooks. This is the
231
+ preferred surface for middleware, policy, message rewriting, prompt shaping,
232
+ and tool control.
233
+ - Use `api.registerHook(...)` only when you want to participate in the internal
234
+ hook system described in [Hooks](/automation/hooks). This is mainly for coarse
235
+ command/lifecycle side effects and compatibility with existing HOOK-style
236
+ automation.
237
+
238
+ Quick rule:
239
+
240
+ - If the handler needs priority, merge semantics, or block/cancel behavior, use
241
+ typed plugin hooks.
242
+ - If the handler just reacts to `command:new`, `command:reset`, `message:sent`,
243
+ or similar coarse events, `api.registerHook(...)` is fine.
244
+
245
+ Plugin-managed internal hooks show up in `openclaw hooks list` with
246
+ `plugin:<id>`. You cannot enable or disable them through `openclaw hooks`;
247
+ enable or disable the plugin instead.
248
+
249
+ ## Verify the active Gateway
250
+
251
+ `openclaw plugins list` and plain `openclaw plugins inspect` read cold config,
252
+ manifest, and registry state. They do not prove that an already-running Gateway
253
+ has imported the same plugin code.
254
+
255
+ When a plugin appears installed but live chat traffic does not use it:
256
+
257
+ ```bash
258
+ openclaw gateway status --deep --require-rpc
259
+ openclaw plugins inspect <plugin-id> --runtime --json
260
+ openclaw gateway restart
261
+ ```
262
+
263
+ Managed Gateways restart automatically after plugin install, update, and
264
+ uninstall changes that alter plugin source. On VPS or container installs, make
265
+ sure any manual restart targets the actual `openclaw gateway run` child that
266
+ serves your channels, not only a wrapper or supervisor.
267
+
268
+ ## Troubleshooting
269
+
270
+ | Symptom | Check | Fix |
271
+ | -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------- |
272
+ | Plugin appears in `plugins list` but runtime hooks do not run | Use `openclaw plugins inspect <id> --runtime --json` and confirm the active Gateway with `gateway status --deep --require-rpc` | Restart the live Gateway after install, update, config, or source changes |
273
+ | Duplicate channel or tool ownership diagnostics appear | Run `openclaw plugins list --enabled --verbose`, inspect each suspected plugin with `--runtime --json`, and compare channel/tool ownership | Disable one owner, remove stale installs, or use manifest `preferOver` for intentional replacement |
274
+ | Config says a plugin is missing | Check [Plugin inventory](/plugins/plugin-inventory) for whether it is bundled, official external, or source-only | Install the external package, enable the bundled plugin, or remove stale config |
275
+ | Config is invalid during install | Read the validation message and run `openclaw doctor --fix` when it points to stale plugin state | Doctor can quarantine invalid plugin config by disabling the entry and removing the invalid payload |
276
+ | Plugin path is blocked for suspicious ownership or permissions | Inspect the diagnostic before the config error | Fix filesystem ownership/permissions, then run `openclaw plugins registry --refresh` |
277
+ | `OPENCLAW_NIX_MODE=1` blocks lifecycle commands | Confirm the install is managed by Nix | Change plugin selection in the Nix source instead of using plugin mutator commands |
278
+ | Dependency import fails at runtime | Check whether the plugin was installed through npm/git/ClawHub or loaded from a local path | Run `openclaw plugins update <id>`, reinstall the source, or install local plugin dependencies yourself |
279
+
280
+ When stale plugin config still names a no-longer-discoverable channel plugin,
281
+ Gateway startup skips that plugin-backed channel instead of blocking every
282
+ other channel. Run `openclaw doctor --fix` to remove stale plugin and channel
283
+ entries. Unknown channel keys without stale-plugin evidence still fail
284
+ validation so typos stay visible.
285
+
286
+ For intentional channel replacement, the preferred plugin should declare
287
+ `channelConfigs.<channel-id>.preferOver` with the legacy or lower-priority
288
+ plugin id. If both plugins are explicitly enabled, OpenClaw keeps that request
289
+ and reports duplicate channel or tool diagnostics instead of silently choosing
290
+ one owner.
291
+
292
+ If an installed package reports that it `requires compiled runtime output for
293
+ TypeScript entry ...`, the package was published without the JavaScript files
294
+ OpenClaw needs at runtime. Update or reinstall after the publisher ships
295
+ compiled JavaScript, or disable/uninstall the plugin until then.
296
+
297
+ ### Blocked plugin path ownership
298
+
299
+ If plugin diagnostics say
300
+ `blocked plugin candidate: suspicious ownership (... uid=1000, expected uid=0 or root)`
301
+ and config validation follows with `plugin present but blocked`, OpenClaw found
302
+ plugin files owned by a different Unix user than the process that is loading
303
+ them. Keep the plugin config in place; fix the filesystem ownership or run
304
+ OpenClaw as the same user that owns the state directory.
305
+
306
+ For Docker installs, the official image runs as `node` (uid `1000`), so the
307
+ host bind-mounted OpenClaw config and workspace directories should normally be
308
+ owned by uid `1000`:
309
+
310
+ ```bash
311
+ sudo chown -R 1000:1000 /path/to/openclaw-config /path/to/openclaw-workspace
312
+ ```
313
+
314
+ If you intentionally run OpenClaw as root, repair the managed plugin root to
315
+ root ownership instead:
316
+
317
+ ```bash
318
+ sudo chown -R root:root /path/to/openclaw-config/npm
319
+ ```
320
+
321
+ After fixing ownership, rerun `openclaw doctor --fix` or
322
+ `openclaw plugins registry --refresh` so the persisted plugin registry matches
323
+ the repaired files.
324
+
325
+ ### Slow plugin tool setup
326
+
327
+ If agent turns appear to stall while preparing tools, enable trace logging and
328
+ check for plugin tool factory timing lines:
329
+
330
+ ```bash
331
+ openclaw config set logging.level trace
332
+ openclaw logs --follow
333
+ ```
334
+
335
+ Look for:
336
+
337
+ ```text
338
+ [trace:plugin-tools] factory timings ...
339
+ ```
340
+
341
+ The summary lists total factory time and the slowest plugin tool factories,
342
+ including plugin id, declared tool names, result shape, and whether the tool is
343
+ optional. Slow lines are promoted to warnings when a single factory takes at
344
+ least 1s or total plugin tool factory prep takes at least 5s.
345
+
346
+ OpenClaw caches successful plugin tool factory results for repeated resolutions
347
+ with the same effective request context. The cache key includes the effective
348
+ runtime config, workspace, agent/session ids, sandbox policy, browser settings,
349
+ delivery context, requester identity, and ownership state, so factories that
350
+ depend on those trusted fields are re-run when the context changes. If timings
351
+ stay high, the plugin may be doing expensive work before returning its tool
352
+ definitions.
353
+
354
+ If one plugin dominates the timing, inspect its runtime registrations:
355
+
356
+ ```bash
357
+ openclaw plugins inspect <plugin-id> --runtime --json
358
+ ```
359
+
360
+ Then update, reinstall, or disable that plugin. Plugin authors should move
361
+ expensive dependency loading behind the tool execution path instead of doing it
362
+ inside the tool factory.
363
+
364
+ For dependency roots, package metadata validation, registry records, startup
365
+ reload behavior, and legacy cleanup, see
366
+ [Plugin dependency resolution](/plugins/dependency-resolution).
367
+
368
+ ## Related
369
+
370
+ - [Manage plugins](/plugins/manage-plugins) - command examples for list, install, update, uninstall, and publish
371
+ - [`openclaw plugins`](/cli/plugins) - full CLI reference
372
+ - [Plugin inventory](/plugins/plugin-inventory) - generated bundled and external plugin list
373
+ - [Plugin reference](/plugins/reference) - generated per-plugin reference pages
374
+ - [Community plugins](/plugins/community) - ClawHub discovery and docs PR policy
375
+ - [Plugin dependency resolution](/plugins/dependency-resolution) - install roots, registry records, and runtime boundaries
376
+ - [Building plugins](/plugins/building-plugins) - native plugin authoring guide
377
+ - [Plugin SDK overview](/plugins/sdk-overview) - runtime registration, hooks, and API fields
378
+ - [Plugin manifest](/plugins/manifest) - manifest and package metadata
@@ -0,0 +1,100 @@
1
+ ---
2
+ summary: "Reaction tool semantics across all supported channels"
3
+ read_when:
4
+ - Working on reactions in any channel
5
+ - Understanding how emoji reactions differ across platforms
6
+ title: "Reactions"
7
+ ---
8
+
9
+ The agent can add and remove emoji reactions on messages using the `message`
10
+ tool with the `react` action. Reaction behavior varies by channel and transport.
11
+
12
+ ## How it works
13
+
14
+ ```json
15
+ {
16
+ "action": "react",
17
+ "messageId": "msg-123",
18
+ "emoji": "thumbsup"
19
+ }
20
+ ```
21
+
22
+ - `emoji` is required when adding a reaction.
23
+ - Set `emoji` to an empty string (`""`) to remove the bot's reaction(s).
24
+ - Set `remove: true` to remove a specific emoji (requires non-empty `emoji`).
25
+ - On channels that support status reactions, `trackToolCalls: true` on a
26
+ reaction lets the runtime use that reacted message for subsequent tool
27
+ progress reactions during the same turn.
28
+
29
+ ## Channel behavior
30
+
31
+ <AccordionGroup>
32
+ <Accordion title="Discord and Slack">
33
+ - Empty `emoji` removes all of the bot's reactions on the message.
34
+ - `remove: true` removes just the specified emoji.
35
+
36
+ </Accordion>
37
+
38
+ <Accordion title="Google Chat">
39
+ - Empty `emoji` removes the app's reactions on the message.
40
+ - `remove: true` removes just the specified emoji.
41
+
42
+ </Accordion>
43
+
44
+ <Accordion title="Nextcloud Talk">
45
+ - Adding reactions only: `emoji` is required and must be non-empty.
46
+ - Reaction removal is not supported yet; calls with `remove: true` (or empty `emoji`) are rejected with a clear error rather than silently no-oping.
47
+ - Requires the Talk bot to be registered with the `reaction` feature (see [Nextcloud Talk channel docs](/channels/nextcloud-talk)).
48
+
49
+ </Accordion>
50
+
51
+ <Accordion title="Telegram">
52
+ - Empty `emoji` removes the bot's reactions.
53
+ - `remove: true` also removes reactions but still requires a non-empty `emoji` for tool validation.
54
+
55
+ </Accordion>
56
+
57
+ <Accordion title="WhatsApp">
58
+ - Empty `emoji` removes the bot reaction.
59
+ - `remove: true` maps to empty emoji internally (still requires `emoji` in the tool call).
60
+ - WhatsApp has one bot reaction slot per message; status reaction updates replace that slot rather than stacking multiple emoji.
61
+
62
+ </Accordion>
63
+
64
+ <Accordion title="Zalo Personal (zalouser)">
65
+ - Requires non-empty `emoji`.
66
+ - `remove: true` removes that specific emoji reaction.
67
+
68
+ </Accordion>
69
+
70
+ <Accordion title="Feishu/Lark">
71
+ - Use the `feishu_reaction` tool with actions `add`, `remove`, and `list`.
72
+ - Add/remove requires `emoji_type`; remove also requires `reaction_id`.
73
+
74
+ </Accordion>
75
+
76
+ <Accordion title="Signal">
77
+ - Inbound reaction notifications are controlled by `channels.signal.reactionNotifications`: `"off"` disables them, `"own"` (default) emits events when users react to bot messages, and `"all"` emits events for all reactions.
78
+
79
+ </Accordion>
80
+
81
+ <Accordion title="iMessage">
82
+ - Outbound reactions are iMessage tapbacks (`love`, `like`, `dislike`, `laugh`, `emphasize`, and `question`).
83
+ - Inbound tapback notifications are controlled by `channels.imessage.reactionNotifications`: `"off"` disables them, `"own"` (default) emits events when users react to bot-authored messages, and `"all"` emits events for all tapbacks from authorized senders.
84
+
85
+ </Accordion>
86
+ </AccordionGroup>
87
+
88
+ ## Reaction level
89
+
90
+ Per-channel `reactionLevel` config controls how broadly the agent uses reactions. Values are typically `off`, `ack`, `minimal`, or `extensive`.
91
+
92
+ - [Telegram reactionLevel](/channels/telegram#reaction-notifications) — `channels.telegram.reactionLevel`
93
+ - [WhatsApp reactionLevel](/channels/whatsapp#reaction-level) — `channels.whatsapp.reactionLevel`
94
+
95
+ Set `reactionLevel` on individual channels to tune how actively the agent reacts to messages on each platform.
96
+
97
+ ## Related
98
+
99
+ - [Agent Send](/tools/agent-send) — the `message` tool that includes `react`
100
+ - [Channels](/channels) — channel-specific configuration
@@ -0,0 +1,141 @@
1
+ ---
2
+ summary: "SearXNG web search -- self-hosted, key-free meta-search provider"
3
+ read_when:
4
+ - You want a self-hosted web search provider
5
+ - You want to use SearXNG for web_search
6
+ - You need a privacy-focused or air-gapped search option
7
+ title: "SearXNG search"
8
+ ---
9
+
10
+ OpenClaw supports [SearXNG](https://docs.searxng.org/) as a **self-hosted,
11
+ key-free** `web_search` provider. SearXNG is an open-source meta-search engine
12
+ that aggregates results from Google, Bing, DuckDuckGo, and other sources.
13
+
14
+ Advantages:
15
+
16
+ - **Free and unlimited** -- no API key or commercial subscription required
17
+ - **Privacy / air-gap** -- queries never leave your network
18
+ - **Works anywhere** -- no region restrictions on commercial search APIs
19
+
20
+ ## Setup
21
+
22
+ <Steps>
23
+ <Step title="Run a SearXNG instance">
24
+ ```bash
25
+ docker run -d -p 8888:8080 searxng/searxng
26
+ ```
27
+
28
+ Or use any existing SearXNG deployment you have access to. See the
29
+ [SearXNG documentation](https://docs.searxng.org/) for production setup.
30
+
31
+ </Step>
32
+ <Step title="Configure">
33
+ ```bash
34
+ openclaw configure --section web
35
+ # Select "searxng" as the provider
36
+ ```
37
+
38
+ Or set the env var and let auto-detection find it:
39
+
40
+ ```bash
41
+ export SEARXNG_BASE_URL="http://localhost:8888"
42
+ ```
43
+
44
+ </Step>
45
+ </Steps>
46
+
47
+ ## Config
48
+
49
+ ```json5
50
+ {
51
+ tools: {
52
+ web: {
53
+ search: {
54
+ provider: "searxng",
55
+ },
56
+ },
57
+ },
58
+ }
59
+ ```
60
+
61
+ Plugin-level settings for the SearXNG instance:
62
+
63
+ ```json5
64
+ {
65
+ plugins: {
66
+ entries: {
67
+ searxng: {
68
+ config: {
69
+ webSearch: {
70
+ baseUrl: "http://localhost:8888",
71
+ categories: "general,news", // optional
72
+ language: "en", // optional
73
+ },
74
+ },
75
+ },
76
+ },
77
+ },
78
+ }
79
+ ```
80
+
81
+ The `baseUrl` field also accepts SecretRef objects.
82
+
83
+ Transport rules:
84
+
85
+ - `https://` works for public or private SearXNG hosts
86
+ - `http://` is only accepted for trusted private-network or loopback hosts
87
+ - public SearXNG hosts must use `https://`
88
+ - private/internal hosts use the self-hosted network guard; public `https://`
89
+ hosts stay on the strict web-search guard and cannot redirect to private
90
+ addresses
91
+
92
+ ## Environment variable
93
+
94
+ Set `SEARXNG_BASE_URL` as an alternative to config:
95
+
96
+ ```bash
97
+ export SEARXNG_BASE_URL="http://localhost:8888"
98
+ ```
99
+
100
+ When `SEARXNG_BASE_URL` is set and no explicit provider is configured, auto-detection
101
+ picks SearXNG automatically (at the lowest priority -- any API-backed provider with a
102
+ key wins first).
103
+
104
+ ## Plugin config reference
105
+
106
+ | Field | Description |
107
+ | ------------ | ------------------------------------------------------------------ |
108
+ | `baseUrl` | Base URL of your SearXNG instance (required) |
109
+ | `categories` | Comma-separated categories such as `general`, `news`, or `science` |
110
+ | `language` | Language code for results such as `en`, `de`, or `fr` |
111
+
112
+ ## Notes
113
+
114
+ - **JSON API** -- uses SearXNG's native `format=json` endpoint, not HTML scraping
115
+ - **Image result URLs** -- image-category results include `img_src` when SearXNG
116
+ returns a direct image URL
117
+ - **No API key** -- works with any SearXNG instance out of the box
118
+ - **Base URL validation** -- `baseUrl` must be a valid `http://` or `https://`
119
+ URL; public hosts must use `https://`
120
+ - **Network guard** -- private/internal SearXNG endpoints opt in to
121
+ private-network access; public `https://` SearXNG endpoints keep strict SSRF
122
+ protection
123
+ - **Auto-detection order** -- SearXNG is checked last (order 200) in
124
+ auto-detection. API-backed providers with configured keys run first, then
125
+ DuckDuckGo (order 100), then Ollama Web Search (order 110)
126
+ - **Self-hosted** -- you control the instance, queries, and upstream search engines
127
+ - **Categories** default to `general` when not configured
128
+ - **Category fallback** -- if a non-`general` category request succeeds but
129
+ returns zero results, OpenClaw retries the same query once with `general`
130
+ before returning an empty result set
131
+
132
+ <Tip>
133
+ For SearXNG JSON API to work, make sure your SearXNG instance has the `json`
134
+ format enabled in its `settings.yml` under `search.formats`.
135
+ </Tip>
136
+
137
+ ## Related
138
+
139
+ - [Web Search overview](/tools/web) -- all providers and auto-detection
140
+ - [DuckDuckGo Search](/tools/duckduckgo-search) -- another key-free fallback
141
+ - [Brave Search](/tools/brave-search) -- structured results with free tier