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,244 @@
1
+ ---
2
+ summary: "Android app (node): connection runbook + Connect/Chat/Voice/Canvas command surface"
3
+ read_when:
4
+ - Pairing or reconnecting the Android node
5
+ - Debugging Android gateway discovery or auth
6
+ - Verifying chat history parity across clients
7
+ title: "Android App"
8
+ ---
9
+
10
+ # Android App (Node)
11
+
12
+ > **Note:** The Android app has not been publicly released yet. The source code is available in the [Durar repository](https://github.com/openclaw/openclaw) under `apps/android`. You can build it yourself using Java 17 and the Android SDK (`./gradlew :app:assemblePlayDebug`). See [apps/android/README.md](https://github.com/openclaw/openclaw/blob/main/apps/android/README.md) for build instructions.
13
+
14
+ ## Support snapshot
15
+
16
+ - Role: companion node app (Android does not host the Gateway).
17
+ - Gateway required: yes (run it on macOS, Linux, or Windows via WSL2).
18
+ - Install: [Getting Started](/start/getting-started) + [Pairing](/channels/pairing).
19
+ - Gateway: [Runbook](/gateway) + [Configuration](/gateway/configuration).
20
+ - Protocols: [Gateway protocol](/gateway/protocol) (nodes + control plane).
21
+
22
+ ## System control
23
+
24
+ System control (launchd/systemd) lives on the Gateway host. See [Gateway](/gateway).
25
+
26
+ ## Connection Runbook
27
+
28
+ Android node app ⇄ (mDNS/NSD + WebSocket) ⇄ **Gateway**
29
+
30
+ Android connects directly to the Gateway WebSocket and uses device pairing (`role: node`).
31
+
32
+ For Tailscale or public hosts, Android requires a secure endpoint:
33
+
34
+ - Preferred: Tailscale Serve / Funnel with `https://<magicdns>` / `wss://<magicdns>`
35
+ - Also supported: any other `wss://` Gateway URL with a real TLS endpoint
36
+ - Cleartext `ws://` remains supported on private LAN addresses / `.local` hosts, plus `localhost`, `127.0.0.1`, and the Android emulator bridge (`10.0.2.2`)
37
+
38
+ ### Prerequisites
39
+
40
+ - You can run the Gateway on the “master” machine.
41
+ - Android device/emulator can reach the gateway WebSocket:
42
+ - Same LAN with mDNS/NSD, **or**
43
+ - Same Tailscale tailnet using Wide-Area Bonjour / unicast DNS-SD (see below), **or**
44
+ - Manual gateway host/port (fallback)
45
+ - Tailnet/public mobile pairing does **not** use raw tailnet IP `ws://` endpoints. Use Tailscale Serve or another `wss://` URL instead.
46
+ - You can run the CLI (`Durar`) on the gateway machine (or via SSH).
47
+
48
+ ### 1) Start the Gateway
49
+
50
+ ```bash
51
+ Durar gateway --port 18789 --verbose
52
+ ```
53
+
54
+ Confirm in logs you see something like:
55
+
56
+ - `listening on ws://0.0.0.0:18789`
57
+
58
+ For remote Android access over Tailscale, prefer Serve/Funnel instead of a raw tailnet bind:
59
+
60
+ ```bash
61
+ Durar gateway --tailscale serve
62
+ ```
63
+
64
+ This gives Android a secure `wss://` / `https://` endpoint. A plain `gateway.bind: "tailnet"` setup is not enough for first-time remote Android pairing unless you also terminate TLS separately.
65
+
66
+ ### 2) Verify discovery (optional)
67
+
68
+ From the gateway machine:
69
+
70
+ ```bash
71
+ dns-sd -B _Durar-gw._tcp local.
72
+ ```
73
+
74
+ More debugging notes: [Bonjour](/gateway/bonjour).
75
+
76
+ If you also configured a wide-area discovery domain, compare against:
77
+
78
+ ```bash
79
+ Durar gateway discover --json
80
+ ```
81
+
82
+ That shows `local.` plus the configured wide-area domain in one pass and uses the resolved
83
+ service endpoint instead of TXT-only hints.
84
+
85
+ #### Tailnet (Vienna ⇄ London) discovery via unicast DNS-SD
86
+
87
+ Android NSD/mDNS discovery won’t cross networks. If your Android node and the gateway are on different networks but connected via Tailscale, use Wide-Area Bonjour / unicast DNS-SD instead.
88
+
89
+ Discovery alone is not sufficient for tailnet/public Android pairing. The discovered route still needs a secure endpoint (`wss://` or Tailscale Serve):
90
+
91
+ 1. Set up a DNS-SD zone (example `Durar.internal.`) on the gateway host and publish `_Durar-gw._tcp` records.
92
+ 2. Configure Tailscale split DNS for your chosen domain pointing at that DNS server.
93
+
94
+ Details and example CoreDNS config: [Bonjour](/gateway/bonjour).
95
+
96
+ ### 3) Connect from Android
97
+
98
+ In the Android app:
99
+
100
+ - The app keeps its gateway connection alive via a **foreground service** (persistent notification).
101
+ - Open the **Connect** tab.
102
+ - Use **Setup Code** or **Manual** mode.
103
+ - If discovery is blocked, use manual host/port in **Advanced controls**. For private LAN hosts, `ws://` still works. For Tailscale/public hosts, turn on TLS and use a `wss://` / Tailscale Serve endpoint.
104
+
105
+ After the first successful pairing, Android auto-reconnects on launch:
106
+
107
+ - Manual endpoint (if enabled), otherwise
108
+ - The last discovered gateway (best-effort).
109
+
110
+ ### 4) Approve pairing (CLI)
111
+
112
+ On the gateway machine:
113
+
114
+ ```bash
115
+ Durar devices list
116
+ Durar devices approve <requestId>
117
+ Durar devices reject <requestId>
118
+ ```
119
+
120
+ Pairing details: [Pairing](/channels/pairing).
121
+
122
+ ### 5) Verify the node is connected
123
+
124
+ - Via nodes status:
125
+
126
+ ```bash
127
+ Durar nodes status
128
+ ```
129
+
130
+ - Via Gateway:
131
+
132
+ ```bash
133
+ Durar gateway call node.list --params "{}"
134
+ ```
135
+
136
+ ### 6) Chat + history
137
+
138
+ The Android Chat tab supports session selection (default `main`, plus other existing sessions):
139
+
140
+ - History: `chat.history` (display-normalized; inline directive tags are
141
+ stripped from visible text, plain-text tool-call XML payloads (including
142
+ `<tool_call>...</tool_call>`, `<function_call>...</function_call>`,
143
+ `<tool_calls>...</tool_calls>`, `<function_calls>...</function_calls>`, and
144
+ truncated tool-call blocks) and leaked ASCII/full-width model control tokens
145
+ are stripped, pure silent-token assistant rows such as exact `NO_REPLY` /
146
+ `no_reply` are omitted, and oversized rows can be replaced with placeholders)
147
+ - Send: `chat.send`
148
+ - Push updates (best-effort): `chat.subscribe` → `event:"chat"`
149
+
150
+ ### 7) Canvas + camera
151
+
152
+ #### Gateway Canvas Host (recommended for web content)
153
+
154
+ If you want the node to show real HTML/CSS/JS that the agent can edit on disk, point the node at the Gateway canvas host.
155
+
156
+ Note: nodes load canvas from the Gateway HTTP server (same port as `gateway.port`, default `18789`).
157
+
158
+ 1. Create `~/.Durar/workspace/canvas/index.html` on the gateway host.
159
+
160
+ 2. Navigate the node to it (LAN):
161
+
162
+ ```bash
163
+ Durar nodes invoke --node "<Android Node>" --command canvas.navigate --params '{"url":"http://<gateway-hostname>.local:18789/__Durar__/canvas/"}'
164
+ ```
165
+
166
+ Tailnet (optional): if both devices are on Tailscale, use a MagicDNS name or tailnet IP instead of `.local`, e.g. `http://<gateway-magicdns>:18789/__Durar__/canvas/`.
167
+
168
+ This server injects a live-reload client into HTML and reloads on file changes.
169
+ The A2UI host lives at `http://<gateway-host>:18789/__Durar__/a2ui/`.
170
+
171
+ Canvas commands (foreground only):
172
+
173
+ - `canvas.eval`, `canvas.snapshot`, `canvas.navigate` (use `{"url":""}` or `{"url":"/"}` to return to the default scaffold). `canvas.snapshot` returns `{ format, base64 }` (default `format="jpeg"`).
174
+ - A2UI: `canvas.a2ui.push`, `canvas.a2ui.reset` (`canvas.a2ui.pushJSONL` legacy alias)
175
+
176
+ Camera commands (foreground only; permission-gated):
177
+
178
+ - `camera.snap` (jpg)
179
+ - `camera.clip` (mp4)
180
+
181
+ See [Camera node](/nodes/camera) for parameters and CLI helpers.
182
+
183
+ ### 8) Voice + expanded Android command surface
184
+
185
+ - Voice: Android uses a single mic on/off flow in the Voice tab with transcript capture and `talk.speak` playback. Local system TTS is used only when `talk.speak` is unavailable. Voice stops when the app leaves the foreground.
186
+ - Voice wake/talk-mode toggles are currently removed from Android UX/runtime.
187
+ - Additional Android command families (availability depends on device + permissions):
188
+ - `device.status`, `device.info`, `device.permissions`, `device.health`
189
+ - `notifications.list`, `notifications.actions` (see [Notification forwarding](#notification-forwarding) below)
190
+ - `photos.latest`
191
+ - `contacts.search`, `contacts.add`
192
+ - `calendar.events`, `calendar.add`
193
+ - `callLog.search`
194
+ - `sms.search`
195
+ - `motion.activity`, `motion.pedometer`
196
+
197
+ ## Assistant entrypoints
198
+
199
+ Android supports launching Durar from the system assistant trigger (Google
200
+ Assistant). When configured, holding the home button or saying "Hey Google, ask
201
+ Durar..." opens the app and hands the prompt into the chat composer.
202
+
203
+ This uses Android **App Actions** metadata declared in the app manifest. No
204
+ extra configuration is needed on the gateway side -- the assistant intent is
205
+ handled entirely by the Android app and forwarded as a normal chat message.
206
+
207
+ <Note>
208
+ App Actions availability depends on the device, Google Play Services version,
209
+ and whether the user has set Durar as the default assistant app.
210
+ </Note>
211
+
212
+ ## Notification forwarding
213
+
214
+ Android can forward device notifications to the gateway as events. Several controls let you scope which notifications are forwarded and when.
215
+
216
+ | Key | Type | Description |
217
+ | -------------------------------- | -------------- | ------------------------------------------------------------------------------------------------- |
218
+ | `notifications.allowPackages` | string[] | Only forward notifications from these package names. If set, all other packages are ignored. |
219
+ | `notifications.denyPackages` | string[] | Never forward notifications from these package names. Applied after `allowPackages`. |
220
+ | `notifications.quietHours.start` | string (HH:mm) | Start of quiet hours window (local device time). Notifications are suppressed during this window. |
221
+ | `notifications.quietHours.end` | string (HH:mm) | End of quiet hours window. |
222
+ | `notifications.rateLimit` | number | Maximum forwarded notifications per package per minute. Excess notifications are dropped. |
223
+
224
+ The notification picker also uses safer behavior for forwarded notification events, preventing accidental forwarding of sensitive system notifications.
225
+
226
+ Example configuration:
227
+
228
+ ```json5
229
+ {
230
+ notifications: {
231
+ allowPackages: ["com.slack", "com.whatsapp"],
232
+ denyPackages: ["com.android.systemui"],
233
+ quietHours: {
234
+ start: "22:00",
235
+ end: "07:00",
236
+ },
237
+ rateLimit: 5,
238
+ },
239
+ }
240
+ ```
241
+
242
+ <Note>
243
+ Notification forwarding requires the Android Notification Listener permission. The app prompts for this during setup.
244
+ </Note>
@@ -0,0 +1,266 @@
1
+ ---
2
+ summary: "Durar on DigitalOcean (simple paid VPS option)"
3
+ read_when:
4
+ - Setting up Durar on DigitalOcean
5
+ - Looking for cheap VPS hosting for Durar
6
+ title: "DigitalOcean (Platform)"
7
+ ---
8
+
9
+ # Durar on DigitalOcean
10
+
11
+ ## Goal
12
+
13
+ Run a persistent Durar Gateway on DigitalOcean for **$6/month** (or $4/mo with reserved pricing).
14
+
15
+ If you want a $0/month option and don’t mind ARM + provider-specific setup, see the [Oracle Cloud guide](/platforms/oracle).
16
+
17
+ ## Cost Comparison (2026)
18
+
19
+ | Provider | Plan | Specs | Price/mo | Notes |
20
+ | ------------ | --------------- | ---------------------- | ----------- | ------------------------------------- |
21
+ | Oracle Cloud | Always Free ARM | up to 4 OCPU, 24GB RAM | $0 | ARM, limited capacity / signup quirks |
22
+ | Hetzner | CX22 | 2 vCPU, 4GB RAM | €3.79 (~$4) | Cheapest paid option |
23
+ | DigitalOcean | Basic | 1 vCPU, 1GB RAM | $6 | Easy UI, good docs |
24
+ | Vultr | Cloud Compute | 1 vCPU, 1GB RAM | $6 | Many locations |
25
+ | Linode | Nanode | 1 vCPU, 1GB RAM | $5 | Now part of Akamai |
26
+
27
+ **Picking a provider:**
28
+
29
+ - DigitalOcean: simplest UX + predictable setup (this guide)
30
+ - Hetzner: good price/perf (see [Hetzner guide](/install/hetzner))
31
+ - Oracle Cloud: can be $0/month, but is more finicky and ARM-only (see [Oracle guide](/platforms/oracle))
32
+
33
+ ---
34
+
35
+ ## Prerequisites
36
+
37
+ - DigitalOcean account ([signup with $200 free credit](https://m.do.co/c/signup))
38
+ - SSH key pair (or willingness to use password auth)
39
+ - ~20 minutes
40
+
41
+ ## 1) Create a Droplet
42
+
43
+ <Warning>
44
+ Use a clean base image (Ubuntu 24.04 LTS). Avoid third-party Marketplace 1-click images unless you have reviewed their startup scripts and firewall defaults.
45
+ </Warning>
46
+
47
+ 1. Log into [DigitalOcean](https://cloud.digitalocean.com/)
48
+ 2. Click **Create → Droplets**
49
+ 3. Choose:
50
+ - **Region:** Closest to you (or your users)
51
+ - **Image:** Ubuntu 24.04 LTS
52
+ - **Size:** Basic → Regular → **$6/mo** (1 vCPU, 1GB RAM, 25GB SSD)
53
+ - **Authentication:** SSH key (recommended) or password
54
+ 4. Click **Create Droplet**
55
+ 5. Note the IP address
56
+
57
+ ## 2) Connect via SSH
58
+
59
+ ```bash
60
+ ssh root@YOUR_DROPLET_IP
61
+ ```
62
+
63
+ ## 3) Install Durar
64
+
65
+ ```bash
66
+ # Update system
67
+ apt update && apt upgrade -y
68
+
69
+ # Install Node.js 24
70
+ curl -fsSL https://deb.nodesource.com/setup_24.x | bash -
71
+ apt install -y nodejs
72
+
73
+ # Install Durar
74
+ curl -fsSL https://Durar.ai/install.sh | bash
75
+
76
+ # Verify
77
+ Durar --version
78
+ ```
79
+
80
+ ## 4) Run Onboarding
81
+
82
+ ```bash
83
+ Durar onboard --install-daemon
84
+ ```
85
+
86
+ The wizard will walk you through:
87
+
88
+ - Model auth (API keys or OAuth)
89
+ - Channel setup (Telegram, WhatsApp, Discord, etc.)
90
+ - Gateway token (auto-generated)
91
+ - Daemon installation (systemd)
92
+
93
+ ## 5) Verify the Gateway
94
+
95
+ ```bash
96
+ # Check status
97
+ Durar status
98
+
99
+ # Check service
100
+ systemctl --user status Durar-gateway.service
101
+
102
+ # View logs
103
+ journalctl --user -u Durar-gateway.service -f
104
+ ```
105
+
106
+ ## 6) Access the Dashboard
107
+
108
+ The gateway binds to loopback by default. To access the Control UI:
109
+
110
+ **Option A: SSH Tunnel (recommended)**
111
+
112
+ ```bash
113
+ # From your local machine
114
+ ssh -L 18789:localhost:18789 root@YOUR_DROPLET_IP
115
+
116
+ # Then open: http://localhost:18789
117
+ ```
118
+
119
+ **Option B: Tailscale Serve (HTTPS, loopback-only)**
120
+
121
+ ```bash
122
+ # On the droplet
123
+ curl -fsSL https://tailscale.com/install.sh | sh
124
+ tailscale up
125
+
126
+ # Configure Gateway to use Tailscale Serve
127
+ Durar config set gateway.tailscale.mode serve
128
+ Durar gateway restart
129
+ ```
130
+
131
+ Open: `https://<magicdns>/`
132
+
133
+ Notes:
134
+
135
+ - Serve keeps the Gateway loopback-only and authenticates Control UI/WebSocket traffic via Tailscale identity headers (tokenless auth assumes trusted gateway host; HTTP APIs do not use those Tailscale headers and instead follow the gateway's normal HTTP auth mode).
136
+ - To require explicit shared-secret credentials instead, set `gateway.auth.allowTailscale: false` and use `gateway.auth.mode: "token"` or `"password"`.
137
+
138
+ **Option C: Tailnet bind (no Serve)**
139
+
140
+ ```bash
141
+ Durar config set gateway.bind tailnet
142
+ Durar gateway restart
143
+ ```
144
+
145
+ Open: `http://<tailscale-ip>:18789` (token required).
146
+
147
+ ## 7) Connect Your Channels
148
+
149
+ ### Telegram
150
+
151
+ ```bash
152
+ Durar pairing list telegram
153
+ Durar pairing approve telegram <CODE>
154
+ ```
155
+
156
+ ### WhatsApp
157
+
158
+ ```bash
159
+ Durar channels login whatsapp
160
+ # Scan QR code
161
+ ```
162
+
163
+ See [Channels](/channels) for other providers.
164
+
165
+ ---
166
+
167
+ ## Optimizations for 1GB RAM
168
+
169
+ The $6 droplet only has 1GB RAM. To keep things running smoothly:
170
+
171
+ ### Add swap (recommended)
172
+
173
+ ```bash
174
+ fallocate -l 2G /swapfile
175
+ chmod 600 /swapfile
176
+ mkswap /swapfile
177
+ swapon /swapfile
178
+ echo '/swapfile none swap sw 0 0' >> /etc/fstab
179
+ ```
180
+
181
+ ### Use a lighter model
182
+
183
+ If you're hitting OOMs, consider:
184
+
185
+ - Using API-based models (Claude, GPT) instead of local models
186
+ - Setting `agents.defaults.model.primary` to a smaller model
187
+
188
+ ### Monitor memory
189
+
190
+ ```bash
191
+ free -h
192
+ htop
193
+ ```
194
+
195
+ ---
196
+
197
+ ## Persistence
198
+
199
+ All state lives in:
200
+
201
+ - `~/.Durar/` — `Durar.json`, per-agent `auth-profiles.json`, channel/provider state, and session data
202
+ - `~/.Durar/workspace/` — workspace (SOUL.md, memory, etc.)
203
+
204
+ These survive reboots. Back them up periodically:
205
+
206
+ ```bash
207
+ Durar backup create
208
+ ```
209
+
210
+ ---
211
+
212
+ ## Oracle Cloud Free Alternative
213
+
214
+ Oracle Cloud offers **Always Free** ARM instances that are significantly more powerful than any paid option here — for $0/month.
215
+
216
+ | What you get | Specs |
217
+ | ----------------- | ---------------------- |
218
+ | **4 OCPUs** | ARM Ampere A1 |
219
+ | **24GB RAM** | More than enough |
220
+ | **200GB storage** | Block volume |
221
+ | **Forever free** | No credit card charges |
222
+
223
+ **Caveats:**
224
+
225
+ - Signup can be finicky (retry if it fails)
226
+ - ARM architecture — most things work, but some binaries need ARM builds
227
+
228
+ For the full setup guide, see [Oracle Cloud](/platforms/oracle). For signup tips and troubleshooting the enrollment process, see this [community guide](https://gist.github.com/rssnyder/51e3cfedd730e7dd5f4a816143b25dbd).
229
+
230
+ ---
231
+
232
+ ## Troubleshooting
233
+
234
+ ### Gateway will not start
235
+
236
+ ```bash
237
+ Durar gateway status
238
+ Durar doctor --non-interactive
239
+ journalctl --user -u Durar-gateway.service --no-pager -n 50
240
+ ```
241
+
242
+ ### Port already in use
243
+
244
+ ```bash
245
+ lsof -i :18789
246
+ kill <PID>
247
+ ```
248
+
249
+ ### Out of memory
250
+
251
+ ```bash
252
+ # Check memory
253
+ free -h
254
+
255
+ # Add more swap
256
+ # Or upgrade to $12/mo droplet (2GB RAM)
257
+ ```
258
+
259
+ ---
260
+
261
+ ## See Also
262
+
263
+ - [Hetzner guide](/install/hetzner) — cheaper, more powerful
264
+ - [Docker install](/install/docker) — containerized setup
265
+ - [Tailscale](/gateway/tailscale) — secure remote access
266
+ - [Configuration](/gateway/configuration) — full config reference
@@ -0,0 +1,55 @@
1
+ ---
2
+ summary: "Platform support overview (Gateway + companion apps)"
3
+ read_when:
4
+ - Looking for OS support or install paths
5
+ - Deciding where to run the Gateway
6
+ title: "Platforms"
7
+ ---
8
+
9
+ # Platforms
10
+
11
+ Durar core is written in TypeScript. **Node is the recommended runtime**.
12
+ Bun is not recommended for the Gateway (WhatsApp/Telegram bugs).
13
+
14
+ Companion apps exist for macOS (menu bar app) and mobile nodes (iOS/Android). Windows and
15
+ Linux companion apps are planned, but the Gateway is fully supported today.
16
+ Native companion apps for Windows are also planned; the Gateway is recommended via WSL2.
17
+
18
+ ## Choose your OS
19
+
20
+ - macOS: [macOS](/platforms/macos)
21
+ - iOS: [iOS](/platforms/ios)
22
+ - Android: [Android](/platforms/android)
23
+ - Windows: [Windows](/platforms/windows)
24
+ - Linux: [Linux](/platforms/linux)
25
+
26
+ ## VPS & hosting
27
+
28
+ - VPS hub: [VPS hosting](/vps)
29
+ - Fly.io: [Fly.io](/install/fly)
30
+ - Hetzner (Docker): [Hetzner](/install/hetzner)
31
+ - GCP (Compute Engine): [GCP](/install/gcp)
32
+ - Azure (Linux VM): [Azure](/install/azure)
33
+ - exe.dev (VM + HTTPS proxy): [exe.dev](/install/exe-dev)
34
+
35
+ ## Common links
36
+
37
+ - Install guide: [Getting Started](/start/getting-started)
38
+ - Gateway runbook: [Gateway](/gateway)
39
+ - Gateway configuration: [Configuration](/gateway/configuration)
40
+ - Service status: `Durar gateway status`
41
+
42
+ ## Gateway service install (CLI)
43
+
44
+ Use one of these (all supported):
45
+
46
+ - Wizard (recommended): `Durar onboard --install-daemon`
47
+ - Direct: `Durar gateway install`
48
+ - Configure flow: `Durar configure` → select **Gateway service**
49
+ - Repair/migrate: `Durar doctor` (offers to install or fix the service)
50
+
51
+ The service target depends on OS:
52
+
53
+ - macOS: LaunchAgent (`ai.Durar.gateway` or `ai.Durar.<profile>`; legacy `com.Durar.*`)
54
+ - Linux/WSL2: systemd user service (`Durar-gateway[-<profile>].service`)
55
+ - Native Windows: Scheduled Task (`Durar Gateway` or `Durar Gateway (<profile>)`), with a per-user Startup-folder login item fallback if task creation is denied