durar-ai 2026.4.4

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 (571) hide show
  1. package/CHANGELOG.md +5497 -0
  2. package/LICENSE +21 -0
  3. package/README.md +614 -0
  4. package/assets/avatar-placeholder.svg +19 -0
  5. package/assets/chrome-extension/icons/icon128.png +0 -0
  6. package/assets/chrome-extension/icons/icon16.png +0 -0
  7. package/assets/chrome-extension/icons/icon32.png +0 -0
  8. package/assets/chrome-extension/icons/icon48.png +0 -0
  9. package/assets/dmg-background-small.png +0 -0
  10. package/assets/dmg-background.png +0 -0
  11. package/docs/.i18n/README.md +72 -0
  12. package/docs/.i18n/ar-navigation.json +18 -0
  13. package/docs/.i18n/de-navigation.json +18 -0
  14. package/docs/.i18n/es-navigation.json +18 -0
  15. package/docs/.i18n/fr-navigation.json +18 -0
  16. package/docs/.i18n/glossary.ar.json +5 -0
  17. package/docs/.i18n/glossary.de.json +5 -0
  18. package/docs/.i18n/glossary.es.json +5 -0
  19. package/docs/.i18n/glossary.fr.json +5 -0
  20. package/docs/.i18n/glossary.id.json +5 -0
  21. package/docs/.i18n/glossary.it.json +5 -0
  22. package/docs/.i18n/glossary.ja-JP.json +14 -0
  23. package/docs/.i18n/glossary.ko.json +5 -0
  24. package/docs/.i18n/glossary.pl.json +5 -0
  25. package/docs/.i18n/glossary.pt-BR.json +5 -0
  26. package/docs/.i18n/glossary.tr.json +5 -0
  27. package/docs/.i18n/glossary.zh-CN.json +358 -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/zh-Hans-navigation.json +544 -0
  36. package/docs/assets/install-script.svg +1 -0
  37. package/docs/assets/macos-onboarding/01-macos-warning.jpeg +0 -0
  38. package/docs/assets/macos-onboarding/02-local-networks.jpeg +0 -0
  39. package/docs/assets/macos-onboarding/03-security-notice.png +0 -0
  40. package/docs/assets/macos-onboarding/04-choose-gateway.png +0 -0
  41. package/docs/assets/macos-onboarding/05-permissions.png +0 -0
  42. package/docs/assets/openclaw-logo-text-dark.png +0 -0
  43. package/docs/assets/openclaw-logo-text-dark.svg +418 -0
  44. package/docs/assets/openclaw-logo-text.png +0 -0
  45. package/docs/assets/openclaw-logo-text.svg +418 -0
  46. package/docs/assets/pixel-lobster.svg +60 -0
  47. package/docs/assets/showcase/agents-ui.jpg +0 -0
  48. package/docs/assets/showcase/bambu-cli.png +0 -0
  49. package/docs/assets/showcase/codexmonitor.png +0 -0
  50. package/docs/assets/showcase/gohome-grafana.png +0 -0
  51. package/docs/assets/showcase/ios-testflight.jpg +0 -0
  52. package/docs/assets/showcase/oura-health.png +0 -0
  53. package/docs/assets/showcase/padel-cli.svg +11 -0
  54. package/docs/assets/showcase/padel-screenshot.jpg +0 -0
  55. package/docs/assets/showcase/papla-tts.jpg +0 -0
  56. package/docs/assets/showcase/pr-review-telegram.jpg +0 -0
  57. package/docs/assets/showcase/roborock-screenshot.jpg +0 -0
  58. package/docs/assets/showcase/roborock-status.svg +13 -0
  59. package/docs/assets/showcase/roof-camera-sky.jpg +0 -0
  60. package/docs/assets/showcase/snag.png +0 -0
  61. package/docs/assets/showcase/tesco-shop.jpg +0 -0
  62. package/docs/assets/showcase/wienerlinien.png +0 -0
  63. package/docs/assets/showcase/wine-cellar-skill.jpg +0 -0
  64. package/docs/assets/showcase/winix-air-purifier.jpg +0 -0
  65. package/docs/assets/showcase/xuezh-pronunciation.jpeg +0 -0
  66. package/docs/assets/sponsors/blacksmith-light.svg +14 -0
  67. package/docs/assets/sponsors/blacksmith.svg +14 -0
  68. package/docs/assets/sponsors/convex-light.svg +16 -0
  69. package/docs/assets/sponsors/convex.svg +16 -0
  70. package/docs/assets/sponsors/github-light.svg +3 -0
  71. package/docs/assets/sponsors/github.svg +3 -0
  72. package/docs/assets/sponsors/nvidia-dark.svg +9 -0
  73. package/docs/assets/sponsors/nvidia.svg +9 -0
  74. package/docs/assets/sponsors/openai-light.svg +3 -0
  75. package/docs/assets/sponsors/openai.svg +3 -0
  76. package/docs/assets/sponsors/vercel-light.svg +5 -0
  77. package/docs/assets/sponsors/vercel.svg +5 -0
  78. package/docs/auth-credential-semantics.md +80 -0
  79. package/docs/automation/auth-monitoring.md +8 -0
  80. package/docs/automation/clawflow.md +8 -0
  81. package/docs/automation/cron-jobs.md +410 -0
  82. package/docs/automation/cron-vs-heartbeat.md +8 -0
  83. package/docs/automation/gmail-pubsub.md +8 -0
  84. package/docs/automation/hooks.md +303 -0
  85. package/docs/automation/index.md +115 -0
  86. package/docs/automation/poll.md +8 -0
  87. package/docs/automation/standing-orders.md +254 -0
  88. package/docs/automation/taskflow.md +82 -0
  89. package/docs/automation/tasks.md +323 -0
  90. package/docs/automation/troubleshooting.md +8 -0
  91. package/docs/automation/webhook.md +8 -0
  92. package/docs/brave-search.md +103 -0
  93. package/docs/channels/bluebubbles.md +435 -0
  94. package/docs/channels/broadcast-groups.md +442 -0
  95. package/docs/channels/channel-routing.md +139 -0
  96. package/docs/channels/discord.md +1254 -0
  97. package/docs/channels/feishu.md +793 -0
  98. package/docs/channels/googlechat.md +270 -0
  99. package/docs/channels/group-messages.md +84 -0
  100. package/docs/channels/groups.md +410 -0
  101. package/docs/channels/imessage.md +427 -0
  102. package/docs/channels/index.md +50 -0
  103. package/docs/channels/irc.md +252 -0
  104. package/docs/channels/line.md +225 -0
  105. package/docs/channels/location.md +56 -0
  106. package/docs/channels/matrix.md +869 -0
  107. package/docs/channels/mattermost.md +472 -0
  108. package/docs/channels/msteams.md +805 -0
  109. package/docs/channels/nextcloud-talk.md +149 -0
  110. package/docs/channels/nostr.md +252 -0
  111. package/docs/channels/pairing.md +129 -0
  112. package/docs/channels/qqbot.md +193 -0
  113. package/docs/channels/signal.md +337 -0
  114. package/docs/channels/slack.md +681 -0
  115. package/docs/channels/synology-chat.md +185 -0
  116. package/docs/channels/telegram.md +1072 -0
  117. package/docs/channels/tlon.md +290 -0
  118. package/docs/channels/troubleshooting.md +133 -0
  119. package/docs/channels/twitch.md +394 -0
  120. package/docs/channels/whatsapp.md +488 -0
  121. package/docs/channels/zalo.md +254 -0
  122. package/docs/channels/zalouser.md +195 -0
  123. package/docs/ci.md +66 -0
  124. package/docs/cli/acp.md +316 -0
  125. package/docs/cli/agent.md +57 -0
  126. package/docs/cli/agents.md +220 -0
  127. package/docs/cli/approvals.md +136 -0
  128. package/docs/cli/backup.md +84 -0
  129. package/docs/cli/browser.md +233 -0
  130. package/docs/cli/channels.md +131 -0
  131. package/docs/cli/clawbot.md +21 -0
  132. package/docs/cli/completion.md +35 -0
  133. package/docs/cli/config.md +353 -0
  134. package/docs/cli/configure.md +70 -0
  135. package/docs/cli/cron.md +167 -0
  136. package/docs/cli/daemon.md +57 -0
  137. package/docs/cli/dashboard.md +22 -0
  138. package/docs/cli/devices.md +171 -0
  139. package/docs/cli/directory.md +63 -0
  140. package/docs/cli/dns.md +48 -0
  141. package/docs/cli/docs.md +28 -0
  142. package/docs/cli/doctor.md +63 -0
  143. package/docs/cli/flows.md +18 -0
  144. package/docs/cli/gateway.md +307 -0
  145. package/docs/cli/health.md +36 -0
  146. package/docs/cli/hooks.md +337 -0
  147. package/docs/cli/index.md +1836 -0
  148. package/docs/cli/logs.md +59 -0
  149. package/docs/cli/mcp.md +505 -0
  150. package/docs/cli/memory.md +139 -0
  151. package/docs/cli/message.md +300 -0
  152. package/docs/cli/models.md +136 -0
  153. package/docs/cli/node.md +137 -0
  154. package/docs/cli/nodes.md +66 -0
  155. package/docs/cli/onboard.md +171 -0
  156. package/docs/cli/pairing.md +65 -0
  157. package/docs/cli/plugins.md +305 -0
  158. package/docs/cli/qr.md +52 -0
  159. package/docs/cli/reset.md +35 -0
  160. package/docs/cli/sandbox.md +197 -0
  161. package/docs/cli/secrets.md +197 -0
  162. package/docs/cli/security.md +86 -0
  163. package/docs/cli/sessions.md +113 -0
  164. package/docs/cli/setup.md +45 -0
  165. package/docs/cli/skills.md +59 -0
  166. package/docs/cli/status.md +35 -0
  167. package/docs/cli/system.md +71 -0
  168. package/docs/cli/tui.md +30 -0
  169. package/docs/cli/uninstall.md +39 -0
  170. package/docs/cli/update.md +113 -0
  171. package/docs/cli/voicecall.md +34 -0
  172. package/docs/cli/webhooks.md +91 -0
  173. package/docs/concepts/agent-loop.md +168 -0
  174. package/docs/concepts/agent-workspace.md +246 -0
  175. package/docs/concepts/agent.md +129 -0
  176. package/docs/concepts/architecture.md +156 -0
  177. package/docs/concepts/compaction.md +122 -0
  178. package/docs/concepts/context-engine.md +274 -0
  179. package/docs/concepts/context.md +179 -0
  180. package/docs/concepts/delegate-architecture.md +307 -0
  181. package/docs/concepts/dreaming.md +173 -0
  182. package/docs/concepts/features.md +76 -0
  183. package/docs/concepts/markdown-formatting.md +130 -0
  184. package/docs/concepts/memory-builtin.md +105 -0
  185. package/docs/concepts/memory-honcho.md +140 -0
  186. package/docs/concepts/memory-qmd.md +163 -0
  187. package/docs/concepts/memory-search.md +141 -0
  188. package/docs/concepts/memory.md +121 -0
  189. package/docs/concepts/messages.md +161 -0
  190. package/docs/concepts/model-failover.md +349 -0
  191. package/docs/concepts/model-providers.md +799 -0
  192. package/docs/concepts/models.md +255 -0
  193. package/docs/concepts/multi-agent.md +615 -0
  194. package/docs/concepts/oauth.md +225 -0
  195. package/docs/concepts/presence.md +102 -0
  196. package/docs/concepts/queue.md +89 -0
  197. package/docs/concepts/retry.md +69 -0
  198. package/docs/concepts/session-pruning.md +92 -0
  199. package/docs/concepts/session-tool.md +141 -0
  200. package/docs/concepts/session.md +116 -0
  201. package/docs/concepts/soul.md +110 -0
  202. package/docs/concepts/streaming.md +161 -0
  203. package/docs/concepts/system-prompt.md +182 -0
  204. package/docs/concepts/timezone.md +97 -0
  205. package/docs/concepts/typebox.md +307 -0
  206. package/docs/concepts/typing-indicators.md +69 -0
  207. package/docs/concepts/usage-tracking.md +59 -0
  208. package/docs/date-time.md +128 -0
  209. package/docs/debug/node-issue.md +85 -0
  210. package/docs/diagnostics/flags.md +91 -0
  211. package/docs/docs.json +1601 -0
  212. package/docs/gateway/authentication.md +218 -0
  213. package/docs/gateway/background-process.md +131 -0
  214. package/docs/gateway/bonjour.md +179 -0
  215. package/docs/gateway/bridge-protocol.md +89 -0
  216. package/docs/gateway/cli-backends.md +310 -0
  217. package/docs/gateway/configuration-examples.md +631 -0
  218. package/docs/gateway/configuration-reference.md +3618 -0
  219. package/docs/gateway/configuration.md +698 -0
  220. package/docs/gateway/discovery.md +141 -0
  221. package/docs/gateway/doctor.md +494 -0
  222. package/docs/gateway/gateway-lock.md +37 -0
  223. package/docs/gateway/health.md +61 -0
  224. package/docs/gateway/heartbeat.md +443 -0
  225. package/docs/gateway/index.md +367 -0
  226. package/docs/gateway/local-models.md +163 -0
  227. package/docs/gateway/logging.md +113 -0
  228. package/docs/gateway/multiple-gateways.md +120 -0
  229. package/docs/gateway/network-model.md +25 -0
  230. package/docs/gateway/openai-http-api.md +280 -0
  231. package/docs/gateway/openresponses-http-api.md +340 -0
  232. package/docs/gateway/openshell.md +307 -0
  233. package/docs/gateway/pairing.md +138 -0
  234. package/docs/gateway/protocol.md +588 -0
  235. package/docs/gateway/remote-gateway-readme.md +164 -0
  236. package/docs/gateway/remote.md +251 -0
  237. package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +141 -0
  238. package/docs/gateway/sandboxing.md +473 -0
  239. package/docs/gateway/secrets-plan-contract.md +116 -0
  240. package/docs/gateway/secrets.md +541 -0
  241. package/docs/gateway/security/index.md +1362 -0
  242. package/docs/gateway/tailscale.md +136 -0
  243. package/docs/gateway/tools-invoke-http-api.md +161 -0
  244. package/docs/gateway/troubleshooting.md +451 -0
  245. package/docs/gateway/trusted-proxy-auth.md +399 -0
  246. package/docs/help/debugging.md +168 -0
  247. package/docs/help/environment.md +165 -0
  248. package/docs/help/faq.md +3244 -0
  249. package/docs/help/index.md +28 -0
  250. package/docs/help/scripts.md +27 -0
  251. package/docs/help/testing.md +640 -0
  252. package/docs/help/troubleshooting.md +372 -0
  253. package/docs/images/configure-model-picker-unsearchable.png +0 -0
  254. package/docs/images/feishu-step2-create-app.png +0 -0
  255. package/docs/images/feishu-step3-credentials.png +0 -0
  256. package/docs/images/feishu-step4-permissions.png +0 -0
  257. package/docs/images/feishu-step5-bot-capability.png +0 -0
  258. package/docs/images/feishu-step6-event-subscription.png +0 -0
  259. package/docs/images/feishu-verification-token.png +0 -0
  260. package/docs/images/groups-flow.svg +52 -0
  261. package/docs/images/mobile-ui-screenshot.png +0 -0
  262. package/docs/index.md +196 -0
  263. package/docs/install/ansible.md +230 -0
  264. package/docs/install/azure.md +311 -0
  265. package/docs/install/bun.md +55 -0
  266. package/docs/install/clawdock.md +106 -0
  267. package/docs/install/development-channels.md +131 -0
  268. package/docs/install/digitalocean.md +129 -0
  269. package/docs/install/docker-vm-runtime.md +142 -0
  270. package/docs/install/docker.md +412 -0
  271. package/docs/install/exe-dev.md +133 -0
  272. package/docs/install/fly.md +504 -0
  273. package/docs/install/gcp.md +412 -0
  274. package/docs/install/hetzner.md +259 -0
  275. package/docs/install/index.md +212 -0
  276. package/docs/install/installer.md +443 -0
  277. package/docs/install/kubernetes.md +192 -0
  278. package/docs/install/macos-vm.md +281 -0
  279. package/docs/install/migrating-matrix.md +349 -0
  280. package/docs/install/migrating.md +112 -0
  281. package/docs/install/nix.md +89 -0
  282. package/docs/install/node.md +144 -0
  283. package/docs/install/northflank.mdx +42 -0
  284. package/docs/install/oracle.md +158 -0
  285. package/docs/install/podman.md +210 -0
  286. package/docs/install/railway.mdx +90 -0
  287. package/docs/install/raspberry-pi.md +159 -0
  288. package/docs/install/render.mdx +165 -0
  289. package/docs/install/uninstall.md +128 -0
  290. package/docs/install/updating.md +142 -0
  291. package/docs/logging.md +389 -0
  292. package/docs/nav-tabs-underline.js +100 -0
  293. package/docs/network.md +69 -0
  294. package/docs/nodes/audio.md +191 -0
  295. package/docs/nodes/camera.md +162 -0
  296. package/docs/nodes/images.md +73 -0
  297. package/docs/nodes/index.md +408 -0
  298. package/docs/nodes/location-command.md +98 -0
  299. package/docs/nodes/media-understanding.md +432 -0
  300. package/docs/nodes/talk.md +92 -0
  301. package/docs/nodes/troubleshooting.md +123 -0
  302. package/docs/nodes/voicewake.md +66 -0
  303. package/docs/perplexity.md +181 -0
  304. package/docs/pi-dev.md +80 -0
  305. package/docs/pi.md +570 -0
  306. package/docs/platforms/android.md +244 -0
  307. package/docs/platforms/digitalocean.md +266 -0
  308. package/docs/platforms/index.md +55 -0
  309. package/docs/platforms/ios.md +223 -0
  310. package/docs/platforms/linux.md +100 -0
  311. package/docs/platforms/mac/bundled-gateway.md +75 -0
  312. package/docs/platforms/mac/canvas.md +125 -0
  313. package/docs/platforms/mac/child-process.md +69 -0
  314. package/docs/platforms/mac/dev-setup.md +107 -0
  315. package/docs/platforms/mac/health.md +34 -0
  316. package/docs/platforms/mac/icon.md +31 -0
  317. package/docs/platforms/mac/logging.md +57 -0
  318. package/docs/platforms/mac/menu-bar.md +81 -0
  319. package/docs/platforms/mac/peekaboo.md +65 -0
  320. package/docs/platforms/mac/permissions.md +50 -0
  321. package/docs/platforms/mac/remote.md +84 -0
  322. package/docs/platforms/mac/signing.md +47 -0
  323. package/docs/platforms/mac/skills.md +40 -0
  324. package/docs/platforms/mac/voice-overlay.md +60 -0
  325. package/docs/platforms/mac/voicewake.md +67 -0
  326. package/docs/platforms/mac/webchat.md +51 -0
  327. package/docs/platforms/mac/xpc.md +61 -0
  328. package/docs/platforms/macos.md +229 -0
  329. package/docs/platforms/oracle.md +305 -0
  330. package/docs/platforms/raspberry-pi.md +420 -0
  331. package/docs/platforms/windows.md +241 -0
  332. package/docs/plugins/agent-tools.md +10 -0
  333. package/docs/plugins/architecture.md +1609 -0
  334. package/docs/plugins/building-extensions.md +10 -0
  335. package/docs/plugins/building-plugins.md +319 -0
  336. package/docs/plugins/bundles.md +292 -0
  337. package/docs/plugins/community.md +149 -0
  338. package/docs/plugins/manifest.md +412 -0
  339. package/docs/plugins/sdk-channel-plugins.md +508 -0
  340. package/docs/plugins/sdk-entrypoints.md +210 -0
  341. package/docs/plugins/sdk-migration.md +359 -0
  342. package/docs/plugins/sdk-overview.md +475 -0
  343. package/docs/plugins/sdk-provider-plugins.md +712 -0
  344. package/docs/plugins/sdk-runtime.md +381 -0
  345. package/docs/plugins/sdk-setup.md +516 -0
  346. package/docs/plugins/sdk-testing.md +263 -0
  347. package/docs/plugins/voice-call.md +466 -0
  348. package/docs/plugins/zalouser.md +78 -0
  349. package/docs/prose.md +134 -0
  350. package/docs/providers/anthropic.md +402 -0
  351. package/docs/providers/bedrock-mantle.md +91 -0
  352. package/docs/providers/bedrock.md +273 -0
  353. package/docs/providers/chutes.md +103 -0
  354. package/docs/providers/claude-max-api-proxy.md +163 -0
  355. package/docs/providers/cloudflare-ai-gateway.md +71 -0
  356. package/docs/providers/deepgram.md +93 -0
  357. package/docs/providers/deepseek.md +53 -0
  358. package/docs/providers/fireworks.md +69 -0
  359. package/docs/providers/github-copilot.md +80 -0
  360. package/docs/providers/glm.md +68 -0
  361. package/docs/providers/google.md +149 -0
  362. package/docs/providers/groq.md +105 -0
  363. package/docs/providers/huggingface.md +193 -0
  364. package/docs/providers/index.md +81 -0
  365. package/docs/providers/kilocode.md +89 -0
  366. package/docs/providers/litellm.md +159 -0
  367. package/docs/providers/minimax.md +281 -0
  368. package/docs/providers/mistral.md +68 -0
  369. package/docs/providers/models.md +56 -0
  370. package/docs/providers/moonshot.md +224 -0
  371. package/docs/providers/nvidia.md +58 -0
  372. package/docs/providers/ollama.md +379 -0
  373. package/docs/providers/openai.md +472 -0
  374. package/docs/providers/opencode-go.md +45 -0
  375. package/docs/providers/opencode.md +68 -0
  376. package/docs/providers/openrouter.md +59 -0
  377. package/docs/providers/perplexity-provider.md +62 -0
  378. package/docs/providers/qianfan.md +90 -0
  379. package/docs/providers/qwen.md +128 -0
  380. package/docs/providers/qwen_modelstudio.md +137 -0
  381. package/docs/providers/sglang.md +115 -0
  382. package/docs/providers/stepfun.md +152 -0
  383. package/docs/providers/synthetic.md +101 -0
  384. package/docs/providers/together.md +70 -0
  385. package/docs/providers/venice.md +282 -0
  386. package/docs/providers/vercel-ai-gateway.md +60 -0
  387. package/docs/providers/vllm.md +103 -0
  388. package/docs/providers/volcengine.md +94 -0
  389. package/docs/providers/xai.md +94 -0
  390. package/docs/providers/xiaomi.md +89 -0
  391. package/docs/providers/zai.md +75 -0
  392. package/docs/reference/AGENTS.default.md +126 -0
  393. package/docs/reference/RELEASING.md +138 -0
  394. package/docs/reference/api-usage-costs.md +198 -0
  395. package/docs/reference/credits.md +30 -0
  396. package/docs/reference/device-models.md +47 -0
  397. package/docs/reference/memory-config.md +421 -0
  398. package/docs/reference/prompt-caching.md +344 -0
  399. package/docs/reference/rpc.md +43 -0
  400. package/docs/reference/secretref-credential-surface.md +148 -0
  401. package/docs/reference/secretref-user-supplied-credentials-matrix.json +607 -0
  402. package/docs/reference/session-management-compaction.md +352 -0
  403. package/docs/reference/templates/AGENTS.dev.md +84 -0
  404. package/docs/reference/templates/AGENTS.md +219 -0
  405. package/docs/reference/templates/BOOT.md +12 -0
  406. package/docs/reference/templates/BOOTSTRAP.md +62 -0
  407. package/docs/reference/templates/CLAUDE.md +1 -0
  408. package/docs/reference/templates/HEARTBEAT.md +14 -0
  409. package/docs/reference/templates/IDENTITY.dev.md +48 -0
  410. package/docs/reference/templates/IDENTITY.md +30 -0
  411. package/docs/reference/templates/SOUL.dev.md +77 -0
  412. package/docs/reference/templates/SOUL.md +45 -0
  413. package/docs/reference/templates/TOOLS.dev.md +25 -0
  414. package/docs/reference/templates/TOOLS.md +47 -0
  415. package/docs/reference/templates/USER.dev.md +19 -0
  416. package/docs/reference/templates/USER.md +24 -0
  417. package/docs/reference/test.md +119 -0
  418. package/docs/reference/token-use.md +197 -0
  419. package/docs/reference/transcript-hygiene.md +151 -0
  420. package/docs/reference/wizard.md +245 -0
  421. package/docs/security/CONTRIBUTING-THREAT-MODEL.md +98 -0
  422. package/docs/security/THREAT-MODEL-ATLAS.md +608 -0
  423. package/docs/security/formal-verification.md +167 -0
  424. package/docs/snippets/plugin-publish/minimal-openclaw.plugin.json +9 -0
  425. package/docs/snippets/plugin-publish/minimal-package.json +16 -0
  426. package/docs/start/bootstrapping.md +41 -0
  427. package/docs/start/docs-directory.md +67 -0
  428. package/docs/start/getting-started.md +148 -0
  429. package/docs/start/hubs.md +199 -0
  430. package/docs/start/lore.md +219 -0
  431. package/docs/start/onboarding-overview.md +69 -0
  432. package/docs/start/onboarding.md +92 -0
  433. package/docs/start/openclaw.md +225 -0
  434. package/docs/start/quickstart.md +22 -0
  435. package/docs/start/setup.md +172 -0
  436. package/docs/start/showcase.md +418 -0
  437. package/docs/start/wizard-cli-automation.md +233 -0
  438. package/docs/start/wizard-cli-reference.md +324 -0
  439. package/docs/start/wizard.md +127 -0
  440. package/docs/style.css +37 -0
  441. package/docs/tools/acp-agents.md +837 -0
  442. package/docs/tools/agent-send.md +100 -0
  443. package/docs/tools/apply-patch.md +52 -0
  444. package/docs/tools/brave-search.md +107 -0
  445. package/docs/tools/browser-linux-troubleshooting.md +145 -0
  446. package/docs/tools/browser-login.md +73 -0
  447. package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +221 -0
  448. package/docs/tools/browser.md +890 -0
  449. package/docs/tools/btw.md +142 -0
  450. package/docs/tools/capability-cookbook.md +119 -0
  451. package/docs/tools/clawhub.md +348 -0
  452. package/docs/tools/code-execution.md +90 -0
  453. package/docs/tools/creating-skills.md +119 -0
  454. package/docs/tools/diffs.md +434 -0
  455. package/docs/tools/duckduckgo-search.md +102 -0
  456. package/docs/tools/elevated.md +116 -0
  457. package/docs/tools/exa-search.md +127 -0
  458. package/docs/tools/exec-approvals.md +635 -0
  459. package/docs/tools/exec.md +237 -0
  460. package/docs/tools/firecrawl.md +147 -0
  461. package/docs/tools/gemini-search.md +98 -0
  462. package/docs/tools/grok-search.md +102 -0
  463. package/docs/tools/image-generation.md +139 -0
  464. package/docs/tools/index.md +174 -0
  465. package/docs/tools/kimi-search.md +98 -0
  466. package/docs/tools/llm-task.md +119 -0
  467. package/docs/tools/lobster.md +348 -0
  468. package/docs/tools/loop-detection.md +100 -0
  469. package/docs/tools/minimax-search.md +99 -0
  470. package/docs/tools/multi-agent-sandbox-tools.md +373 -0
  471. package/docs/tools/ollama-search.md +100 -0
  472. package/docs/tools/pdf.md +176 -0
  473. package/docs/tools/perplexity-search.md +185 -0
  474. package/docs/tools/plugin.md +348 -0
  475. package/docs/tools/reactions.md +78 -0
  476. package/docs/tools/searxng-search.md +132 -0
  477. package/docs/tools/skills-config.md +133 -0
  478. package/docs/tools/skills.md +377 -0
  479. package/docs/tools/slash-commands.md +322 -0
  480. package/docs/tools/subagents.md +341 -0
  481. package/docs/tools/tavily.md +129 -0
  482. package/docs/tools/thinking.md +102 -0
  483. package/docs/tools/tts.md +452 -0
  484. package/docs/tools/web-fetch.md +159 -0
  485. package/docs/tools/web.md +417 -0
  486. package/docs/tts.md +452 -0
  487. package/docs/vps.md +115 -0
  488. package/docs/web/control-ui.md +318 -0
  489. package/docs/web/dashboard.md +93 -0
  490. package/docs/web/index.md +126 -0
  491. package/docs/web/tui.md +176 -0
  492. package/docs/web/webchat.md +77 -0
  493. package/docs/whatsapp-openclaw-ai-zh.jpg +0 -0
  494. package/docs/whatsapp-openclaw.jpg +0 -0
  495. package/durar.mjs +180 -0
  496. package/package.json +1259 -0
  497. package/scripts/npm-runner.mjs +111 -0
  498. package/scripts/postinstall-bundled-plugins.mjs +188 -0
  499. package/skills/1password/SKILL.md +70 -0
  500. package/skills/1password/references/cli-examples.md +29 -0
  501. package/skills/1password/references/get-started.md +17 -0
  502. package/skills/apple-notes/SKILL.md +77 -0
  503. package/skills/apple-reminders/SKILL.md +118 -0
  504. package/skills/bear-notes/SKILL.md +107 -0
  505. package/skills/blogwatcher/SKILL.md +69 -0
  506. package/skills/blucli/SKILL.md +47 -0
  507. package/skills/bluebubbles/SKILL.md +131 -0
  508. package/skills/camsnap/SKILL.md +45 -0
  509. package/skills/canvas/SKILL.md +199 -0
  510. package/skills/clawhub/SKILL.md +77 -0
  511. package/skills/coding-agent/SKILL.md +316 -0
  512. package/skills/discord/SKILL.md +197 -0
  513. package/skills/eightctl/SKILL.md +50 -0
  514. package/skills/gemini/SKILL.md +43 -0
  515. package/skills/gh-issues/SKILL.md +885 -0
  516. package/skills/gifgrep/SKILL.md +79 -0
  517. package/skills/github/SKILL.md +163 -0
  518. package/skills/gog/SKILL.md +116 -0
  519. package/skills/goplaces/SKILL.md +52 -0
  520. package/skills/healthcheck/SKILL.md +245 -0
  521. package/skills/himalaya/SKILL.md +257 -0
  522. package/skills/himalaya/references/configuration.md +184 -0
  523. package/skills/himalaya/references/message-composition.md +199 -0
  524. package/skills/imsg/SKILL.md +122 -0
  525. package/skills/mcporter/SKILL.md +61 -0
  526. package/skills/model-usage/SKILL.md +69 -0
  527. package/skills/model-usage/references/codexbar-cli.md +33 -0
  528. package/skills/model-usage/scripts/model_usage.py +320 -0
  529. package/skills/model-usage/scripts/test_model_usage.py +40 -0
  530. package/skills/nano-pdf/SKILL.md +38 -0
  531. package/skills/node-connect/SKILL.md +142 -0
  532. package/skills/notion/SKILL.md +174 -0
  533. package/skills/obsidian/SKILL.md +81 -0
  534. package/skills/openai-whisper/SKILL.md +38 -0
  535. package/skills/openai-whisper-api/SKILL.md +62 -0
  536. package/skills/openai-whisper-api/scripts/transcribe.sh +88 -0
  537. package/skills/openhue/SKILL.md +112 -0
  538. package/skills/oracle/SKILL.md +125 -0
  539. package/skills/ordercli/SKILL.md +78 -0
  540. package/skills/peekaboo/SKILL.md +190 -0
  541. package/skills/sag/SKILL.md +87 -0
  542. package/skills/session-logs/SKILL.md +151 -0
  543. package/skills/sherpa-onnx-tts/SKILL.md +109 -0
  544. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
  545. package/skills/skill-creator/SKILL.md +372 -0
  546. package/skills/skill-creator/license.txt +202 -0
  547. package/skills/skill-creator/scripts/init_skill.py +378 -0
  548. package/skills/skill-creator/scripts/package_skill.py +139 -0
  549. package/skills/skill-creator/scripts/quick_validate.py +159 -0
  550. package/skills/skill-creator/scripts/test_package_skill.py +160 -0
  551. package/skills/skill-creator/scripts/test_quick_validate.py +72 -0
  552. package/skills/slack/SKILL.md +144 -0
  553. package/skills/songsee/SKILL.md +49 -0
  554. package/skills/sonoscli/SKILL.md +65 -0
  555. package/skills/spotify-player/SKILL.md +64 -0
  556. package/skills/summarize/SKILL.md +87 -0
  557. package/skills/taskflow/SKILL.md +149 -0
  558. package/skills/taskflow/examples/inbox-triage.lobster +33 -0
  559. package/skills/taskflow/examples/pr-intake.lobster +32 -0
  560. package/skills/taskflow-inbox-triage/SKILL.md +119 -0
  561. package/skills/things-mac/SKILL.md +86 -0
  562. package/skills/tmux/SKILL.md +170 -0
  563. package/skills/tmux/scripts/find-sessions.sh +112 -0
  564. package/skills/tmux/scripts/wait-for-text.sh +83 -0
  565. package/skills/trello/SKILL.md +108 -0
  566. package/skills/video-frames/SKILL.md +46 -0
  567. package/skills/video-frames/scripts/frame.sh +81 -0
  568. package/skills/voice-call/SKILL.md +45 -0
  569. package/skills/wacli/SKILL.md +72 -0
  570. package/skills/weather/SKILL.md +129 -0
  571. package/skills/xurl/SKILL.md +461 -0
