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,310 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "CLI backends: local AI CLI fallback with optional MCP tool bridge"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want a reliable fallback when API providers fail
|
|
5
|
+
- You are running Claude CLI or other local AI CLIs and want to reuse them
|
|
6
|
+
- You want to understand the MCP loopback bridge for CLI backend tool access
|
|
7
|
+
title: "CLI Backends"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# CLI backends (fallback runtime)
|
|
11
|
+
|
|
12
|
+
Durar can run **local AI CLIs** as a **text-only fallback** when API providers are down,
|
|
13
|
+
rate-limited, or temporarily misbehaving. This is intentionally conservative:
|
|
14
|
+
|
|
15
|
+
- **Durar tools are not injected directly**, but backends with `bundleMcp: true`
|
|
16
|
+
(the Claude CLI default) can receive gateway tools via a loopback MCP bridge.
|
|
17
|
+
- **JSONL streaming** (Claude CLI uses `--output-format stream-json` with
|
|
18
|
+
`--include-partial-messages`; prompts are sent via stdin).
|
|
19
|
+
- **Sessions are supported** (so follow-up turns stay coherent).
|
|
20
|
+
- **Images can be passed through** if the CLI accepts image paths.
|
|
21
|
+
|
|
22
|
+
This is designed as a **safety net** rather than a primary path. Use it when you
|
|
23
|
+
want “always works” text responses without relying on external APIs.
|
|
24
|
+
|
|
25
|
+
If you want a full harness runtime with ACP session controls, background tasks,
|
|
26
|
+
thread/conversation binding, and persistent external coding sessions, use
|
|
27
|
+
[ACP Agents](/tools/acp-agents) instead. CLI backends are not ACP.
|
|
28
|
+
|
|
29
|
+
## Beginner-friendly quick start
|
|
30
|
+
|
|
31
|
+
You can use Claude CLI **without any config** (the bundled Anthropic plugin
|
|
32
|
+
registers a default backend):
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
Durar agent --message "hi" --model claude-cli/claude-sonnet-4-6
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Codex CLI also works out of the box (via the bundled OpenAI plugin):
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
Durar agent --message "hi" --model codex-cli/gpt-5.4
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
If your gateway runs under launchd/systemd and PATH is minimal, add just the
|
|
45
|
+
command path:
|
|
46
|
+
|
|
47
|
+
```json5
|
|
48
|
+
{
|
|
49
|
+
agents: {
|
|
50
|
+
defaults: {
|
|
51
|
+
cliBackends: {
|
|
52
|
+
"claude-cli": {
|
|
53
|
+
command: "/opt/homebrew/bin/claude",
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
That’s it. No keys, no extra auth config needed beyond the CLI itself.
|
|
62
|
+
|
|
63
|
+
If you use a bundled CLI backend as the **primary message provider** on a
|
|
64
|
+
gateway host, Durar now auto-loads the owning bundled plugin when your config
|
|
65
|
+
explicitly references that backend in a model ref or under
|
|
66
|
+
`agents.defaults.cliBackends`.
|
|
67
|
+
|
|
68
|
+
## Using it as a fallback
|
|
69
|
+
|
|
70
|
+
Add a CLI backend to your fallback list so it only runs when primary models fail:
|
|
71
|
+
|
|
72
|
+
```json5
|
|
73
|
+
{
|
|
74
|
+
agents: {
|
|
75
|
+
defaults: {
|
|
76
|
+
model: {
|
|
77
|
+
primary: "anthropic/claude-opus-4-6",
|
|
78
|
+
fallbacks: ["claude-cli/claude-sonnet-4-6", "claude-cli/claude-opus-4-6"],
|
|
79
|
+
},
|
|
80
|
+
models: {
|
|
81
|
+
"anthropic/claude-opus-4-6": { alias: "Opus" },
|
|
82
|
+
"claude-cli/claude-sonnet-4-6": {},
|
|
83
|
+
"claude-cli/claude-opus-4-6": {},
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Notes:
|
|
91
|
+
|
|
92
|
+
- If you use `agents.defaults.models` (allowlist), you must include `claude-cli/...`.
|
|
93
|
+
- If the primary provider fails (auth, rate limits, timeouts), Durar will
|
|
94
|
+
try the CLI backend next.
|
|
95
|
+
- The bundled Claude CLI backend still accepts shorter aliases like
|
|
96
|
+
`claude-cli/opus`, `claude-cli/opus-4.6`, or `claude-cli/sonnet`, but docs
|
|
97
|
+
and config examples use the canonical `claude-cli/claude-*` refs.
|
|
98
|
+
|
|
99
|
+
## Configuration overview
|
|
100
|
+
|
|
101
|
+
All CLI backends live under:
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
agents.defaults.cliBackends
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Each entry is keyed by a **provider id** (e.g. `claude-cli`, `my-cli`).
|
|
108
|
+
The provider id becomes the left side of your model ref:
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
<provider>/<model>
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Example configuration
|
|
115
|
+
|
|
116
|
+
```json5
|
|
117
|
+
{
|
|
118
|
+
agents: {
|
|
119
|
+
defaults: {
|
|
120
|
+
cliBackends: {
|
|
121
|
+
"claude-cli": {
|
|
122
|
+
command: "/opt/homebrew/bin/claude",
|
|
123
|
+
},
|
|
124
|
+
"my-cli": {
|
|
125
|
+
command: "my-cli",
|
|
126
|
+
args: ["--json"],
|
|
127
|
+
output: "json",
|
|
128
|
+
input: "arg",
|
|
129
|
+
modelArg: "--model",
|
|
130
|
+
modelAliases: {
|
|
131
|
+
"claude-opus-4-6": "opus",
|
|
132
|
+
"claude-sonnet-4-6": "sonnet",
|
|
133
|
+
},
|
|
134
|
+
sessionArg: "--session",
|
|
135
|
+
sessionMode: "existing",
|
|
136
|
+
sessionIdFields: ["session_id", "conversation_id"],
|
|
137
|
+
systemPromptArg: "--system",
|
|
138
|
+
systemPromptWhen: "first",
|
|
139
|
+
imageArg: "--image",
|
|
140
|
+
imageMode: "repeat",
|
|
141
|
+
serialize: true,
|
|
142
|
+
},
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
},
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## How it works
|
|
150
|
+
|
|
151
|
+
1. **Selects a backend** based on the provider prefix (`claude-cli/...`).
|
|
152
|
+
2. **Builds a system prompt** using the same Durar prompt + workspace context.
|
|
153
|
+
3. **Executes the CLI** with a session id (if supported) so history stays consistent.
|
|
154
|
+
4. **Parses output** (JSON or plain text) and returns the final text.
|
|
155
|
+
5. **Persists session ids** per backend, so follow-ups reuse the same CLI session.
|
|
156
|
+
|
|
157
|
+
## Sessions
|
|
158
|
+
|
|
159
|
+
- If the CLI supports sessions, set `sessionArg` (e.g. `--session-id`) or
|
|
160
|
+
`sessionArgs` (placeholder `{sessionId}`) when the ID needs to be inserted
|
|
161
|
+
into multiple flags.
|
|
162
|
+
- If the CLI uses a **resume subcommand** with different flags, set
|
|
163
|
+
`resumeArgs` (replaces `args` when resuming) and optionally `resumeOutput`
|
|
164
|
+
(for non-JSON resumes).
|
|
165
|
+
- `sessionMode`:
|
|
166
|
+
- `always`: always send a session id (new UUID if none stored).
|
|
167
|
+
- `existing`: only send a session id if one was stored before.
|
|
168
|
+
- `none`: never send a session id.
|
|
169
|
+
|
|
170
|
+
Serialization notes:
|
|
171
|
+
|
|
172
|
+
- `serialize: true` keeps same-lane runs ordered.
|
|
173
|
+
- Most CLIs serialize on one provider lane.
|
|
174
|
+
- `claude-cli` is narrower: resumed runs serialize per Claude session id, and fresh runs serialize per workspace path. Independent workspaces can run in parallel.
|
|
175
|
+
- Durar drops stored CLI session reuse when the backend auth state changes, including relogin, token rotation, or a changed auth profile credential.
|
|
176
|
+
|
|
177
|
+
## Images (pass-through)
|
|
178
|
+
|
|
179
|
+
If your CLI accepts image paths, set `imageArg`:
|
|
180
|
+
|
|
181
|
+
```json5
|
|
182
|
+
imageArg: "--image",
|
|
183
|
+
imageMode: "repeat"
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Durar will write base64 images to temp files. If `imageArg` is set, those
|
|
187
|
+
paths are passed as CLI args. If `imageArg` is missing, Durar appends the
|
|
188
|
+
file paths to the prompt (path injection), which is enough for CLIs that auto-
|
|
189
|
+
load local files from plain paths (Claude CLI behavior).
|
|
190
|
+
|
|
191
|
+
## Inputs / outputs
|
|
192
|
+
|
|
193
|
+
- `output: "json"` (default) tries to parse JSON and extract text + session id.
|
|
194
|
+
- For Gemini CLI JSON output, Durar reads reply text from `response` and
|
|
195
|
+
usage from `stats` when `usage` is missing or empty.
|
|
196
|
+
- `output: "jsonl"` parses JSONL streams (for example Claude CLI `stream-json`
|
|
197
|
+
and Codex CLI `--json`) and extracts the final agent message plus session
|
|
198
|
+
identifiers when present.
|
|
199
|
+
- `output: "text"` treats stdout as the final response.
|
|
200
|
+
|
|
201
|
+
Input modes:
|
|
202
|
+
|
|
203
|
+
- `input: "arg"` (default) passes the prompt as the last CLI arg.
|
|
204
|
+
- `input: "stdin"` sends the prompt via stdin.
|
|
205
|
+
- If the prompt is very long and `maxPromptArgChars` is set, stdin is used.
|
|
206
|
+
|
|
207
|
+
## Defaults (plugin-owned)
|
|
208
|
+
|
|
209
|
+
The bundled Anthropic plugin registers a default for `claude-cli`:
|
|
210
|
+
|
|
211
|
+
- `command: "claude"`
|
|
212
|
+
- `args: ["-p", "--output-format", "stream-json", "--include-partial-messages", "--verbose", "--permission-mode", "bypassPermissions"]`
|
|
213
|
+
- `resumeArgs: ["-p", "--output-format", "stream-json", "--include-partial-messages", "--verbose", "--permission-mode", "bypassPermissions", "--resume", "{sessionId}"]`
|
|
214
|
+
- `output: "jsonl"`
|
|
215
|
+
- `input: "stdin"`
|
|
216
|
+
- `modelArg: "--model"`
|
|
217
|
+
- `systemPromptArg: "--append-system-prompt"`
|
|
218
|
+
- `sessionArg: "--session-id"`
|
|
219
|
+
- `systemPromptWhen: "first"`
|
|
220
|
+
- `sessionMode: "always"`
|
|
221
|
+
|
|
222
|
+
The bundled OpenAI plugin also registers a default for `codex-cli`:
|
|
223
|
+
|
|
224
|
+
- `command: "codex"`
|
|
225
|
+
- `args: ["exec","--json","--color","never","--sandbox","workspace-write","--skip-git-repo-check"]`
|
|
226
|
+
- `resumeArgs: ["exec","resume","{sessionId}","--color","never","--sandbox","workspace-write","--skip-git-repo-check"]`
|
|
227
|
+
- `output: "jsonl"`
|
|
228
|
+
- `resumeOutput: "text"`
|
|
229
|
+
- `modelArg: "--model"`
|
|
230
|
+
- `imageArg: "--image"`
|
|
231
|
+
- `sessionMode: "existing"`
|
|
232
|
+
|
|
233
|
+
The bundled Google plugin also registers a default for `google-gemini-cli`:
|
|
234
|
+
|
|
235
|
+
- `command: "gemini"`
|
|
236
|
+
- `args: ["--prompt", "--output-format", "json"]`
|
|
237
|
+
- `resumeArgs: ["--resume", "{sessionId}", "--prompt", "--output-format", "json"]`
|
|
238
|
+
- `modelArg: "--model"`
|
|
239
|
+
- `sessionMode: "existing"`
|
|
240
|
+
- `sessionIdFields: ["session_id", "sessionId"]`
|
|
241
|
+
|
|
242
|
+
Prerequisite: the local Gemini CLI must be installed and available as
|
|
243
|
+
`gemini` on `PATH` (`brew install gemini-cli` or
|
|
244
|
+
`npm install -g @google/gemini-cli`).
|
|
245
|
+
|
|
246
|
+
Gemini CLI JSON notes:
|
|
247
|
+
|
|
248
|
+
- Reply text is read from the JSON `response` field.
|
|
249
|
+
- Usage falls back to `stats` when `usage` is absent or empty.
|
|
250
|
+
- `stats.cached` is normalized into Durar `cacheRead`.
|
|
251
|
+
- If `stats.input` is missing, Durar derives input tokens from
|
|
252
|
+
`stats.input_tokens - stats.cached`.
|
|
253
|
+
|
|
254
|
+
Override only if needed (common: absolute `command` path).
|
|
255
|
+
|
|
256
|
+
## Plugin-owned defaults
|
|
257
|
+
|
|
258
|
+
CLI backend defaults are now part of the plugin surface:
|
|
259
|
+
|
|
260
|
+
- Plugins register them with `api.registerCliBackend(...)`.
|
|
261
|
+
- The backend `id` becomes the provider prefix in model refs.
|
|
262
|
+
- User config in `agents.defaults.cliBackends.<id>` still overrides the plugin default.
|
|
263
|
+
- Backend-specific config cleanup stays plugin-owned through the optional
|
|
264
|
+
`normalizeConfig` hook.
|
|
265
|
+
|
|
266
|
+
## Bundle MCP overlays
|
|
267
|
+
|
|
268
|
+
CLI backends do **not** receive Durar tool calls directly, but a backend can
|
|
269
|
+
opt into a generated MCP config overlay with `bundleMcp: true`.
|
|
270
|
+
|
|
271
|
+
Current bundled behavior:
|
|
272
|
+
|
|
273
|
+
- `claude-cli`: `bundleMcp: true` (default)
|
|
274
|
+
- `codex-cli`: no bundle MCP overlay
|
|
275
|
+
- `google-gemini-cli`: no bundle MCP overlay
|
|
276
|
+
|
|
277
|
+
When bundle MCP is enabled, Durar:
|
|
278
|
+
|
|
279
|
+
- spawns a loopback HTTP MCP server that exposes gateway tools to the CLI process
|
|
280
|
+
- authenticates the bridge with a per-session token (`Durar_MCP_TOKEN`)
|
|
281
|
+
- scopes tool access to the current session, account, and channel context
|
|
282
|
+
- loads enabled bundle-MCP servers for the current workspace
|
|
283
|
+
- merges them with any existing backend `--mcp-config`
|
|
284
|
+
- rewrites the CLI args to pass `--strict-mcp-config --mcp-config <generated-file>`
|
|
285
|
+
|
|
286
|
+
The `--strict-mcp-config` flag prevents Claude CLI from inheriting ambient
|
|
287
|
+
user-level or global MCP servers. If no MCP servers are enabled, Durar still
|
|
288
|
+
injects a strict empty config so background runs stay isolated.
|
|
289
|
+
|
|
290
|
+
## Limitations
|
|
291
|
+
|
|
292
|
+
- **No direct Durar tool calls.** Durar does not inject tool calls into
|
|
293
|
+
the CLI backend protocol. However, backends with `bundleMcp: true` (the
|
|
294
|
+
Claude CLI default) receive gateway tools through a loopback MCP bridge,
|
|
295
|
+
so Claude CLI can invoke Durar tools via its native MCP support.
|
|
296
|
+
- **Streaming is backend-specific.** Claude CLI uses JSONL streaming
|
|
297
|
+
(`stream-json` with `--include-partial-messages`); other CLI backends may
|
|
298
|
+
still be buffered until exit.
|
|
299
|
+
- **Structured outputs** depend on the CLI’s JSON format.
|
|
300
|
+
- **Codex CLI sessions** resume via text output (no JSONL), which is less
|
|
301
|
+
structured than the initial `--json` run. Durar sessions still work
|
|
302
|
+
normally.
|
|
303
|
+
|
|
304
|
+
## Troubleshooting
|
|
305
|
+
|
|
306
|
+
- **CLI not found**: set `command` to a full path.
|
|
307
|
+
- **Wrong model name**: use `modelAliases` to map `provider/model` → CLI model.
|
|
308
|
+
- **No session continuity**: ensure `sessionArg` is set and `sessionMode` is not
|
|
309
|
+
`none` (Codex CLI currently cannot resume with JSON output).
|
|
310
|
+
- **Images ignored**: set `imageArg` (and verify CLI supports file paths).
|