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
package/docs/cli/acp.md
ADDED
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Run the ACP bridge for IDE integrations"
|
|
3
|
+
read_when:
|
|
4
|
+
- Setting up ACP-based IDE integrations
|
|
5
|
+
- Debugging ACP session routing to the Gateway
|
|
6
|
+
title: "acp"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# acp
|
|
10
|
+
|
|
11
|
+
Run the [Agent Client Protocol (ACP)](https://agentclientprotocol.com/) bridge that talks to an Durar Gateway.
|
|
12
|
+
|
|
13
|
+
This command speaks ACP over stdio for IDEs and forwards prompts to the Gateway
|
|
14
|
+
over WebSocket. It keeps ACP sessions mapped to Gateway session keys.
|
|
15
|
+
|
|
16
|
+
`Durar acp` is a Gateway-backed ACP bridge, not a full ACP-native editor
|
|
17
|
+
runtime. It focuses on session routing, prompt delivery, and basic streaming
|
|
18
|
+
updates.
|
|
19
|
+
|
|
20
|
+
If you want an external MCP client to talk directly to Durar channel
|
|
21
|
+
conversations instead of hosting an ACP harness session, use
|
|
22
|
+
[`Durar mcp serve`](/cli/mcp) instead.
|
|
23
|
+
|
|
24
|
+
## What this is not
|
|
25
|
+
|
|
26
|
+
This page is often confused with ACP harness sessions.
|
|
27
|
+
|
|
28
|
+
`Durar acp` means:
|
|
29
|
+
|
|
30
|
+
- Durar acts as an ACP server
|
|
31
|
+
- an IDE or ACP client connects to Durar
|
|
32
|
+
- Durar forwards that work into a Gateway session
|
|
33
|
+
|
|
34
|
+
This is different from [ACP Agents](/tools/acp-agents), where Durar runs an
|
|
35
|
+
external harness such as Codex or Claude Code through `acpx`.
|
|
36
|
+
|
|
37
|
+
Quick rule:
|
|
38
|
+
|
|
39
|
+
- editor/client wants to talk ACP to Durar: use `Durar acp`
|
|
40
|
+
- Durar should launch Codex/Claude/Gemini as an ACP harness: use `/acp spawn` and [ACP Agents](/tools/acp-agents)
|
|
41
|
+
|
|
42
|
+
## Compatibility Matrix
|
|
43
|
+
|
|
44
|
+
| ACP area | Status | Notes |
|
|
45
|
+
| --------------------------------------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
46
|
+
| `initialize`, `newSession`, `prompt`, `cancel` | Implemented | Core bridge flow over stdio to Gateway chat/send + abort. |
|
|
47
|
+
| `listSessions`, slash commands | Implemented | Session list works against Gateway session state; commands are advertised via `available_commands_update`. |
|
|
48
|
+
| `loadSession` | Partial | Rebinds the ACP session to a Gateway session key and replays stored user/assistant text history. Tool/system history is not reconstructed yet. |
|
|
49
|
+
| Prompt content (`text`, embedded `resource`, images) | Partial | Text/resources are flattened into chat input; images become Gateway attachments. |
|
|
50
|
+
| Session modes | Partial | `session/set_mode` is supported and the bridge exposes initial Gateway-backed session controls for thought level, tool verbosity, reasoning, usage detail, and elevated actions. Broader ACP-native mode/config surfaces are still out of scope. |
|
|
51
|
+
| Session info and usage updates | Partial | The bridge emits `session_info_update` and best-effort `usage_update` notifications from cached Gateway session snapshots. Usage is approximate and only sent when Gateway token totals are marked fresh. |
|
|
52
|
+
| Tool streaming | Partial | `tool_call` / `tool_call_update` events include raw I/O, text content, and best-effort file locations when Gateway tool args/results expose them. Embedded terminals and richer diff-native output are still not exposed. |
|
|
53
|
+
| Per-session MCP servers (`mcpServers`) | Unsupported | Bridge mode rejects per-session MCP server requests. Configure MCP on the Durar gateway or agent instead. |
|
|
54
|
+
| Client filesystem methods (`fs/read_text_file`, `fs/write_text_file`) | Unsupported | The bridge does not call ACP client filesystem methods. |
|
|
55
|
+
| Client terminal methods (`terminal/*`) | Unsupported | The bridge does not create ACP client terminals or stream terminal ids through tool calls. |
|
|
56
|
+
| Session plans / thought streaming | Unsupported | The bridge currently emits output text and tool status, not ACP plan or thought updates. |
|
|
57
|
+
|
|
58
|
+
## Known Limitations
|
|
59
|
+
|
|
60
|
+
- `loadSession` replays stored user and assistant text history, but it does not
|
|
61
|
+
reconstruct historic tool calls, system notices, or richer ACP-native event
|
|
62
|
+
types.
|
|
63
|
+
- If multiple ACP clients share the same Gateway session key, event and cancel
|
|
64
|
+
routing are best-effort rather than strictly isolated per client. Prefer the
|
|
65
|
+
default isolated `acp:<uuid>` sessions when you need clean editor-local
|
|
66
|
+
turns.
|
|
67
|
+
- Gateway stop states are translated into ACP stop reasons, but that mapping is
|
|
68
|
+
less expressive than a fully ACP-native runtime.
|
|
69
|
+
- Initial session controls currently surface a focused subset of Gateway knobs:
|
|
70
|
+
thought level, tool verbosity, reasoning, usage detail, and elevated
|
|
71
|
+
actions. Model selection and exec-host controls are not yet exposed as ACP
|
|
72
|
+
config options.
|
|
73
|
+
- `session_info_update` and `usage_update` are derived from Gateway session
|
|
74
|
+
snapshots, not live ACP-native runtime accounting. Usage is approximate,
|
|
75
|
+
carries no cost data, and is only emitted when the Gateway marks total token
|
|
76
|
+
data as fresh.
|
|
77
|
+
- Tool follow-along data is best-effort. The bridge can surface file paths that
|
|
78
|
+
appear in known tool args/results, but it does not yet emit ACP terminals or
|
|
79
|
+
structured file diffs.
|
|
80
|
+
|
|
81
|
+
## Usage
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
Durar acp
|
|
85
|
+
|
|
86
|
+
# Remote Gateway
|
|
87
|
+
Durar acp --url wss://gateway-host:18789 --token <token>
|
|
88
|
+
|
|
89
|
+
# Remote Gateway (token from file)
|
|
90
|
+
Durar acp --url wss://gateway-host:18789 --token-file ~/.Durar/gateway.token
|
|
91
|
+
|
|
92
|
+
# Attach to an existing session key
|
|
93
|
+
Durar acp --session agent:main:main
|
|
94
|
+
|
|
95
|
+
# Attach by label (must already exist)
|
|
96
|
+
Durar acp --session-label "support inbox"
|
|
97
|
+
|
|
98
|
+
# Reset the session key before the first prompt
|
|
99
|
+
Durar acp --session agent:main:main --reset-session
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## ACP client (debug)
|
|
103
|
+
|
|
104
|
+
Use the built-in ACP client to sanity-check the bridge without an IDE.
|
|
105
|
+
It spawns the ACP bridge and lets you type prompts interactively.
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
Durar acp client
|
|
109
|
+
|
|
110
|
+
# Point the spawned bridge at a remote Gateway
|
|
111
|
+
Durar acp client --server-args --url wss://gateway-host:18789 --token-file ~/.Durar/gateway.token
|
|
112
|
+
|
|
113
|
+
# Override the server command (default: Durar)
|
|
114
|
+
Durar acp client --server "node" --server-args Durar.mjs acp --url ws://127.0.0.1:19001
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Permission model (client debug mode):
|
|
118
|
+
|
|
119
|
+
- Auto-approval is allowlist-based and only applies to trusted core tool IDs.
|
|
120
|
+
- `read` auto-approval is scoped to the current working directory (`--cwd` when set).
|
|
121
|
+
- ACP only auto-approves narrow readonly classes: scoped `read` calls under the active cwd plus readonly search tools (`search`, `web_search`, `memory_search`). Unknown/non-core tools, out-of-scope reads, exec-capable tools, control-plane tools, mutating tools, and interactive flows always require explicit prompt approval.
|
|
122
|
+
- Server-provided `toolCall.kind` is treated as untrusted metadata (not an authorization source).
|
|
123
|
+
- This ACP bridge policy is separate from ACPX harness permissions. If you run Durar through the `acpx` backend, `plugins.entries.acpx.config.permissionMode=approve-all` is the break-glass “yolo” switch for that harness session.
|
|
124
|
+
|
|
125
|
+
## How to use this
|
|
126
|
+
|
|
127
|
+
Use ACP when an IDE (or other client) speaks Agent Client Protocol and you want
|
|
128
|
+
it to drive an Durar Gateway session.
|
|
129
|
+
|
|
130
|
+
1. Ensure the Gateway is running (local or remote).
|
|
131
|
+
2. Configure the Gateway target (config or flags).
|
|
132
|
+
3. Point your IDE to run `Durar acp` over stdio.
|
|
133
|
+
|
|
134
|
+
Example config (persisted):
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
Durar config set gateway.remote.url wss://gateway-host:18789
|
|
138
|
+
Durar config set gateway.remote.token <token>
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Example direct run (no config write):
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
Durar acp --url wss://gateway-host:18789 --token <token>
|
|
145
|
+
# preferred for local process safety
|
|
146
|
+
Durar acp --url wss://gateway-host:18789 --token-file ~/.Durar/gateway.token
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## Selecting agents
|
|
150
|
+
|
|
151
|
+
ACP does not pick agents directly. It routes by the Gateway session key.
|
|
152
|
+
|
|
153
|
+
Use agent-scoped session keys to target a specific agent:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
Durar acp --session agent:main:main
|
|
157
|
+
Durar acp --session agent:design:main
|
|
158
|
+
Durar acp --session agent:qa:bug-123
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Each ACP session maps to a single Gateway session key. One agent can have many
|
|
162
|
+
sessions; ACP defaults to an isolated `acp:<uuid>` session unless you override
|
|
163
|
+
the key or label.
|
|
164
|
+
|
|
165
|
+
Per-session `mcpServers` are not supported in bridge mode. If an ACP client
|
|
166
|
+
sends them during `newSession` or `loadSession`, the bridge returns a clear
|
|
167
|
+
error instead of silently ignoring them.
|
|
168
|
+
|
|
169
|
+
If you want ACPX-backed sessions to see Durar plugin tools, enable the
|
|
170
|
+
gateway-side ACPX plugin bridge instead of trying to pass per-session
|
|
171
|
+
`mcpServers`. See [ACP Agents](/tools/acp-agents#plugin-tools-mcp-bridge).
|
|
172
|
+
|
|
173
|
+
## Use from `acpx` (Codex, Claude, other ACP clients)
|
|
174
|
+
|
|
175
|
+
If you want a coding agent such as Codex or Claude Code to talk to your
|
|
176
|
+
Durar bot over ACP, use `acpx` with its built-in `Durar` target.
|
|
177
|
+
|
|
178
|
+
Typical flow:
|
|
179
|
+
|
|
180
|
+
1. Run the Gateway and make sure the ACP bridge can reach it.
|
|
181
|
+
2. Point `acpx Durar` at `Durar acp`.
|
|
182
|
+
3. Target the Durar session key you want the coding agent to use.
|
|
183
|
+
|
|
184
|
+
Examples:
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
# One-shot request into your default Durar ACP session
|
|
188
|
+
acpx Durar exec "Summarize the active Durar session state."
|
|
189
|
+
|
|
190
|
+
# Persistent named session for follow-up turns
|
|
191
|
+
acpx Durar sessions ensure --name codex-bridge
|
|
192
|
+
acpx Durar -s codex-bridge --cwd /path/to/repo \
|
|
193
|
+
"Ask my Durar work agent for recent context relevant to this repo."
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
If you want `acpx Durar` to target a specific Gateway and session key every
|
|
197
|
+
time, override the `Durar` agent command in `~/.acpx/config.json`:
|
|
198
|
+
|
|
199
|
+
```json
|
|
200
|
+
{
|
|
201
|
+
"agents": {
|
|
202
|
+
"Durar": {
|
|
203
|
+
"command": "env Durar_HIDE_BANNER=1 Durar_SUPPRESS_NOTES=1 Durar acp --url ws://127.0.0.1:18789 --token-file ~/.Durar/gateway.token --session agent:main:main"
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
For a repo-local Durar checkout, use the direct CLI entrypoint instead of the
|
|
210
|
+
dev runner so the ACP stream stays clean. For example:
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
env Durar_HIDE_BANNER=1 Durar_SUPPRESS_NOTES=1 node Durar.mjs acp ...
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
This is the easiest way to let Codex, Claude Code, or another ACP-aware client
|
|
217
|
+
pull contextual information from an Durar agent without scraping a terminal.
|
|
218
|
+
|
|
219
|
+
## Zed editor setup
|
|
220
|
+
|
|
221
|
+
Add a custom ACP agent in `~/.config/zed/settings.json` (or use Zed’s Settings UI):
|
|
222
|
+
|
|
223
|
+
```json
|
|
224
|
+
{
|
|
225
|
+
"agent_servers": {
|
|
226
|
+
"Durar ACP": {
|
|
227
|
+
"type": "custom",
|
|
228
|
+
"command": "Durar",
|
|
229
|
+
"args": ["acp"],
|
|
230
|
+
"env": {}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
To target a specific Gateway or agent:
|
|
237
|
+
|
|
238
|
+
```json
|
|
239
|
+
{
|
|
240
|
+
"agent_servers": {
|
|
241
|
+
"Durar ACP": {
|
|
242
|
+
"type": "custom",
|
|
243
|
+
"command": "Durar",
|
|
244
|
+
"args": [
|
|
245
|
+
"acp",
|
|
246
|
+
"--url",
|
|
247
|
+
"wss://gateway-host:18789",
|
|
248
|
+
"--token",
|
|
249
|
+
"<token>",
|
|
250
|
+
"--session",
|
|
251
|
+
"agent:design:main"
|
|
252
|
+
],
|
|
253
|
+
"env": {}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
In Zed, open the Agent panel and select “Durar ACP” to start a thread.
|
|
260
|
+
|
|
261
|
+
## Session mapping
|
|
262
|
+
|
|
263
|
+
By default, ACP sessions get an isolated Gateway session key with an `acp:` prefix.
|
|
264
|
+
To reuse a known session, pass a session key or label:
|
|
265
|
+
|
|
266
|
+
- `--session <key>`: use a specific Gateway session key.
|
|
267
|
+
- `--session-label <label>`: resolve an existing session by label.
|
|
268
|
+
- `--reset-session`: mint a fresh session id for that key (same key, new transcript).
|
|
269
|
+
|
|
270
|
+
If your ACP client supports metadata, you can override per session:
|
|
271
|
+
|
|
272
|
+
```json
|
|
273
|
+
{
|
|
274
|
+
"_meta": {
|
|
275
|
+
"sessionKey": "agent:main:main",
|
|
276
|
+
"sessionLabel": "support inbox",
|
|
277
|
+
"resetSession": true
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
Learn more about session keys at [/concepts/session](/concepts/session).
|
|
283
|
+
|
|
284
|
+
## Options
|
|
285
|
+
|
|
286
|
+
- `--url <url>`: Gateway WebSocket URL (defaults to gateway.remote.url when configured).
|
|
287
|
+
- `--token <token>`: Gateway auth token.
|
|
288
|
+
- `--token-file <path>`: read Gateway auth token from file.
|
|
289
|
+
- `--password <password>`: Gateway auth password.
|
|
290
|
+
- `--password-file <path>`: read Gateway auth password from file.
|
|
291
|
+
- `--session <key>`: default session key.
|
|
292
|
+
- `--session-label <label>`: default session label to resolve.
|
|
293
|
+
- `--require-existing`: fail if the session key/label does not exist.
|
|
294
|
+
- `--reset-session`: reset the session key before first use.
|
|
295
|
+
- `--no-prefix-cwd`: do not prefix prompts with the working directory.
|
|
296
|
+
- `--provenance <off|meta|meta+receipt>`: include ACP provenance metadata or receipts.
|
|
297
|
+
- `--verbose, -v`: verbose logging to stderr.
|
|
298
|
+
|
|
299
|
+
Security note:
|
|
300
|
+
|
|
301
|
+
- `--token` and `--password` can be visible in local process listings on some systems.
|
|
302
|
+
- Prefer `--token-file`/`--password-file` or environment variables (`Durar_GATEWAY_TOKEN`, `Durar_GATEWAY_PASSWORD`).
|
|
303
|
+
- Gateway auth resolution follows the shared contract used by other Gateway clients:
|
|
304
|
+
- local mode: env (`Durar_GATEWAY_*`) -> `gateway.auth.*` -> `gateway.remote.*` fallback only when `gateway.auth.*` is unset (configured-but-unresolved local SecretRefs fail closed)
|
|
305
|
+
- remote mode: `gateway.remote.*` with env/config fallback per remote precedence rules
|
|
306
|
+
- `--url` is override-safe and does not reuse implicit config/env credentials; pass explicit `--token`/`--password` (or file variants)
|
|
307
|
+
- ACP runtime backend child processes receive `Durar_SHELL=acp`, which can be used for context-specific shell/profile rules.
|
|
308
|
+
- `Durar acp client` sets `Durar_SHELL=acp-client` on the spawned bridge process.
|
|
309
|
+
|
|
310
|
+
### `acp client` options
|
|
311
|
+
|
|
312
|
+
- `--cwd <dir>`: working directory for the ACP session.
|
|
313
|
+
- `--server <command>`: ACP server command (default: `Durar`).
|
|
314
|
+
- `--server-args <args...>`: extra arguments passed to the ACP server.
|
|
315
|
+
- `--server-verbose`: enable verbose logging on the ACP server.
|
|
316
|
+
- `--verbose, -v`: verbose client logging.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "CLI reference for `Durar agent` (send one agent turn via the Gateway)"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want to run one agent turn from scripts (optionally deliver reply)
|
|
5
|
+
title: "agent"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# `Durar agent`
|
|
9
|
+
|
|
10
|
+
Run an agent turn via the Gateway (use `--local` for embedded).
|
|
11
|
+
Use `--agent <id>` to target a configured agent directly.
|
|
12
|
+
|
|
13
|
+
Pass at least one session selector:
|
|
14
|
+
|
|
15
|
+
- `--to <dest>`
|
|
16
|
+
- `--session-id <id>`
|
|
17
|
+
- `--agent <id>`
|
|
18
|
+
|
|
19
|
+
Related:
|
|
20
|
+
|
|
21
|
+
- Agent send tool: [Agent send](/tools/agent-send)
|
|
22
|
+
|
|
23
|
+
## Options
|
|
24
|
+
|
|
25
|
+
- `-m, --message <text>`: required message body
|
|
26
|
+
- `-t, --to <dest>`: recipient used to derive the session key
|
|
27
|
+
- `--session-id <id>`: explicit session id
|
|
28
|
+
- `--agent <id>`: agent id; overrides routing bindings
|
|
29
|
+
- `--thinking <off|minimal|low|medium|high|xhigh>`: agent thinking level
|
|
30
|
+
- `--verbose <on|off>`: persist verbose level for the session
|
|
31
|
+
- `--channel <channel>`: delivery channel; omit to use the main session channel
|
|
32
|
+
- `--reply-to <target>`: delivery target override
|
|
33
|
+
- `--reply-channel <channel>`: delivery channel override
|
|
34
|
+
- `--reply-account <id>`: delivery account override
|
|
35
|
+
- `--local`: run the embedded agent directly (after plugin registry preload)
|
|
36
|
+
- `--deliver`: send the reply back to the selected channel/target
|
|
37
|
+
- `--timeout <seconds>`: override agent timeout (default 600 or config value)
|
|
38
|
+
- `--json`: output JSON
|
|
39
|
+
|
|
40
|
+
## Examples
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
Durar agent --to +15555550123 --message "status update" --deliver
|
|
44
|
+
Durar agent --agent ops --message "Summarize logs"
|
|
45
|
+
Durar agent --session-id 1234 --message "Summarize inbox" --thinking medium
|
|
46
|
+
Durar agent --to +15555550123 --message "Trace logs" --verbose on --json
|
|
47
|
+
Durar agent --agent ops --message "Generate report" --deliver --reply-channel slack --reply-to "#reports"
|
|
48
|
+
Durar agent --agent ops --message "Run locally" --local
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Notes
|
|
52
|
+
|
|
53
|
+
- Gateway mode falls back to the embedded agent when the Gateway request fails. Use `--local` to force embedded execution up front.
|
|
54
|
+
- `--local` still preloads the plugin registry first, so plugin-provided providers, tools, and channels stay available during embedded runs.
|
|
55
|
+
- `--channel`, `--reply-channel`, and `--reply-account` affect reply delivery, not session routing.
|
|
56
|
+
- When this command triggers `models.json` regeneration, SecretRef-managed provider credentials are persisted as non-secret markers (for example env var names, `secretref-env:ENV_VAR_NAME`, or `secretref-managed`), not resolved secret plaintext.
|
|
57
|
+
- Marker writes are source-authoritative: Durar persists markers from the active source config snapshot, not from resolved runtime secret values.
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "CLI reference for `Durar agents` (list/add/delete/bindings/bind/unbind/set identity)"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want multiple isolated agents (workspaces + routing + auth)
|
|
5
|
+
title: "agents"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# `Durar agents`
|
|
9
|
+
|
|
10
|
+
Manage isolated agents (workspaces + auth + routing).
|
|
11
|
+
|
|
12
|
+
Related:
|
|
13
|
+
|
|
14
|
+
- Multi-agent routing: [Multi-Agent Routing](/concepts/multi-agent)
|
|
15
|
+
- Agent workspace: [Agent workspace](/concepts/agent-workspace)
|
|
16
|
+
- Skill visibility config: [Skills config](/tools/skills-config)
|
|
17
|
+
|
|
18
|
+
## Examples
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
Durar agents list
|
|
22
|
+
Durar agents list --bindings
|
|
23
|
+
Durar agents add work --workspace ~/.Durar/workspace-work
|
|
24
|
+
Durar agents add ops --workspace ~/.Durar/workspace-ops --bind telegram:ops --non-interactive
|
|
25
|
+
Durar agents bindings
|
|
26
|
+
Durar agents bind --agent work --bind telegram:ops
|
|
27
|
+
Durar agents unbind --agent work --bind telegram:ops
|
|
28
|
+
Durar agents set-identity --workspace ~/.Durar/workspace --from-identity
|
|
29
|
+
Durar agents set-identity --agent main --avatar avatars/Durar.png
|
|
30
|
+
Durar agents delete work
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Routing bindings
|
|
34
|
+
|
|
35
|
+
Use routing bindings to pin inbound channel traffic to a specific agent.
|
|
36
|
+
|
|
37
|
+
If you also want different visible skills per agent, configure
|
|
38
|
+
`agents.defaults.skills` and `agents.list[].skills` in `Durar.json`. See
|
|
39
|
+
[Skills config](/tools/skills-config) and
|
|
40
|
+
[Configuration Reference](/gateway/configuration-reference#agentsdefaultsskills).
|
|
41
|
+
|
|
42
|
+
List bindings:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
Durar agents bindings
|
|
46
|
+
Durar agents bindings --agent work
|
|
47
|
+
Durar agents bindings --json
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Add bindings:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
Durar agents bind --agent work --bind telegram:ops --bind discord:guild-a
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
If you omit `accountId` (`--bind <channel>`), Durar resolves it from channel defaults and plugin setup hooks when available.
|
|
57
|
+
|
|
58
|
+
If you omit `--agent` for `bind` or `unbind`, Durar targets the current default agent.
|
|
59
|
+
|
|
60
|
+
### Binding scope behavior
|
|
61
|
+
|
|
62
|
+
- A binding without `accountId` matches the channel default account only.
|
|
63
|
+
- `accountId: "*"` is the channel-wide fallback (all accounts) and is less specific than an explicit account binding.
|
|
64
|
+
- If the same agent already has a matching channel binding without `accountId`, and you later bind with an explicit or resolved `accountId`, Durar upgrades that existing binding in place instead of adding a duplicate.
|
|
65
|
+
|
|
66
|
+
Example:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# initial channel-only binding
|
|
70
|
+
Durar agents bind --agent work --bind telegram
|
|
71
|
+
|
|
72
|
+
# later upgrade to account-scoped binding
|
|
73
|
+
Durar agents bind --agent work --bind telegram:ops
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
After the upgrade, routing for that binding is scoped to `telegram:ops`. If you also want default-account routing, add it explicitly (for example `--bind telegram:default`).
|
|
77
|
+
|
|
78
|
+
Remove bindings:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
Durar agents unbind --agent work --bind telegram:ops
|
|
82
|
+
Durar agents unbind --agent work --all
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
`unbind` accepts either `--all` or one or more `--bind` values, not both.
|
|
86
|
+
|
|
87
|
+
## Command surface
|
|
88
|
+
|
|
89
|
+
### `agents`
|
|
90
|
+
|
|
91
|
+
Running `Durar agents` with no subcommand is equivalent to `Durar agents list`.
|
|
92
|
+
|
|
93
|
+
### `agents list`
|
|
94
|
+
|
|
95
|
+
Options:
|
|
96
|
+
|
|
97
|
+
- `--json`
|
|
98
|
+
- `--bindings`: include full routing rules, not only per-agent counts/summaries
|
|
99
|
+
|
|
100
|
+
### `agents add [name]`
|
|
101
|
+
|
|
102
|
+
Options:
|
|
103
|
+
|
|
104
|
+
- `--workspace <dir>`
|
|
105
|
+
- `--model <id>`
|
|
106
|
+
- `--agent-dir <dir>`
|
|
107
|
+
- `--bind <channel[:accountId]>` (repeatable)
|
|
108
|
+
- `--non-interactive`
|
|
109
|
+
- `--json`
|
|
110
|
+
|
|
111
|
+
Notes:
|
|
112
|
+
|
|
113
|
+
- Passing any explicit add flags switches the command into the non-interactive path.
|
|
114
|
+
- Non-interactive mode requires both an agent name and `--workspace`.
|
|
115
|
+
- `main` is reserved and cannot be used as the new agent id.
|
|
116
|
+
|
|
117
|
+
### `agents bindings`
|
|
118
|
+
|
|
119
|
+
Options:
|
|
120
|
+
|
|
121
|
+
- `--agent <id>`
|
|
122
|
+
- `--json`
|
|
123
|
+
|
|
124
|
+
### `agents bind`
|
|
125
|
+
|
|
126
|
+
Options:
|
|
127
|
+
|
|
128
|
+
- `--agent <id>` (defaults to the current default agent)
|
|
129
|
+
- `--bind <channel[:accountId]>` (repeatable)
|
|
130
|
+
- `--json`
|
|
131
|
+
|
|
132
|
+
### `agents unbind`
|
|
133
|
+
|
|
134
|
+
Options:
|
|
135
|
+
|
|
136
|
+
- `--agent <id>` (defaults to the current default agent)
|
|
137
|
+
- `--bind <channel[:accountId]>` (repeatable)
|
|
138
|
+
- `--all`
|
|
139
|
+
- `--json`
|
|
140
|
+
|
|
141
|
+
### `agents delete <id>`
|
|
142
|
+
|
|
143
|
+
Options:
|
|
144
|
+
|
|
145
|
+
- `--force`
|
|
146
|
+
- `--json`
|
|
147
|
+
|
|
148
|
+
Notes:
|
|
149
|
+
|
|
150
|
+
- `main` cannot be deleted.
|
|
151
|
+
- Without `--force`, interactive confirmation is required.
|
|
152
|
+
- Workspace, agent state, and session transcript directories are moved to Trash, not hard-deleted.
|
|
153
|
+
|
|
154
|
+
## Identity files
|
|
155
|
+
|
|
156
|
+
Each agent workspace can include an `IDENTITY.md` at the workspace root:
|
|
157
|
+
|
|
158
|
+
- Example path: `~/.Durar/workspace/IDENTITY.md`
|
|
159
|
+
- `set-identity --from-identity` reads from the workspace root (or an explicit `--identity-file`)
|
|
160
|
+
|
|
161
|
+
Avatar paths resolve relative to the workspace root.
|
|
162
|
+
|
|
163
|
+
## Set identity
|
|
164
|
+
|
|
165
|
+
`set-identity` writes fields into `agents.list[].identity`:
|
|
166
|
+
|
|
167
|
+
- `name`
|
|
168
|
+
- `theme`
|
|
169
|
+
- `emoji`
|
|
170
|
+
- `avatar` (workspace-relative path, http(s) URL, or data URI)
|
|
171
|
+
|
|
172
|
+
Options:
|
|
173
|
+
|
|
174
|
+
- `--agent <id>`
|
|
175
|
+
- `--workspace <dir>`
|
|
176
|
+
- `--identity-file <path>`
|
|
177
|
+
- `--from-identity`
|
|
178
|
+
- `--name <name>`
|
|
179
|
+
- `--theme <theme>`
|
|
180
|
+
- `--emoji <emoji>`
|
|
181
|
+
- `--avatar <value>`
|
|
182
|
+
- `--json`
|
|
183
|
+
|
|
184
|
+
Notes:
|
|
185
|
+
|
|
186
|
+
- `--agent` or `--workspace` can be used to select the target agent.
|
|
187
|
+
- If you rely on `--workspace` and multiple agents share that workspace, the command fails and asks you to pass `--agent`.
|
|
188
|
+
- When no explicit identity fields are provided, the command reads identity data from `IDENTITY.md`.
|
|
189
|
+
|
|
190
|
+
Load from `IDENTITY.md`:
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
Durar agents set-identity --workspace ~/.Durar/workspace --from-identity
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Override fields explicitly:
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
Durar agents set-identity --agent main --name "Durar" --emoji "🦞" --avatar avatars/Durar.png
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
Config sample:
|
|
203
|
+
|
|
204
|
+
```json5
|
|
205
|
+
{
|
|
206
|
+
agents: {
|
|
207
|
+
list: [
|
|
208
|
+
{
|
|
209
|
+
id: "main",
|
|
210
|
+
identity: {
|
|
211
|
+
name: "Durar",
|
|
212
|
+
theme: "space lobster",
|
|
213
|
+
emoji: "🦞",
|
|
214
|
+
avatar: "avatars/Durar.png",
|
|
215
|
+
},
|
|
216
|
+
},
|
|
217
|
+
],
|
|
218
|
+
},
|
|
219
|
+
}
|
|
220
|
+
```
|