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,472 @@
1
+ ---
2
+ summary: "Use OpenAI via API keys or Codex subscription in Durar"
3
+ read_when:
4
+ - You want to use OpenAI models in Durar
5
+ - You want Codex subscription auth instead of API keys
6
+ title: "OpenAI"
7
+ ---
8
+
9
+ # OpenAI
10
+
11
+ OpenAI provides developer APIs for GPT models. Codex supports **ChatGPT sign-in** for subscription
12
+ access or **API key** sign-in for usage-based access. Codex cloud requires ChatGPT sign-in.
13
+ OpenAI explicitly supports subscription OAuth usage in external tools/workflows like Durar.
14
+
15
+ ## Default interaction style
16
+
17
+ Durar can add a small OpenAI-specific prompt overlay for both `openai/*` and
18
+ `openai-codex/*` runs. By default, the overlay keeps the assistant warm,
19
+ collaborative, concise, direct, and a little more emotionally expressive
20
+ without replacing the base Durar system prompt. The friendly overlay also
21
+ permits the occasional emoji when it fits naturally, while keeping overall
22
+ output concise.
23
+
24
+ Config key:
25
+
26
+ `plugins.entries.openai.config.personality`
27
+
28
+ Allowed values:
29
+
30
+ - `"friendly"`: default; enable the OpenAI-specific overlay.
31
+ - `"off"`: disable the overlay and use the base Durar prompt only.
32
+
33
+ Scope:
34
+
35
+ - Applies to `openai/*` models.
36
+ - Applies to `openai-codex/*` models.
37
+ - Does not affect other providers.
38
+
39
+ This behavior is on by default. Keep `"friendly"` explicitly if you want that
40
+ to survive future local config churn:
41
+
42
+ ```json5
43
+ {
44
+ plugins: {
45
+ entries: {
46
+ openai: {
47
+ config: {
48
+ personality: "friendly",
49
+ },
50
+ },
51
+ },
52
+ },
53
+ }
54
+ ```
55
+
56
+ ### Disable the OpenAI prompt overlay
57
+
58
+ If you want the unmodified base Durar prompt, set the overlay to `"off"`:
59
+
60
+ ```json5
61
+ {
62
+ plugins: {
63
+ entries: {
64
+ openai: {
65
+ config: {
66
+ personality: "off",
67
+ },
68
+ },
69
+ },
70
+ },
71
+ }
72
+ ```
73
+
74
+ You can also set it directly with the config CLI:
75
+
76
+ ```bash
77
+ Durar config set plugins.entries.openai.config.personality off
78
+ ```
79
+
80
+ ## Option A: OpenAI API key (OpenAI Platform)
81
+
82
+ **Best for:** direct API access and usage-based billing.
83
+ Get your API key from the OpenAI dashboard.
84
+
85
+ ### CLI setup
86
+
87
+ ```bash
88
+ Durar onboard --auth-choice openai-api-key
89
+ # or non-interactive
90
+ Durar onboard --openai-api-key "$OPENAI_API_KEY"
91
+ ```
92
+
93
+ ### Config snippet
94
+
95
+ ```json5
96
+ {
97
+ env: { OPENAI_API_KEY: "sk-..." },
98
+ agents: { defaults: { model: { primary: "openai/gpt-5.4" } } },
99
+ }
100
+ ```
101
+
102
+ OpenAI's current API model docs list `gpt-5.4` and `gpt-5.4-pro` for direct
103
+ OpenAI API usage. Durar forwards both through the `openai/*` Responses path.
104
+ Durar intentionally suppresses the stale `openai/gpt-5.3-codex-spark` row,
105
+ because direct OpenAI API calls reject it in live traffic.
106
+
107
+ Durar does **not** expose `openai/gpt-5.3-codex-spark` on the direct OpenAI
108
+ API path. `pi-ai` still ships a built-in row for that model, but live OpenAI API
109
+ requests currently reject it. Spark is treated as Codex-only in Durar.
110
+
111
+ ## Option B: OpenAI Code (Codex) subscription
112
+
113
+ **Best for:** using ChatGPT/Codex subscription access instead of an API key.
114
+ Codex cloud requires ChatGPT sign-in, while the Codex CLI supports ChatGPT or API key sign-in.
115
+
116
+ ### CLI setup (Codex OAuth)
117
+
118
+ ```bash
119
+ # Run Codex OAuth in the wizard
120
+ Durar onboard --auth-choice openai-codex
121
+
122
+ # Or run OAuth directly
123
+ Durar models auth login --provider openai-codex
124
+ ```
125
+
126
+ ### Config snippet (Codex subscription)
127
+
128
+ ```json5
129
+ {
130
+ agents: { defaults: { model: { primary: "openai-codex/gpt-5.4" } } },
131
+ }
132
+ ```
133
+
134
+ OpenAI's current Codex docs list `gpt-5.4` as the current Codex model. Durar
135
+ maps that to `openai-codex/gpt-5.4` for ChatGPT/Codex OAuth usage.
136
+
137
+ If onboarding reuses an existing Codex CLI login, those credentials stay
138
+ managed by Codex CLI. On expiry, Durar re-reads the external Codex source
139
+ first and, when the provider can refresh it, writes the refreshed credential
140
+ back to Codex storage instead of taking ownership in a separate Durar-only
141
+ copy.
142
+
143
+ If your Codex account is entitled to Codex Spark, Durar also supports:
144
+
145
+ - `openai-codex/gpt-5.3-codex-spark`
146
+
147
+ Durar treats Codex Spark as Codex-only. It does not expose a direct
148
+ `openai/gpt-5.3-codex-spark` API-key path.
149
+
150
+ Durar also preserves `openai-codex/gpt-5.3-codex-spark` when `pi-ai`
151
+ discovers it. Treat it as entitlement-dependent and experimental: Codex Spark is
152
+ separate from GPT-5.4 `/fast`, and availability depends on the signed-in Codex /
153
+ ChatGPT account.
154
+
155
+ ### Codex context window cap
156
+
157
+ Durar treats the Codex model metadata and the runtime context cap as separate
158
+ values.
159
+
160
+ For `openai-codex/gpt-5.4`:
161
+
162
+ - native `contextWindow`: `1050000`
163
+ - default runtime `contextTokens` cap: `272000`
164
+
165
+ That keeps model metadata truthful while preserving the smaller default runtime
166
+ window that has better latency and quality characteristics in practice.
167
+
168
+ If you want a different effective cap, set `models.providers.<provider>.models[].contextTokens`:
169
+
170
+ ```json5
171
+ {
172
+ models: {
173
+ providers: {
174
+ "openai-codex": {
175
+ models: [
176
+ {
177
+ id: "gpt-5.4",
178
+ contextTokens: 160000,
179
+ },
180
+ ],
181
+ },
182
+ },
183
+ },
184
+ }
185
+ ```
186
+
187
+ Use `contextWindow` only when you are declaring or overriding native model
188
+ metadata. Use `contextTokens` when you want to limit the runtime context budget.
189
+
190
+ ### Transport default
191
+
192
+ Durar uses `pi-ai` for model streaming. For both `openai/*` and
193
+ `openai-codex/*`, default transport is `"auto"` (WebSocket-first, then SSE
194
+ fallback).
195
+
196
+ In `"auto"` mode, Durar also retries one early, retryable WebSocket failure
197
+ before it falls back to SSE. Forced `"websocket"` mode still surfaces transport
198
+ errors directly instead of hiding them behind fallback.
199
+
200
+ After a connect or early-turn WebSocket failure in `"auto"` mode, Durar marks
201
+ that session's WebSocket path as degraded for about 60 seconds and sends
202
+ subsequent turns over SSE during the cool-down instead of thrashing between
203
+ transports.
204
+
205
+ For native OpenAI-family endpoints (`openai/*`, `openai-codex/*`, and Azure
206
+ OpenAI Responses), Durar also attaches stable session and turn identity state
207
+ to requests so retries, reconnects, and SSE fallback stay aligned to the same
208
+ conversation identity. On native OpenAI-family routes this includes stable
209
+ session/turn request identity headers plus matching transport metadata.
210
+
211
+ Durar also normalizes OpenAI usage counters across transport variants before
212
+ they reach session/status surfaces. Native OpenAI/Codex Responses traffic may
213
+ report usage as either `input_tokens` / `output_tokens` or
214
+ `prompt_tokens` / `completion_tokens`; Durar treats those as the same input
215
+ and output counters for `/status`, `/usage`, and session logs. When native
216
+ WebSocket traffic omits `total_tokens` (or reports `0`), Durar falls back to
217
+ the normalized input + output total so session/status displays stay populated.
218
+
219
+ You can set `agents.defaults.models.<provider/model>.params.transport`:
220
+
221
+ - `"sse"`: force SSE
222
+ - `"websocket"`: force WebSocket
223
+ - `"auto"`: try WebSocket, then fall back to SSE
224
+
225
+ For `openai/*` (Responses API), Durar also enables WebSocket warm-up by
226
+ default (`openaiWsWarmup: true`) when WebSocket transport is used.
227
+
228
+ Related OpenAI docs:
229
+
230
+ - [Realtime API with WebSocket](https://platform.openai.com/docs/guides/realtime-websocket)
231
+ - [Streaming API responses (SSE)](https://platform.openai.com/docs/guides/streaming-responses)
232
+
233
+ ```json5
234
+ {
235
+ agents: {
236
+ defaults: {
237
+ model: { primary: "openai-codex/gpt-5.4" },
238
+ models: {
239
+ "openai-codex/gpt-5.4": {
240
+ params: {
241
+ transport: "auto",
242
+ },
243
+ },
244
+ },
245
+ },
246
+ },
247
+ }
248
+ ```
249
+
250
+ ### OpenAI WebSocket warm-up
251
+
252
+ OpenAI docs describe warm-up as optional. Durar enables it by default for
253
+ `openai/*` to reduce first-turn latency when using WebSocket transport.
254
+
255
+ ### Disable warm-up
256
+
257
+ ```json5
258
+ {
259
+ agents: {
260
+ defaults: {
261
+ models: {
262
+ "openai/gpt-5.4": {
263
+ params: {
264
+ openaiWsWarmup: false,
265
+ },
266
+ },
267
+ },
268
+ },
269
+ },
270
+ }
271
+ ```
272
+
273
+ ### Enable warm-up explicitly
274
+
275
+ ```json5
276
+ {
277
+ agents: {
278
+ defaults: {
279
+ models: {
280
+ "openai/gpt-5.4": {
281
+ params: {
282
+ openaiWsWarmup: true,
283
+ },
284
+ },
285
+ },
286
+ },
287
+ },
288
+ }
289
+ ```
290
+
291
+ ### OpenAI and Codex priority processing
292
+
293
+ OpenAI's API exposes priority processing via `service_tier=priority`. In
294
+ Durar, set `agents.defaults.models["<provider>/<model>"].params.serviceTier`
295
+ to pass that field through on native OpenAI/Codex Responses endpoints.
296
+
297
+ ```json5
298
+ {
299
+ agents: {
300
+ defaults: {
301
+ models: {
302
+ "openai/gpt-5.4": {
303
+ params: {
304
+ serviceTier: "priority",
305
+ },
306
+ },
307
+ "openai-codex/gpt-5.4": {
308
+ params: {
309
+ serviceTier: "priority",
310
+ },
311
+ },
312
+ },
313
+ },
314
+ },
315
+ }
316
+ ```
317
+
318
+ Supported values are `auto`, `default`, `flex`, and `priority`.
319
+
320
+ Durar forwards `params.serviceTier` to both direct `openai/*` Responses
321
+ requests and `openai-codex/*` Codex Responses requests when those models point
322
+ at the native OpenAI/Codex endpoints.
323
+
324
+ Important behavior:
325
+
326
+ - direct `openai/*` must target `api.openai.com`
327
+ - `openai-codex/*` must target `chatgpt.com/backend-api`
328
+ - if you route either provider through another base URL or proxy, Durar leaves `service_tier` untouched
329
+
330
+ ### OpenAI fast mode
331
+
332
+ Durar exposes a shared fast-mode toggle for both `openai/*` and
333
+ `openai-codex/*` sessions:
334
+
335
+ - Chat/UI: `/fast status|on|off`
336
+ - Config: `agents.defaults.models["<provider>/<model>"].params.fastMode`
337
+
338
+ When fast mode is enabled, Durar maps it to OpenAI priority processing:
339
+
340
+ - direct `openai/*` Responses calls to `api.openai.com` send `service_tier = "priority"`
341
+ - `openai-codex/*` Responses calls to `chatgpt.com/backend-api` also send `service_tier = "priority"`
342
+ - existing payload `service_tier` values are preserved
343
+ - fast mode does not rewrite `reasoning` or `text.verbosity`
344
+
345
+ Example:
346
+
347
+ ```json5
348
+ {
349
+ agents: {
350
+ defaults: {
351
+ models: {
352
+ "openai/gpt-5.4": {
353
+ params: {
354
+ fastMode: true,
355
+ },
356
+ },
357
+ "openai-codex/gpt-5.4": {
358
+ params: {
359
+ fastMode: true,
360
+ },
361
+ },
362
+ },
363
+ },
364
+ },
365
+ }
366
+ ```
367
+
368
+ Session overrides win over config. Clearing the session override in the Sessions UI
369
+ returns the session to the configured default.
370
+
371
+ ### Native OpenAI versus OpenAI-compatible routes
372
+
373
+ Durar treats direct OpenAI, Codex, and Azure OpenAI endpoints differently
374
+ from generic OpenAI-compatible `/v1` proxies:
375
+
376
+ - native `openai/*`, `openai-codex/*`, and Azure OpenAI routes keep
377
+ `reasoning: { effort: "none" }` intact when you explicitly disable reasoning
378
+ - native OpenAI-family routes default tool schemas to strict mode
379
+ - hidden Durar attribution headers (`originator`, `version`, and
380
+ `User-Agent`) are only attached on verified native OpenAI hosts
381
+ (`api.openai.com`) and native Codex hosts (`chatgpt.com/backend-api`)
382
+ - native OpenAI/Codex routes keep OpenAI-only request shaping such as
383
+ `service_tier`, Responses `store`, OpenAI reasoning-compat payloads, and
384
+ prompt-cache hints
385
+ - proxy-style OpenAI-compatible routes keep the looser compat behavior and do
386
+ not force strict tool schemas, native-only request shaping, or hidden
387
+ OpenAI/Codex attribution headers
388
+
389
+ Azure OpenAI stays in the native-routing bucket for transport and compat
390
+ behavior, but it does not receive the hidden OpenAI/Codex attribution headers.
391
+
392
+ This preserves current native OpenAI Responses behavior without forcing older
393
+ OpenAI-compatible shims onto third-party `/v1` backends.
394
+
395
+ ### OpenAI Responses server-side compaction
396
+
397
+ For direct OpenAI Responses models (`openai/*` using `api: "openai-responses"` with
398
+ `baseUrl` on `api.openai.com`), Durar now auto-enables OpenAI server-side
399
+ compaction payload hints:
400
+
401
+ - Forces `store: true` (unless model compat sets `supportsStore: false`)
402
+ - Injects `context_management: [{ type: "compaction", compact_threshold: ... }]`
403
+
404
+ By default, `compact_threshold` is `70%` of model `contextWindow` (or `80000`
405
+ when unavailable).
406
+
407
+ ### Enable server-side compaction explicitly
408
+
409
+ Use this when you want to force `context_management` injection on compatible
410
+ Responses models (for example Azure OpenAI Responses):
411
+
412
+ ```json5
413
+ {
414
+ agents: {
415
+ defaults: {
416
+ models: {
417
+ "azure-openai-responses/gpt-5.4": {
418
+ params: {
419
+ responsesServerCompaction: true,
420
+ },
421
+ },
422
+ },
423
+ },
424
+ },
425
+ }
426
+ ```
427
+
428
+ ### Enable with a custom threshold
429
+
430
+ ```json5
431
+ {
432
+ agents: {
433
+ defaults: {
434
+ models: {
435
+ "openai/gpt-5.4": {
436
+ params: {
437
+ responsesServerCompaction: true,
438
+ responsesCompactThreshold: 120000,
439
+ },
440
+ },
441
+ },
442
+ },
443
+ },
444
+ }
445
+ ```
446
+
447
+ ### Disable server-side compaction
448
+
449
+ ```json5
450
+ {
451
+ agents: {
452
+ defaults: {
453
+ models: {
454
+ "openai/gpt-5.4": {
455
+ params: {
456
+ responsesServerCompaction: false,
457
+ },
458
+ },
459
+ },
460
+ },
461
+ },
462
+ }
463
+ ```
464
+
465
+ `responsesServerCompaction` only controls `context_management` injection.
466
+ Direct OpenAI Responses models still force `store: true` unless compat sets
467
+ `supportsStore: false`.
468
+
469
+ ## Notes
470
+
471
+ - Model refs always use `provider/model` (see [/concepts/models](/concepts/models)).
472
+ - Auth details + reuse rules are in [/concepts/oauth](/concepts/oauth).
@@ -0,0 +1,45 @@
1
+ ---
2
+ summary: "Use the OpenCode Go catalog with the shared OpenCode setup"
3
+ read_when:
4
+ - You want the OpenCode Go catalog
5
+ - You need the runtime model refs for Go-hosted models
6
+ title: "OpenCode Go"
7
+ ---
8
+
9
+ # OpenCode Go
10
+
11
+ OpenCode Go is the Go catalog within [OpenCode](/providers/opencode).
12
+ It uses the same `OPENCODE_API_KEY` as the Zen catalog, but keeps the runtime
13
+ provider id `opencode-go` so upstream per-model routing stays correct.
14
+
15
+ ## Supported models
16
+
17
+ - `opencode-go/kimi-k2.5`
18
+ - `opencode-go/glm-5`
19
+ - `opencode-go/minimax-m2.5`
20
+
21
+ ## CLI setup
22
+
23
+ ```bash
24
+ Durar onboard --auth-choice opencode-go
25
+ # or non-interactive
26
+ Durar onboard --opencode-go-api-key "$OPENCODE_API_KEY"
27
+ ```
28
+
29
+ ## Config snippet
30
+
31
+ ```json5
32
+ {
33
+ env: { OPENCODE_API_KEY: "YOUR_API_KEY_HERE" }, // pragma: allowlist secret
34
+ agents: { defaults: { model: { primary: "opencode-go/kimi-k2.5" } } },
35
+ }
36
+ ```
37
+
38
+ ## Routing behavior
39
+
40
+ Durar handles per-model routing automatically when the model ref uses `opencode-go/...`.
41
+
42
+ ## Notes
43
+
44
+ - Use [OpenCode](/providers/opencode) for the shared onboarding and catalog overview.
45
+ - Runtime refs stay explicit: `opencode/...` for Zen, `opencode-go/...` for Go.
@@ -0,0 +1,68 @@
1
+ ---
2
+ summary: "Use OpenCode Zen and Go catalogs with Durar"
3
+ read_when:
4
+ - You want OpenCode-hosted model access
5
+ - You want to pick between the Zen and Go catalogs
6
+ title: "OpenCode"
7
+ ---
8
+
9
+ # OpenCode
10
+
11
+ OpenCode exposes two hosted catalogs in Durar:
12
+
13
+ - `opencode/...` for the **Zen** catalog
14
+ - `opencode-go/...` for the **Go** catalog
15
+
16
+ Both catalogs use the same OpenCode API key. Durar keeps the runtime provider ids
17
+ split so upstream per-model routing stays correct, but onboarding and docs treat them
18
+ as one OpenCode setup.
19
+
20
+ ## CLI setup
21
+
22
+ ### Zen catalog
23
+
24
+ ```bash
25
+ Durar onboard --auth-choice opencode-zen
26
+ Durar onboard --opencode-zen-api-key "$OPENCODE_API_KEY"
27
+ ```
28
+
29
+ ### Go catalog
30
+
31
+ ```bash
32
+ Durar onboard --auth-choice opencode-go
33
+ Durar onboard --opencode-go-api-key "$OPENCODE_API_KEY"
34
+ ```
35
+
36
+ ## Config snippet
37
+
38
+ ```json5
39
+ {
40
+ env: { OPENCODE_API_KEY: "sk-..." },
41
+ agents: { defaults: { model: { primary: "opencode/claude-opus-4-6" } } },
42
+ }
43
+ ```
44
+
45
+ ## Catalogs
46
+
47
+ ### Zen
48
+
49
+ - Runtime provider: `opencode`
50
+ - Example models: `opencode/claude-opus-4-6`, `opencode/gpt-5.4`, `opencode/gemini-3-pro`
51
+ - Best when you want the curated OpenCode multi-model proxy
52
+
53
+ ### Go
54
+
55
+ - Runtime provider: `opencode-go`
56
+ - Example models: `opencode-go/kimi-k2.5`, `opencode-go/glm-5`, `opencode-go/minimax-m2.5`
57
+ - Best when you want the OpenCode-hosted Kimi/GLM/MiniMax lineup
58
+
59
+ ## Notes
60
+
61
+ - `OPENCODE_ZEN_API_KEY` is also supported.
62
+ - Entering one OpenCode key during setup stores credentials for both runtime providers.
63
+ - You sign in to OpenCode, add billing details, and copy your API key.
64
+ - Billing and catalog availability are managed from the OpenCode dashboard.
65
+ - Gemini-backed OpenCode refs stay on the proxy-Gemini path, so Durar keeps
66
+ Gemini thought-signature sanitation there without enabling native Gemini
67
+ replay validation or bootstrap rewrites.
68
+ - Non-Gemini OpenCode refs keep the minimal OpenAI-compatible replay policy.
@@ -0,0 +1,59 @@
1
+ ---
2
+ summary: "Use OpenRouter's unified API to access many models in Durar"
3
+ read_when:
4
+ - You want a single API key for many LLMs
5
+ - You want to run models via OpenRouter in Durar
6
+ title: "OpenRouter"
7
+ ---
8
+
9
+ # OpenRouter
10
+
11
+ OpenRouter provides a **unified API** that routes requests to many models behind a single
12
+ endpoint and API key. It is OpenAI-compatible, so most OpenAI SDKs work by switching the base URL.
13
+
14
+ ## CLI setup
15
+
16
+ ```bash
17
+ Durar onboard --auth-choice openrouter-api-key
18
+ ```
19
+
20
+ ## Config snippet
21
+
22
+ ```json5
23
+ {
24
+ env: { OPENROUTER_API_KEY: "sk-or-..." },
25
+ agents: {
26
+ defaults: {
27
+ model: { primary: "openrouter/auto" },
28
+ },
29
+ },
30
+ }
31
+ ```
32
+
33
+ ## Notes
34
+
35
+ - Model refs are `openrouter/<provider>/<model>`.
36
+ - Onboarding defaults to `openrouter/auto`. Switch to a concrete model later with
37
+ `Durar models set openrouter/<provider>/<model>`.
38
+ - For more model/provider options, see [/concepts/model-providers](/concepts/model-providers).
39
+ - OpenRouter uses a Bearer token with your API key under the hood.
40
+ - On real OpenRouter requests (`https://openrouter.ai/api/v1`), Durar also
41
+ adds OpenRouter's documented app-attribution headers:
42
+ `HTTP-Referer: https://Durar.ai`, `X-OpenRouter-Title: Durar`, and
43
+ `X-OpenRouter-Categories: cli-agent`.
44
+ - On verified OpenRouter routes, Anthropic model refs also keep the
45
+ OpenRouter-specific Anthropic `cache_control` markers that Durar uses for
46
+ better prompt-cache reuse on system/developer prompt blocks.
47
+ - If you repoint the OpenRouter provider at some other proxy/base URL, Durar
48
+ does not inject those OpenRouter-specific headers or Anthropic cache markers.
49
+ - OpenRouter still runs through the proxy-style OpenAI-compatible path, so
50
+ native OpenAI-only request shaping such as `serviceTier`, Responses `store`,
51
+ OpenAI reasoning-compat payloads, and prompt-cache hints is not forwarded.
52
+ - Gemini-backed OpenRouter refs stay on the proxy-Gemini path: Durar keeps
53
+ Gemini thought-signature sanitation there, but does not enable native Gemini
54
+ replay validation or bootstrap rewrites.
55
+ - On supported non-`auto` routes, Durar maps the selected thinking level to
56
+ OpenRouter proxy reasoning payloads. Unsupported model hints and
57
+ `openrouter/auto` skip that reasoning injection.
58
+ - If you pass OpenRouter provider routing under model params, Durar forwards
59
+ it as OpenRouter routing metadata before the shared stream wrappers run.
@@ -0,0 +1,62 @@
1
+ ---
2
+ title: "Perplexity (Provider)"
3
+ summary: "Perplexity web search provider setup (API key, search modes, filtering)"
4
+ read_when:
5
+ - You want to configure Perplexity as a web search provider
6
+ - You need the Perplexity API key or OpenRouter proxy setup
7
+ ---
8
+
9
+ # Perplexity (Web Search Provider)
10
+
11
+ The Perplexity plugin provides web search capabilities through the Perplexity
12
+ Search API or Perplexity Sonar via OpenRouter.
13
+
14
+ <Note>
15
+ This page covers the Perplexity **provider** setup. For the Perplexity
16
+ **tool** (how the agent uses it), see [Perplexity tool](/tools/perplexity-search).
17
+ </Note>
18
+
19
+ - Type: web search provider (not a model provider)
20
+ - Auth: `PERPLEXITY_API_KEY` (direct) or `OPENROUTER_API_KEY` (via OpenRouter)
21
+ - Config path: `plugins.entries.perplexity.config.webSearch.apiKey`
22
+
23
+ ## Quick start
24
+
25
+ 1. Set the API key:
26
+
27
+ ```bash
28
+ Durar configure --section web
29
+ ```
30
+
31
+ Or set it directly:
32
+
33
+ ```bash
34
+ Durar config set plugins.entries.perplexity.config.webSearch.apiKey "pplx-xxxxxxxxxxxx"
35
+ ```
36
+
37
+ 2. The agent will automatically use Perplexity for web searches when configured.
38
+
39
+ ## Search modes
40
+
41
+ The plugin auto-selects the transport based on API key prefix:
42
+
43
+ | Key prefix | Transport | Features |
44
+ | ---------- | ---------------------------- | ------------------------------------------------ |
45
+ | `pplx-` | Native Perplexity Search API | Structured results, domain/language/date filters |
46
+ | `sk-or-` | OpenRouter (Sonar) | AI-synthesized answers with citations |
47
+
48
+ ## Native API filtering
49
+
50
+ When using the native Perplexity API (`pplx-` key), searches support:
51
+
52
+ - **Country**: 2-letter country code
53
+ - **Language**: ISO 639-1 language code
54
+ - **Date range**: day, week, month, year
55
+ - **Domain filters**: allowlist/denylist (max 20 domains)
56
+ - **Content budget**: `max_tokens`, `max_tokens_per_page`
57
+
58
+ ## Environment note
59
+
60
+ If the Gateway runs as a daemon (launchd/systemd), make sure
61
+ `PERPLEXITY_API_KEY` is available to that process (for example, in
62
+ `~/.Durar/.env` or via `env.shellEnv`).