@@ -0,0 +1,149 @@
1
+ ---
2
+ summary: "Community-maintained Durar plugins: browse, install, and submit your own"
3
+ read_when:
4
+ - You want to find third-party Durar plugins
5
+ - You want to publish or list your own plugin
6
+ title: "Community Plugins"
7
+ ---
8
+
9
+ # Community Plugins
10
+
11
+ Community plugins are third-party packages that extend Durar with new
12
+ channels, tools, providers, or other capabilities. They are built and maintained
13
+ by the community, published on [Durar Gateway](/tools/Durar Gateway) or npm, and
14
+ installable with a single command.
15
+
16
+ Durar Gateway is the canonical discovery surface for community plugins. Do not open
17
+ docs-only PRs just to add your plugin here for discoverability; publish it on
18
+ Durar Gateway instead.
19
+
20
+ ```bash
21
+ Durar plugins install <package-name>
22
+ ```
23
+
24
+ Durar checks Durar Gateway first and falls back to npm automatically.
25
+
26
+ ## Listed plugins
27
+
28
+ ### Codex App Server Bridge
29
+
30
+ Independent Durar bridge for Codex App Server conversations. Bind a chat to
31
+ a Codex thread, talk to it with plain text, and control it with chat-native
32
+ commands for resume, planning, review, model selection, compaction, and more.
33
+
34
+ - **npm:** `Durar-codex-app-server`
35
+ - **repo:** [github.com/pwrdrvr/Durar-codex-app-server](https://github.com/pwrdrvr/Durar-codex-app-server)
36
+
37
+ ```bash
38
+ Durar plugins install Durar-codex-app-server
39
+ ```
40
+
41
+ ### DingTalk
42
+
43
+ Enterprise robot integration using Stream mode. Supports text, images, and
44
+ file messages via any DingTalk client.
45
+
46
+ - **npm:** `@largezhou/ddingtalk`
47
+ - **repo:** [github.com/largezhou/Durar-dingtalk](https://github.com/largezhou/Durar-dingtalk)
48
+
49
+ ```bash
50
+ Durar plugins install @largezhou/ddingtalk
51
+ ```
52
+
53
+ ### Lossless Claw (LCM)
54
+
55
+ Lossless Context Management plugin for Durar. DAG-based conversation
56
+ summarization with incremental compaction — preserves full context fidelity
57
+ while reducing token usage.
58
+
59
+ - **npm:** `@martian-engineering/lossless-claw`
60
+ - **repo:** [github.com/Martian-Engineering/lossless-claw](https://github.com/Martian-Engineering/lossless-claw)
61
+
62
+ ```bash
63
+ Durar plugins install @martian-engineering/lossless-claw
64
+ ```
65
+
66
+ ### Opik
67
+
68
+ Official plugin that exports agent traces to Opik. Monitor agent behavior,
69
+ cost, tokens, errors, and more.
70
+
71
+ - **npm:** `@opik/opik-Durar`
72
+ - **repo:** [github.com/comet-ml/opik-Durar](https://github.com/comet-ml/opik-Durar)
73
+
74
+ ```bash
75
+ Durar plugins install @opik/opik-Durar
76
+ ```
77
+
78
+ ### QQbot
79
+
80
+ Connect Durar to QQ via the QQ Bot API. Supports private chats, group
81
+ mentions, channel messages, and rich media including voice, images, videos,
82
+ and files.
83
+
84
+ - **npm:** `@tencent-connect/Durar-qqbot`
85
+ - **repo:** [github.com/tencent-connect/Durar-qqbot](https://github.com/tencent-connect/Durar-qqbot)
86
+
87
+ ```bash
88
+ Durar plugins install @tencent-connect/Durar-qqbot
89
+ ```
90
+
91
+ ### wecom
92
+
93
+ WeCom channel plugin for Durar by the Tencent WeCom team. Powered by
94
+ WeCom Bot WebSocket persistent connections, it supports direct messages & group
95
+ chats, streaming replies, proactive messaging, image/file processing, Markdown
96
+ formatting, built-in access control, and document/meeting/messaging skills.
97
+
98
+ - **npm:** `@wecom/wecom-Durar-plugin`
99
+ - **repo:** [github.com/WecomTeam/wecom-Durar-plugin](https://github.com/WecomTeam/wecom-Durar-plugin)
100
+
101
+ ```bash
102
+ Durar plugins install @wecom/wecom-Durar-plugin
103
+ ```
104
+
105
+ ## Submit your plugin
106
+
107
+ We welcome community plugins that are useful, documented, and safe to operate.
108
+
109
+ <Steps>
110
+ <Step title="Publish to Durar Gateway or npm">
111
+ Your plugin must be installable via `Durar plugins install \<package-name\>`.
112
+ Publish to [Durar Gateway](/tools/Durar Gateway) (preferred) or npm.
113
+ See [Building Plugins](/plugins/building-plugins) for the full guide.
114
+
115
+ </Step>
116
+
117
+ <Step title="Host on GitHub">
118
+ Source code must be in a public repository with setup docs and an issue
119
+ tracker.
120
+
121
+ </Step>
122
+
123
+ <Step title="Use docs PRs only for source-doc changes">
124
+ You do not need a docs PR just to make your plugin discoverable. Publish it
125
+ on Durar Gateway instead.
126
+
127
+ Open a docs PR only when Durar's source docs need an actual content
128
+ change, such as correcting install guidance or adding cross-repo
129
+ documentation that belongs in the main docs set.
130
+
131
+ </Step>
132
+ </Steps>
133
+
134
+ ## Quality bar
135
+
136
+ | Requirement | Why |
137
+ | --------------------------- | --------------------------------------------- |
138
+ | Published on Durar Gateway or npm | Users need `Durar plugins install` to work |
139
+ | Public GitHub repo | Source review, issue tracking, transparency |
140
+ | Setup and usage docs | Users need to know how to configure it |
141
+ | Active maintenance | Recent updates or responsive issue handling |
142
+
143
+ Low-effort wrappers, unclear ownership, or unmaintained packages may be declined.
144
+
145
+ ## Related
146
+
147
+ - [Install and Configure Plugins](/tools/plugin) — how to install any plugin
148
+ - [Building Plugins](/plugins/building-plugins) — create your own
149
+ - [Plugin Manifest](/plugins/manifest) — manifest schema
@@ -0,0 +1,412 @@
1
+ ---
2
+ summary: "Plugin manifest + JSON schema requirements (strict config validation)"
3
+ read_when:
4
+ - You are building an Durar plugin
5
+ - You need to ship a plugin config schema or debug plugin validation errors
6
+ title: "Plugin Manifest"
7
+ ---
8
+
9
+ # Plugin manifest (Durar.plugin.json)
10
+
11
+ This page is for the **native Durar plugin manifest** only.
12
+
13
+ For compatible bundle layouts, see [Plugin bundles](/plugins/bundles).
14
+
15
+ Compatible bundle formats use different manifest files:
16
+
17
+ - Codex bundle: `.codex-plugin/plugin.json`
18
+ - Claude bundle: `.claude-plugin/plugin.json` or the default Claude component
19
+ layout without a manifest
20
+ - Cursor bundle: `.cursor-plugin/plugin.json`
21
+
22
+ Durar auto-detects those bundle layouts too, but they are not validated
23
+ against the `Durar.plugin.json` schema described here.
24
+
25
+ For compatible bundles, Durar currently reads bundle metadata plus declared
26
+ skill roots, Claude command roots, Claude bundle `settings.json` defaults,
27
+ Claude bundle LSP defaults, and supported hook packs when the layout matches
28
+ Durar runtime expectations.
29
+
30
+ Every native Durar plugin **must** ship a `Durar.plugin.json` file in the
31
+ **plugin root**. Durar uses this manifest to validate configuration
32
+ **without executing plugin code**. Missing or invalid manifests are treated as
33
+ plugin errors and block config validation.
34
+
35
+ See the full plugin system guide: [Plugins](/tools/plugin).
36
+ For the native capability model and current external-compatibility guidance:
37
+ [Capability model](/plugins/architecture#public-capability-model).
38
+
39
+ ## What this file does
40
+
41
+ `Durar.plugin.json` is the metadata Durar reads before it loads your
42
+ plugin code.
43
+
44
+ Use it for:
45
+
46
+ - plugin identity
47
+ - config validation
48
+ - auth and onboarding metadata that should be available without booting plugin
49
+ runtime
50
+ - alias and auto-enable metadata that should resolve before plugin runtime loads
51
+ - shorthand model-family ownership metadata that should auto-activate the
52
+ plugin before runtime loads
53
+ - static capability ownership snapshots used for bundled compat wiring and
54
+ contract coverage
55
+ - channel-specific config metadata that should merge into catalog and validation
56
+ surfaces without loading runtime
57
+ - config UI hints
58
+
59
+ Do not use it for:
60
+
61
+ - registering runtime behavior
62
+ - declaring code entrypoints
63
+ - npm install metadata
64
+
65
+ Those belong in your plugin code and `package.json`.
66
+
67
+ ## Minimal example
68
+
69
+ ```json
70
+ {
71
+ "id": "voice-call",
72
+ "configSchema": {
73
+ "type": "object",
74
+ "additionalProperties": false,
75
+ "properties": {}
76
+ }
77
+ }
78
+ ```
79
+
80
+ ## Rich example
81
+
82
+ ```json
83
+ {
84
+ "id": "openrouter",
85
+ "name": "OpenRouter",
86
+ "description": "OpenRouter provider plugin",
87
+ "version": "1.0.0",
88
+ "providers": ["openrouter"],
89
+ "modelSupport": {
90
+ "modelPrefixes": ["router-"]
91
+ },
92
+ "cliBackends": ["openrouter-cli"],
93
+ "providerAuthEnvVars": {
94
+ "openrouter": ["OPENROUTER_API_KEY"]
95
+ },
96
+ "providerAuthChoices": [
97
+ {
98
+ "provider": "openrouter",
99
+ "method": "api-key",
100
+ "choiceId": "openrouter-api-key",
101
+ "choiceLabel": "OpenRouter API key",
102
+ "groupId": "openrouter",
103
+ "groupLabel": "OpenRouter",
104
+ "optionKey": "openrouterApiKey",
105
+ "cliFlag": "--openrouter-api-key",
106
+ "cliOption": "--openrouter-api-key <key>",
107
+ "cliDescription": "OpenRouter API key",
108
+ "onboardingScopes": ["text-inference"]
109
+ }
110
+ ],
111
+ "uiHints": {
112
+ "apiKey": {
113
+ "label": "API key",
114
+ "placeholder": "sk-or-v1-...",
115
+ "sensitive": true
116
+ }
117
+ },
118
+ "configSchema": {
119
+ "type": "object",
120
+ "additionalProperties": false,
121
+ "properties": {
122
+ "apiKey": {
123
+ "type": "string"
124
+ }
125
+ }
126
+ }
127
+ }
128
+ ```
129
+
130
+ ## Top-level field reference
131
+
132
+ | Field | Required | Type | What it means |
133
+ | ----------------------------------- | -------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
134
+ | `id` | Yes | `string` | Canonical plugin id. This is the id used in `plugins.entries.<id>`. |
135
+ | `configSchema` | Yes | `object` | Inline JSON Schema for this plugin's config. |
136
+ | `enabledByDefault` | No | `true` | Marks a bundled plugin as enabled by default. Omit it, or set any non-`true` value, to leave the plugin disabled by default. |
137
+ | `legacyPluginIds` | No | `string[]` | Legacy ids that normalize to this canonical plugin id. |
138
+ | `autoEnableWhenConfiguredProviders` | No | `string[]` | Provider ids that should auto-enable this plugin when auth, config, or model refs mention them. |
139
+ | `kind` | No | `"memory"` \| `"context-engine"` | Declares an exclusive plugin kind used by `plugins.slots.*`. |
140
+ | `channels` | No | `string[]` | Channel ids owned by this plugin. Used for discovery and config validation. |
141
+ | `providers` | No | `string[]` | Provider ids owned by this plugin. |
142
+ | `modelSupport` | No | `object` | Manifest-owned shorthand model-family metadata used to auto-load the plugin before runtime. |
143
+ | `cliBackends` | No | `string[]` | CLI inference backend ids owned by this plugin. Used for startup auto-activation from explicit config refs. |
144
+ | `providerAuthEnvVars` | No | `Record<string, string[]>` | Cheap provider-auth env metadata that Durar can inspect without loading plugin code. |
145
+ | `providerAuthChoices` | No | `object[]` | Cheap auth-choice metadata for onboarding pickers, preferred-provider resolution, and simple CLI flag wiring. |
146
+ | `contracts` | No | `object` | Static bundled capability snapshot for speech, realtime transcription, realtime voice, media-understanding, image-generation, video-generation, web-fetch, web search, and tool ownership. |
147
+ | `channelConfigs` | No | `Record<string, object>` | Manifest-owned channel config metadata merged into discovery and validation surfaces before runtime loads. |
148
+ | `skills` | No | `string[]` | Skill directories to load, relative to the plugin root. |
149
+ | `name` | No | `string` | Human-readable plugin name. |
150
+ | `description` | No | `string` | Short summary shown in plugin surfaces. |
151
+ | `version` | No | `string` | Informational plugin version. |
152
+ | `uiHints` | No | `Record<string, object>` | UI labels, placeholders, and sensitivity hints for config fields. |
153
+
154
+ ## providerAuthChoices reference
155
+
156
+ Each `providerAuthChoices` entry describes one onboarding or auth choice.
157
+ Durar reads this before provider runtime loads.
158
+
159
+ | Field | Required | Type | What it means |
160
+ | --------------------- | -------- | ----------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
161
+ | `provider` | Yes | `string` | Provider id this choice belongs to. |
162
+ | `method` | Yes | `string` | Auth method id to dispatch to. |
163
+ | `choiceId` | Yes | `string` | Stable auth-choice id used by onboarding and CLI flows. |
164
+ | `choiceLabel` | No | `string` | User-facing label. If omitted, Durar falls back to `choiceId`. |
165
+ | `choiceHint` | No | `string` | Short helper text for the picker. |
166
+ | `assistantPriority` | No | `number` | Lower values sort earlier in assistant-driven interactive pickers. |
167
+ | `assistantVisibility` | No | `"visible"` \| `"manual-only"` | Hide the choice from assistant pickers while still allowing manual CLI selection. |
168
+ | `deprecatedChoiceIds` | No | `string[]` | Legacy choice ids that should redirect users to this replacement choice. |
169
+ | `groupId` | No | `string` | Optional group id for grouping related choices. |
170
+ | `groupLabel` | No | `string` | User-facing label for that group. |
171
+ | `groupHint` | No | `string` | Short helper text for the group. |
172
+ | `optionKey` | No | `string` | Internal option key for simple one-flag auth flows. |
173
+ | `cliFlag` | No | `string` | CLI flag name, such as `--openrouter-api-key`. |
174
+ | `cliOption` | No | `string` | Full CLI option shape, such as `--openrouter-api-key <key>`. |
175
+ | `cliDescription` | No | `string` | Description used in CLI help. |
176
+ | `onboardingScopes` | No | `Array<"text-inference" \| "image-generation">` | Which onboarding surfaces this choice should appear in. If omitted, it defaults to `["text-inference"]`. |
177
+
178
+ ## uiHints reference
179
+
180
+ `uiHints` is a map from config field names to small rendering hints.
181
+
182
+ ```json
183
+ {
184
+ "uiHints": {
185
+ "apiKey": {
186
+ "label": "API key",
187
+ "help": "Used for OpenRouter requests",
188
+ "placeholder": "sk-or-v1-...",
189
+ "sensitive": true
190
+ }
191
+ }
192
+ }
193
+ ```
194
+
195
+ Each field hint can include:
196
+
197
+ | Field | Type | What it means |
198
+ | ------------- | ---------- | --------------------------------------- |
199
+ | `label` | `string` | User-facing field label. |
200
+ | `help` | `string` | Short helper text. |
201
+ | `tags` | `string[]` | Optional UI tags. |
202
+ | `advanced` | `boolean` | Marks the field as advanced. |
203
+ | `sensitive` | `boolean` | Marks the field as secret or sensitive. |
204
+ | `placeholder` | `string` | Placeholder text for form inputs. |
205
+
206
+ ## contracts reference
207
+
208
+ Use `contracts` only for static capability ownership metadata that Durar can
209
+ read without importing the plugin runtime.
210
+
211
+ ```json
212
+ {
213
+ "contracts": {
214
+ "speechProviders": ["openai"],
215
+ "realtimeTranscriptionProviders": ["openai"],
216
+ "realtimeVoiceProviders": ["openai"],
217
+ "mediaUnderstandingProviders": ["openai", "openai-codex"],
218
+ "imageGenerationProviders": ["openai"],
219
+ "videoGenerationProviders": ["qwen"],
220
+ "webFetchProviders": ["firecrawl"],
221
+ "webSearchProviders": ["gemini"],
222
+ "tools": ["firecrawl_search", "firecrawl_scrape"]
223
+ }
224
+ }
225
+ ```
226
+
227
+ Each list is optional:
228
+
229
+ | Field | Type | What it means |
230
+ | -------------------------------- | ---------- | -------------------------------------------------------------- |
231
+ | `speechProviders` | `string[]` | Speech provider ids this plugin owns. |
232
+ | `realtimeTranscriptionProviders` | `string[]` | Realtime-transcription provider ids this plugin owns. |
233
+ | `realtimeVoiceProviders` | `string[]` | Realtime-voice provider ids this plugin owns. |
234
+ | `mediaUnderstandingProviders` | `string[]` | Media-understanding provider ids this plugin owns. |
235
+ | `imageGenerationProviders` | `string[]` | Image-generation provider ids this plugin owns. |
236
+ | `videoGenerationProviders` | `string[]` | Video-generation provider ids this plugin owns. |
237
+ | `webFetchProviders` | `string[]` | Web-fetch provider ids this plugin owns. |
238
+ | `webSearchProviders` | `string[]` | Web-search provider ids this plugin owns. |
239
+ | `tools` | `string[]` | Agent tool names this plugin owns for bundled contract checks. |
240
+
241
+ ## channelConfigs reference
242
+
243
+ Use `channelConfigs` when a channel plugin needs cheap config metadata before
244
+ runtime loads.
245
+
246
+ ```json
247
+ {
248
+ "channelConfigs": {
249
+ "matrix": {
250
+ "schema": {
251
+ "type": "object",
252
+ "additionalProperties": false,
253
+ "properties": {
254
+ "homeserverUrl": { "type": "string" }
255
+ }
256
+ },
257
+ "uiHints": {
258
+ "homeserverUrl": {
259
+ "label": "Homeserver URL",
260
+ "placeholder": "https://matrix.example.com"
261
+ }
262
+ },
263
+ "label": "Matrix",
264
+ "description": "Matrix homeserver connection",
265
+ "preferOver": ["matrix-legacy"]
266
+ }
267
+ }
268
+ }
269
+ ```
270
+
271
+ Each channel entry can include:
272
+
273
+ | Field | Type | What it means |
274
+ | ------------- | ------------------------ | ----------------------------------------------------------------------------------------- |
275
+ | `schema` | `object` | JSON Schema for `channels.<id>`. Required for each declared channel config entry. |
276
+ | `uiHints` | `Record<string, object>` | Optional UI labels/placeholders/sensitive hints for that channel config section. |
277
+ | `label` | `string` | Channel label merged into picker and inspect surfaces when runtime metadata is not ready. |
278
+ | `description` | `string` | Short channel description for inspect and catalog surfaces. |
279
+ | `preferOver` | `string[]` | Legacy or lower-priority plugin ids this channel should outrank in selection surfaces. |
280
+
281
+ ## modelSupport reference
282
+
283
+ Use `modelSupport` when Durar should infer your provider plugin from
284
+ shorthand model ids like `gpt-5.4` or `claude-sonnet-4.6` before plugin runtime
285
+ loads.
286
+
287
+ ```json
288
+ {
289
+ "modelSupport": {
290
+ "modelPrefixes": ["gpt-", "o1", "o3", "o4"],
291
+ "modelPatterns": ["^computer-use-preview"]
292
+ }
293
+ }
294
+ ```
295
+
296
+ Durar applies this precedence:
297
+
298
+ - explicit `provider/model` refs use the owning `providers` manifest metadata
299
+ - `modelPatterns` beat `modelPrefixes`
300
+ - if one non-bundled plugin and one bundled plugin both match, the non-bundled
301
+ plugin wins
302
+ - remaining ambiguity is ignored until the user or config specifies a provider
303
+
304
+ Fields:
305
+
306
+ | Field | Type | What it means |
307
+ | --------------- | ---------- | ------------------------------------------------------------------------------- |
308
+ | `modelPrefixes` | `string[]` | Prefixes matched with `startsWith` against shorthand model ids. |
309
+ | `modelPatterns` | `string[]` | Regex sources matched against shorthand model ids after profile suffix removal. |
310
+
311
+ Legacy top-level capability keys are deprecated. Use `Durar doctor --fix` to
312
+ move `speechProviders`, `realtimeTranscriptionProviders`,
313
+ `realtimeVoiceProviders`, `mediaUnderstandingProviders`,
314
+ `imageGenerationProviders`, `videoGenerationProviders`,
315
+ `webFetchProviders`, and `webSearchProviders` under `contracts`; normal
316
+ manifest loading no longer treats those top-level fields as capability
317
+ ownership.
318
+
319
+ ## Manifest versus package.json
320
+
321
+ The two files serve different jobs:
322
+
323
+ | File | Use it for |
324
+ | ---------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
325
+ | `Durar.plugin.json` | Discovery, config validation, auth-choice metadata, and UI hints that must exist before plugin code runs |
326
+ | `package.json` | npm metadata, dependency installation, and the `Durar` block used for entrypoints, install gating, setup, or catalog metadata |
327
+
328
+ If you are unsure where a piece of metadata belongs, use this rule:
329
+
330
+ - if Durar must know it before loading plugin code, put it in `Durar.plugin.json`
331
+ - if it is about packaging, entry files, or npm install behavior, put it in `package.json`
332
+
333
+ ### package.json fields that affect discovery
334
+
335
+ Some pre-runtime plugin metadata intentionally lives in `package.json` under the
336
+ `Durar` block instead of `Durar.plugin.json`.
337
+
338
+ Important examples:
339
+
340
+ | Field | What it means |
341
+ | ----------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
342
+ | `Durar.extensions` | Declares native plugin entrypoints. |
343
+ | `Durar.setupEntry` | Lightweight setup-only entrypoint used during onboarding and deferred channel startup. |
344
+ | `Durar.channel` | Cheap channel catalog metadata like labels, docs paths, aliases, and selection copy. |
345
+ | `Durar.install.npmSpec` / `Durar.install.localPath` | Install/update hints for bundled and externally published plugins. |
346
+ | `Durar.install.defaultChoice` | Preferred install path when multiple install sources are available. |
347
+ | `Durar.install.minHostVersion` | Minimum supported Durar host version, using a semver floor like `>=2026.3.22`. |
348
+ | `Durar.install.allowInvalidConfigRecovery` | Allows a narrow bundled-plugin reinstall recovery path when config is invalid. |
349
+ | `Durar.startup.deferConfiguredChannelFullLoadUntilAfterListen` | Lets setup-only channel surfaces load before the full channel plugin during startup. |
350
+
351
+ `Durar.install.minHostVersion` is enforced during install and manifest
352
+ registry loading. Invalid values are rejected; newer-but-valid values skip the
353
+ plugin on older hosts.
354
+
355
+ `Durar.install.allowInvalidConfigRecovery` is intentionally narrow. It does
356
+ not make arbitrary broken configs installable. Today it only allows install
357
+ flows to recover from specific stale bundled-plugin upgrade failures, such as a
358
+ missing bundled plugin path or a stale `channels.<id>` entry for that same
359
+ bundled plugin. Unrelated config errors still block install and send operators
360
+ to `Durar doctor --fix`.
361
+
362
+ ## JSON Schema requirements
363
+
364
+ - **Every plugin must ship a JSON Schema**, even if it accepts no config.
365
+ - An empty schema is acceptable (for example, `{ "type": "object", "additionalProperties": false }`).
366
+ - Schemas are validated at config read/write time, not at runtime.
367
+
368
+ ## Validation behavior
369
+
370
+ - Unknown `channels.*` keys are **errors**, unless the channel id is declared by
371
+ a plugin manifest.
372
+ - `plugins.entries.<id>`, `plugins.allow`, `plugins.deny`, and `plugins.slots.*`
373
+ must reference **discoverable** plugin ids. Unknown ids are **errors**.
374
+ - If a plugin is installed but has a broken or missing manifest or schema,
375
+ validation fails and Doctor reports the plugin error.
376
+ - If plugin config exists but the plugin is **disabled**, the config is kept and
377
+ a **warning** is surfaced in Doctor + logs.
378
+
379
+ See [Configuration reference](/gateway/configuration) for the full `plugins.*` schema.
380
+
381
+ ## Notes
382
+
383
+ - The manifest is **required for native Durar plugins**, including local filesystem loads.
384
+ - Runtime still loads the plugin module separately; the manifest is only for
385
+ discovery + validation.
386
+ - Native manifests are parsed with JSON5, so comments, trailing commas, and
387
+ unquoted keys are accepted as long as the final value is still an object.
388
+ - Only documented manifest fields are read by the manifest loader. Avoid adding
389
+ custom top-level keys here.
390
+ - `providerAuthEnvVars` is the cheap metadata path for auth probes, env-marker
391
+ validation, and similar provider-auth surfaces that should not boot plugin
392
+ runtime just to inspect env names.
393
+ - `providerAuthChoices` is the cheap metadata path for auth-choice pickers,
394
+ `--auth-choice` resolution, preferred-provider mapping, and simple onboarding
395
+ CLI flag registration before provider runtime loads. For runtime wizard
396
+ metadata that requires provider code, see
397
+ [Provider runtime hooks](/plugins/architecture#provider-runtime-hooks).
398
+ - Exclusive plugin kinds are selected through `plugins.slots.*`.
399
+ - `kind: "memory"` is selected by `plugins.slots.memory`.
400
+ - `kind: "context-engine"` is selected by `plugins.slots.contextEngine`
401
+ (default: built-in `legacy`).
402
+ - `channels`, `providers`, `cliBackends`, and `skills` can be omitted when a
403
+ plugin does not need them.
404
+ - If your plugin depends on native modules, document the build steps and any
405
+ package-manager allowlist requirements (for example, pnpm `allow-build-scripts`
406
+ - `pnpm rebuild <package>`).
407
+
408
+ ## Related
409
+
410
+ - [Building Plugins](/plugins/building-plugins) — getting started with plugins
411
+ - [Plugin Architecture](/plugins/architecture) — internal architecture
412
+ - [SDK Overview](/plugins/sdk-overview) — Plugin SDK reference