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.
- package/CHANGELOG.md +5497 -0
- package/LICENSE +21 -0
- package/README.md +614 -0
- package/assets/avatar-placeholder.svg +19 -0
- package/assets/chrome-extension/icons/icon128.png +0 -0
- package/assets/chrome-extension/icons/icon16.png +0 -0
- package/assets/chrome-extension/icons/icon32.png +0 -0
- package/assets/chrome-extension/icons/icon48.png +0 -0
- package/assets/dmg-background-small.png +0 -0
- package/assets/dmg-background.png +0 -0
- package/docs/.i18n/README.md +72 -0
- package/docs/.i18n/ar-navigation.json +18 -0
- package/docs/.i18n/de-navigation.json +18 -0
- package/docs/.i18n/es-navigation.json +18 -0
- package/docs/.i18n/fr-navigation.json +18 -0
- package/docs/.i18n/glossary.ar.json +5 -0
- package/docs/.i18n/glossary.de.json +5 -0
- package/docs/.i18n/glossary.es.json +5 -0
- package/docs/.i18n/glossary.fr.json +5 -0
- package/docs/.i18n/glossary.id.json +5 -0
- package/docs/.i18n/glossary.it.json +5 -0
- package/docs/.i18n/glossary.ja-JP.json +14 -0
- package/docs/.i18n/glossary.ko.json +5 -0
- package/docs/.i18n/glossary.pl.json +5 -0
- package/docs/.i18n/glossary.pt-BR.json +5 -0
- package/docs/.i18n/glossary.tr.json +5 -0
- package/docs/.i18n/glossary.zh-CN.json +358 -0
- package/docs/.i18n/id-navigation.json +18 -0
- package/docs/.i18n/it-navigation.json +18 -0
- package/docs/.i18n/ja-navigation.json +18 -0
- package/docs/.i18n/ko-navigation.json +18 -0
- package/docs/.i18n/pl-navigation.json +18 -0
- package/docs/.i18n/pt-BR-navigation.json +18 -0
- package/docs/.i18n/tr-navigation.json +18 -0
- package/docs/.i18n/zh-Hans-navigation.json +544 -0
- package/docs/assets/install-script.svg +1 -0
- package/docs/assets/macos-onboarding/01-macos-warning.jpeg +0 -0
- package/docs/assets/macos-onboarding/02-local-networks.jpeg +0 -0
- package/docs/assets/macos-onboarding/03-security-notice.png +0 -0
- package/docs/assets/macos-onboarding/04-choose-gateway.png +0 -0
- package/docs/assets/macos-onboarding/05-permissions.png +0 -0
- package/docs/assets/openclaw-logo-text-dark.png +0 -0
- package/docs/assets/openclaw-logo-text-dark.svg +418 -0
- package/docs/assets/openclaw-logo-text.png +0 -0
- package/docs/assets/openclaw-logo-text.svg +418 -0
- package/docs/assets/pixel-lobster.svg +60 -0
- package/docs/assets/showcase/agents-ui.jpg +0 -0
- package/docs/assets/showcase/bambu-cli.png +0 -0
- package/docs/assets/showcase/codexmonitor.png +0 -0
- package/docs/assets/showcase/gohome-grafana.png +0 -0
- package/docs/assets/showcase/ios-testflight.jpg +0 -0
- package/docs/assets/showcase/oura-health.png +0 -0
- package/docs/assets/showcase/padel-cli.svg +11 -0
- package/docs/assets/showcase/padel-screenshot.jpg +0 -0
- package/docs/assets/showcase/papla-tts.jpg +0 -0
- package/docs/assets/showcase/pr-review-telegram.jpg +0 -0
- package/docs/assets/showcase/roborock-screenshot.jpg +0 -0
- package/docs/assets/showcase/roborock-status.svg +13 -0
- package/docs/assets/showcase/roof-camera-sky.jpg +0 -0
- package/docs/assets/showcase/snag.png +0 -0
- package/docs/assets/showcase/tesco-shop.jpg +0 -0
- package/docs/assets/showcase/wienerlinien.png +0 -0
- package/docs/assets/showcase/wine-cellar-skill.jpg +0 -0
- package/docs/assets/showcase/winix-air-purifier.jpg +0 -0
- package/docs/assets/showcase/xuezh-pronunciation.jpeg +0 -0
- package/docs/assets/sponsors/blacksmith-light.svg +14 -0
- package/docs/assets/sponsors/blacksmith.svg +14 -0
- package/docs/assets/sponsors/convex-light.svg +16 -0
- package/docs/assets/sponsors/convex.svg +16 -0
- package/docs/assets/sponsors/github-light.svg +3 -0
- package/docs/assets/sponsors/github.svg +3 -0
- package/docs/assets/sponsors/nvidia-dark.svg +9 -0
- package/docs/assets/sponsors/nvidia.svg +9 -0
- package/docs/assets/sponsors/openai-light.svg +3 -0
- package/docs/assets/sponsors/openai.svg +3 -0
- package/docs/assets/sponsors/vercel-light.svg +5 -0
- package/docs/assets/sponsors/vercel.svg +5 -0
- package/docs/auth-credential-semantics.md +80 -0
- package/docs/automation/auth-monitoring.md +8 -0
- package/docs/automation/clawflow.md +8 -0
- package/docs/automation/cron-jobs.md +410 -0
- package/docs/automation/cron-vs-heartbeat.md +8 -0
- package/docs/automation/gmail-pubsub.md +8 -0
- package/docs/automation/hooks.md +303 -0
- package/docs/automation/index.md +115 -0
- package/docs/automation/poll.md +8 -0
- package/docs/automation/standing-orders.md +254 -0
- package/docs/automation/taskflow.md +82 -0
- package/docs/automation/tasks.md +323 -0
- package/docs/automation/troubleshooting.md +8 -0
- package/docs/automation/webhook.md +8 -0
- package/docs/brave-search.md +103 -0
- package/docs/channels/bluebubbles.md +435 -0
- package/docs/channels/broadcast-groups.md +442 -0
- package/docs/channels/channel-routing.md +139 -0
- package/docs/channels/discord.md +1254 -0
- package/docs/channels/feishu.md +793 -0
- package/docs/channels/googlechat.md +270 -0
- package/docs/channels/group-messages.md +84 -0
- package/docs/channels/groups.md +410 -0
- package/docs/channels/imessage.md +427 -0
- package/docs/channels/index.md +50 -0
- package/docs/channels/irc.md +252 -0
- package/docs/channels/line.md +225 -0
- package/docs/channels/location.md +56 -0
- package/docs/channels/matrix.md +869 -0
- package/docs/channels/mattermost.md +472 -0
- package/docs/channels/msteams.md +805 -0
- package/docs/channels/nextcloud-talk.md +149 -0
- package/docs/channels/nostr.md +252 -0
- package/docs/channels/pairing.md +129 -0
- package/docs/channels/qqbot.md +193 -0
- package/docs/channels/signal.md +337 -0
- package/docs/channels/slack.md +681 -0
- package/docs/channels/synology-chat.md +185 -0
- package/docs/channels/telegram.md +1072 -0
- package/docs/channels/tlon.md +290 -0
- package/docs/channels/troubleshooting.md +133 -0
- package/docs/channels/twitch.md +394 -0
- package/docs/channels/whatsapp.md +488 -0
- package/docs/channels/zalo.md +254 -0
- package/docs/channels/zalouser.md +195 -0
- package/docs/ci.md +66 -0
- package/docs/cli/acp.md +316 -0
- package/docs/cli/agent.md +57 -0
- package/docs/cli/agents.md +220 -0
- package/docs/cli/approvals.md +136 -0
- package/docs/cli/backup.md +84 -0
- package/docs/cli/browser.md +233 -0
- package/docs/cli/channels.md +131 -0
- package/docs/cli/clawbot.md +21 -0
- package/docs/cli/completion.md +35 -0
- package/docs/cli/config.md +353 -0
- package/docs/cli/configure.md +70 -0
- package/docs/cli/cron.md +167 -0
- package/docs/cli/daemon.md +57 -0
- package/docs/cli/dashboard.md +22 -0
- package/docs/cli/devices.md +171 -0
- package/docs/cli/directory.md +63 -0
- package/docs/cli/dns.md +48 -0
- package/docs/cli/docs.md +28 -0
- package/docs/cli/doctor.md +63 -0
- package/docs/cli/flows.md +18 -0
- package/docs/cli/gateway.md +307 -0
- package/docs/cli/health.md +36 -0
- package/docs/cli/hooks.md +337 -0
- package/docs/cli/index.md +1836 -0
- package/docs/cli/logs.md +59 -0
- package/docs/cli/mcp.md +505 -0
- package/docs/cli/memory.md +139 -0
- package/docs/cli/message.md +300 -0
- package/docs/cli/models.md +136 -0
- package/docs/cli/node.md +137 -0
- package/docs/cli/nodes.md +66 -0
- package/docs/cli/onboard.md +171 -0
- package/docs/cli/pairing.md +65 -0
- package/docs/cli/plugins.md +305 -0
- package/docs/cli/qr.md +52 -0
- package/docs/cli/reset.md +35 -0
- package/docs/cli/sandbox.md +197 -0
- package/docs/cli/secrets.md +197 -0
- package/docs/cli/security.md +86 -0
- package/docs/cli/sessions.md +113 -0
- package/docs/cli/setup.md +45 -0
- package/docs/cli/skills.md +59 -0
- package/docs/cli/status.md +35 -0
- package/docs/cli/system.md +71 -0
- package/docs/cli/tui.md +30 -0
- package/docs/cli/uninstall.md +39 -0
- package/docs/cli/update.md +113 -0
- package/docs/cli/voicecall.md +34 -0
- package/docs/cli/webhooks.md +91 -0
- package/docs/concepts/agent-loop.md +168 -0
- package/docs/concepts/agent-workspace.md +246 -0
- package/docs/concepts/agent.md +129 -0
- package/docs/concepts/architecture.md +156 -0
- package/docs/concepts/compaction.md +122 -0
- package/docs/concepts/context-engine.md +274 -0
- package/docs/concepts/context.md +179 -0
- package/docs/concepts/delegate-architecture.md +307 -0
- package/docs/concepts/dreaming.md +173 -0
- package/docs/concepts/features.md +76 -0
- package/docs/concepts/markdown-formatting.md +130 -0
- package/docs/concepts/memory-builtin.md +105 -0
- package/docs/concepts/memory-honcho.md +140 -0
- package/docs/concepts/memory-qmd.md +163 -0
- package/docs/concepts/memory-search.md +141 -0
- package/docs/concepts/memory.md +121 -0
- package/docs/concepts/messages.md +161 -0
- package/docs/concepts/model-failover.md +349 -0
- package/docs/concepts/model-providers.md +799 -0
- package/docs/concepts/models.md +255 -0
- package/docs/concepts/multi-agent.md +615 -0
- package/docs/concepts/oauth.md +225 -0
- package/docs/concepts/presence.md +102 -0
- package/docs/concepts/queue.md +89 -0
- package/docs/concepts/retry.md +69 -0
- package/docs/concepts/session-pruning.md +92 -0
- package/docs/concepts/session-tool.md +141 -0
- package/docs/concepts/session.md +116 -0
- package/docs/concepts/soul.md +110 -0
- package/docs/concepts/streaming.md +161 -0
- package/docs/concepts/system-prompt.md +182 -0
- package/docs/concepts/timezone.md +97 -0
- package/docs/concepts/typebox.md +307 -0
- package/docs/concepts/typing-indicators.md +69 -0
- package/docs/concepts/usage-tracking.md +59 -0
- package/docs/date-time.md +128 -0
- package/docs/debug/node-issue.md +85 -0
- package/docs/diagnostics/flags.md +91 -0
- package/docs/docs.json +1601 -0
- package/docs/gateway/authentication.md +218 -0
- package/docs/gateway/background-process.md +131 -0
- package/docs/gateway/bonjour.md +179 -0
- package/docs/gateway/bridge-protocol.md +89 -0
- package/docs/gateway/cli-backends.md +310 -0
- package/docs/gateway/configuration-examples.md +631 -0
- package/docs/gateway/configuration-reference.md +3618 -0
- package/docs/gateway/configuration.md +698 -0
- package/docs/gateway/discovery.md +141 -0
- package/docs/gateway/doctor.md +494 -0
- package/docs/gateway/gateway-lock.md +37 -0
- package/docs/gateway/health.md +61 -0
- package/docs/gateway/heartbeat.md +443 -0
- package/docs/gateway/index.md +367 -0
- package/docs/gateway/local-models.md +163 -0
- package/docs/gateway/logging.md +113 -0
- package/docs/gateway/multiple-gateways.md +120 -0
- package/docs/gateway/network-model.md +25 -0
- package/docs/gateway/openai-http-api.md +280 -0
- package/docs/gateway/openresponses-http-api.md +340 -0
- package/docs/gateway/openshell.md +307 -0
- package/docs/gateway/pairing.md +138 -0
- package/docs/gateway/protocol.md +588 -0
- package/docs/gateway/remote-gateway-readme.md +164 -0
- package/docs/gateway/remote.md +251 -0
- package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +141 -0
- package/docs/gateway/sandboxing.md +473 -0
- package/docs/gateway/secrets-plan-contract.md +116 -0
- package/docs/gateway/secrets.md +541 -0
- package/docs/gateway/security/index.md +1362 -0
- package/docs/gateway/tailscale.md +136 -0
- package/docs/gateway/tools-invoke-http-api.md +161 -0
- package/docs/gateway/troubleshooting.md +451 -0
- package/docs/gateway/trusted-proxy-auth.md +399 -0
- package/docs/help/debugging.md +168 -0
- package/docs/help/environment.md +165 -0
- package/docs/help/faq.md +3244 -0
- package/docs/help/index.md +28 -0
- package/docs/help/scripts.md +27 -0
- package/docs/help/testing.md +640 -0
- package/docs/help/troubleshooting.md +372 -0
- package/docs/images/configure-model-picker-unsearchable.png +0 -0
- package/docs/images/feishu-step2-create-app.png +0 -0
- package/docs/images/feishu-step3-credentials.png +0 -0
- package/docs/images/feishu-step4-permissions.png +0 -0
- package/docs/images/feishu-step5-bot-capability.png +0 -0
- package/docs/images/feishu-step6-event-subscription.png +0 -0
- package/docs/images/feishu-verification-token.png +0 -0
- package/docs/images/groups-flow.svg +52 -0
- package/docs/images/mobile-ui-screenshot.png +0 -0
- package/docs/index.md +196 -0
- package/docs/install/ansible.md +230 -0
- package/docs/install/azure.md +311 -0
- package/docs/install/bun.md +55 -0
- package/docs/install/clawdock.md +106 -0
- package/docs/install/development-channels.md +131 -0
- package/docs/install/digitalocean.md +129 -0
- package/docs/install/docker-vm-runtime.md +142 -0
- package/docs/install/docker.md +412 -0
- package/docs/install/exe-dev.md +133 -0
- package/docs/install/fly.md +504 -0
- package/docs/install/gcp.md +412 -0
- package/docs/install/hetzner.md +259 -0
- package/docs/install/index.md +212 -0
- package/docs/install/installer.md +443 -0
- package/docs/install/kubernetes.md +192 -0
- package/docs/install/macos-vm.md +281 -0
- package/docs/install/migrating-matrix.md +349 -0
- package/docs/install/migrating.md +112 -0
- package/docs/install/nix.md +89 -0
- package/docs/install/node.md +144 -0
- package/docs/install/northflank.mdx +42 -0
- package/docs/install/oracle.md +158 -0
- package/docs/install/podman.md +210 -0
- package/docs/install/railway.mdx +90 -0
- package/docs/install/raspberry-pi.md +159 -0
- package/docs/install/render.mdx +165 -0
- package/docs/install/uninstall.md +128 -0
- package/docs/install/updating.md +142 -0
- package/docs/logging.md +389 -0
- package/docs/nav-tabs-underline.js +100 -0
- package/docs/network.md +69 -0
- package/docs/nodes/audio.md +191 -0
- package/docs/nodes/camera.md +162 -0
- package/docs/nodes/images.md +73 -0
- package/docs/nodes/index.md +408 -0
- package/docs/nodes/location-command.md +98 -0
- package/docs/nodes/media-understanding.md +432 -0
- package/docs/nodes/talk.md +92 -0
- package/docs/nodes/troubleshooting.md +123 -0
- package/docs/nodes/voicewake.md +66 -0
- package/docs/perplexity.md +181 -0
- package/docs/pi-dev.md +80 -0
- package/docs/pi.md +570 -0
- package/docs/platforms/android.md +244 -0
- package/docs/platforms/digitalocean.md +266 -0
- package/docs/platforms/index.md +55 -0
- package/docs/platforms/ios.md +223 -0
- package/docs/platforms/linux.md +100 -0
- package/docs/platforms/mac/bundled-gateway.md +75 -0
- package/docs/platforms/mac/canvas.md +125 -0
- package/docs/platforms/mac/child-process.md +69 -0
- package/docs/platforms/mac/dev-setup.md +107 -0
- package/docs/platforms/mac/health.md +34 -0
- package/docs/platforms/mac/icon.md +31 -0
- package/docs/platforms/mac/logging.md +57 -0
- package/docs/platforms/mac/menu-bar.md +81 -0
- package/docs/platforms/mac/peekaboo.md +65 -0
- package/docs/platforms/mac/permissions.md +50 -0
- package/docs/platforms/mac/remote.md +84 -0
- package/docs/platforms/mac/signing.md +47 -0
- package/docs/platforms/mac/skills.md +40 -0
- package/docs/platforms/mac/voice-overlay.md +60 -0
- package/docs/platforms/mac/voicewake.md +67 -0
- package/docs/platforms/mac/webchat.md +51 -0
- package/docs/platforms/mac/xpc.md +61 -0
- package/docs/platforms/macos.md +229 -0
- package/docs/platforms/oracle.md +305 -0
- package/docs/platforms/raspberry-pi.md +420 -0
- package/docs/platforms/windows.md +241 -0
- package/docs/plugins/agent-tools.md +10 -0
- package/docs/plugins/architecture.md +1609 -0
- package/docs/plugins/building-extensions.md +10 -0
- package/docs/plugins/building-plugins.md +319 -0
- package/docs/plugins/bundles.md +292 -0
- package/docs/plugins/community.md +149 -0
- package/docs/plugins/manifest.md +412 -0
- package/docs/plugins/sdk-channel-plugins.md +508 -0
- package/docs/plugins/sdk-entrypoints.md +210 -0
- package/docs/plugins/sdk-migration.md +359 -0
- package/docs/plugins/sdk-overview.md +475 -0
- package/docs/plugins/sdk-provider-plugins.md +712 -0
- package/docs/plugins/sdk-runtime.md +381 -0
- package/docs/plugins/sdk-setup.md +516 -0
- package/docs/plugins/sdk-testing.md +263 -0
- package/docs/plugins/voice-call.md +466 -0
- package/docs/plugins/zalouser.md +78 -0
- package/docs/prose.md +134 -0
- package/docs/providers/anthropic.md +402 -0
- package/docs/providers/bedrock-mantle.md +91 -0
- package/docs/providers/bedrock.md +273 -0
- package/docs/providers/chutes.md +103 -0
- package/docs/providers/claude-max-api-proxy.md +163 -0
- package/docs/providers/cloudflare-ai-gateway.md +71 -0
- package/docs/providers/deepgram.md +93 -0
- package/docs/providers/deepseek.md +53 -0
- package/docs/providers/fireworks.md +69 -0
- package/docs/providers/github-copilot.md +80 -0
- package/docs/providers/glm.md +68 -0
- package/docs/providers/google.md +149 -0
- package/docs/providers/groq.md +105 -0
- package/docs/providers/huggingface.md +193 -0
- package/docs/providers/index.md +81 -0
- package/docs/providers/kilocode.md +89 -0
- package/docs/providers/litellm.md +159 -0
- package/docs/providers/minimax.md +281 -0
- package/docs/providers/mistral.md +68 -0
- package/docs/providers/models.md +56 -0
- package/docs/providers/moonshot.md +224 -0
- package/docs/providers/nvidia.md +58 -0
- package/docs/providers/ollama.md +379 -0
- package/docs/providers/openai.md +472 -0
- package/docs/providers/opencode-go.md +45 -0
- package/docs/providers/opencode.md +68 -0
- package/docs/providers/openrouter.md +59 -0
- package/docs/providers/perplexity-provider.md +62 -0
- package/docs/providers/qianfan.md +90 -0
- package/docs/providers/qwen.md +128 -0
- package/docs/providers/qwen_modelstudio.md +137 -0
- package/docs/providers/sglang.md +115 -0
- package/docs/providers/stepfun.md +152 -0
- package/docs/providers/synthetic.md +101 -0
- package/docs/providers/together.md +70 -0
- package/docs/providers/venice.md +282 -0
- package/docs/providers/vercel-ai-gateway.md +60 -0
- package/docs/providers/vllm.md +103 -0
- package/docs/providers/volcengine.md +94 -0
- package/docs/providers/xai.md +94 -0
- package/docs/providers/xiaomi.md +89 -0
- package/docs/providers/zai.md +75 -0
- package/docs/reference/AGENTS.default.md +126 -0
- package/docs/reference/RELEASING.md +138 -0
- package/docs/reference/api-usage-costs.md +198 -0
- package/docs/reference/credits.md +30 -0
- package/docs/reference/device-models.md +47 -0
- package/docs/reference/memory-config.md +421 -0
- package/docs/reference/prompt-caching.md +344 -0
- package/docs/reference/rpc.md +43 -0
- package/docs/reference/secretref-credential-surface.md +148 -0
- package/docs/reference/secretref-user-supplied-credentials-matrix.json +607 -0
- package/docs/reference/session-management-compaction.md +352 -0
- package/docs/reference/templates/AGENTS.dev.md +84 -0
- package/docs/reference/templates/AGENTS.md +219 -0
- package/docs/reference/templates/BOOT.md +12 -0
- package/docs/reference/templates/BOOTSTRAP.md +62 -0
- package/docs/reference/templates/CLAUDE.md +1 -0
- package/docs/reference/templates/HEARTBEAT.md +14 -0
- package/docs/reference/templates/IDENTITY.dev.md +48 -0
- package/docs/reference/templates/IDENTITY.md +30 -0
- package/docs/reference/templates/SOUL.dev.md +77 -0
- package/docs/reference/templates/SOUL.md +45 -0
- package/docs/reference/templates/TOOLS.dev.md +25 -0
- package/docs/reference/templates/TOOLS.md +47 -0
- package/docs/reference/templates/USER.dev.md +19 -0
- package/docs/reference/templates/USER.md +24 -0
- package/docs/reference/test.md +119 -0
- package/docs/reference/token-use.md +197 -0
- package/docs/reference/transcript-hygiene.md +151 -0
- package/docs/reference/wizard.md +245 -0
- package/docs/security/CONTRIBUTING-THREAT-MODEL.md +98 -0
- package/docs/security/THREAT-MODEL-ATLAS.md +608 -0
- package/docs/security/formal-verification.md +167 -0
- package/docs/snippets/plugin-publish/minimal-openclaw.plugin.json +9 -0
- package/docs/snippets/plugin-publish/minimal-package.json +16 -0
- package/docs/start/bootstrapping.md +41 -0
- package/docs/start/docs-directory.md +67 -0
- package/docs/start/getting-started.md +148 -0
- package/docs/start/hubs.md +199 -0
- package/docs/start/lore.md +219 -0
- package/docs/start/onboarding-overview.md +69 -0
- package/docs/start/onboarding.md +92 -0
- package/docs/start/openclaw.md +225 -0
- package/docs/start/quickstart.md +22 -0
- package/docs/start/setup.md +172 -0
- package/docs/start/showcase.md +418 -0
- package/docs/start/wizard-cli-automation.md +233 -0
- package/docs/start/wizard-cli-reference.md +324 -0
- package/docs/start/wizard.md +127 -0
- package/docs/style.css +37 -0
- package/docs/tools/acp-agents.md +837 -0
- package/docs/tools/agent-send.md +100 -0
- package/docs/tools/apply-patch.md +52 -0
- package/docs/tools/brave-search.md +107 -0
- package/docs/tools/browser-linux-troubleshooting.md +145 -0
- package/docs/tools/browser-login.md +73 -0
- package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +221 -0
- package/docs/tools/browser.md +890 -0
- package/docs/tools/btw.md +142 -0
- package/docs/tools/capability-cookbook.md +119 -0
- package/docs/tools/clawhub.md +348 -0
- package/docs/tools/code-execution.md +90 -0
- package/docs/tools/creating-skills.md +119 -0
- package/docs/tools/diffs.md +434 -0
- package/docs/tools/duckduckgo-search.md +102 -0
- package/docs/tools/elevated.md +116 -0
- package/docs/tools/exa-search.md +127 -0
- package/docs/tools/exec-approvals.md +635 -0
- package/docs/tools/exec.md +237 -0
- package/docs/tools/firecrawl.md +147 -0
- package/docs/tools/gemini-search.md +98 -0
- package/docs/tools/grok-search.md +102 -0
- package/docs/tools/image-generation.md +139 -0
- package/docs/tools/index.md +174 -0
- package/docs/tools/kimi-search.md +98 -0
- package/docs/tools/llm-task.md +119 -0
- package/docs/tools/lobster.md +348 -0
- package/docs/tools/loop-detection.md +100 -0
- package/docs/tools/minimax-search.md +99 -0
- package/docs/tools/multi-agent-sandbox-tools.md +373 -0
- package/docs/tools/ollama-search.md +100 -0
- package/docs/tools/pdf.md +176 -0
- package/docs/tools/perplexity-search.md +185 -0
- package/docs/tools/plugin.md +348 -0
- package/docs/tools/reactions.md +78 -0
- package/docs/tools/searxng-search.md +132 -0
- package/docs/tools/skills-config.md +133 -0
- package/docs/tools/skills.md +377 -0
- package/docs/tools/slash-commands.md +322 -0
- package/docs/tools/subagents.md +341 -0
- package/docs/tools/tavily.md +129 -0
- package/docs/tools/thinking.md +102 -0
- package/docs/tools/tts.md +452 -0
- package/docs/tools/web-fetch.md +159 -0
- package/docs/tools/web.md +417 -0
- package/docs/tts.md +452 -0
- package/docs/vps.md +115 -0
- package/docs/web/control-ui.md +318 -0
- package/docs/web/dashboard.md +93 -0
- package/docs/web/index.md +126 -0
- package/docs/web/tui.md +176 -0
- package/docs/web/webchat.md +77 -0
- package/docs/whatsapp-openclaw-ai-zh.jpg +0 -0
- package/docs/whatsapp-openclaw.jpg +0 -0
- package/durar.mjs +180 -0
- package/package.json +1259 -0
- package/scripts/npm-runner.mjs +111 -0
- package/scripts/postinstall-bundled-plugins.mjs +188 -0
- package/skills/1password/SKILL.md +70 -0
- package/skills/1password/references/cli-examples.md +29 -0
- package/skills/1password/references/get-started.md +17 -0
- package/skills/apple-notes/SKILL.md +77 -0
- package/skills/apple-reminders/SKILL.md +118 -0
- package/skills/bear-notes/SKILL.md +107 -0
- package/skills/blogwatcher/SKILL.md +69 -0
- package/skills/blucli/SKILL.md +47 -0
- package/skills/bluebubbles/SKILL.md +131 -0
- package/skills/camsnap/SKILL.md +45 -0
- package/skills/canvas/SKILL.md +199 -0
- package/skills/clawhub/SKILL.md +77 -0
- package/skills/coding-agent/SKILL.md +316 -0
- package/skills/discord/SKILL.md +197 -0
- package/skills/eightctl/SKILL.md +50 -0
- package/skills/gemini/SKILL.md +43 -0
- package/skills/gh-issues/SKILL.md +885 -0
- package/skills/gifgrep/SKILL.md +79 -0
- package/skills/github/SKILL.md +163 -0
- package/skills/gog/SKILL.md +116 -0
- package/skills/goplaces/SKILL.md +52 -0
- package/skills/healthcheck/SKILL.md +245 -0
- package/skills/himalaya/SKILL.md +257 -0
- package/skills/himalaya/references/configuration.md +184 -0
- package/skills/himalaya/references/message-composition.md +199 -0
- package/skills/imsg/SKILL.md +122 -0
- package/skills/mcporter/SKILL.md +61 -0
- package/skills/model-usage/SKILL.md +69 -0
- package/skills/model-usage/references/codexbar-cli.md +33 -0
- package/skills/model-usage/scripts/model_usage.py +320 -0
- package/skills/model-usage/scripts/test_model_usage.py +40 -0
- package/skills/nano-pdf/SKILL.md +38 -0
- package/skills/node-connect/SKILL.md +142 -0
- package/skills/notion/SKILL.md +174 -0
- package/skills/obsidian/SKILL.md +81 -0
- package/skills/openai-whisper/SKILL.md +38 -0
- package/skills/openai-whisper-api/SKILL.md +62 -0
- package/skills/openai-whisper-api/scripts/transcribe.sh +88 -0
- package/skills/openhue/SKILL.md +112 -0
- package/skills/oracle/SKILL.md +125 -0
- package/skills/ordercli/SKILL.md +78 -0
- package/skills/peekaboo/SKILL.md +190 -0
- package/skills/sag/SKILL.md +87 -0
- package/skills/session-logs/SKILL.md +151 -0
- package/skills/sherpa-onnx-tts/SKILL.md +109 -0
- package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
- package/skills/skill-creator/SKILL.md +372 -0
- package/skills/skill-creator/license.txt +202 -0
- package/skills/skill-creator/scripts/init_skill.py +378 -0
- package/skills/skill-creator/scripts/package_skill.py +139 -0
- package/skills/skill-creator/scripts/quick_validate.py +159 -0
- package/skills/skill-creator/scripts/test_package_skill.py +160 -0
- package/skills/skill-creator/scripts/test_quick_validate.py +72 -0
- package/skills/slack/SKILL.md +144 -0
- package/skills/songsee/SKILL.md +49 -0
- package/skills/sonoscli/SKILL.md +65 -0
- package/skills/spotify-player/SKILL.md +64 -0
- package/skills/summarize/SKILL.md +87 -0
- package/skills/taskflow/SKILL.md +149 -0
- package/skills/taskflow/examples/inbox-triage.lobster +33 -0
- package/skills/taskflow/examples/pr-intake.lobster +32 -0
- package/skills/taskflow-inbox-triage/SKILL.md +119 -0
- package/skills/things-mac/SKILL.md +86 -0
- package/skills/tmux/SKILL.md +170 -0
- package/skills/tmux/scripts/find-sessions.sh +112 -0
- package/skills/tmux/scripts/wait-for-text.sh +83 -0
- package/skills/trello/SKILL.md +108 -0
- package/skills/video-frames/SKILL.md +46 -0
- package/skills/video-frames/scripts/frame.sh +81 -0
- package/skills/voice-call/SKILL.md +45 -0
- package/skills/wacli/SKILL.md +72 -0
- package/skills/weather/SKILL.md +129 -0
- 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`).
|