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,799 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Model provider overview with example configs + CLI flows"
|
|
3
|
+
read_when:
|
|
4
|
+
- You need a provider-by-provider model setup reference
|
|
5
|
+
- You want example configs or CLI onboarding commands for model providers
|
|
6
|
+
title: "Model Providers"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Model providers
|
|
10
|
+
|
|
11
|
+
This page covers **LLM/model providers** (not chat channels like WhatsApp/Telegram).
|
|
12
|
+
For model selection rules, see [/concepts/models](/concepts/models).
|
|
13
|
+
|
|
14
|
+
## Quick rules
|
|
15
|
+
|
|
16
|
+
- Model refs use `provider/model` (example: `opencode/claude-opus-4-6`).
|
|
17
|
+
- If you set `agents.defaults.models`, it becomes the allowlist.
|
|
18
|
+
- CLI helpers: `Durar onboard`, `Durar models list`, `Durar models set <provider/model>`.
|
|
19
|
+
- Fallback runtime rules, cooldown probes, and session-override persistence are
|
|
20
|
+
documented in [/concepts/model-failover](/concepts/model-failover).
|
|
21
|
+
- `models.providers.*.models[].contextWindow` is native model metadata;
|
|
22
|
+
`models.providers.*.models[].contextTokens` is the effective runtime cap.
|
|
23
|
+
- Provider plugins can inject model catalogs via `registerProvider({ catalog })`;
|
|
24
|
+
Durar merges that output into `models.providers` before writing
|
|
25
|
+
`models.json`.
|
|
26
|
+
- Provider manifests can declare `providerAuthEnvVars` so generic env-based
|
|
27
|
+
auth probes do not need to load plugin runtime. The remaining core env-var
|
|
28
|
+
map is now just for non-plugin/core providers and a few generic-precedence
|
|
29
|
+
cases such as Anthropic API-key-first onboarding.
|
|
30
|
+
- Provider plugins can also own provider runtime behavior via
|
|
31
|
+
`normalizeModelId`, `normalizeTransport`, `normalizeConfig`,
|
|
32
|
+
`applyNativeStreamingUsageCompat`, `resolveConfigApiKey`,
|
|
33
|
+
`resolveSyntheticAuth`, `shouldDeferSyntheticProfileAuth`,
|
|
34
|
+
`resolveDynamicModel`, `prepareDynamicModel`,
|
|
35
|
+
`normalizeResolvedModel`, `contributeResolvedModelCompat`,
|
|
36
|
+
`capabilities`, `normalizeToolSchemas`,
|
|
37
|
+
`inspectToolSchemas`, `resolveReasoningOutputMode`,
|
|
38
|
+
`prepareExtraParams`, `createStreamFn`, `wrapStreamFn`,
|
|
39
|
+
`resolveTransportTurnState`, `resolveWebSocketSessionPolicy`,
|
|
40
|
+
`createEmbeddingProvider`, `formatApiKey`, `refreshOAuth`,
|
|
41
|
+
`buildAuthDoctorHint`,
|
|
42
|
+
`matchesContextOverflowError`, `classifyFailoverReason`,
|
|
43
|
+
`isCacheTtlEligible`, `buildMissingAuthMessage`, `suppressBuiltInModel`,
|
|
44
|
+
`augmentModelCatalog`, `isBinaryThinking`, `supportsXHighThinking`,
|
|
45
|
+
`resolveDefaultThinkingLevel`, `applyConfigDefaults`, `isModernModelRef`,
|
|
46
|
+
`prepareRuntimeAuth`, `resolveUsageAuth`, `fetchUsageSnapshot`, and
|
|
47
|
+
`onModelSelected`.
|
|
48
|
+
- Note: provider runtime `capabilities` is shared runner metadata (provider
|
|
49
|
+
family, transcript/tooling quirks, transport/cache hints). It is not the
|
|
50
|
+
same as the [public capability model](/plugins/architecture#public-capability-model)
|
|
51
|
+
which describes what a plugin registers (text inference, speech, etc.).
|
|
52
|
+
|
|
53
|
+
## Plugin-owned provider behavior
|
|
54
|
+
|
|
55
|
+
Provider plugins can now own most provider-specific logic while Durar keeps
|
|
56
|
+
the generic inference loop.
|
|
57
|
+
|
|
58
|
+
Typical split:
|
|
59
|
+
|
|
60
|
+
- `auth[].run` / `auth[].runNonInteractive`: provider owns onboarding/login
|
|
61
|
+
flows for `Durar onboard`, `Durar models auth`, and headless setup
|
|
62
|
+
- `wizard.setup` / `wizard.modelPicker`: provider owns auth-choice labels,
|
|
63
|
+
legacy aliases, onboarding allowlist hints, and setup entries in onboarding/model pickers
|
|
64
|
+
- `catalog`: provider appears in `models.providers`
|
|
65
|
+
- `normalizeModelId`: provider normalizes legacy/preview model ids before
|
|
66
|
+
lookup or canonicalization
|
|
67
|
+
- `normalizeTransport`: provider normalizes transport-family `api` / `baseUrl`
|
|
68
|
+
before generic model assembly; Durar checks the matched provider first,
|
|
69
|
+
then other hook-capable provider plugins until one actually changes the
|
|
70
|
+
transport
|
|
71
|
+
- `normalizeConfig`: provider normalizes `models.providers.<id>` config before
|
|
72
|
+
runtime uses it; Durar checks the matched provider first, then other
|
|
73
|
+
hook-capable provider plugins until one actually changes the config. If no
|
|
74
|
+
provider hook rewrites the config, bundled Google-family helpers still
|
|
75
|
+
normalize supported Google provider entries.
|
|
76
|
+
- `applyNativeStreamingUsageCompat`: provider applies endpoint-driven native streaming-usage compat rewrites for config providers
|
|
77
|
+
- `resolveConfigApiKey`: provider resolves env-marker auth for config providers
|
|
78
|
+
without forcing full runtime auth loading. `amazon-bedrock` also has a
|
|
79
|
+
built-in AWS env-marker resolver here, even though Bedrock runtime auth uses
|
|
80
|
+
the AWS SDK default chain.
|
|
81
|
+
- `resolveSyntheticAuth`: provider can expose local/self-hosted or other
|
|
82
|
+
config-backed auth availability without persisting plaintext secrets
|
|
83
|
+
- `shouldDeferSyntheticProfileAuth`: provider can mark stored synthetic profile
|
|
84
|
+
placeholders as lower precedence than env/config-backed auth
|
|
85
|
+
- `resolveDynamicModel`: provider accepts model ids not present in the local
|
|
86
|
+
static catalog yet
|
|
87
|
+
- `prepareDynamicModel`: provider needs a metadata refresh before retrying
|
|
88
|
+
dynamic resolution
|
|
89
|
+
- `normalizeResolvedModel`: provider needs transport or base URL rewrites
|
|
90
|
+
- `contributeResolvedModelCompat`: provider contributes compat flags for its
|
|
91
|
+
vendor models even when they arrive through another compatible transport
|
|
92
|
+
- `capabilities`: provider publishes transcript/tooling/provider-family quirks
|
|
93
|
+
- `normalizeToolSchemas`: provider cleans tool schemas before the embedded
|
|
94
|
+
runner sees them
|
|
95
|
+
- `inspectToolSchemas`: provider surfaces transport-specific schema warnings
|
|
96
|
+
after normalization
|
|
97
|
+
- `resolveReasoningOutputMode`: provider chooses native vs tagged
|
|
98
|
+
reasoning-output contracts
|
|
99
|
+
- `prepareExtraParams`: provider defaults or normalizes per-model request params
|
|
100
|
+
- `createStreamFn`: provider replaces the normal stream path with a fully
|
|
101
|
+
custom transport
|
|
102
|
+
- `wrapStreamFn`: provider applies request headers/body/model compat wrappers
|
|
103
|
+
- `resolveTransportTurnState`: provider supplies per-turn native transport
|
|
104
|
+
headers or metadata
|
|
105
|
+
- `resolveWebSocketSessionPolicy`: provider supplies native WebSocket session
|
|
106
|
+
headers or session cool-down policy
|
|
107
|
+
- `createEmbeddingProvider`: provider owns memory embedding behavior when it
|
|
108
|
+
belongs with the provider plugin instead of the core embedding switchboard
|
|
109
|
+
- `formatApiKey`: provider formats stored auth profiles into the runtime
|
|
110
|
+
`apiKey` string expected by the transport
|
|
111
|
+
- `refreshOAuth`: provider owns OAuth refresh when the shared `pi-ai`
|
|
112
|
+
refreshers are not enough
|
|
113
|
+
- `buildAuthDoctorHint`: provider appends repair guidance when OAuth refresh
|
|
114
|
+
fails
|
|
115
|
+
- `matchesContextOverflowError`: provider recognizes provider-specific
|
|
116
|
+
context-window overflow errors that generic heuristics would miss
|
|
117
|
+
- `classifyFailoverReason`: provider maps provider-specific raw transport/API
|
|
118
|
+
errors to failover reasons such as rate limit or overload
|
|
119
|
+
- `isCacheTtlEligible`: provider decides which upstream model ids support prompt-cache TTL
|
|
120
|
+
- `buildMissingAuthMessage`: provider replaces the generic auth-store error
|
|
121
|
+
with a provider-specific recovery hint
|
|
122
|
+
- `suppressBuiltInModel`: provider hides stale upstream rows and can return a
|
|
123
|
+
vendor-owned error for direct resolution failures
|
|
124
|
+
- `augmentModelCatalog`: provider appends synthetic/final catalog rows after
|
|
125
|
+
discovery and config merging
|
|
126
|
+
- `isBinaryThinking`: provider owns binary on/off thinking UX
|
|
127
|
+
- `supportsXHighThinking`: provider opts selected models into `xhigh`
|
|
128
|
+
- `resolveDefaultThinkingLevel`: provider owns default `/think` policy for a
|
|
129
|
+
model family
|
|
130
|
+
- `applyConfigDefaults`: provider applies provider-specific global defaults
|
|
131
|
+
during config materialization based on auth mode, env, or model family
|
|
132
|
+
- `isModernModelRef`: provider owns live/smoke preferred-model matching
|
|
133
|
+
- `prepareRuntimeAuth`: provider turns a configured credential into a short
|
|
134
|
+
lived runtime token
|
|
135
|
+
- `resolveUsageAuth`: provider resolves usage/quota credentials for `/usage`
|
|
136
|
+
and related status/reporting surfaces
|
|
137
|
+
- `fetchUsageSnapshot`: provider owns the usage endpoint fetch/parsing while
|
|
138
|
+
core still owns the summary shell and formatting
|
|
139
|
+
- `onModelSelected`: provider runs post-selection side effects such as
|
|
140
|
+
telemetry or provider-owned session bookkeeping
|
|
141
|
+
|
|
142
|
+
Current bundled examples:
|
|
143
|
+
|
|
144
|
+
- `anthropic`: Claude 4.6 forward-compat fallback, auth repair hints, usage
|
|
145
|
+
endpoint fetching, cache-TTL/provider-family metadata, and auth-aware global
|
|
146
|
+
config defaults
|
|
147
|
+
- `amazon-bedrock`: provider-owned context-overflow matching and failover
|
|
148
|
+
reason classification for Bedrock-specific throttle/not-ready errors, plus
|
|
149
|
+
the shared `anthropic-by-model` replay family for Claude-only replay-policy
|
|
150
|
+
guards on Anthropic traffic
|
|
151
|
+
- `anthropic-vertex`: Claude-only replay-policy guards on Anthropic-message
|
|
152
|
+
traffic
|
|
153
|
+
- `openrouter`: pass-through model ids, request wrappers, provider capability
|
|
154
|
+
hints, Gemini thought-signature sanitation on proxy Gemini traffic, proxy
|
|
155
|
+
reasoning injection through the `openrouter-thinking` stream family, routing
|
|
156
|
+
metadata forwarding, and cache-TTL policy
|
|
157
|
+
- `github-copilot`: onboarding/device login, forward-compat model fallback,
|
|
158
|
+
Claude-thinking transcript hints, runtime token exchange, and usage endpoint
|
|
159
|
+
fetching
|
|
160
|
+
- `openai`: GPT-5.4 forward-compat fallback, direct OpenAI transport
|
|
161
|
+
normalization, Codex-aware missing-auth hints, Spark suppression, synthetic
|
|
162
|
+
OpenAI/Codex catalog rows, thinking/live-model policy, usage-token alias
|
|
163
|
+
normalization (`input` / `output` and `prompt` / `completion` families), the
|
|
164
|
+
shared `openai-responses-defaults` stream family for native OpenAI/Codex
|
|
165
|
+
wrappers, and provider-family metadata
|
|
166
|
+
- `google` and `google-gemini-cli`: Gemini 3.1 forward-compat fallback,
|
|
167
|
+
native Gemini replay validation, bootstrap replay sanitation, tagged
|
|
168
|
+
reasoning-output mode, and modern-model matching; Gemini CLI OAuth also owns
|
|
169
|
+
auth-profile token formatting, usage-token parsing, and quota endpoint
|
|
170
|
+
fetching for usage surfaces
|
|
171
|
+
- `moonshot`: shared transport, plugin-owned thinking payload normalization
|
|
172
|
+
- `kilocode`: shared transport, plugin-owned request headers, reasoning payload
|
|
173
|
+
normalization, proxy-Gemini thought-signature sanitation, and cache-TTL
|
|
174
|
+
policy
|
|
175
|
+
- `zai`: GLM-5 forward-compat fallback, `tool_stream` defaults, cache-TTL
|
|
176
|
+
policy, binary-thinking/live-model policy, and usage auth + quota fetching;
|
|
177
|
+
unknown `glm-5*` ids synthesize from the bundled `glm-4.7` template
|
|
178
|
+
- `xai`: native Responses transport normalization, `/fast` alias rewrites for
|
|
179
|
+
Grok fast variants, default `tool_stream`, and xAI-specific tool-schema /
|
|
180
|
+
reasoning-payload cleanup
|
|
181
|
+
- `mistral`: plugin-owned capability metadata
|
|
182
|
+
- `opencode` and `opencode-go`: plugin-owned capability metadata plus
|
|
183
|
+
proxy-Gemini thought-signature sanitation
|
|
184
|
+
- `byteplus`, `cloudflare-ai-gateway`, `huggingface`, `kimi`,
|
|
185
|
+
`nvidia`, `qianfan`, `stepfun`, `synthetic`, `together`, `venice`,
|
|
186
|
+
`vercel-ai-gateway`, and `volcengine`: plugin-owned catalogs only
|
|
187
|
+
- `qwen`: plugin-owned catalogs for text models plus shared
|
|
188
|
+
media-understanding and video-generation provider registrations for its
|
|
189
|
+
multimodal surfaces; Qwen video generation uses the Standard DashScope video
|
|
190
|
+
endpoints with bundled Wan models such as `wan2.6-t2v` and `wan2.7-r2v`
|
|
191
|
+
- `minimax`: plugin-owned catalogs, hybrid Anthropic/OpenAI replay-policy
|
|
192
|
+
selection, and usage auth/snapshot logic
|
|
193
|
+
- `xiaomi`: plugin-owned catalogs plus usage auth/snapshot logic
|
|
194
|
+
|
|
195
|
+
The bundled `openai` plugin now owns both provider ids: `openai` and
|
|
196
|
+
`openai-codex`.
|
|
197
|
+
|
|
198
|
+
That covers providers that still fit Durar's normal transports. A provider
|
|
199
|
+
that needs a totally custom request executor is a separate, deeper extension
|
|
200
|
+
surface.
|
|
201
|
+
|
|
202
|
+
## API key rotation
|
|
203
|
+
|
|
204
|
+
- Supports generic provider rotation for selected providers.
|
|
205
|
+
- Configure multiple keys via:
|
|
206
|
+
- `Durar_LIVE_<PROVIDER>_KEY` (single live override, highest priority)
|
|
207
|
+
- `<PROVIDER>_API_KEYS` (comma or semicolon list)
|
|
208
|
+
- `<PROVIDER>_API_KEY` (primary key)
|
|
209
|
+
- `<PROVIDER>_API_KEY_*` (numbered list, e.g. `<PROVIDER>_API_KEY_1`)
|
|
210
|
+
- For Google providers, `GOOGLE_API_KEY` is also included as fallback.
|
|
211
|
+
- Key selection order preserves priority and deduplicates values.
|
|
212
|
+
- Requests are retried with the next key only on rate-limit responses (for
|
|
213
|
+
example `429`, `rate_limit`, `quota`, `resource exhausted`, `Too many
|
|
214
|
+
concurrent requests`, `ThrottlingException`, `concurrency limit reached`,
|
|
215
|
+
`workers_ai ... quota limit exceeded`, or periodic usage-limit messages).
|
|
216
|
+
- Non-rate-limit failures fail immediately; no key rotation is attempted.
|
|
217
|
+
- When all candidate keys fail, the final error is returned from the last attempt.
|
|
218
|
+
|
|
219
|
+
## Built-in providers (pi-ai catalog)
|
|
220
|
+
|
|
221
|
+
Durar ships with the pi‑ai catalog. These providers require **no**
|
|
222
|
+
`models.providers` config; just set auth + pick a model.
|
|
223
|
+
|
|
224
|
+
### OpenAI
|
|
225
|
+
|
|
226
|
+
- Provider: `openai`
|
|
227
|
+
- Auth: `OPENAI_API_KEY`
|
|
228
|
+
- Optional rotation: `OPENAI_API_KEYS`, `OPENAI_API_KEY_1`, `OPENAI_API_KEY_2`, plus `Durar_LIVE_OPENAI_KEY` (single override)
|
|
229
|
+
- Example models: `openai/gpt-5.4`, `openai/gpt-5.4-pro`
|
|
230
|
+
- CLI: `Durar onboard --auth-choice openai-api-key`
|
|
231
|
+
- Default transport is `auto` (WebSocket-first, SSE fallback)
|
|
232
|
+
- Override per model via `agents.defaults.models["openai/<model>"].params.transport` (`"sse"`, `"websocket"`, or `"auto"`)
|
|
233
|
+
- OpenAI Responses WebSocket warm-up defaults to enabled via `params.openaiWsWarmup` (`true`/`false`)
|
|
234
|
+
- OpenAI priority processing can be enabled via `agents.defaults.models["openai/<model>"].params.serviceTier`
|
|
235
|
+
- `/fast` and `params.fastMode` map direct `openai/*` Responses requests to `service_tier=priority` on `api.openai.com`
|
|
236
|
+
- Use `params.serviceTier` when you want an explicit tier instead of the shared `/fast` toggle
|
|
237
|
+
- Hidden Durar attribution headers (`originator`, `version`,
|
|
238
|
+
`User-Agent`) apply only on native OpenAI traffic to `api.openai.com`, not
|
|
239
|
+
generic OpenAI-compatible proxies
|
|
240
|
+
- Native OpenAI routes also keep Responses `store`, prompt-cache hints, and
|
|
241
|
+
OpenAI reasoning-compat payload shaping; proxy routes do not
|
|
242
|
+
- `openai/gpt-5.3-codex-spark` is intentionally suppressed in Durar because the live OpenAI API rejects it; Spark is treated as Codex-only
|
|
243
|
+
|
|
244
|
+
```json5
|
|
245
|
+
{
|
|
246
|
+
agents: { defaults: { model: { primary: "openai/gpt-5.4" } } },
|
|
247
|
+
}
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### Anthropic
|
|
251
|
+
|
|
252
|
+
- Provider: `anthropic`
|
|
253
|
+
- Auth: `ANTHROPIC_API_KEY`
|
|
254
|
+
- Optional rotation: `ANTHROPIC_API_KEYS`, `ANTHROPIC_API_KEY_1`, `ANTHROPIC_API_KEY_2`, plus `Durar_LIVE_ANTHROPIC_KEY` (single override)
|
|
255
|
+
- Example model: `anthropic/claude-opus-4-6`
|
|
256
|
+
- CLI: `Durar onboard --auth-choice apiKey` or `Durar onboard --auth-choice anthropic-cli`
|
|
257
|
+
- Direct public Anthropic requests support the shared `/fast` toggle and `params.fastMode`, including API-key and OAuth-authenticated traffic sent to `api.anthropic.com`; Durar maps that to Anthropic `service_tier` (`auto` vs `standard_only`)
|
|
258
|
+
- Billing note: Anthropic's public Claude Code docs still include direct Claude Code terminal usage in Claude plan limits. Separately, Anthropic notified Durar users on **April 4, 2026 at 12:00 PM PT / 8:00 PM BST** that the **Durar** Claude-login path counts as third-party harness usage and requires **Extra Usage** billed separately from the subscription.
|
|
259
|
+
- Anthropic setup-token is available again as a legacy/manual Durar path. Use it with the expectation that Anthropic told Durar users this path requires **Extra Usage**.
|
|
260
|
+
|
|
261
|
+
```json5
|
|
262
|
+
{
|
|
263
|
+
agents: { defaults: { model: { primary: "anthropic/claude-opus-4-6" } } },
|
|
264
|
+
}
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### OpenAI Code (Codex)
|
|
268
|
+
|
|
269
|
+
- Provider: `openai-codex`
|
|
270
|
+
- Auth: OAuth (ChatGPT)
|
|
271
|
+
- Example model: `openai-codex/gpt-5.4`
|
|
272
|
+
- CLI: `Durar onboard --auth-choice openai-codex` or `Durar models auth login --provider openai-codex`
|
|
273
|
+
- Default transport is `auto` (WebSocket-first, SSE fallback)
|
|
274
|
+
- Override per model via `agents.defaults.models["openai-codex/<model>"].params.transport` (`"sse"`, `"websocket"`, or `"auto"`)
|
|
275
|
+
- `params.serviceTier` is also forwarded on native Codex Responses requests (`chatgpt.com/backend-api`)
|
|
276
|
+
- Hidden Durar attribution headers (`originator`, `version`,
|
|
277
|
+
`User-Agent`) are only attached on native Codex traffic to
|
|
278
|
+
`chatgpt.com/backend-api`, not generic OpenAI-compatible proxies
|
|
279
|
+
- Shares the same `/fast` toggle and `params.fastMode` config as direct `openai/*`; Durar maps that to `service_tier=priority`
|
|
280
|
+
- `openai-codex/gpt-5.3-codex-spark` remains available when the Codex OAuth catalog exposes it; entitlement-dependent
|
|
281
|
+
- `openai-codex/gpt-5.4` keeps native `contextWindow = 1050000` and a default runtime `contextTokens = 272000`; override the runtime cap with `models.providers.openai-codex.models[].contextTokens`
|
|
282
|
+
- Policy note: OpenAI Codex OAuth is explicitly supported for external tools/workflows like Durar.
|
|
283
|
+
|
|
284
|
+
```json5
|
|
285
|
+
{
|
|
286
|
+
agents: { defaults: { model: { primary: "openai-codex/gpt-5.4" } } },
|
|
287
|
+
}
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
```json5
|
|
291
|
+
{
|
|
292
|
+
models: {
|
|
293
|
+
providers: {
|
|
294
|
+
"openai-codex": {
|
|
295
|
+
models: [{ id: "gpt-5.4", contextTokens: 160000 }],
|
|
296
|
+
},
|
|
297
|
+
},
|
|
298
|
+
},
|
|
299
|
+
}
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
### Other subscription-style hosted options
|
|
303
|
+
|
|
304
|
+
- [Qwen Cloud](/providers/qwen): Qwen Cloud provider surface plus Alibaba DashScope and Coding Plan endpoint mapping
|
|
305
|
+
- [MiniMax](/providers/minimax): MiniMax Coding Plan OAuth or API key access
|
|
306
|
+
- [GLM Models](/providers/glm): Z.AI Coding Plan or general API endpoints
|
|
307
|
+
|
|
308
|
+
### OpenCode
|
|
309
|
+
|
|
310
|
+
- Auth: `OPENCODE_API_KEY` (or `OPENCODE_ZEN_API_KEY`)
|
|
311
|
+
- Zen runtime provider: `opencode`
|
|
312
|
+
- Go runtime provider: `opencode-go`
|
|
313
|
+
- Example models: `opencode/claude-opus-4-6`, `opencode-go/kimi-k2.5`
|
|
314
|
+
- CLI: `Durar onboard --auth-choice opencode-zen` or `Durar onboard --auth-choice opencode-go`
|
|
315
|
+
|
|
316
|
+
```json5
|
|
317
|
+
{
|
|
318
|
+
agents: { defaults: { model: { primary: "opencode/claude-opus-4-6" } } },
|
|
319
|
+
}
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
### Google Gemini (API key)
|
|
323
|
+
|
|
324
|
+
- Provider: `google`
|
|
325
|
+
- Auth: `GEMINI_API_KEY`
|
|
326
|
+
- Optional rotation: `GEMINI_API_KEYS`, `GEMINI_API_KEY_1`, `GEMINI_API_KEY_2`, `GOOGLE_API_KEY` fallback, and `Durar_LIVE_GEMINI_KEY` (single override)
|
|
327
|
+
- Example models: `google/gemini-3.1-pro-preview`, `google/gemini-3-flash-preview`
|
|
328
|
+
- Compatibility: legacy Durar config using `google/gemini-3.1-flash-preview` is normalized to `google/gemini-3-flash-preview`
|
|
329
|
+
- CLI: `Durar onboard --auth-choice gemini-api-key`
|
|
330
|
+
- Direct Gemini runs also accept `agents.defaults.models["google/<model>"].params.cachedContent`
|
|
331
|
+
(or legacy `cached_content`) to forward a provider-native
|
|
332
|
+
`cachedContents/...` handle; Gemini cache hits surface as Durar `cacheRead`
|
|
333
|
+
|
|
334
|
+
### Google Vertex and Gemini CLI
|
|
335
|
+
|
|
336
|
+
- Providers: `google-vertex`, `google-gemini-cli`
|
|
337
|
+
- Auth: Vertex uses gcloud ADC; Gemini CLI uses its OAuth flow
|
|
338
|
+
- Caution: Gemini CLI OAuth in Durar is an unofficial integration. Some users have reported Google account restrictions after using third-party clients. Review Google terms and use a non-critical account if you choose to proceed.
|
|
339
|
+
- Gemini CLI OAuth is shipped as part of the bundled `google` plugin.
|
|
340
|
+
- Install Gemini CLI first:
|
|
341
|
+
- `brew install gemini-cli`
|
|
342
|
+
- or `npm install -g @google/gemini-cli`
|
|
343
|
+
- Enable: `Durar plugins enable google`
|
|
344
|
+
- Login: `Durar models auth login --provider google-gemini-cli --set-default`
|
|
345
|
+
- Default model: `google-gemini-cli/gemini-3.1-pro-preview`
|
|
346
|
+
- Note: you do **not** paste a client id or secret into `Durar.json`. The CLI login flow stores
|
|
347
|
+
tokens in auth profiles on the gateway host.
|
|
348
|
+
- If requests fail after login, set `GOOGLE_CLOUD_PROJECT` or `GOOGLE_CLOUD_PROJECT_ID` on the gateway host.
|
|
349
|
+
- Gemini CLI JSON replies are parsed from `response`; usage falls back to
|
|
350
|
+
`stats`, with `stats.cached` normalized into Durar `cacheRead`.
|
|
351
|
+
|
|
352
|
+
### Z.AI (GLM)
|
|
353
|
+
|
|
354
|
+
- Provider: `zai`
|
|
355
|
+
- Auth: `ZAI_API_KEY`
|
|
356
|
+
- Example model: `zai/glm-5`
|
|
357
|
+
- CLI: `Durar onboard --auth-choice zai-api-key`
|
|
358
|
+
- Aliases: `z.ai/*` and `z-ai/*` normalize to `zai/*`
|
|
359
|
+
- `zai-api-key` auto-detects the matching Z.AI endpoint; `zai-coding-global`, `zai-coding-cn`, `zai-global`, and `zai-cn` force a specific surface
|
|
360
|
+
|
|
361
|
+
### Vercel AI Gateway
|
|
362
|
+
|
|
363
|
+
- Provider: `vercel-ai-gateway`
|
|
364
|
+
- Auth: `AI_GATEWAY_API_KEY`
|
|
365
|
+
- Example model: `vercel-ai-gateway/anthropic/claude-opus-4.6`
|
|
366
|
+
- CLI: `Durar onboard --auth-choice ai-gateway-api-key`
|
|
367
|
+
|
|
368
|
+
### Kilo Gateway
|
|
369
|
+
|
|
370
|
+
- Provider: `kilocode`
|
|
371
|
+
- Auth: `KILOCODE_API_KEY`
|
|
372
|
+
- Example model: `kilocode/kilo/auto`
|
|
373
|
+
- CLI: `Durar onboard --auth-choice kilocode-api-key`
|
|
374
|
+
- Base URL: `https://api.kilo.ai/api/gateway/`
|
|
375
|
+
- Static fallback catalog ships `kilocode/kilo/auto`; live
|
|
376
|
+
`https://api.kilo.ai/api/gateway/models` discovery can expand the runtime
|
|
377
|
+
catalog further.
|
|
378
|
+
- Exact upstream routing behind `kilocode/kilo/auto` is owned by Kilo Gateway,
|
|
379
|
+
not hard-coded in Durar.
|
|
380
|
+
|
|
381
|
+
See [/providers/kilocode](/providers/kilocode) for setup details.
|
|
382
|
+
|
|
383
|
+
### Other bundled provider plugins
|
|
384
|
+
|
|
385
|
+
- OpenRouter: `openrouter` (`OPENROUTER_API_KEY`)
|
|
386
|
+
- Example model: `openrouter/auto`
|
|
387
|
+
- Durar applies OpenRouter's documented app-attribution headers only when
|
|
388
|
+
the request actually targets `openrouter.ai`
|
|
389
|
+
- OpenRouter-specific Anthropic `cache_control` markers are likewise gated to
|
|
390
|
+
verified OpenRouter routes, not arbitrary proxy URLs
|
|
391
|
+
- OpenRouter remains on the proxy-style OpenAI-compatible path, so native
|
|
392
|
+
OpenAI-only request shaping (`serviceTier`, Responses `store`,
|
|
393
|
+
prompt-cache hints, OpenAI reasoning-compat payloads) is not forwarded
|
|
394
|
+
- Gemini-backed OpenRouter refs keep proxy-Gemini thought-signature sanitation
|
|
395
|
+
only; native Gemini replay validation and bootstrap rewrites stay off
|
|
396
|
+
- Kilo Gateway: `kilocode` (`KILOCODE_API_KEY`)
|
|
397
|
+
- Example model: `kilocode/kilo/auto`
|
|
398
|
+
- Gemini-backed Kilo refs keep the same proxy-Gemini thought-signature
|
|
399
|
+
sanitation path; `kilocode/kilo/auto` and other proxy-reasoning-unsupported
|
|
400
|
+
hints skip proxy reasoning injection
|
|
401
|
+
- MiniMax: `minimax` (API key) and `minimax-portal` (OAuth)
|
|
402
|
+
- Auth: `MINIMAX_API_KEY` for `minimax`; `MINIMAX_OAUTH_TOKEN` or `MINIMAX_API_KEY` for `minimax-portal`
|
|
403
|
+
- Example model: `minimax/MiniMax-M2.7` or `minimax-portal/MiniMax-M2.7`
|
|
404
|
+
- MiniMax onboarding/API-key setup writes explicit M2.7 model definitions with
|
|
405
|
+
`input: ["text", "image"]`; the bundled provider catalog keeps the chat refs
|
|
406
|
+
text-only until that provider config is materialized
|
|
407
|
+
- Moonshot: `moonshot` (`MOONSHOT_API_KEY`)
|
|
408
|
+
- Example model: `moonshot/kimi-k2.5`
|
|
409
|
+
- Kimi Coding: `kimi` (`KIMI_API_KEY` or `KIMICODE_API_KEY`)
|
|
410
|
+
- Example model: `kimi/kimi-code`
|
|
411
|
+
- Qianfan: `qianfan` (`QIANFAN_API_KEY`)
|
|
412
|
+
- Example model: `qianfan/deepseek-v3.2`
|
|
413
|
+
- Qwen Cloud: `qwen` (`QWEN_API_KEY`, `MODELSTUDIO_API_KEY`, or `DASHSCOPE_API_KEY`)
|
|
414
|
+
- Example model: `qwen/qwen3.5-plus`
|
|
415
|
+
- NVIDIA: `nvidia` (`NVIDIA_API_KEY`)
|
|
416
|
+
- Example model: `nvidia/nvidia/llama-3.1-nemotron-70b-instruct`
|
|
417
|
+
- StepFun: `stepfun` / `stepfun-plan` (`STEPFUN_API_KEY`)
|
|
418
|
+
- Example models: `stepfun/step-3.5-flash`, `stepfun-plan/step-3.5-flash-2603`
|
|
419
|
+
- Together: `together` (`TOGETHER_API_KEY`)
|
|
420
|
+
- Example model: `together/moonshotai/Kimi-K2.5`
|
|
421
|
+
- Venice: `venice` (`VENICE_API_KEY`)
|
|
422
|
+
- Xiaomi: `xiaomi` (`XIAOMI_API_KEY`)
|
|
423
|
+
- Example model: `xiaomi/mimo-v2-flash`
|
|
424
|
+
- Vercel AI Gateway: `vercel-ai-gateway` (`AI_GATEWAY_API_KEY`)
|
|
425
|
+
- Hugging Face Inference: `huggingface` (`HUGGINGFACE_HUB_TOKEN` or `HF_TOKEN`)
|
|
426
|
+
- Cloudflare AI Gateway: `cloudflare-ai-gateway` (`CLOUDFLARE_AI_GATEWAY_API_KEY`)
|
|
427
|
+
- Volcengine: `volcengine` (`VOLCANO_ENGINE_API_KEY`)
|
|
428
|
+
- Example model: `volcengine-plan/ark-code-latest`
|
|
429
|
+
- BytePlus: `byteplus` (`BYTEPLUS_API_KEY`)
|
|
430
|
+
- Example model: `byteplus-plan/ark-code-latest`
|
|
431
|
+
- xAI: `xai` (`XAI_API_KEY`)
|
|
432
|
+
- Native bundled xAI requests use the xAI Responses path
|
|
433
|
+
- `/fast` or `params.fastMode: true` rewrites `grok-3`, `grok-3-mini`,
|
|
434
|
+
`grok-4`, and `grok-4-0709` to their `*-fast` variants
|
|
435
|
+
- `tool_stream` defaults on; set
|
|
436
|
+
`agents.defaults.models["xai/<model>"].params.tool_stream` to `false` to
|
|
437
|
+
disable it
|
|
438
|
+
- Mistral: `mistral` (`MISTRAL_API_KEY`)
|
|
439
|
+
- Example model: `mistral/mistral-large-latest`
|
|
440
|
+
- CLI: `Durar onboard --auth-choice mistral-api-key`
|
|
441
|
+
- Groq: `groq` (`GROQ_API_KEY`)
|
|
442
|
+
- Cerebras: `cerebras` (`CEREBRAS_API_KEY`)
|
|
443
|
+
- GLM models on Cerebras use ids `zai-glm-4.7` and `zai-glm-4.6`.
|
|
444
|
+
- OpenAI-compatible base URL: `https://api.cerebras.ai/v1`.
|
|
445
|
+
- GitHub Copilot: `github-copilot` (`COPILOT_GITHUB_TOKEN` / `GH_TOKEN` / `GITHUB_TOKEN`)
|
|
446
|
+
- Hugging Face Inference example model: `huggingface/deepseek-ai/DeepSeek-R1`; CLI: `Durar onboard --auth-choice huggingface-api-key`. See [Hugging Face (Inference)](/providers/huggingface).
|
|
447
|
+
|
|
448
|
+
## Providers via `models.providers` (custom/base URL)
|
|
449
|
+
|
|
450
|
+
Use `models.providers` (or `models.json`) to add **custom** providers or
|
|
451
|
+
OpenAI/Anthropic‑compatible proxies.
|
|
452
|
+
|
|
453
|
+
Many of the bundled provider plugins below already publish a default catalog.
|
|
454
|
+
Use explicit `models.providers.<id>` entries only when you want to override the
|
|
455
|
+
default base URL, headers, or model list.
|
|
456
|
+
|
|
457
|
+
### Moonshot AI (Kimi)
|
|
458
|
+
|
|
459
|
+
Moonshot ships as a bundled provider plugin. Use the built-in provider by
|
|
460
|
+
default, and add an explicit `models.providers.moonshot` entry only when you
|
|
461
|
+
need to override the base URL or model metadata:
|
|
462
|
+
|
|
463
|
+
- Provider: `moonshot`
|
|
464
|
+
- Auth: `MOONSHOT_API_KEY`
|
|
465
|
+
- Example model: `moonshot/kimi-k2.5`
|
|
466
|
+
- CLI: `Durar onboard --auth-choice moonshot-api-key` or `Durar onboard --auth-choice moonshot-api-key-cn`
|
|
467
|
+
|
|
468
|
+
Kimi K2 model IDs:
|
|
469
|
+
|
|
470
|
+
[//]: # "moonshot-kimi-k2-model-refs:start"
|
|
471
|
+
|
|
472
|
+
- `moonshot/kimi-k2.5`
|
|
473
|
+
- `moonshot/kimi-k2-thinking`
|
|
474
|
+
- `moonshot/kimi-k2-thinking-turbo`
|
|
475
|
+
- `moonshot/kimi-k2-turbo`
|
|
476
|
+
|
|
477
|
+
[//]: # "moonshot-kimi-k2-model-refs:end"
|
|
478
|
+
|
|
479
|
+
```json5
|
|
480
|
+
{
|
|
481
|
+
agents: {
|
|
482
|
+
defaults: { model: { primary: "moonshot/kimi-k2.5" } },
|
|
483
|
+
},
|
|
484
|
+
models: {
|
|
485
|
+
mode: "merge",
|
|
486
|
+
providers: {
|
|
487
|
+
moonshot: {
|
|
488
|
+
baseUrl: "https://api.moonshot.ai/v1",
|
|
489
|
+
apiKey: "${MOONSHOT_API_KEY}",
|
|
490
|
+
api: "openai-completions",
|
|
491
|
+
models: [{ id: "kimi-k2.5", name: "Kimi K2.5" }],
|
|
492
|
+
},
|
|
493
|
+
},
|
|
494
|
+
},
|
|
495
|
+
}
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
### Kimi Coding
|
|
499
|
+
|
|
500
|
+
Kimi Coding uses Moonshot AI's Anthropic-compatible endpoint:
|
|
501
|
+
|
|
502
|
+
- Provider: `kimi`
|
|
503
|
+
- Auth: `KIMI_API_KEY`
|
|
504
|
+
- Example model: `kimi/kimi-code`
|
|
505
|
+
|
|
506
|
+
```json5
|
|
507
|
+
{
|
|
508
|
+
env: { KIMI_API_KEY: "sk-..." },
|
|
509
|
+
agents: {
|
|
510
|
+
defaults: { model: { primary: "kimi/kimi-code" } },
|
|
511
|
+
},
|
|
512
|
+
}
|
|
513
|
+
```
|
|
514
|
+
|
|
515
|
+
Legacy `kimi/k2p5` remains accepted as a compatibility model id.
|
|
516
|
+
|
|
517
|
+
### Volcano Engine (Doubao)
|
|
518
|
+
|
|
519
|
+
Volcano Engine (火山引擎) provides access to Doubao and other models in China.
|
|
520
|
+
|
|
521
|
+
- Provider: `volcengine` (coding: `volcengine-plan`)
|
|
522
|
+
- Auth: `VOLCANO_ENGINE_API_KEY`
|
|
523
|
+
- Example model: `volcengine-plan/ark-code-latest`
|
|
524
|
+
- CLI: `Durar onboard --auth-choice volcengine-api-key`
|
|
525
|
+
|
|
526
|
+
```json5
|
|
527
|
+
{
|
|
528
|
+
agents: {
|
|
529
|
+
defaults: { model: { primary: "volcengine-plan/ark-code-latest" } },
|
|
530
|
+
},
|
|
531
|
+
}
|
|
532
|
+
```
|
|
533
|
+
|
|
534
|
+
Onboarding defaults to the coding surface, but the general `volcengine/*`
|
|
535
|
+
catalog is registered at the same time.
|
|
536
|
+
|
|
537
|
+
In onboarding/configure model pickers, the Volcengine auth choice prefers both
|
|
538
|
+
`volcengine/*` and `volcengine-plan/*` rows. If those models are not loaded yet,
|
|
539
|
+
Durar falls back to the unfiltered catalog instead of showing an empty
|
|
540
|
+
provider-scoped picker.
|
|
541
|
+
|
|
542
|
+
Available models:
|
|
543
|
+
|
|
544
|
+
- `volcengine/doubao-seed-1-8-251228` (Doubao Seed 1.8)
|
|
545
|
+
- `volcengine/doubao-seed-code-preview-251028`
|
|
546
|
+
- `volcengine/kimi-k2-5-260127` (Kimi K2.5)
|
|
547
|
+
- `volcengine/glm-4-7-251222` (GLM 4.7)
|
|
548
|
+
- `volcengine/deepseek-v3-2-251201` (DeepSeek V3.2 128K)
|
|
549
|
+
|
|
550
|
+
Coding models (`volcengine-plan`):
|
|
551
|
+
|
|
552
|
+
- `volcengine-plan/ark-code-latest`
|
|
553
|
+
- `volcengine-plan/doubao-seed-code`
|
|
554
|
+
- `volcengine-plan/kimi-k2.5`
|
|
555
|
+
- `volcengine-plan/kimi-k2-thinking`
|
|
556
|
+
- `volcengine-plan/glm-4.7`
|
|
557
|
+
|
|
558
|
+
### BytePlus (International)
|
|
559
|
+
|
|
560
|
+
BytePlus ARK provides access to the same models as Volcano Engine for international users.
|
|
561
|
+
|
|
562
|
+
- Provider: `byteplus` (coding: `byteplus-plan`)
|
|
563
|
+
- Auth: `BYTEPLUS_API_KEY`
|
|
564
|
+
- Example model: `byteplus-plan/ark-code-latest`
|
|
565
|
+
- CLI: `Durar onboard --auth-choice byteplus-api-key`
|
|
566
|
+
|
|
567
|
+
```json5
|
|
568
|
+
{
|
|
569
|
+
agents: {
|
|
570
|
+
defaults: { model: { primary: "byteplus-plan/ark-code-latest" } },
|
|
571
|
+
},
|
|
572
|
+
}
|
|
573
|
+
```
|
|
574
|
+
|
|
575
|
+
Onboarding defaults to the coding surface, but the general `byteplus/*`
|
|
576
|
+
catalog is registered at the same time.
|
|
577
|
+
|
|
578
|
+
In onboarding/configure model pickers, the BytePlus auth choice prefers both
|
|
579
|
+
`byteplus/*` and `byteplus-plan/*` rows. If those models are not loaded yet,
|
|
580
|
+
Durar falls back to the unfiltered catalog instead of showing an empty
|
|
581
|
+
provider-scoped picker.
|
|
582
|
+
|
|
583
|
+
Available models:
|
|
584
|
+
|
|
585
|
+
- `byteplus/seed-1-8-251228` (Seed 1.8)
|
|
586
|
+
- `byteplus/kimi-k2-5-260127` (Kimi K2.5)
|
|
587
|
+
- `byteplus/glm-4-7-251222` (GLM 4.7)
|
|
588
|
+
|
|
589
|
+
Coding models (`byteplus-plan`):
|
|
590
|
+
|
|
591
|
+
- `byteplus-plan/ark-code-latest`
|
|
592
|
+
- `byteplus-plan/doubao-seed-code`
|
|
593
|
+
- `byteplus-plan/kimi-k2.5`
|
|
594
|
+
- `byteplus-plan/kimi-k2-thinking`
|
|
595
|
+
- `byteplus-plan/glm-4.7`
|
|
596
|
+
|
|
597
|
+
### Synthetic
|
|
598
|
+
|
|
599
|
+
Synthetic provides Anthropic-compatible models behind the `synthetic` provider:
|
|
600
|
+
|
|
601
|
+
- Provider: `synthetic`
|
|
602
|
+
- Auth: `SYNTHETIC_API_KEY`
|
|
603
|
+
- Example model: `synthetic/hf:MiniMaxAI/MiniMax-M2.5`
|
|
604
|
+
- CLI: `Durar onboard --auth-choice synthetic-api-key`
|
|
605
|
+
|
|
606
|
+
```json5
|
|
607
|
+
{
|
|
608
|
+
agents: {
|
|
609
|
+
defaults: { model: { primary: "synthetic/hf:MiniMaxAI/MiniMax-M2.5" } },
|
|
610
|
+
},
|
|
611
|
+
models: {
|
|
612
|
+
mode: "merge",
|
|
613
|
+
providers: {
|
|
614
|
+
synthetic: {
|
|
615
|
+
baseUrl: "https://api.synthetic.new/anthropic",
|
|
616
|
+
apiKey: "${SYNTHETIC_API_KEY}",
|
|
617
|
+
api: "anthropic-messages",
|
|
618
|
+
models: [{ id: "hf:MiniMaxAI/MiniMax-M2.5", name: "MiniMax M2.5" }],
|
|
619
|
+
},
|
|
620
|
+
},
|
|
621
|
+
},
|
|
622
|
+
}
|
|
623
|
+
```
|
|
624
|
+
|
|
625
|
+
### MiniMax
|
|
626
|
+
|
|
627
|
+
MiniMax is configured via `models.providers` because it uses custom endpoints:
|
|
628
|
+
|
|
629
|
+
- MiniMax OAuth (Global): `--auth-choice minimax-global-oauth`
|
|
630
|
+
- MiniMax OAuth (CN): `--auth-choice minimax-cn-oauth`
|
|
631
|
+
- MiniMax API key (Global): `--auth-choice minimax-global-api`
|
|
632
|
+
- MiniMax API key (CN): `--auth-choice minimax-cn-api`
|
|
633
|
+
- Auth: `MINIMAX_API_KEY` for `minimax`; `MINIMAX_OAUTH_TOKEN` or
|
|
634
|
+
`MINIMAX_API_KEY` for `minimax-portal`
|
|
635
|
+
|
|
636
|
+
See [/providers/minimax](/providers/minimax) for setup details, model options, and config snippets.
|
|
637
|
+
|
|
638
|
+
On MiniMax's Anthropic-compatible streaming path, Durar disables thinking by
|
|
639
|
+
default unless you explicitly set it, and `/fast on` rewrites
|
|
640
|
+
`MiniMax-M2.7` to `MiniMax-M2.7-highspeed`.
|
|
641
|
+
|
|
642
|
+
Plugin-owned capability split:
|
|
643
|
+
|
|
644
|
+
- Text/chat defaults stay on `minimax/MiniMax-M2.7`
|
|
645
|
+
- Image generation is `minimax/image-01` or `minimax-portal/image-01`
|
|
646
|
+
- Image understanding is plugin-owned `MiniMax-VL-01` on both MiniMax auth paths
|
|
647
|
+
- Web search stays on provider id `minimax`
|
|
648
|
+
|
|
649
|
+
### Ollama
|
|
650
|
+
|
|
651
|
+
Ollama ships as a bundled provider plugin and uses Ollama's native API:
|
|
652
|
+
|
|
653
|
+
- Provider: `ollama`
|
|
654
|
+
- Auth: None required (local server)
|
|
655
|
+
- Example model: `ollama/llama3.3`
|
|
656
|
+
- Installation: [https://ollama.com/download](https://ollama.com/download)
|
|
657
|
+
|
|
658
|
+
```bash
|
|
659
|
+
# Install Ollama, then pull a model:
|
|
660
|
+
ollama pull llama3.3
|
|
661
|
+
```
|
|
662
|
+
|
|
663
|
+
```json5
|
|
664
|
+
{
|
|
665
|
+
agents: {
|
|
666
|
+
defaults: { model: { primary: "ollama/llama3.3" } },
|
|
667
|
+
},
|
|
668
|
+
}
|
|
669
|
+
```
|
|
670
|
+
|
|
671
|
+
Ollama is detected locally at `http://127.0.0.1:11434` when you opt in with
|
|
672
|
+
`OLLAMA_API_KEY`, and the bundled provider plugin adds Ollama directly to
|
|
673
|
+
`Durar onboard` and the model picker. See [/providers/ollama](/providers/ollama)
|
|
674
|
+
for onboarding, cloud/local mode, and custom configuration.
|
|
675
|
+
|
|
676
|
+
### vLLM
|
|
677
|
+
|
|
678
|
+
vLLM ships as a bundled provider plugin for local/self-hosted OpenAI-compatible
|
|
679
|
+
servers:
|
|
680
|
+
|
|
681
|
+
- Provider: `vllm`
|
|
682
|
+
- Auth: Optional (depends on your server)
|
|
683
|
+
- Default base URL: `http://127.0.0.1:8000/v1`
|
|
684
|
+
|
|
685
|
+
To opt in to auto-discovery locally (any value works if your server doesn’t enforce auth):
|
|
686
|
+
|
|
687
|
+
```bash
|
|
688
|
+
export VLLM_API_KEY="vllm-local"
|
|
689
|
+
```
|
|
690
|
+
|
|
691
|
+
Then set a model (replace with one of the IDs returned by `/v1/models`):
|
|
692
|
+
|
|
693
|
+
```json5
|
|
694
|
+
{
|
|
695
|
+
agents: {
|
|
696
|
+
defaults: { model: { primary: "vllm/your-model-id" } },
|
|
697
|
+
},
|
|
698
|
+
}
|
|
699
|
+
```
|
|
700
|
+
|
|
701
|
+
See [/providers/vllm](/providers/vllm) for details.
|
|
702
|
+
|
|
703
|
+
### SGLang
|
|
704
|
+
|
|
705
|
+
SGLang ships as a bundled provider plugin for fast self-hosted
|
|
706
|
+
OpenAI-compatible servers:
|
|
707
|
+
|
|
708
|
+
- Provider: `sglang`
|
|
709
|
+
- Auth: Optional (depends on your server)
|
|
710
|
+
- Default base URL: `http://127.0.0.1:30000/v1`
|
|
711
|
+
|
|
712
|
+
To opt in to auto-discovery locally (any value works if your server does not
|
|
713
|
+
enforce auth):
|
|
714
|
+
|
|
715
|
+
```bash
|
|
716
|
+
export SGLANG_API_KEY="sglang-local"
|
|
717
|
+
```
|
|
718
|
+
|
|
719
|
+
Then set a model (replace with one of the IDs returned by `/v1/models`):
|
|
720
|
+
|
|
721
|
+
```json5
|
|
722
|
+
{
|
|
723
|
+
agents: {
|
|
724
|
+
defaults: { model: { primary: "sglang/your-model-id" } },
|
|
725
|
+
},
|
|
726
|
+
}
|
|
727
|
+
```
|
|
728
|
+
|
|
729
|
+
See [/providers/sglang](/providers/sglang) for details.
|
|
730
|
+
|
|
731
|
+
### Local proxies (LM Studio, vLLM, LiteLLM, etc.)
|
|
732
|
+
|
|
733
|
+
Example (OpenAI‑compatible):
|
|
734
|
+
|
|
735
|
+
```json5
|
|
736
|
+
{
|
|
737
|
+
agents: {
|
|
738
|
+
defaults: {
|
|
739
|
+
model: { primary: "lmstudio/my-local-model" },
|
|
740
|
+
models: { "lmstudio/my-local-model": { alias: "Local" } },
|
|
741
|
+
},
|
|
742
|
+
},
|
|
743
|
+
models: {
|
|
744
|
+
providers: {
|
|
745
|
+
lmstudio: {
|
|
746
|
+
baseUrl: "http://localhost:1234/v1",
|
|
747
|
+
apiKey: "LMSTUDIO_KEY",
|
|
748
|
+
api: "openai-completions",
|
|
749
|
+
models: [
|
|
750
|
+
{
|
|
751
|
+
id: "my-local-model",
|
|
752
|
+
name: "Local Model",
|
|
753
|
+
reasoning: false,
|
|
754
|
+
input: ["text"],
|
|
755
|
+
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
756
|
+
contextWindow: 200000,
|
|
757
|
+
maxTokens: 8192,
|
|
758
|
+
},
|
|
759
|
+
],
|
|
760
|
+
},
|
|
761
|
+
},
|
|
762
|
+
},
|
|
763
|
+
}
|
|
764
|
+
```
|
|
765
|
+
|
|
766
|
+
Notes:
|
|
767
|
+
|
|
768
|
+
- For custom providers, `reasoning`, `input`, `cost`, `contextWindow`, and `maxTokens` are optional.
|
|
769
|
+
When omitted, Durar defaults to:
|
|
770
|
+
- `reasoning: false`
|
|
771
|
+
- `input: ["text"]`
|
|
772
|
+
- `cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }`
|
|
773
|
+
- `contextWindow: 200000`
|
|
774
|
+
- `maxTokens: 8192`
|
|
775
|
+
- Recommended: set explicit values that match your proxy/model limits.
|
|
776
|
+
- For `api: "openai-completions"` on non-native endpoints (any non-empty `baseUrl` whose host is not `api.openai.com`), Durar forces `compat.supportsDeveloperRole: false` to avoid provider 400 errors for unsupported `developer` roles.
|
|
777
|
+
- Proxy-style OpenAI-compatible routes also skip native OpenAI-only request
|
|
778
|
+
shaping: no `service_tier`, no Responses `store`, no prompt-cache hints, no
|
|
779
|
+
OpenAI reasoning-compat payload shaping, and no hidden Durar attribution
|
|
780
|
+
headers.
|
|
781
|
+
- If `baseUrl` is empty/omitted, Durar keeps the default OpenAI behavior (which resolves to `api.openai.com`).
|
|
782
|
+
- For safety, an explicit `compat.supportsDeveloperRole: true` is still overridden on non-native `openai-completions` endpoints.
|
|
783
|
+
|
|
784
|
+
## CLI examples
|
|
785
|
+
|
|
786
|
+
```bash
|
|
787
|
+
Durar onboard --auth-choice opencode-zen
|
|
788
|
+
Durar models set opencode/claude-opus-4-6
|
|
789
|
+
Durar models list
|
|
790
|
+
```
|
|
791
|
+
|
|
792
|
+
See also: [/gateway/configuration](/gateway/configuration) for full configuration examples.
|
|
793
|
+
|
|
794
|
+
## Related
|
|
795
|
+
|
|
796
|
+
- [Models](/concepts/models) — model configuration and aliases
|
|
797
|
+
- [Model Failover](/concepts/model-failover) — fallback chains and retry behavior
|
|
798
|
+
- [Configuration Reference](/gateway/configuration-reference#agent-defaults) — model config keys
|
|
799
|
+
- [Providers](/providers) — per-provider setup guides
|