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,300 @@
1
+ ---
2
+ summary: "CLI reference for `Durar message` (send + channel actions)"
3
+ read_when:
4
+ - Adding or modifying message CLI actions
5
+ - Changing outbound channel behavior
6
+ title: "message"
7
+ ---
8
+
9
+ # `Durar message`
10
+
11
+ Single outbound command for sending messages and channel actions
12
+ (Discord/Google Chat/iMessage/Matrix/Mattermost (plugin)/Microsoft Teams/Signal/Slack/Telegram/WhatsApp).
13
+
14
+ ## Usage
15
+
16
+ ```
17
+ Durar message <subcommand> [flags]
18
+ ```
19
+
20
+ Channel selection:
21
+
22
+ - `--channel` required if more than one channel is configured.
23
+ - If exactly one channel is configured, it becomes the default.
24
+ - Values: `discord|googlechat|imessage|matrix|mattermost|msteams|signal|slack|telegram|whatsapp` (Mattermost requires plugin)
25
+
26
+ Target formats (`--target`):
27
+
28
+ - WhatsApp: E.164 or group JID
29
+ - Telegram: chat id or `@username`
30
+ - Discord: `channel:<id>` or `user:<id>` (or `<@id>` mention; raw numeric ids are treated as channels)
31
+ - Google Chat: `spaces/<spaceId>` or `users/<userId>`
32
+ - Slack: `channel:<id>` or `user:<id>` (raw channel id is accepted)
33
+ - Mattermost (plugin): `channel:<id>`, `user:<id>`, or `@username` (bare ids are treated as channels)
34
+ - Signal: `+E.164`, `group:<id>`, `signal:+E.164`, `signal:group:<id>`, or `username:<name>`/`u:<name>`
35
+ - iMessage: handle, `chat_id:<id>`, `chat_guid:<guid>`, or `chat_identifier:<id>`
36
+ - Matrix: `@user:server`, `!room:server`, or `#alias:server`
37
+ - Microsoft Teams: conversation id (`19:...@thread.tacv2`) or `conversation:<id>` or `user:<aad-object-id>`
38
+
39
+ Name lookup:
40
+
41
+ - For supported providers (Discord/Slack/etc), channel names like `Help` or `#help` are resolved via the directory cache.
42
+ - On cache miss, Durar will attempt a live directory lookup when the provider supports it.
43
+
44
+ ## Common flags
45
+
46
+ - `--channel <name>`
47
+ - `--account <id>`
48
+ - `--target <dest>` (target channel or user for send/poll/read/etc)
49
+ - `--targets <name>` (repeat; broadcast only)
50
+ - `--json`
51
+ - `--dry-run`
52
+ - `--verbose`
53
+
54
+ ## SecretRef behavior
55
+
56
+ - `Durar message` resolves supported channel SecretRefs before running the selected action.
57
+ - Resolution is scoped to the active action target when possible:
58
+ - channel-scoped when `--channel` is set (or inferred from prefixed targets like `discord:...`)
59
+ - account-scoped when `--account` is set (channel globals + selected account surfaces)
60
+ - when `--account` is omitted, Durar does not force a `default` account SecretRef scope
61
+ - Unresolved SecretRefs on unrelated channels do not block a targeted message action.
62
+ - If the selected channel/account SecretRef is unresolved, the command fails closed for that action.
63
+
64
+ ## Actions
65
+
66
+ ### Core
67
+
68
+ - `send`
69
+ - Channels: WhatsApp/Telegram/Discord/Google Chat/Slack/Mattermost (plugin)/Signal/iMessage/Matrix/Microsoft Teams
70
+ - Required: `--target`, plus `--message` or `--media`
71
+ - Optional: `--media`, `--interactive`, `--buttons`, `--components`, `--card`, `--reply-to`, `--thread-id`, `--gif-playback`, `--force-document`, `--silent`
72
+ - Shared interactive payloads: `--interactive` sends a channel-native interactive JSON payload when supported
73
+ - Telegram only: `--buttons` (requires `channels.telegram.capabilities.inlineButtons` to allow it)
74
+ - Telegram only: `--force-document` (send images and GIFs as documents to avoid Telegram compression)
75
+ - Telegram only: `--thread-id` (forum topic id)
76
+ - Slack only: `--thread-id` (thread timestamp; `--reply-to` uses the same field)
77
+ - Discord only: `--components` JSON payload
78
+ - Adaptive-card channels: `--card` JSON payload when supported
79
+ - Telegram + Discord: `--silent`
80
+ - WhatsApp only: `--gif-playback`
81
+
82
+ - `poll`
83
+ - Channels: WhatsApp/Telegram/Discord/Matrix/Microsoft Teams
84
+ - Required: `--target`, `--poll-question`, `--poll-option` (repeat)
85
+ - Optional: `--poll-multi`
86
+ - Discord only: `--poll-duration-hours`, `--silent`, `--message`
87
+ - Telegram only: `--poll-duration-seconds` (5-600), `--silent`, `--poll-anonymous` / `--poll-public`, `--thread-id`
88
+
89
+ - `react`
90
+ - Channels: Discord/Google Chat/Slack/Telegram/WhatsApp/Signal/Matrix
91
+ - Required: `--message-id`, `--target`
92
+ - Optional: `--emoji`, `--remove`, `--participant`, `--from-me`, `--target-author`, `--target-author-uuid`
93
+ - Note: `--remove` requires `--emoji` (omit `--emoji` to clear own reactions where supported; see /tools/reactions)
94
+ - WhatsApp only: `--participant`, `--from-me`
95
+ - Signal group reactions: `--target-author` or `--target-author-uuid` required
96
+
97
+ - `reactions`
98
+ - Channels: Discord/Google Chat/Slack/Matrix
99
+ - Required: `--message-id`, `--target`
100
+ - Optional: `--limit`
101
+
102
+ - `read`
103
+ - Channels: Discord/Slack/Matrix
104
+ - Required: `--target`
105
+ - Optional: `--limit`, `--before`, `--after`
106
+ - Discord only: `--around`
107
+
108
+ - `edit`
109
+ - Channels: Discord/Slack/Matrix
110
+ - Required: `--message-id`, `--message`, `--target`
111
+
112
+ - `delete`
113
+ - Channels: Discord/Slack/Telegram/Matrix
114
+ - Required: `--message-id`, `--target`
115
+
116
+ - `pin` / `unpin`
117
+ - Channels: Discord/Slack/Matrix
118
+ - Required: `--message-id`, `--target`
119
+
120
+ - `pins` (list)
121
+ - Channels: Discord/Slack/Matrix
122
+ - Required: `--target`
123
+
124
+ - `permissions`
125
+ - Channels: Discord/Matrix
126
+ - Required: `--target`
127
+ - Matrix only: available when Matrix encryption is enabled and verification actions are allowed
128
+
129
+ - `search`
130
+ - Channels: Discord
131
+ - Required: `--guild-id`, `--query`
132
+ - Optional: `--channel-id`, `--channel-ids` (repeat), `--author-id`, `--author-ids` (repeat), `--limit`
133
+
134
+ ### Threads
135
+
136
+ - `thread create`
137
+ - Channels: Discord
138
+ - Required: `--thread-name`, `--target` (channel id)
139
+ - Optional: `--message-id`, `--message`, `--auto-archive-min`
140
+
141
+ - `thread list`
142
+ - Channels: Discord
143
+ - Required: `--guild-id`
144
+ - Optional: `--channel-id`, `--include-archived`, `--before`, `--limit`
145
+
146
+ - `thread reply`
147
+ - Channels: Discord
148
+ - Required: `--target` (thread id), `--message`
149
+ - Optional: `--media`, `--reply-to`
150
+
151
+ ### Emojis
152
+
153
+ - `emoji list`
154
+ - Discord: `--guild-id`
155
+ - Slack: no extra flags
156
+
157
+ - `emoji upload`
158
+ - Channels: Discord
159
+ - Required: `--guild-id`, `--emoji-name`, `--media`
160
+ - Optional: `--role-ids` (repeat)
161
+
162
+ ### Stickers
163
+
164
+ - `sticker send`
165
+ - Channels: Discord
166
+ - Required: `--target`, `--sticker-id` (repeat)
167
+ - Optional: `--message`
168
+
169
+ - `sticker upload`
170
+ - Channels: Discord
171
+ - Required: `--guild-id`, `--sticker-name`, `--sticker-desc`, `--sticker-tags`, `--media`
172
+
173
+ ### Roles / Channels / Members / Voice
174
+
175
+ - `role info` (Discord): `--guild-id`
176
+ - `role add` / `role remove` (Discord): `--guild-id`, `--user-id`, `--role-id`
177
+ - `channel info` (Discord): `--target`
178
+ - `channel list` (Discord): `--guild-id`
179
+ - `member info` (Discord/Slack): `--user-id` (+ `--guild-id` for Discord)
180
+ - `voice status` (Discord): `--guild-id`, `--user-id`
181
+
182
+ ### Events
183
+
184
+ - `event list` (Discord): `--guild-id`
185
+ - `event create` (Discord): `--guild-id`, `--event-name`, `--start-time`
186
+ - Optional: `--end-time`, `--desc`, `--channel-id`, `--location`, `--event-type`
187
+
188
+ ### Moderation (Discord)
189
+
190
+ - `timeout`: `--guild-id`, `--user-id` (optional `--duration-min` or `--until`; omit both to clear timeout)
191
+ - `kick`: `--guild-id`, `--user-id` (+ `--reason`)
192
+ - `ban`: `--guild-id`, `--user-id` (+ `--delete-days`, `--reason`)
193
+ - `timeout` also supports `--reason`
194
+
195
+ ### Broadcast
196
+
197
+ - `broadcast`
198
+ - Channels: any configured channel; use `--channel all` to target all providers
199
+ - Required: `--targets <target...>`
200
+ - Optional: `--message`, `--media`, `--dry-run`
201
+
202
+ ## Examples
203
+
204
+ Send a Discord reply:
205
+
206
+ ```
207
+ Durar message send --channel discord \
208
+ --target channel:123 --message "hi" --reply-to 456
209
+ ```
210
+
211
+ Send a Discord message with components:
212
+
213
+ ```
214
+ Durar message send --channel discord \
215
+ --target channel:123 --message "Choose:" \
216
+ --components '{"text":"Choose a path","blocks":[{"type":"actions","buttons":[{"label":"Approve","style":"success"},{"label":"Decline","style":"danger"}]}]}'
217
+ ```
218
+
219
+ See [Discord components](/channels/discord#interactive-components) for the full schema.
220
+
221
+ Send a shared interactive payload:
222
+
223
+ ```bash
224
+ Durar message send --channel googlechat --target spaces/AAA... \
225
+ --message "Choose:" \
226
+ --interactive '{"text":"Choose a path","blocks":[{"type":"actions","buttons":[{"label":"Approve"},{"label":"Decline"}]}]}'
227
+ ```
228
+
229
+ Create a Discord poll:
230
+
231
+ ```
232
+ Durar message poll --channel discord \
233
+ --target channel:123 \
234
+ --poll-question "Snack?" \
235
+ --poll-option Pizza --poll-option Sushi \
236
+ --poll-multi --poll-duration-hours 48
237
+ ```
238
+
239
+ Create a Telegram poll (auto-close in 2 minutes):
240
+
241
+ ```
242
+ Durar message poll --channel telegram \
243
+ --target @mychat \
244
+ --poll-question "Lunch?" \
245
+ --poll-option Pizza --poll-option Sushi \
246
+ --poll-duration-seconds 120 --silent
247
+ ```
248
+
249
+ Send a Teams proactive message:
250
+
251
+ ```
252
+ Durar message send --channel msteams \
253
+ --target conversation:19:abc@thread.tacv2 --message "hi"
254
+ ```
255
+
256
+ Create a Teams poll:
257
+
258
+ ```
259
+ Durar message poll --channel msteams \
260
+ --target conversation:19:abc@thread.tacv2 \
261
+ --poll-question "Lunch?" \
262
+ --poll-option Pizza --poll-option Sushi
263
+ ```
264
+
265
+ React in Slack:
266
+
267
+ ```
268
+ Durar message react --channel slack \
269
+ --target C123 --message-id 456 --emoji "✅"
270
+ ```
271
+
272
+ React in a Signal group:
273
+
274
+ ```
275
+ Durar message react --channel signal \
276
+ --target signal:group:abc123 --message-id 1737630212345 \
277
+ --emoji "✅" --target-author-uuid 123e4567-e89b-12d3-a456-426614174000
278
+ ```
279
+
280
+ Send Telegram inline buttons:
281
+
282
+ ```
283
+ Durar message send --channel telegram --target @mychat --message "Choose:" \
284
+ --buttons '[ [{"text":"Yes","callback_data":"cmd:yes"}], [{"text":"No","callback_data":"cmd:no"}] ]'
285
+ ```
286
+
287
+ Send a Teams Adaptive Card:
288
+
289
+ ```bash
290
+ Durar message send --channel msteams \
291
+ --target conversation:19:abc@thread.tacv2 \
292
+ --card '{"type":"AdaptiveCard","version":"1.5","body":[{"type":"TextBlock","text":"Status update"}]}'
293
+ ```
294
+
295
+ Send a Telegram image as a document to avoid compression:
296
+
297
+ ```bash
298
+ Durar message send --channel telegram --target @mychat \
299
+ --media ./diagram.png --force-document
300
+ ```
@@ -0,0 +1,136 @@
1
+ ---
2
+ summary: "CLI reference for `Durar models` (status/list/set/scan, aliases, fallbacks, auth)"
3
+ read_when:
4
+ - You want to change default models or view provider auth status
5
+ - You want to scan available models/providers and debug auth profiles
6
+ title: "models"
7
+ ---
8
+
9
+ # `Durar models`
10
+
11
+ Model discovery, scanning, and configuration (default model, fallbacks, auth profiles).
12
+
13
+ Related:
14
+
15
+ - Providers + models: [Models](/providers/models)
16
+ - Provider auth setup: [Getting started](/start/getting-started)
17
+
18
+ ## Common commands
19
+
20
+ ```bash
21
+ Durar models status
22
+ Durar models list
23
+ Durar models set <model-or-alias>
24
+ Durar models scan
25
+ ```
26
+
27
+ `Durar models status` shows the resolved default/fallbacks plus an auth overview.
28
+ When provider usage snapshots are available, the OAuth/API-key status section includes
29
+ provider usage windows and quota snapshots.
30
+ Current usage-window providers: Anthropic, GitHub Copilot, Gemini CLI, OpenAI
31
+ Codex, MiniMax, Xiaomi, and z.ai. Usage auth comes from provider-specific hooks
32
+ when available; otherwise Durar falls back to matching OAuth/API-key
33
+ credentials from auth profiles, env, or config.
34
+ Add `--probe` to run live auth probes against each configured provider profile.
35
+ Probes are real requests (may consume tokens and trigger rate limits).
36
+ Use `--agent <id>` to inspect a configured agent’s model/auth state. When omitted,
37
+ the command uses `Durar_AGENT_DIR`/`PI_CODING_AGENT_DIR` if set, otherwise the
38
+ configured default agent.
39
+ Probe rows can come from auth profiles, env credentials, or `models.json`.
40
+
41
+ Notes:
42
+
43
+ - `models set <model-or-alias>` accepts `provider/model` or an alias.
44
+ - Model refs are parsed by splitting on the **first** `/`. If the model ID includes `/` (OpenRouter-style), include the provider prefix (example: `openrouter/moonshotai/kimi-k2`).
45
+ - If you omit the provider, Durar resolves the input as an alias first, then
46
+ as a unique configured-provider match for that exact model id, and only then
47
+ falls back to the configured default provider with a deprecation warning.
48
+ If that provider no longer exposes the configured default model, Durar
49
+ falls back to the first configured provider/model instead of surfacing a
50
+ stale removed-provider default.
51
+ - `models status` may show `marker(<value>)` in auth output for non-secret placeholders (for example `OPENAI_API_KEY`, `secretref-managed`, `minimax-oauth`, `oauth:chutes`, `ollama-local`) instead of masking them as secrets.
52
+
53
+ ### `models status`
54
+
55
+ Options:
56
+
57
+ - `--json`
58
+ - `--plain`
59
+ - `--check` (exit 1=expired/missing, 2=expiring)
60
+ - `--probe` (live probe of configured auth profiles)
61
+ - `--probe-provider <name>` (probe one provider)
62
+ - `--probe-profile <id>` (repeat or comma-separated profile ids)
63
+ - `--probe-timeout <ms>`
64
+ - `--probe-concurrency <n>`
65
+ - `--probe-max-tokens <n>`
66
+ - `--agent <id>` (configured agent id; overrides `Durar_AGENT_DIR`/`PI_CODING_AGENT_DIR`)
67
+
68
+ Probe status buckets:
69
+
70
+ - `ok`
71
+ - `auth`
72
+ - `rate_limit`
73
+ - `billing`
74
+ - `timeout`
75
+ - `format`
76
+ - `unknown`
77
+ - `no_model`
78
+
79
+ Probe detail/reason-code cases to expect:
80
+
81
+ - `excluded_by_auth_order`: a stored profile exists, but explicit
82
+ `auth.order.<provider>` omitted it, so probe reports the exclusion instead of
83
+ trying it.
84
+ - `missing_credential`, `invalid_expires`, `expired`, `unresolved_ref`:
85
+ profile is present but not eligible/resolvable.
86
+ - `no_model`: provider auth exists, but Durar could not resolve a probeable
87
+ model candidate for that provider.
88
+
89
+ ## Aliases + fallbacks
90
+
91
+ ```bash
92
+ Durar models aliases list
93
+ Durar models fallbacks list
94
+ ```
95
+
96
+ ## Auth profiles
97
+
98
+ ```bash
99
+ Durar models auth add
100
+ Durar models auth login --provider <id>
101
+ Durar models auth setup-token --provider <id>
102
+ Durar models auth paste-token
103
+ ```
104
+
105
+ `models auth add` is the interactive auth helper. It can launch a provider auth
106
+ flow (OAuth/API key) or guide you into manual token paste, depending on the
107
+ provider you choose.
108
+
109
+ `models auth login` runs a provider plugin’s auth flow (OAuth/API key). Use
110
+ `Durar plugins list` to see which providers are installed.
111
+
112
+ Examples:
113
+
114
+ ```bash
115
+ Durar models auth login --provider anthropic --method cli --set-default
116
+ Durar models auth login --provider openai-codex --set-default
117
+ ```
118
+
119
+ Notes:
120
+
121
+ - `login --provider anthropic --method cli --set-default` reuses a local Claude
122
+ CLI login and rewrites the main Anthropic default-model path to a canonical
123
+ `claude-cli/claude-*` ref.
124
+ - `setup-token` and `paste-token` remain generic token commands for providers
125
+ that expose token auth methods.
126
+ - `setup-token` requires an interactive TTY and runs the provider's token-auth
127
+ method (defaulting to that provider's `setup-token` method when it exposes
128
+ one).
129
+ - `paste-token` accepts a token string generated elsewhere or from automation.
130
+ - `paste-token` requires `--provider`, prompts for the token value, and writes
131
+ it to the default profile id `<provider>:manual` unless you pass
132
+ `--profile-id`.
133
+ - `paste-token --expires-in <duration>` stores an absolute token expiry from a
134
+ relative duration such as `365d` or `12h`.
135
+ - Anthropic billing note: We believe Claude Code CLI fallback is likely allowed for local, user-managed automation based on Anthropic's public CLI docs. That said, Anthropic's third-party harness policy creates enough ambiguity around subscription-backed use in external products that we do not recommend it for production. Anthropic also notified Durar users on **April 4, 2026 at 12:00 PM PT / 8:00 PM BST** that the **Durar** Claude-login path counts as third-party harness usage and requires **Extra Usage** billed separately from the subscription.
136
+ - Anthropic `setup-token` / `paste-token` are available again as a legacy/manual Durar path. Use them with the expectation that Anthropic told Durar users this path requires **Extra Usage**.
@@ -0,0 +1,137 @@
1
+ ---
2
+ summary: "CLI reference for `Durar node` (headless node host)"
3
+ read_when:
4
+ - Running the headless node host
5
+ - Pairing a non-macOS node for system.run
6
+ title: "node"
7
+ ---
8
+
9
+ # `Durar node`
10
+
11
+ Run a **headless node host** that connects to the Gateway WebSocket and exposes
12
+ `system.run` / `system.which` on this machine.
13
+
14
+ ## Why use a node host?
15
+
16
+ Use a node host when you want agents to **run commands on other machines** in your
17
+ network without installing a full macOS companion app there.
18
+
19
+ Common use cases:
20
+
21
+ - Run commands on remote Linux/Windows boxes (build servers, lab machines, NAS).
22
+ - Keep exec **sandboxed** on the gateway, but delegate approved runs to other hosts.
23
+ - Provide a lightweight, headless execution target for automation or CI nodes.
24
+
25
+ Execution is still guarded by **exec approvals** and per‑agent allowlists on the
26
+ node host, so you can keep command access scoped and explicit.
27
+
28
+ ## Browser proxy (zero-config)
29
+
30
+ Node hosts automatically advertise a browser proxy if `browser.enabled` is not
31
+ disabled on the node. This lets the agent use browser automation on that node
32
+ without extra configuration.
33
+
34
+ By default, the proxy exposes the node's normal browser profile surface. If you
35
+ set `nodeHost.browserProxy.allowProfiles`, the proxy becomes restrictive:
36
+ non-allowlisted profile targeting is rejected, and persistent profile
37
+ create/delete routes are blocked through the proxy.
38
+
39
+ Disable it on the node if needed:
40
+
41
+ ```json5
42
+ {
43
+ nodeHost: {
44
+ browserProxy: {
45
+ enabled: false,
46
+ },
47
+ },
48
+ }
49
+ ```
50
+
51
+ ## Run (foreground)
52
+
53
+ ```bash
54
+ Durar node run --host <gateway-host> --port 18789
55
+ ```
56
+
57
+ Options:
58
+
59
+ - `--host <host>`: Gateway WebSocket host (default: `127.0.0.1`)
60
+ - `--port <port>`: Gateway WebSocket port (default: `18789`)
61
+ - `--tls`: Use TLS for the gateway connection
62
+ - `--tls-fingerprint <sha256>`: Expected TLS certificate fingerprint (sha256)
63
+ - `--node-id <id>`: Override node id (clears pairing token)
64
+ - `--display-name <name>`: Override the node display name
65
+
66
+ ## Gateway auth for node host
67
+
68
+ `Durar node run` and `Durar node install` resolve gateway auth from config/env (no `--token`/`--password` flags on node commands):
69
+
70
+ - `Durar_GATEWAY_TOKEN` / `Durar_GATEWAY_PASSWORD` are checked first.
71
+ - Then local config fallback: `gateway.auth.token` / `gateway.auth.password`.
72
+ - In local mode, node host intentionally does not inherit `gateway.remote.token` / `gateway.remote.password`.
73
+ - If `gateway.auth.token` / `gateway.auth.password` is explicitly configured via SecretRef and unresolved, node auth resolution fails closed (no remote fallback masking).
74
+ - In `gateway.mode=remote`, remote client fields (`gateway.remote.token` / `gateway.remote.password`) are also eligible per remote precedence rules.
75
+ - Node host auth resolution only honors `Durar_GATEWAY_*` env vars.
76
+
77
+ ## Service (background)
78
+
79
+ Install a headless node host as a user service.
80
+
81
+ ```bash
82
+ Durar node install --host <gateway-host> --port 18789
83
+ ```
84
+
85
+ Options:
86
+
87
+ - `--host <host>`: Gateway WebSocket host (default: `127.0.0.1`)
88
+ - `--port <port>`: Gateway WebSocket port (default: `18789`)
89
+ - `--tls`: Use TLS for the gateway connection
90
+ - `--tls-fingerprint <sha256>`: Expected TLS certificate fingerprint (sha256)
91
+ - `--node-id <id>`: Override node id (clears pairing token)
92
+ - `--display-name <name>`: Override the node display name
93
+ - `--runtime <runtime>`: Service runtime (`node` or `bun`)
94
+ - `--force`: Reinstall/overwrite if already installed
95
+
96
+ Manage the service:
97
+
98
+ ```bash
99
+ Durar node status
100
+ Durar node stop
101
+ Durar node restart
102
+ Durar node uninstall
103
+ ```
104
+
105
+ Use `Durar node run` for a foreground node host (no service).
106
+
107
+ Service commands accept `--json` for machine-readable output.
108
+
109
+ ## Pairing
110
+
111
+ The first connection creates a pending device pairing request (`role: node`) on the Gateway.
112
+ Approve it via:
113
+
114
+ ```bash
115
+ Durar devices list
116
+ Durar devices approve <requestId>
117
+ ```
118
+
119
+ If the node retries pairing with changed auth details (role/scopes/public key),
120
+ the previous pending request is superseded and a new `requestId` is created.
121
+ Run `Durar devices list` again before approval.
122
+
123
+ The node host stores its node id, token, display name, and gateway connection info in
124
+ `~/.Durar/node.json`.
125
+
126
+ ## Exec approvals
127
+
128
+ `system.run` is gated by local exec approvals:
129
+
130
+ - `~/.Durar/exec-approvals.json`
131
+ - [Exec approvals](/tools/exec-approvals)
132
+ - `Durar approvals --node <id|name|ip>` (edit from the Gateway)
133
+
134
+ For approved async node exec, Durar prepares a canonical `systemRunPlan`
135
+ before prompting. The later approved `system.run` forward reuses that stored
136
+ plan, so edits to command/cwd/session fields after the approval request was
137
+ created are rejected instead of changing what the node executes.
@@ -0,0 +1,66 @@
1
+ ---
2
+ summary: "CLI reference for `Durar nodes` (status, pairing, invoke, camera/canvas/screen)"
3
+ read_when:
4
+ - You’re managing paired nodes (cameras, screen, canvas)
5
+ - You need to approve requests or invoke node commands
6
+ title: "nodes"
7
+ ---
8
+
9
+ # `Durar nodes`
10
+
11
+ Manage paired nodes (devices) and invoke node capabilities.
12
+
13
+ Related:
14
+
15
+ - Nodes overview: [Nodes](/nodes)
16
+ - Camera: [Camera nodes](/nodes/camera)
17
+ - Images: [Image nodes](/nodes/images)
18
+
19
+ Common options:
20
+
21
+ - `--url`, `--token`, `--timeout`, `--json`
22
+
23
+ ## Common commands
24
+
25
+ ```bash
26
+ Durar nodes list
27
+ Durar nodes list --connected
28
+ Durar nodes list --last-connected 24h
29
+ Durar nodes pending
30
+ Durar nodes approve <requestId>
31
+ Durar nodes reject <requestId>
32
+ Durar nodes rename --node <id|name|ip> --name <displayName>
33
+ Durar nodes status
34
+ Durar nodes status --connected
35
+ Durar nodes status --last-connected 24h
36
+ ```
37
+
38
+ `nodes list` prints pending/paired tables. Paired rows include the most recent connect age (Last Connect).
39
+ Use `--connected` to only show currently-connected nodes. Use `--last-connected <duration>` to
40
+ filter to nodes that connected within a duration (e.g. `24h`, `7d`).
41
+
42
+ Approval note:
43
+
44
+ - `Durar nodes pending` only needs pairing scope.
45
+ - `Durar nodes approve <requestId>` inherits extra scope requirements from the
46
+ pending request:
47
+ - commandless request: pairing only
48
+ - non-exec node commands: pairing + write
49
+ - `system.run` / `system.run.prepare` / `system.which`: pairing + admin
50
+
51
+ ## Invoke
52
+
53
+ ```bash
54
+ Durar nodes invoke --node <id|name|ip> --command <command> --params <json>
55
+ ```
56
+
57
+ Invoke flags:
58
+
59
+ - `--params <json>`: JSON object string (default `{}`).
60
+ - `--invoke-timeout <ms>`: node invoke timeout (default `15000`).
61
+ - `--idempotency-key <key>`: optional idempotency key.
62
+ - `system.run` and `system.run.prepare` are blocked here; use the `exec` tool with `host=node` for shell execution.
63
+
64
+ For shell execution on a node, use the `exec` tool with `host=node` instead of `Durar nodes run`.
65
+ The `nodes` CLI is now capability-focused: direct RPC via `nodes invoke`, plus pairing, camera,
66
+ screen, location, canvas, and notifications.