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,144 @@
1
+ ---
2
+ title: "Node.js"
3
+ summary: "Install and configure Node.js for Durar — version requirements, install options, and PATH troubleshooting"
4
+ read_when:
5
+ - "You need to install Node.js before installing Durar"
6
+ - "You installed Durar but `Durar` is command not found"
7
+ - "npm install -g fails with permissions or PATH issues"
8
+ ---
9
+
10
+ # Node.js
11
+
12
+ Durar requires **Node 22.14 or newer**. **Node 24 is the default and recommended runtime** for installs, CI, and release workflows. Node 22 remains supported via the active LTS line. The [installer script](/install#alternative-install-methods) will detect and install Node automatically — this page is for when you want to set up Node yourself and make sure everything is wired up correctly (versions, PATH, global installs).
13
+
14
+ ## Check your version
15
+
16
+ ```bash
17
+ node -v
18
+ ```
19
+
20
+ If this prints `v24.x.x` or higher, you're on the recommended default. If it prints `v22.14.x` or higher, you're on the supported Node 22 LTS path, but we still recommend upgrading to Node 24 when convenient. If Node isn't installed or the version is too old, pick an install method below.
21
+
22
+ ## Install Node
23
+
24
+ <Tabs>
25
+ <Tab title="macOS">
26
+ **Homebrew** (recommended):
27
+
28
+ ```bash
29
+ brew install node
30
+ ```
31
+
32
+ Or download the macOS installer from [nodejs.org](https://nodejs.org/).
33
+
34
+ </Tab>
35
+ <Tab title="Linux">
36
+ **Ubuntu / Debian:**
37
+
38
+ ```bash
39
+ curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -
40
+ sudo apt-get install -y nodejs
41
+ ```
42
+
43
+ **Fedora / RHEL:**
44
+
45
+ ```bash
46
+ sudo dnf install nodejs
47
+ ```
48
+
49
+ Or use a version manager (see below).
50
+
51
+ </Tab>
52
+ <Tab title="Windows">
53
+ **winget** (recommended):
54
+
55
+ ```powershell
56
+ winget install OpenJS.NodeJS.LTS
57
+ ```
58
+
59
+ **Chocolatey:**
60
+
61
+ ```powershell
62
+ choco install nodejs-lts
63
+ ```
64
+
65
+ Or download the Windows installer from [nodejs.org](https://nodejs.org/).
66
+
67
+ </Tab>
68
+ </Tabs>
69
+
70
+ <Accordion title="Using a version manager (nvm, fnm, mise, asdf)">
71
+ Version managers let you switch between Node versions easily. Popular options:
72
+
73
+ - [**fnm**](https://github.com/Schniz/fnm) — fast, cross-platform
74
+ - [**nvm**](https://github.com/nvm-sh/nvm) — widely used on macOS/Linux
75
+ - [**mise**](https://mise.jdx.dev/) — polyglot (Node, Python, Ruby, etc.)
76
+
77
+ Example with fnm:
78
+
79
+ ```bash
80
+ fnm install 24
81
+ fnm use 24
82
+ ```
83
+
84
+ <Warning>
85
+ Make sure your version manager is initialized in your shell startup file (`~/.zshrc` or `~/.bashrc`). If it isn't, `Durar` may not be found in new terminal sessions because the PATH won't include Node's bin directory.
86
+ </Warning>
87
+ </Accordion>
88
+
89
+ ## Troubleshooting
90
+
91
+ ### `Durar: command not found`
92
+
93
+ This almost always means npm's global bin directory isn't on your PATH.
94
+
95
+ <Steps>
96
+ <Step title="Find your global npm prefix">
97
+ ```bash
98
+ npm prefix -g
99
+ ```
100
+ </Step>
101
+ <Step title="Check if it's on your PATH">
102
+ ```bash
103
+ echo "$PATH"
104
+ ```
105
+
106
+ Look for `<npm-prefix>/bin` (macOS/Linux) or `<npm-prefix>` (Windows) in the output.
107
+
108
+ </Step>
109
+ <Step title="Add it to your shell startup file">
110
+ <Tabs>
111
+ <Tab title="macOS / Linux">
112
+ Add to `~/.zshrc` or `~/.bashrc`:
113
+
114
+ ```bash
115
+ export PATH="$(npm prefix -g)/bin:$PATH"
116
+ ```
117
+
118
+ Then open a new terminal (or run `rehash` in zsh / `hash -r` in bash).
119
+ </Tab>
120
+ <Tab title="Windows">
121
+ Add the output of `npm prefix -g` to your system PATH via Settings → System → Environment Variables.
122
+ </Tab>
123
+ </Tabs>
124
+
125
+ </Step>
126
+ </Steps>
127
+
128
+ ### Permission errors on `npm install -g` (Linux)
129
+
130
+ If you see `EACCES` errors, switch npm's global prefix to a user-writable directory:
131
+
132
+ ```bash
133
+ mkdir -p "$HOME/.npm-global"
134
+ npm config set prefix "$HOME/.npm-global"
135
+ export PATH="$HOME/.npm-global/bin:$PATH"
136
+ ```
137
+
138
+ Add the `export PATH=...` line to your `~/.bashrc` or `~/.zshrc` to make it permanent.
139
+
140
+ ## Related
141
+
142
+ - [Install Overview](/install) — all installation methods
143
+ - [Updating](/install/updating) — keeping Durar up to date
144
+ - [Getting Started](/start/getting-started) — first steps after install
@@ -0,0 +1,42 @@
1
+ ---
2
+ summary: "Deploy OpenClaw on Northflank with one-click template"
3
+ read_when:
4
+ - Deploying OpenClaw to Northflank
5
+ - You want a one-click cloud deploy with browser-based Control UI
6
+ title: "Northflank"
7
+ ---
8
+
9
+ Deploy OpenClaw on Northflank with a one-click template and access it through the web Control UI.
10
+ This is the easiest "no terminal on the server" path: Northflank runs the Gateway for you.
11
+
12
+ ## How to get started
13
+
14
+ 1. Click [Deploy OpenClaw](https://northflank.com/stacks/deploy-openclaw) to open the template.
15
+ 2. Create an [account on Northflank](https://app.northflank.com/signup) if you don't already have one.
16
+ 3. Click **Deploy OpenClaw now**.
17
+ 4. Set the required environment variable: `OPENCLAW_GATEWAY_TOKEN` (use a strong random value).
18
+ 5. Click **Deploy stack** to build and run the OpenClaw template.
19
+ 6. Wait for the deployment to complete, then click **View resources**.
20
+ 7. Open the OpenClaw service.
21
+ 8. Open the public OpenClaw URL at `/openclaw` and connect using the configured shared secret. This template uses `OPENCLAW_GATEWAY_TOKEN` by default; if you replace it with password auth, use that password instead.
22
+
23
+ ## What you get
24
+
25
+ - Hosted OpenClaw Gateway + Control UI
26
+ - Persistent storage via Northflank Volume (`/data`) so `openclaw.json`,
27
+ per-agent `auth-profiles.json`, channel/provider state, sessions, and
28
+ workspace survive redeploys
29
+
30
+ ## Connect a channel
31
+
32
+ Use the Control UI at `/openclaw` or run `openclaw onboard` via SSH for channel setup instructions:
33
+
34
+ - [Telegram](/channels/telegram) (fastest — just a bot token)
35
+ - [Discord](/channels/discord)
36
+ - [All channels](/channels)
37
+
38
+ ## Next steps
39
+
40
+ - Set up messaging channels: [Channels](/channels)
41
+ - Configure the Gateway: [Gateway configuration](/gateway/configuration)
42
+ - Keep OpenClaw up to date: [Updating](/install/updating)
@@ -0,0 +1,158 @@
1
+ ---
2
+ summary: "Host Durar on Oracle Cloud's Always Free ARM tier"
3
+ read_when:
4
+ - Setting up Durar on Oracle Cloud
5
+ - Looking for free VPS hosting for Durar
6
+ - Want 24/7 Durar on a small server
7
+ title: "Oracle Cloud"
8
+ ---
9
+
10
+ # Oracle Cloud
11
+
12
+ Run a persistent Durar Gateway on Oracle Cloud's **Always Free** ARM tier (up to 4 OCPU, 24 GB RAM, 200 GB storage) at no cost.
13
+
14
+ ## Prerequisites
15
+
16
+ - Oracle Cloud account ([signup](https://www.oracle.com/cloud/free/)) -- see [community signup guide](https://gist.github.com/rssnyder/51e3cfedd730e7dd5f4a816143b25dbd) if you hit issues
17
+ - Tailscale account (free at [tailscale.com](https://tailscale.com))
18
+ - An SSH key pair
19
+ - About 30 minutes
20
+
21
+ ## Setup
22
+
23
+ <Steps>
24
+ <Step title="Create an OCI instance">
25
+ 1. Log into [Oracle Cloud Console](https://cloud.oracle.com/).
26
+ 2. Navigate to **Compute > Instances > Create Instance**.
27
+ 3. Configure:
28
+ - **Name:** `Durar`
29
+ - **Image:** Ubuntu 24.04 (aarch64)
30
+ - **Shape:** `VM.Standard.A1.Flex` (Ampere ARM)
31
+ - **OCPUs:** 2 (or up to 4)
32
+ - **Memory:** 12 GB (or up to 24 GB)
33
+ - **Boot volume:** 50 GB (up to 200 GB free)
34
+ - **SSH key:** Add your public key
35
+ 4. Click **Create** and note the public IP address.
36
+
37
+ <Tip>
38
+ If instance creation fails with "Out of capacity", try a different availability domain or retry later. Free tier capacity is limited.
39
+ </Tip>
40
+
41
+ </Step>
42
+
43
+ <Step title="Connect and update the system">
44
+ ```bash
45
+ ssh ubuntu@YOUR_PUBLIC_IP
46
+
47
+ sudo apt update && sudo apt upgrade -y
48
+ sudo apt install -y build-essential
49
+ ```
50
+
51
+ `build-essential` is required for ARM compilation of some dependencies.
52
+
53
+ </Step>
54
+
55
+ <Step title="Configure user and hostname">
56
+ ```bash
57
+ sudo hostnamectl set-hostname Durar
58
+ sudo passwd ubuntu
59
+ sudo loginctl enable-linger ubuntu
60
+ ```
61
+
62
+ Enabling linger keeps user services running after logout.
63
+
64
+ </Step>
65
+
66
+ <Step title="Install Tailscale">
67
+ ```bash
68
+ curl -fsSL https://tailscale.com/install.sh | sh
69
+ sudo tailscale up --ssh --hostname=Durar
70
+ ```
71
+
72
+ From now on, connect via Tailscale: `ssh ubuntu@Durar`.
73
+
74
+ </Step>
75
+
76
+ <Step title="Install Durar">
77
+ ```bash
78
+ curl -fsSL https://Durar.ai/install.sh | bash
79
+ source ~/.bashrc
80
+ ```
81
+
82
+ When prompted "How do you want to hatch your bot?", select **Do this later**.
83
+
84
+ </Step>
85
+
86
+ <Step title="Configure the gateway">
87
+ Use token auth with Tailscale Serve for secure remote access.
88
+
89
+ ```bash
90
+ Durar config set gateway.bind loopback
91
+ Durar config set gateway.auth.mode token
92
+ Durar doctor --generate-gateway-token
93
+ Durar config set gateway.tailscale.mode serve
94
+ Durar config set gateway.trustedProxies '["127.0.0.1"]'
95
+
96
+ systemctl --user restart Durar-gateway.service
97
+ ```
98
+
99
+ `gateway.trustedProxies=["127.0.0.1"]` here is only for the local Tailscale Serve proxy's forwarded-IP/local-client handling. It is **not** `gateway.auth.mode: "trusted-proxy"`. Diff viewer routes keep fail-closed behavior in this setup: raw `127.0.0.1` viewer requests without forwarded proxy headers can return `Diff not found`. Use `mode=file` / `mode=both` for attachments, or intentionally enable remote viewers and set `plugins.entries.diffs.config.viewerBaseUrl` (or pass a proxy `baseUrl`) if you need shareable viewer links.
100
+
101
+ </Step>
102
+
103
+ <Step title="Lock down VCN security">
104
+ Block all traffic except Tailscale at the network edge:
105
+
106
+ 1. Go to **Networking > Virtual Cloud Networks** in the OCI Console.
107
+ 2. Click your VCN, then **Security Lists > Default Security List**.
108
+ 3. **Remove** all ingress rules except `0.0.0.0/0 UDP 41641` (Tailscale).
109
+ 4. Keep default egress rules (allow all outbound).
110
+
111
+ This blocks SSH on port 22, HTTP, HTTPS, and everything else at the network edge. You can only connect via Tailscale from this point on.
112
+
113
+ </Step>
114
+
115
+ <Step title="Verify">
116
+ ```bash
117
+ Durar --version
118
+ systemctl --user status Durar-gateway.service
119
+ tailscale serve status
120
+ curl http://localhost:18789
121
+ ```
122
+
123
+ Access the Control UI from any device on your tailnet:
124
+
125
+ ```
126
+ https://Durar.<tailnet-name>.ts.net/
127
+ ```
128
+
129
+ Replace `<tailnet-name>` with your tailnet name (visible in `tailscale status`).
130
+
131
+ </Step>
132
+ </Steps>
133
+
134
+ ## Fallback: SSH tunnel
135
+
136
+ If Tailscale Serve is not working, use an SSH tunnel from your local machine:
137
+
138
+ ```bash
139
+ ssh -L 18789:127.0.0.1:18789 ubuntu@Durar
140
+ ```
141
+
142
+ Then open `http://localhost:18789`.
143
+
144
+ ## Troubleshooting
145
+
146
+ **Instance creation fails ("Out of capacity")** -- Free tier ARM instances are popular. Try a different availability domain or retry during off-peak hours.
147
+
148
+ **Tailscale will not connect** -- Run `sudo tailscale up --ssh --hostname=Durar --reset` to re-authenticate.
149
+
150
+ **Gateway will not start** -- Run `Durar doctor --non-interactive` and check logs with `journalctl --user -u Durar-gateway.service -n 50`.
151
+
152
+ **ARM binary issues** -- Most npm packages work on ARM64. For native binaries, look for `linux-arm64` or `aarch64` releases. Verify architecture with `uname -m`.
153
+
154
+ ## Next steps
155
+
156
+ - [Channels](/channels) -- connect Telegram, WhatsApp, Discord, and more
157
+ - [Gateway configuration](/gateway/configuration) -- all config options
158
+ - [Updating](/install/updating) -- keep Durar up to date
@@ -0,0 +1,210 @@
1
+ ---
2
+ summary: "Run Durar in a rootless Podman container"
3
+ read_when:
4
+ - You want a containerized gateway with Podman instead of Docker
5
+ title: "Podman"
6
+ ---
7
+
8
+ # Podman
9
+
10
+ Run the Durar Gateway in a rootless Podman container, managed by your current non-root user.
11
+
12
+ The intended model is:
13
+
14
+ - Podman runs the gateway container.
15
+ - Your host `Durar` CLI is the control plane.
16
+ - Persistent state lives on the host under `~/.Durar` by default.
17
+ - Day-to-day management uses `Durar --container <name> ...` instead of `sudo -u Durar`, `podman exec`, or a separate service user.
18
+
19
+ ## Prerequisites
20
+
21
+ - **Podman** in rootless mode
22
+ - **Durar CLI** installed on the host
23
+ - **Optional:** `systemd --user` if you want Quadlet-managed auto-start
24
+ - **Optional:** `sudo` only if you want `loginctl enable-linger "$(whoami)"` for boot persistence on a headless host
25
+
26
+ ## Quick start
27
+
28
+ <Steps>
29
+ <Step title="One-time setup">
30
+ From the repo root, run `./scripts/podman/setup.sh`.
31
+ </Step>
32
+
33
+ <Step title="Start the Gateway container">
34
+ Start the container with `./scripts/run-Durar-podman.sh launch`.
35
+ </Step>
36
+
37
+ <Step title="Run onboarding inside the container">
38
+ Run `./scripts/run-Durar-podman.sh launch setup`, then open `http://127.0.0.1:18789/`.
39
+ </Step>
40
+
41
+ <Step title="Manage the running container from the host CLI">
42
+ Set `Durar_CONTAINER=Durar`, then use normal `Durar` commands from the host.
43
+ </Step>
44
+ </Steps>
45
+
46
+ Setup details:
47
+
48
+ - `./scripts/podman/setup.sh` builds `Durar:local` in your rootless Podman store by default, or uses `Durar_IMAGE` / `Durar_PODMAN_IMAGE` if you set one.
49
+ - It creates `~/.Durar/Durar.json` with `gateway.mode: "local"` if missing.
50
+ - It creates `~/.Durar/.env` with `Durar_GATEWAY_TOKEN` if missing.
51
+ - For manual launches, the helper reads only a small allowlist of Podman-related keys from `~/.Durar/.env` and passes explicit runtime env vars to the container; it does not hand the full env file to Podman.
52
+
53
+ Quadlet-managed setup:
54
+
55
+ ```bash
56
+ ./scripts/podman/setup.sh --quadlet
57
+ ```
58
+
59
+ Quadlet is a Linux-only option because it depends on systemd user services.
60
+
61
+ You can also set `Durar_PODMAN_QUADLET=1`.
62
+
63
+ Optional build/setup env vars:
64
+
65
+ - `Durar_IMAGE` or `Durar_PODMAN_IMAGE` -- use an existing/pulled image instead of building `Durar:local`
66
+ - `Durar_DOCKER_APT_PACKAGES` -- install extra apt packages during image build
67
+ - `Durar_EXTENSIONS` -- pre-install extension dependencies at build time
68
+
69
+ Container start:
70
+
71
+ ```bash
72
+ ./scripts/run-Durar-podman.sh launch
73
+ ```
74
+
75
+ The script starts the container as your current uid/gid with `--userns=keep-id` and bind-mounts your Durar state into the container.
76
+
77
+ Onboarding:
78
+
79
+ ```bash
80
+ ./scripts/run-Durar-podman.sh launch setup
81
+ ```
82
+
83
+ Then open `http://127.0.0.1:18789/` and use the token from `~/.Durar/.env`.
84
+
85
+ Host CLI default:
86
+
87
+ ```bash
88
+ export Durar_CONTAINER=Durar
89
+ ```
90
+
91
+ Then commands such as these will run inside that container automatically:
92
+
93
+ ```bash
94
+ Durar dashboard --no-open
95
+ Durar gateway status --deep # includes extra service scan
96
+ Durar doctor
97
+ Durar channels login
98
+ ```
99
+
100
+ On macOS, Podman machine may make the browser appear non-local to the gateway.
101
+ If the Control UI reports device-auth errors after launch, use the Tailscale guidance in
102
+ [Podman + Tailscale](#podman--tailscale).
103
+
104
+ <a id="podman--tailscale"></a>
105
+
106
+ ## Podman + Tailscale
107
+
108
+ For HTTPS or remote browser access, follow the main Tailscale docs.
109
+
110
+ Podman-specific note:
111
+
112
+ - Keep the Podman publish host at `127.0.0.1`.
113
+ - Prefer host-managed `tailscale serve` over `Durar gateway --tailscale serve`.
114
+ - On macOS, if local browser device-auth context is unreliable, use Tailscale access instead of ad hoc local tunnel workarounds.
115
+
116
+ See:
117
+
118
+ - [Tailscale](/gateway/tailscale)
119
+ - [Control UI](/web/control-ui)
120
+
121
+ ## Systemd (Quadlet, optional)
122
+
123
+ If you ran `./scripts/podman/setup.sh --quadlet`, setup installs a Quadlet file at:
124
+
125
+ ```bash
126
+ ~/.config/containers/systemd/Durar.container
127
+ ```
128
+
129
+ Useful commands:
130
+
131
+ - **Start:** `systemctl --user start Durar.service`
132
+ - **Stop:** `systemctl --user stop Durar.service`
133
+ - **Status:** `systemctl --user status Durar.service`
134
+ - **Logs:** `journalctl --user -u Durar.service -f`
135
+
136
+ After editing the Quadlet file:
137
+
138
+ ```bash
139
+ systemctl --user daemon-reload
140
+ systemctl --user restart Durar.service
141
+ ```
142
+
143
+ For boot persistence on SSH/headless hosts, enable lingering for your current user:
144
+
145
+ ```bash
146
+ sudo loginctl enable-linger "$(whoami)"
147
+ ```
148
+
149
+ ## Config, env, and storage
150
+
151
+ - **Config dir:** `~/.Durar`
152
+ - **Workspace dir:** `~/.Durar/workspace`
153
+ - **Token file:** `~/.Durar/.env`
154
+ - **Launch helper:** `./scripts/run-Durar-podman.sh`
155
+
156
+ The launch script and Quadlet bind-mount host state into the container:
157
+
158
+ - `Durar_CONFIG_DIR` -> `/home/node/.Durar`
159
+ - `Durar_WORKSPACE_DIR` -> `/home/node/.Durar/workspace`
160
+
161
+ By default those are host directories, not anonymous container state, so
162
+ `Durar.json`, per-agent `auth-profiles.json`, channel/provider state,
163
+ sessions, and workspace survive container replacement.
164
+ The Podman setup also seeds `gateway.controlUi.allowedOrigins` for `127.0.0.1` and `localhost` on the published gateway port so the local dashboard works with the container's non-loopback bind.
165
+
166
+ Useful env vars for the manual launcher:
167
+
168
+ - `Durar_PODMAN_CONTAINER` -- container name (`Durar` by default)
169
+ - `Durar_PODMAN_IMAGE` / `Durar_IMAGE` -- image to run
170
+ - `Durar_PODMAN_GATEWAY_HOST_PORT` -- host port mapped to container `18789`
171
+ - `Durar_PODMAN_BRIDGE_HOST_PORT` -- host port mapped to container `18790`
172
+ - `Durar_PODMAN_PUBLISH_HOST` -- host interface for published ports; default is `127.0.0.1`
173
+ - `Durar_GATEWAY_BIND` -- gateway bind mode inside the container; default is `lan`
174
+ - `Durar_PODMAN_USERNS` -- `keep-id` (default), `auto`, or `host`
175
+
176
+ The manual launcher reads `~/.Durar/.env` before finalizing container/image defaults, so you can persist these there.
177
+
178
+ If you use a non-default `Durar_CONFIG_DIR` or `Durar_WORKSPACE_DIR`, set the same variables for both `./scripts/podman/setup.sh` and later `./scripts/run-Durar-podman.sh launch` commands. The repo-local launcher does not persist custom path overrides across shells.
179
+
180
+ Quadlet note:
181
+
182
+ - The generated Quadlet service intentionally keeps a fixed, hardened default shape: `127.0.0.1` published ports, `--bind lan` inside the container, and `keep-id` user namespace.
183
+ - It pins `Durar_NO_RESPAWN=1`, `Restart=on-failure`, and `TimeoutStartSec=300`.
184
+ - It publishes both `127.0.0.1:18789:18789` (gateway) and `127.0.0.1:18790:18790` (bridge).
185
+ - It reads `~/.Durar/.env` as a runtime `EnvironmentFile` for values such as `Durar_GATEWAY_TOKEN`, but it does not consume the manual launcher's Podman-specific override allowlist.
186
+ - If you need custom publish ports, publish host, or other container-run flags, use the manual launcher or edit `~/.config/containers/systemd/Durar.container` directly, then reload and restart the service.
187
+
188
+ ## Useful commands
189
+
190
+ - **Container logs:** `podman logs -f Durar`
191
+ - **Stop container:** `podman stop Durar`
192
+ - **Remove container:** `podman rm -f Durar`
193
+ - **Open dashboard URL from host CLI:** `Durar dashboard --no-open`
194
+ - **Health/status via host CLI:** `Durar gateway status --deep` (RPC probe + extra
195
+ service scan)
196
+
197
+ ## Troubleshooting
198
+
199
+ - **Permission denied (EACCES) on config or workspace:** The container runs with `--userns=keep-id` and `--user <your uid>:<your gid>` by default. Ensure the host config/workspace paths are owned by your current user.
200
+ - **Gateway start blocked (missing `gateway.mode=local`):** Ensure `~/.Durar/Durar.json` exists and sets `gateway.mode="local"`. `scripts/podman/setup.sh` creates this if missing.
201
+ - **Container CLI commands hit the wrong target:** Use `Durar --container <name> ...` explicitly, or export `Durar_CONTAINER=<name>` in your shell.
202
+ - **`Durar update` fails with `--container`:** Expected. Rebuild/pull the image, then restart the container or the Quadlet service.
203
+ - **Quadlet service does not start:** Run `systemctl --user daemon-reload`, then `systemctl --user start Durar.service`. On headless systems you may also need `sudo loginctl enable-linger "$(whoami)"`.
204
+ - **SELinux blocks bind mounts:** Leave the default mount behavior alone; the launcher auto-adds `:Z` on Linux when SELinux is enforcing or permissive.
205
+
206
+ ## Related
207
+
208
+ - [Docker](/install/docker)
209
+ - [Gateway background process](/gateway/background-process)
210
+ - [Gateway troubleshooting](/gateway/troubleshooting)
@@ -0,0 +1,90 @@
1
+ ---
2
+ summary: "Deploy OpenClaw on Railway with one-click template"
3
+ read_when:
4
+ - Deploying OpenClaw to Railway
5
+ - You want a one-click cloud deploy with browser-based Control UI
6
+ title: "Railway"
7
+ ---
8
+
9
+ Deploy OpenClaw on Railway with a one-click template and access it through the web Control UI.
10
+ This is the easiest "no terminal on the server" path: Railway runs the Gateway for you.
11
+
12
+ ## Quick checklist (new users)
13
+
14
+ 1. Click **Deploy on Railway** (below).
15
+ 2. Add a **Volume** mounted at `/data`.
16
+ 3. Set the required **Variables** (at least `OPENCLAW_GATEWAY_PORT` and `OPENCLAW_GATEWAY_TOKEN`).
17
+ 4. Enable **HTTP Proxy** on port `8080`.
18
+ 5. Open `https://<your-railway-domain>/openclaw` and connect using the configured shared secret. This template uses `OPENCLAW_GATEWAY_TOKEN` by default; if you replace it with password auth, use that password instead.
19
+
20
+ ## One-click deploy
21
+
22
+ <a href="https://railway.com/deploy/clawdbot-railway-template" target="_blank" rel="noreferrer">
23
+ Deploy on Railway
24
+ </a>
25
+
26
+ After deploy, find your public URL in **Railway → your service → Settings → Domains**.
27
+
28
+ Railway will either:
29
+
30
+ - give you a generated domain (often `https://<something>.up.railway.app`), or
31
+ - use your custom domain if you attached one.
32
+
33
+ Then open:
34
+
35
+ - `https://<your-railway-domain>/openclaw` — Control UI
36
+
37
+ ## What you get
38
+
39
+ - Hosted OpenClaw Gateway + Control UI
40
+ - Persistent storage via Railway Volume (`/data`) so `openclaw.json`,
41
+ per-agent `auth-profiles.json`, channel/provider state, sessions, and
42
+ workspace survive redeploys
43
+
44
+ ## Required Railway settings
45
+
46
+ ### Public Networking
47
+
48
+ Enable **HTTP Proxy** for the service.
49
+
50
+ - Port: `8080`
51
+
52
+ ### Volume (required)
53
+
54
+ Attach a volume mounted at:
55
+
56
+ - `/data`
57
+
58
+ ### Variables
59
+
60
+ Set these variables on the service:
61
+
62
+ - `OPENCLAW_GATEWAY_PORT=8080` (required — must match the port in Public Networking)
63
+ - `OPENCLAW_GATEWAY_TOKEN` (required; treat as an admin secret)
64
+ - `OPENCLAW_STATE_DIR=/data/.openclaw` (recommended)
65
+ - `OPENCLAW_WORKSPACE_DIR=/data/workspace` (recommended)
66
+
67
+ ## Connect a channel
68
+
69
+ Use the Control UI at `/openclaw` or run `openclaw onboard` via Railway's shell for channel setup instructions:
70
+
71
+ - [Telegram](/channels/telegram) (fastest — just a bot token)
72
+ - [Discord](/channels/discord)
73
+ - [All channels](/channels)
74
+
75
+ ## Backups & migration
76
+
77
+ Export your state, config, auth profiles, and workspace:
78
+
79
+ ```bash
80
+ openclaw backup create
81
+ ```
82
+
83
+ This creates a portable backup archive with OpenClaw state plus any configured
84
+ workspace. See [Backup](/cli/backup) for details.
85
+
86
+ ## Next steps
87
+
88
+ - Set up messaging channels: [Channels](/channels)
89
+ - Configure the Gateway: [Gateway configuration](/gateway/configuration)
90
+ - Keep OpenClaw up to date: [Updating](/install/updating)