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,412 @@
1
+ ---
2
+ summary: "Optional Docker-based setup and onboarding for Durar"
3
+ read_when:
4
+ - You want a containerized gateway instead of local installs
5
+ - You are validating the Docker flow
6
+ title: "Docker"
7
+ ---
8
+
9
+ # Docker (optional)
10
+
11
+ Docker is **optional**. Use it only if you want a containerized gateway or to validate the Docker flow.
12
+
13
+ ## Is Docker right for me?
14
+
15
+ - **Yes**: you want an isolated, throwaway gateway environment or to run Durar on a host without local installs.
16
+ - **No**: you are running on your own machine and just want the fastest dev loop. Use the normal install flow instead.
17
+ - **Sandboxing note**: agent sandboxing uses Docker too, but it does **not** require the full gateway to run in Docker. See [Sandboxing](/gateway/sandboxing).
18
+
19
+ ## Prerequisites
20
+
21
+ - Docker Desktop (or Docker Engine) + Docker Compose v2
22
+ - At least 2 GB RAM for image build (`pnpm install` may be OOM-killed on 1 GB hosts with exit 137)
23
+ - Enough disk for images and logs
24
+ - If running on a VPS/public host, review
25
+ [Security hardening for network exposure](/gateway/security),
26
+ especially Docker `DOCKER-USER` firewall policy.
27
+
28
+ ## Containerized Gateway
29
+
30
+ <Steps>
31
+ <Step title="Build the image">
32
+ From the repo root, run the setup script:
33
+
34
+ ```bash
35
+ ./scripts/docker/setup.sh
36
+ ```
37
+
38
+ This builds the gateway image locally. To use a pre-built image instead:
39
+
40
+ ```bash
41
+ export Durar_IMAGE="ghcr.io/Durar/Durar:latest"
42
+ ./scripts/docker/setup.sh
43
+ ```
44
+
45
+ Pre-built images are published at the
46
+ [GitHub Container Registry](https://github.com/openclaw/openclaw/pkgs/container/Durar).
47
+ Common tags: `main`, `latest`, `<version>` (e.g. `2026.2.26`).
48
+
49
+ </Step>
50
+
51
+ <Step title="Complete onboarding">
52
+ The setup script runs onboarding automatically. It will:
53
+
54
+ - prompt for provider API keys
55
+ - generate a gateway token and write it to `.env`
56
+ - start the gateway via Docker Compose
57
+
58
+ During setup, pre-start onboarding and config writes run through
59
+ `Durar-gateway` directly. `Durar-cli` is for commands you run after
60
+ the gateway container already exists.
61
+
62
+ </Step>
63
+
64
+ <Step title="Open the Control UI">
65
+ Open `http://127.0.0.1:18789/` in your browser and paste the configured
66
+ shared secret into Settings. The setup script writes a token to `.env` by
67
+ default; if you switch the container config to password auth, use that
68
+ password instead.
69
+
70
+ Need the URL again?
71
+
72
+ ```bash
73
+ docker compose run --rm Durar-cli dashboard --no-open
74
+ ```
75
+
76
+ </Step>
77
+
78
+ <Step title="Configure channels (optional)">
79
+ Use the CLI container to add messaging channels:
80
+
81
+ ```bash
82
+ # WhatsApp (QR)
83
+ docker compose run --rm Durar-cli channels login
84
+
85
+ # Telegram
86
+ docker compose run --rm Durar-cli channels add --channel telegram --token "<token>"
87
+
88
+ # Discord
89
+ docker compose run --rm Durar-cli channels add --channel discord --token "<token>"
90
+ ```
91
+
92
+ Docs: [WhatsApp](/channels/whatsapp), [Telegram](/channels/telegram), [Discord](/channels/discord)
93
+
94
+ </Step>
95
+ </Steps>
96
+
97
+ ### Manual flow
98
+
99
+ If you prefer to run each step yourself instead of using the setup script:
100
+
101
+ ```bash
102
+ docker build -t Durar:local -f Dockerfile .
103
+ docker compose run --rm --no-deps --entrypoint node Durar-gateway \
104
+ dist/index.js onboard --mode local --no-install-daemon
105
+ docker compose run --rm --no-deps --entrypoint node Durar-gateway \
106
+ dist/index.js config set gateway.mode local
107
+ docker compose run --rm --no-deps --entrypoint node Durar-gateway \
108
+ dist/index.js config set gateway.bind lan
109
+ docker compose run --rm --no-deps --entrypoint node Durar-gateway \
110
+ dist/index.js config set gateway.controlUi.allowedOrigins \
111
+ '["http://localhost:18789","http://127.0.0.1:18789"]' --strict-json
112
+ docker compose up -d Durar-gateway
113
+ ```
114
+
115
+ <Note>
116
+ Run `docker compose` from the repo root. If you enabled `Durar_EXTRA_MOUNTS`
117
+ or `Durar_HOME_VOLUME`, the setup script writes `docker-compose.extra.yml`;
118
+ include it with `-f docker-compose.yml -f docker-compose.extra.yml`.
119
+ </Note>
120
+
121
+ <Note>
122
+ Because `Durar-cli` shares `Durar-gateway`'s network namespace, it is a
123
+ post-start tool. Before `docker compose up -d Durar-gateway`, run onboarding
124
+ and setup-time config writes through `Durar-gateway` with
125
+ `--no-deps --entrypoint node`.
126
+ </Note>
127
+
128
+ ### Environment variables
129
+
130
+ The setup script accepts these optional environment variables:
131
+
132
+ | Variable | Purpose |
133
+ | ------------------------------ | ---------------------------------------------------------------- |
134
+ | `Durar_IMAGE` | Use a remote image instead of building locally |
135
+ | `Durar_DOCKER_APT_PACKAGES` | Install extra apt packages during build (space-separated) |
136
+ | `Durar_EXTENSIONS` | Pre-install extension deps at build time (space-separated names) |
137
+ | `Durar_EXTRA_MOUNTS` | Extra host bind mounts (comma-separated `source:target[:opts]`) |
138
+ | `Durar_HOME_VOLUME` | Persist `/home/node` in a named Docker volume |
139
+ | `Durar_SANDBOX` | Opt in to sandbox bootstrap (`1`, `true`, `yes`, `on`) |
140
+ | `Durar_DOCKER_SOCKET` | Override Docker socket path |
141
+
142
+ ### Health checks
143
+
144
+ Container probe endpoints (no auth required):
145
+
146
+ ```bash
147
+ curl -fsS http://127.0.0.1:18789/healthz # liveness
148
+ curl -fsS http://127.0.0.1:18789/readyz # readiness
149
+ ```
150
+
151
+ The Docker image includes a built-in `HEALTHCHECK` that pings `/healthz`.
152
+ If checks keep failing, Docker marks the container as `unhealthy` and
153
+ orchestration systems can restart or replace it.
154
+
155
+ Authenticated deep health snapshot:
156
+
157
+ ```bash
158
+ docker compose exec Durar-gateway node dist/index.js health --token "$Durar_GATEWAY_TOKEN"
159
+ ```
160
+
161
+ ### LAN vs loopback
162
+
163
+ `scripts/docker/setup.sh` defaults `Durar_GATEWAY_BIND=lan` so host access to
164
+ `http://127.0.0.1:18789` works with Docker port publishing.
165
+
166
+ - `lan` (default): host browser and host CLI can reach the published gateway port.
167
+ - `loopback`: only processes inside the container network namespace can reach
168
+ the gateway directly.
169
+
170
+ <Note>
171
+ Use bind mode values in `gateway.bind` (`lan` / `loopback` / `custom` /
172
+ `tailnet` / `auto`), not host aliases like `0.0.0.0` or `127.0.0.1`.
173
+ </Note>
174
+
175
+ ### Storage and persistence
176
+
177
+ Docker Compose bind-mounts `Durar_CONFIG_DIR` to `/home/node/.Durar` and
178
+ `Durar_WORKSPACE_DIR` to `/home/node/.Durar/workspace`, so those paths
179
+ survive container replacement.
180
+
181
+ That mounted config directory is where Durar keeps:
182
+
183
+ - `Durar.json` for behavior config
184
+ - `agents/<agentId>/agent/auth-profiles.json` for stored provider OAuth/API-key auth
185
+ - `.env` for env-backed runtime secrets such as `Durar_GATEWAY_TOKEN`
186
+
187
+ For full persistence details on VM deployments, see
188
+ [Docker VM Runtime - What persists where](/install/docker-vm-runtime#what-persists-where).
189
+
190
+ **Disk growth hotspots:** watch `media/`, session JSONL files, `cron/runs/*.jsonl`,
191
+ and rolling file logs under `/tmp/Durar/`.
192
+
193
+ ### Shell helpers (optional)
194
+
195
+ For easier day-to-day Docker management, install `ClawDock`:
196
+
197
+ ```bash
198
+ mkdir -p ~/.clawdock && curl -sL https://raw.githubusercontent.com/Durar/Durar/main/scripts/clawdock/clawdock-helpers.sh -o ~/.clawdock/clawdock-helpers.sh
199
+ echo 'source ~/.clawdock/clawdock-helpers.sh' >> ~/.zshrc && source ~/.zshrc
200
+ ```
201
+
202
+ If you installed ClawDock from the older `scripts/shell-helpers/clawdock-helpers.sh` raw path, rerun the install command above so your local helper file tracks the new location.
203
+
204
+ Then use `clawdock-start`, `clawdock-stop`, `clawdock-dashboard`, etc. Run
205
+ `clawdock-help` for all commands.
206
+ See [ClawDock](/install/clawdock) for the full helper guide.
207
+
208
+ <AccordionGroup>
209
+ <Accordion title="Enable agent sandbox for Docker gateway">
210
+ ```bash
211
+ export Durar_SANDBOX=1
212
+ ./scripts/docker/setup.sh
213
+ ```
214
+
215
+ Custom socket path (e.g. rootless Docker):
216
+
217
+ ```bash
218
+ export Durar_SANDBOX=1
219
+ export Durar_DOCKER_SOCKET=/run/user/1000/docker.sock
220
+ ./scripts/docker/setup.sh
221
+ ```
222
+
223
+ The script mounts `docker.sock` only after sandbox prerequisites pass. If
224
+ sandbox setup cannot complete, the script resets `agents.defaults.sandbox.mode`
225
+ to `off`.
226
+
227
+ </Accordion>
228
+
229
+ <Accordion title="Automation / CI (non-interactive)">
230
+ Disable Compose pseudo-TTY allocation with `-T`:
231
+
232
+ ```bash
233
+ docker compose run -T --rm Durar-cli gateway probe
234
+ docker compose run -T --rm Durar-cli devices list --json
235
+ ```
236
+
237
+ </Accordion>
238
+
239
+ <Accordion title="Shared-network security note">
240
+ `Durar-cli` uses `network_mode: "service:Durar-gateway"` so CLI
241
+ commands can reach the gateway over `127.0.0.1`. Treat this as a shared
242
+ trust boundary. The compose config drops `NET_RAW`/`NET_ADMIN` and enables
243
+ `no-new-privileges` on `Durar-cli`.
244
+ </Accordion>
245
+
246
+ <Accordion title="Permissions and EACCES">
247
+ The image runs as `node` (uid 1000). If you see permission errors on
248
+ `/home/node/.Durar`, make sure your host bind mounts are owned by uid 1000:
249
+
250
+ ```bash
251
+ sudo chown -R 1000:1000 /path/to/Durar-config /path/to/Durar-workspace
252
+ ```
253
+
254
+ </Accordion>
255
+
256
+ <Accordion title="Faster rebuilds">
257
+ Order your Dockerfile so dependency layers are cached. This avoids re-running
258
+ `pnpm install` unless lockfiles change:
259
+
260
+ ```dockerfile
261
+ FROM node:24-bookworm
262
+ RUN curl -fsSL https://bun.sh/install | bash
263
+ ENV PATH="/root/.bun/bin:${PATH}"
264
+ RUN corepack enable
265
+ WORKDIR /app
266
+ COPY package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc ./
267
+ COPY ui/package.json ./ui/package.json
268
+ COPY scripts ./scripts
269
+ RUN pnpm install --frozen-lockfile
270
+ COPY . .
271
+ RUN pnpm build
272
+ RUN pnpm ui:install
273
+ RUN pnpm ui:build
274
+ ENV NODE_ENV=production
275
+ CMD ["node","dist/index.js"]
276
+ ```
277
+
278
+ </Accordion>
279
+
280
+ <Accordion title="Power-user container options">
281
+ The default image is security-first and runs as non-root `node`. For a more
282
+ full-featured container:
283
+
284
+ 1. **Persist `/home/node`**: `export Durar_HOME_VOLUME="Durar_home"`
285
+ 2. **Bake system deps**: `export Durar_DOCKER_APT_PACKAGES="git curl jq"`
286
+ 3. **Install Playwright browsers**:
287
+ ```bash
288
+ docker compose run --rm Durar-cli \
289
+ node /app/node_modules/playwright-core/cli.js install chromium
290
+ ```
291
+ 4. **Persist browser downloads**: set
292
+ `PLAYWRIGHT_BROWSERS_PATH=/home/node/.cache/ms-playwright` and use
293
+ `Durar_HOME_VOLUME` or `Durar_EXTRA_MOUNTS`.
294
+
295
+ </Accordion>
296
+
297
+ <Accordion title="OpenAI Codex OAuth (headless Docker)">
298
+ If you pick OpenAI Codex OAuth in the wizard, it opens a browser URL. In
299
+ Docker or headless setups, copy the full redirect URL you land on and paste
300
+ it back into the wizard to finish auth.
301
+ </Accordion>
302
+
303
+ <Accordion title="Base image metadata">
304
+ The main Docker image uses `node:24-bookworm` and publishes OCI base-image
305
+ annotations including `org.opencontainers.image.base.name`,
306
+ `org.opencontainers.image.source`, and others. See
307
+ [OCI image annotations](https://github.com/opencontainers/image-spec/blob/main/annotations.md).
308
+ </Accordion>
309
+ </AccordionGroup>
310
+
311
+ ### Running on a VPS?
312
+
313
+ See [Hetzner (Docker VPS)](/install/hetzner) and
314
+ [Docker VM Runtime](/install/docker-vm-runtime) for shared VM deployment steps
315
+ including binary baking, persistence, and updates.
316
+
317
+ ## Agent Sandbox
318
+
319
+ When `agents.defaults.sandbox` is enabled, the gateway runs agent tool execution
320
+ (shell, file read/write, etc.) inside isolated Docker containers while the
321
+ gateway itself stays on the host. This gives you a hard wall around untrusted or
322
+ multi-tenant agent sessions without containerizing the entire gateway.
323
+
324
+ Sandbox scope can be per-agent (default), per-session, or shared. Each scope
325
+ gets its own workspace mounted at `/workspace`. You can also configure
326
+ allow/deny tool policies, network isolation, resource limits, and browser
327
+ containers.
328
+
329
+ For full configuration, images, security notes, and multi-agent profiles, see:
330
+
331
+ - [Sandboxing](/gateway/sandboxing) -- complete sandbox reference
332
+ - [OpenShell](/gateway/openshell) -- interactive shell access to sandbox containers
333
+ - [Multi-Agent Sandbox and Tools](/tools/multi-agent-sandbox-tools) -- per-agent overrides
334
+
335
+ ### Quick enable
336
+
337
+ ```json5
338
+ {
339
+ agents: {
340
+ defaults: {
341
+ sandbox: {
342
+ mode: "non-main", // off | non-main | all
343
+ scope: "agent", // session | agent | shared
344
+ },
345
+ },
346
+ },
347
+ }
348
+ ```
349
+
350
+ Build the default sandbox image:
351
+
352
+ ```bash
353
+ scripts/sandbox-setup.sh
354
+ ```
355
+
356
+ ## Troubleshooting
357
+
358
+ <AccordionGroup>
359
+ <Accordion title="Image missing or sandbox container not starting">
360
+ Build the sandbox image with
361
+ [`scripts/sandbox-setup.sh`](https://github.com/openclaw/openclaw/blob/main/scripts/sandbox-setup.sh)
362
+ or set `agents.defaults.sandbox.docker.image` to your custom image.
363
+ Containers are auto-created per session on demand.
364
+ </Accordion>
365
+
366
+ <Accordion title="Permission errors in sandbox">
367
+ Set `docker.user` to a UID:GID that matches your mounted workspace ownership,
368
+ or chown the workspace folder.
369
+ </Accordion>
370
+
371
+ <Accordion title="Custom tools not found in sandbox">
372
+ Durar runs commands with `sh -lc` (login shell), which sources
373
+ `/etc/profile` and may reset PATH. Set `docker.env.PATH` to prepend your
374
+ custom tool paths, or add a script under `/etc/profile.d/` in your Dockerfile.
375
+ </Accordion>
376
+
377
+ <Accordion title="OOM-killed during image build (exit 137)">
378
+ The VM needs at least 2 GB RAM. Use a larger machine class and retry.
379
+ </Accordion>
380
+
381
+ <Accordion title="Unauthorized or pairing required in Control UI">
382
+ Fetch a fresh dashboard link and approve the browser device:
383
+
384
+ ```bash
385
+ docker compose run --rm Durar-cli dashboard --no-open
386
+ docker compose run --rm Durar-cli devices list
387
+ docker compose run --rm Durar-cli devices approve <requestId>
388
+ ```
389
+
390
+ More detail: [Dashboard](/web/dashboard), [Devices](/cli/devices).
391
+
392
+ </Accordion>
393
+
394
+ <Accordion title="Gateway target shows ws://172.x.x.x or pairing errors from Docker CLI">
395
+ Reset gateway mode and bind:
396
+
397
+ ```bash
398
+ docker compose run --rm Durar-cli config set gateway.mode local
399
+ docker compose run --rm Durar-cli config set gateway.bind lan
400
+ docker compose run --rm Durar-cli devices list --url ws://127.0.0.1:18789
401
+ ```
402
+
403
+ </Accordion>
404
+ </AccordionGroup>
405
+
406
+ ## Related
407
+
408
+ - [Install Overview](/install) — all installation methods
409
+ - [Podman](/install/podman) — Podman alternative to Docker
410
+ - [ClawDock](/install/clawdock) — Docker Compose community setup
411
+ - [Updating](/install/updating) — keeping Durar up to date
412
+ - [Configuration](/gateway/configuration) — gateway configuration after install
@@ -0,0 +1,133 @@
1
+ ---
2
+ summary: "Run Durar Gateway on exe.dev (VM + HTTPS proxy) for remote access"
3
+ read_when:
4
+ - You want a cheap always-on Linux host for the Gateway
5
+ - You want remote Control UI access without running your own VPS
6
+ title: "exe.dev"
7
+ ---
8
+
9
+ # exe.dev
10
+
11
+ Goal: Durar Gateway running on an exe.dev VM, reachable from your laptop via: `https://<vm-name>.exe.xyz`
12
+
13
+ This page assumes exe.dev's default **exeuntu** image. If you picked a different distro, map packages accordingly.
14
+
15
+ ## Beginner quick path
16
+
17
+ 1. [https://exe.new/Durar](https://exe.new/Durar)
18
+ 2. Fill in your auth key/token as needed
19
+ 3. Click on "Agent" next to your VM and wait for Shelley to finish provisioning
20
+ 4. Open `https://<vm-name>.exe.xyz/` and authenticate with the configured shared secret (this guide uses token auth by default, but password auth works too if you switch `gateway.auth.mode`)
21
+ 5. Approve any pending device pairing requests with `Durar devices approve <requestId>`
22
+
23
+ ## What you need
24
+
25
+ - exe.dev account
26
+ - `ssh exe.dev` access to [exe.dev](https://exe.dev) virtual machines (optional)
27
+
28
+ ## Automated Install with Shelley
29
+
30
+ Shelley, [exe.dev](https://exe.dev)'s agent, can install Durar instantly with our
31
+ prompt. The prompt used is as below:
32
+
33
+ ```
34
+ Set up Durar (https://docs.Durar.ai/install) on this VM. Use the non-interactive and accept-risk flags for Durar onboarding. Add the supplied auth or token as needed. Configure nginx to forward from the default port 18789 to the root location on the default enabled site config, making sure to enable Websocket support. Pairing is done by "Durar devices list" and "Durar devices approve <request id>". Make sure the dashboard shows that Durar's health is OK. exe.dev handles forwarding from port 8000 to port 80/443 and HTTPS for us, so the final "reachable" should be <vm-name>.exe.xyz, without port specification.
35
+ ```
36
+
37
+ ## Manual installation
38
+
39
+ ## 1) Create the VM
40
+
41
+ From your device:
42
+
43
+ ```bash
44
+ ssh exe.dev new
45
+ ```
46
+
47
+ Then connect:
48
+
49
+ ```bash
50
+ ssh <vm-name>.exe.xyz
51
+ ```
52
+
53
+ Tip: keep this VM **stateful**. Durar stores `Durar.json`, per-agent
54
+ `auth-profiles.json`, sessions, and channel/provider state under
55
+ `~/.Durar/`, plus the workspace under `~/.Durar/workspace/`.
56
+
57
+ ## 2) Install prerequisites (on the VM)
58
+
59
+ ```bash
60
+ sudo apt-get update
61
+ sudo apt-get install -y git curl jq ca-certificates openssl
62
+ ```
63
+
64
+ ## 3) Install Durar
65
+
66
+ Run the Durar install script:
67
+
68
+ ```bash
69
+ curl -fsSL https://Durar.ai/install.sh | bash
70
+ ```
71
+
72
+ ## 4) Setup nginx to proxy Durar to port 8000
73
+
74
+ Edit `/etc/nginx/sites-enabled/default` with
75
+
76
+ ```
77
+ server {
78
+ listen 80 default_server;
79
+ listen [::]:80 default_server;
80
+ listen 8000;
81
+ listen [::]:8000;
82
+
83
+ server_name _;
84
+
85
+ location / {
86
+ proxy_pass http://127.0.0.1:18789;
87
+ proxy_http_version 1.1;
88
+
89
+ # WebSocket support
90
+ proxy_set_header Upgrade $http_upgrade;
91
+ proxy_set_header Connection "upgrade";
92
+
93
+ # Standard proxy headers
94
+ proxy_set_header Host $host;
95
+ proxy_set_header X-Real-IP $remote_addr;
96
+ proxy_set_header X-Forwarded-For $remote_addr;
97
+ proxy_set_header X-Forwarded-Proto $scheme;
98
+
99
+ # Timeout settings for long-lived connections
100
+ proxy_read_timeout 86400s;
101
+ proxy_send_timeout 86400s;
102
+ }
103
+ }
104
+ ```
105
+
106
+ Overwrite forwarding headers instead of preserving client-supplied chains.
107
+ Durar trusts forwarded IP metadata only from explicitly configured proxies,
108
+ and append-style `X-Forwarded-For` chains are treated as a hardening risk.
109
+
110
+ ## 5) Access Durar and grant privileges
111
+
112
+ Access `https://<vm-name>.exe.xyz/` (see the Control UI output from onboarding). If it prompts for auth, paste the
113
+ configured shared secret from the VM. This guide uses token auth, so retrieve `gateway.auth.token`
114
+ with `Durar config get gateway.auth.token` (or generate one with `Durar doctor --generate-gateway-token`).
115
+ If you changed the gateway to password auth, use `gateway.auth.password` / `Durar_GATEWAY_PASSWORD` instead.
116
+ Approve devices with `Durar devices list` and `Durar devices approve <requestId>`. When in doubt, use Shelley from your browser!
117
+
118
+ ## Remote Access
119
+
120
+ Remote access is handled by [exe.dev](https://exe.dev)'s authentication. By
121
+ default, HTTP traffic from port 8000 is forwarded to `https://<vm-name>.exe.xyz`
122
+ with email auth.
123
+
124
+ ## Updating
125
+
126
+ ```bash
127
+ npm i -g Durar@latest
128
+ Durar doctor
129
+ Durar gateway restart
130
+ Durar health
131
+ ```
132
+
133
+ Guide: [Updating](/install/updating)