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,136 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "CLI reference for `Durar approvals` (exec approvals for gateway or node hosts)"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want to edit exec approvals from the CLI
|
|
5
|
+
- You need to manage allowlists on gateway or node hosts
|
|
6
|
+
title: "approvals"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# `Durar approvals`
|
|
10
|
+
|
|
11
|
+
Manage exec approvals for the **local host**, **gateway host**, or a **node host**.
|
|
12
|
+
By default, commands target the local approvals file on disk. Use `--gateway` to target the gateway, or `--node` to target a specific node.
|
|
13
|
+
|
|
14
|
+
Alias: `Durar exec-approvals`
|
|
15
|
+
|
|
16
|
+
Related:
|
|
17
|
+
|
|
18
|
+
- Exec approvals: [Exec approvals](/tools/exec-approvals)
|
|
19
|
+
- Nodes: [Nodes](/nodes)
|
|
20
|
+
|
|
21
|
+
## Common commands
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
Durar approvals get
|
|
25
|
+
Durar approvals get --node <id|name|ip>
|
|
26
|
+
Durar approvals get --gateway
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
`Durar approvals get` now shows the effective exec policy for local, gateway, and node targets:
|
|
30
|
+
|
|
31
|
+
- requested `tools.exec` policy
|
|
32
|
+
- host approvals-file policy
|
|
33
|
+
- effective result after precedence rules are applied
|
|
34
|
+
|
|
35
|
+
Precedence is intentional:
|
|
36
|
+
|
|
37
|
+
- the host approvals file is the enforceable source of truth
|
|
38
|
+
- requested `tools.exec` policy can narrow or broaden intent, but the effective result is still derived from the host rules
|
|
39
|
+
- `--node` combines the node host approvals file with gateway `tools.exec` policy, because both still apply at runtime
|
|
40
|
+
- if gateway config is unavailable, the CLI falls back to the node approvals snapshot and notes that the final runtime policy could not be computed
|
|
41
|
+
|
|
42
|
+
## Replace approvals from a file
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
Durar approvals set --file ./exec-approvals.json
|
|
46
|
+
Durar approvals set --stdin <<'EOF'
|
|
47
|
+
{ version: 1, defaults: { security: "full", ask: "off" } }
|
|
48
|
+
EOF
|
|
49
|
+
Durar approvals set --node <id|name|ip> --file ./exec-approvals.json
|
|
50
|
+
Durar approvals set --gateway --file ./exec-approvals.json
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
`set` accepts JSON5, not only strict JSON. Use either `--file` or `--stdin`, not both.
|
|
54
|
+
|
|
55
|
+
## "Never prompt" / YOLO example
|
|
56
|
+
|
|
57
|
+
For a host that should never stop on exec approvals, set the host approvals defaults to `full` + `off`:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
Durar approvals set --stdin <<'EOF'
|
|
61
|
+
{
|
|
62
|
+
version: 1,
|
|
63
|
+
defaults: {
|
|
64
|
+
security: "full",
|
|
65
|
+
ask: "off",
|
|
66
|
+
askFallback: "full"
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
EOF
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Node variant:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
Durar approvals set --node <id|name|ip> --stdin <<'EOF'
|
|
76
|
+
{
|
|
77
|
+
version: 1,
|
|
78
|
+
defaults: {
|
|
79
|
+
security: "full",
|
|
80
|
+
ask: "off",
|
|
81
|
+
askFallback: "full"
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
EOF
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
This changes the **host approvals file** only. To keep the requested Durar policy aligned, also set:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
Durar config set tools.exec.host gateway
|
|
91
|
+
Durar config set tools.exec.security full
|
|
92
|
+
Durar config set tools.exec.ask off
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Why `tools.exec.host=gateway` in this example:
|
|
96
|
+
|
|
97
|
+
- `host=auto` still means "sandbox when available, otherwise gateway".
|
|
98
|
+
- YOLO is about approvals, not routing.
|
|
99
|
+
- If you want host exec even when a sandbox is configured, make the host choice explicit with `gateway` or `/exec host=gateway`.
|
|
100
|
+
|
|
101
|
+
This matches the current host-default YOLO behavior. Tighten it if you want approvals.
|
|
102
|
+
|
|
103
|
+
## Allowlist helpers
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
Durar approvals allowlist add "~/Projects/**/bin/rg"
|
|
107
|
+
Durar approvals allowlist add --agent main --node <id|name|ip> "/usr/bin/uptime"
|
|
108
|
+
Durar approvals allowlist add --agent "*" "/usr/bin/uname"
|
|
109
|
+
|
|
110
|
+
Durar approvals allowlist remove "~/Projects/**/bin/rg"
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Common options
|
|
114
|
+
|
|
115
|
+
`get`, `set`, and `allowlist add|remove` all support:
|
|
116
|
+
|
|
117
|
+
- `--node <id|name|ip>`
|
|
118
|
+
- `--gateway`
|
|
119
|
+
- shared node RPC options: `--url`, `--token`, `--timeout`, `--json`
|
|
120
|
+
|
|
121
|
+
Targeting notes:
|
|
122
|
+
|
|
123
|
+
- no target flags means the local approvals file on disk
|
|
124
|
+
- `--gateway` targets the gateway host approvals file
|
|
125
|
+
- `--node` targets one node host after resolving id, name, IP, or id prefix
|
|
126
|
+
|
|
127
|
+
`allowlist add|remove` also supports:
|
|
128
|
+
|
|
129
|
+
- `--agent <id>` (defaults to `*`)
|
|
130
|
+
|
|
131
|
+
## Notes
|
|
132
|
+
|
|
133
|
+
- `--node` uses the same resolver as `Durar nodes` (id, name, ip, or id prefix).
|
|
134
|
+
- `--agent` defaults to `"*"`, which applies to all agents.
|
|
135
|
+
- The node host must advertise `system.execApprovals.get/set` (macOS app or headless node host).
|
|
136
|
+
- Approvals files are stored per host at `~/.Durar/exec-approvals.json`.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "CLI reference for `Durar backup` (create local backup archives)"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want a first-class backup archive for local Durar state
|
|
5
|
+
- You want to preview which paths would be included before reset or uninstall
|
|
6
|
+
title: "backup"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# `Durar backup`
|
|
10
|
+
|
|
11
|
+
Create a local backup archive for Durar state, config, auth profiles, channel/provider credentials, sessions, and optionally workspaces.
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
Durar backup create
|
|
15
|
+
Durar backup create --output ~/Backups
|
|
16
|
+
Durar backup create --dry-run --json
|
|
17
|
+
Durar backup create --verify
|
|
18
|
+
Durar backup create --no-include-workspace
|
|
19
|
+
Durar backup create --only-config
|
|
20
|
+
Durar backup verify ./2026-03-09T00-00-00.000Z-Durar-backup.tar.gz
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Notes
|
|
24
|
+
|
|
25
|
+
- The archive includes a `manifest.json` file with the resolved source paths and archive layout.
|
|
26
|
+
- Default output is a timestamped `.tar.gz` archive in the current working directory.
|
|
27
|
+
- If the current working directory is inside a backed-up source tree, Durar falls back to your home directory for the default archive location.
|
|
28
|
+
- Existing archive files are never overwritten.
|
|
29
|
+
- Output paths inside the source state/workspace trees are rejected to avoid self-inclusion.
|
|
30
|
+
- `Durar backup verify <archive>` validates that the archive contains exactly one root manifest, rejects traversal-style archive paths, and checks that every manifest-declared payload exists in the tarball.
|
|
31
|
+
- `Durar backup create --verify` runs that validation immediately after writing the archive.
|
|
32
|
+
- `Durar backup create --only-config` backs up just the active JSON config file.
|
|
33
|
+
|
|
34
|
+
## What gets backed up
|
|
35
|
+
|
|
36
|
+
`Durar backup create` plans backup sources from your local Durar install:
|
|
37
|
+
|
|
38
|
+
- The state directory returned by Durar's local state resolver, usually `~/.Durar`
|
|
39
|
+
- The active config file path
|
|
40
|
+
- The resolved `credentials/` directory when it exists outside the state directory
|
|
41
|
+
- Workspace directories discovered from the current config, unless you pass `--no-include-workspace`
|
|
42
|
+
|
|
43
|
+
Model auth profiles are already part of the state directory under
|
|
44
|
+
`agents/<agentId>/agent/auth-profiles.json`, so they are normally covered by the
|
|
45
|
+
state backup entry.
|
|
46
|
+
|
|
47
|
+
If you use `--only-config`, Durar skips state, credentials-directory, and workspace discovery and archives only the active config file path.
|
|
48
|
+
|
|
49
|
+
Durar canonicalizes paths before building the archive. If config, the
|
|
50
|
+
credentials directory, or a workspace already live inside the state directory,
|
|
51
|
+
they are not duplicated as separate top-level backup sources. Missing paths are
|
|
52
|
+
skipped.
|
|
53
|
+
|
|
54
|
+
The archive payload stores file contents from those source trees, and the embedded `manifest.json` records the resolved absolute source paths plus the archive layout used for each asset.
|
|
55
|
+
|
|
56
|
+
## Invalid config behavior
|
|
57
|
+
|
|
58
|
+
`Durar backup` intentionally bypasses the normal config preflight so it can still help during recovery. Because workspace discovery depends on a valid config, `Durar backup create` now fails fast when the config file exists but is invalid and workspace backup is still enabled.
|
|
59
|
+
|
|
60
|
+
If you still want a partial backup in that situation, rerun:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
Durar backup create --no-include-workspace
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
That keeps state, config, and the external credentials directory in scope while
|
|
67
|
+
skipping workspace discovery entirely.
|
|
68
|
+
|
|
69
|
+
If you only need a copy of the config file itself, `--only-config` also works when the config is malformed because it does not rely on parsing the config for workspace discovery.
|
|
70
|
+
|
|
71
|
+
## Size and performance
|
|
72
|
+
|
|
73
|
+
Durar does not enforce a built-in maximum backup size or per-file size limit.
|
|
74
|
+
|
|
75
|
+
Practical limits come from the local machine and destination filesystem:
|
|
76
|
+
|
|
77
|
+
- Available space for the temporary archive write plus the final archive
|
|
78
|
+
- Time to walk large workspace trees and compress them into a `.tar.gz`
|
|
79
|
+
- Time to rescan the archive if you use `Durar backup create --verify` or run `Durar backup verify`
|
|
80
|
+
- Filesystem behavior at the destination path. Durar prefers a no-overwrite hard-link publish step and falls back to exclusive copy when hard links are unsupported
|
|
81
|
+
|
|
82
|
+
Large workspaces are usually the main driver of archive size. If you want a smaller or faster backup, use `--no-include-workspace`.
|
|
83
|
+
|
|
84
|
+
For the smallest archive, use `--only-config`.
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "CLI reference for `Durar browser` (lifecycle, profiles, tabs, actions, state, and debugging)"
|
|
3
|
+
read_when:
|
|
4
|
+
- You use `Durar browser` and want examples for common tasks
|
|
5
|
+
- You want to control a browser running on another machine via a node host
|
|
6
|
+
- You want to attach to your local signed-in Chrome via Chrome MCP
|
|
7
|
+
title: "browser"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# `Durar browser`
|
|
11
|
+
|
|
12
|
+
Manage Durar's browser control surface and run browser actions (lifecycle, profiles, tabs, snapshots, screenshots, navigation, input, state emulation, and debugging).
|
|
13
|
+
|
|
14
|
+
Related:
|
|
15
|
+
|
|
16
|
+
- Browser tool + API: [Browser tool](/tools/browser)
|
|
17
|
+
|
|
18
|
+
## Common flags
|
|
19
|
+
|
|
20
|
+
- `--url <gatewayWsUrl>`: Gateway WebSocket URL (defaults to config).
|
|
21
|
+
- `--token <token>`: Gateway token (if required).
|
|
22
|
+
- `--timeout <ms>`: request timeout (ms).
|
|
23
|
+
- `--expect-final`: wait for a final Gateway response.
|
|
24
|
+
- `--browser-profile <name>`: choose a browser profile (default from config).
|
|
25
|
+
- `--json`: machine-readable output (where supported).
|
|
26
|
+
|
|
27
|
+
## Quick start (local)
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
Durar browser profiles
|
|
31
|
+
Durar browser --browser-profile Durar start
|
|
32
|
+
Durar browser --browser-profile Durar open https://example.com
|
|
33
|
+
Durar browser --browser-profile Durar snapshot
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Lifecycle
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
Durar browser status
|
|
40
|
+
Durar browser start
|
|
41
|
+
Durar browser stop
|
|
42
|
+
Durar browser --browser-profile Durar reset-profile
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Notes:
|
|
46
|
+
|
|
47
|
+
- For `attachOnly` and remote CDP profiles, `Durar browser stop` closes the
|
|
48
|
+
active control session and clears temporary emulation overrides even when
|
|
49
|
+
Durar did not launch the browser process itself.
|
|
50
|
+
- For local managed profiles, `Durar browser stop` stops the spawned browser
|
|
51
|
+
process.
|
|
52
|
+
|
|
53
|
+
## If the command is missing
|
|
54
|
+
|
|
55
|
+
If `Durar browser` is an unknown command, check `plugins.allow` in
|
|
56
|
+
`~/.Durar/Durar.json`.
|
|
57
|
+
|
|
58
|
+
When `plugins.allow` is present, the bundled browser plugin must be listed
|
|
59
|
+
explicitly:
|
|
60
|
+
|
|
61
|
+
```json5
|
|
62
|
+
{
|
|
63
|
+
plugins: {
|
|
64
|
+
allow: ["telegram", "browser"],
|
|
65
|
+
},
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
`browser.enabled=true` does not restore the CLI subcommand when the plugin
|
|
70
|
+
allowlist excludes `browser`.
|
|
71
|
+
|
|
72
|
+
Related: [Browser tool](/tools/browser#missing-browser-command-or-tool)
|
|
73
|
+
|
|
74
|
+
## Profiles
|
|
75
|
+
|
|
76
|
+
Profiles are named browser routing configs. In practice:
|
|
77
|
+
|
|
78
|
+
- `Durar`: launches or attaches to a dedicated Durar-managed Chrome instance (isolated user data dir).
|
|
79
|
+
- `user`: controls your existing signed-in Chrome session via Chrome DevTools MCP.
|
|
80
|
+
- custom CDP profiles: point at a local or remote CDP endpoint.
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
Durar browser profiles
|
|
84
|
+
Durar browser create-profile --name work --color "#FF5A36"
|
|
85
|
+
Durar browser create-profile --name chrome-live --driver existing-session
|
|
86
|
+
Durar browser create-profile --name remote --cdp-url https://browser-host.example.com
|
|
87
|
+
Durar browser delete-profile --name work
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Use a specific profile:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
Durar browser --browser-profile work tabs
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Tabs
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
Durar browser tabs
|
|
100
|
+
Durar browser tab new
|
|
101
|
+
Durar browser tab select 2
|
|
102
|
+
Durar browser tab close 2
|
|
103
|
+
Durar browser open https://docs.Durar.ai
|
|
104
|
+
Durar browser focus <targetId>
|
|
105
|
+
Durar browser close <targetId>
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Snapshot / screenshot / actions
|
|
109
|
+
|
|
110
|
+
Snapshot:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
Durar browser snapshot
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Screenshot:
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
Durar browser screenshot
|
|
120
|
+
Durar browser screenshot --full-page
|
|
121
|
+
Durar browser screenshot --ref e12
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Notes:
|
|
125
|
+
|
|
126
|
+
- `--full-page` is for page captures only; it cannot be combined with `--ref`
|
|
127
|
+
or `--element`.
|
|
128
|
+
- `existing-session` / `user` profiles support page screenshots and `--ref`
|
|
129
|
+
screenshots from snapshot output, but not CSS `--element` screenshots.
|
|
130
|
+
|
|
131
|
+
Navigate/click/type (ref-based UI automation):
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
Durar browser navigate https://example.com
|
|
135
|
+
Durar browser click <ref>
|
|
136
|
+
Durar browser type <ref> "hello"
|
|
137
|
+
Durar browser press Enter
|
|
138
|
+
Durar browser hover <ref>
|
|
139
|
+
Durar browser scrollintoview <ref>
|
|
140
|
+
Durar browser drag <startRef> <endRef>
|
|
141
|
+
Durar browser select <ref> OptionA OptionB
|
|
142
|
+
Durar browser fill --fields '[{"ref":"1","value":"Ada"}]'
|
|
143
|
+
Durar browser wait --text "Done"
|
|
144
|
+
Durar browser evaluate --fn '(el) => el.textContent' --ref <ref>
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
File + dialog helpers:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
Durar browser upload /tmp/Durar/uploads/file.pdf --ref <ref>
|
|
151
|
+
Durar browser waitfordownload
|
|
152
|
+
Durar browser download <ref> report.pdf
|
|
153
|
+
Durar browser dialog --accept
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## State and storage
|
|
157
|
+
|
|
158
|
+
Viewport + emulation:
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
Durar browser resize 1280 720
|
|
162
|
+
Durar browser set viewport 1280 720
|
|
163
|
+
Durar browser set offline on
|
|
164
|
+
Durar browser set media dark
|
|
165
|
+
Durar browser set timezone Europe/London
|
|
166
|
+
Durar browser set locale en-GB
|
|
167
|
+
Durar browser set geo 51.5074 -0.1278 --accuracy 25
|
|
168
|
+
Durar browser set device "iPhone 14"
|
|
169
|
+
Durar browser set headers '{"x-test":"1"}'
|
|
170
|
+
Durar browser set credentials myuser mypass
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
Cookies + storage:
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
Durar browser cookies
|
|
177
|
+
Durar browser cookies set session abc123 --url https://example.com
|
|
178
|
+
Durar browser cookies clear
|
|
179
|
+
Durar browser storage local get
|
|
180
|
+
Durar browser storage local set token abc123
|
|
181
|
+
Durar browser storage session clear
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## Debugging
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
Durar browser console --level error
|
|
188
|
+
Durar browser pdf
|
|
189
|
+
Durar browser responsebody "**/api"
|
|
190
|
+
Durar browser highlight <ref>
|
|
191
|
+
Durar browser errors --clear
|
|
192
|
+
Durar browser requests --filter api
|
|
193
|
+
Durar browser trace start
|
|
194
|
+
Durar browser trace stop --out trace.zip
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## Existing Chrome via MCP
|
|
198
|
+
|
|
199
|
+
Use the built-in `user` profile, or create your own `existing-session` profile:
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
Durar browser --browser-profile user tabs
|
|
203
|
+
Durar browser create-profile --name chrome-live --driver existing-session
|
|
204
|
+
Durar browser create-profile --name brave-live --driver existing-session --user-data-dir "~/Library/Application Support/BraveSoftware/Brave-Browser"
|
|
205
|
+
Durar browser --browser-profile chrome-live tabs
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
This path is host-only. For Docker, headless servers, Browserless, or other remote setups, use a CDP profile instead.
|
|
209
|
+
|
|
210
|
+
Current existing-session limits:
|
|
211
|
+
|
|
212
|
+
- snapshot-driven actions use refs, not CSS selectors
|
|
213
|
+
- `click` is left-click only
|
|
214
|
+
- `type` does not support `slowly=true`
|
|
215
|
+
- `press` does not support `delayMs`
|
|
216
|
+
- `hover`, `scrollintoview`, `drag`, `select`, `fill`, and `evaluate` reject
|
|
217
|
+
per-call timeout overrides
|
|
218
|
+
- `select` supports one value only
|
|
219
|
+
- `wait --load networkidle` is not supported
|
|
220
|
+
- file uploads require `--ref` / `--input-ref`, do not support CSS
|
|
221
|
+
`--element`, and currently support one file at a time
|
|
222
|
+
- dialog hooks do not support `--timeout`
|
|
223
|
+
- screenshots support page captures and `--ref`, but not CSS `--element`
|
|
224
|
+
- `responsebody`, download interception, PDF export, and batch actions still
|
|
225
|
+
require a managed browser or raw CDP profile
|
|
226
|
+
|
|
227
|
+
## Remote browser control (node host proxy)
|
|
228
|
+
|
|
229
|
+
If the Gateway runs on a different machine than the browser, run a **node host** on the machine that has Chrome/Brave/Edge/Chromium. The Gateway will proxy browser actions to that node (no separate browser control server required).
|
|
230
|
+
|
|
231
|
+
Use `gateway.nodes.browser.mode` to control auto-routing and `gateway.nodes.browser.node` to pin a specific node if multiple are connected.
|
|
232
|
+
|
|
233
|
+
Security + remote setup: [Browser tool](/tools/browser), [Remote access](/gateway/remote), [Tailscale](/gateway/tailscale), [Security](/gateway/security)
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "CLI reference for `Durar channels` (accounts, status, login/logout, logs)"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want to add/remove channel accounts (WhatsApp/Telegram/Discord/Google Chat/Slack/Mattermost (plugin)/Signal/iMessage/Matrix)
|
|
5
|
+
- You want to check channel status or tail channel logs
|
|
6
|
+
title: "channels"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# `Durar channels`
|
|
10
|
+
|
|
11
|
+
Manage chat channel accounts and their runtime status on the Gateway.
|
|
12
|
+
|
|
13
|
+
Related docs:
|
|
14
|
+
|
|
15
|
+
- Channel guides: [Channels](/channels/index)
|
|
16
|
+
- Gateway configuration: [Configuration](/gateway/configuration)
|
|
17
|
+
|
|
18
|
+
## Common commands
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
Durar channels list
|
|
22
|
+
Durar channels status
|
|
23
|
+
Durar channels capabilities
|
|
24
|
+
Durar channels capabilities --channel discord --target channel:123
|
|
25
|
+
Durar channels resolve --channel slack "#general" "@jane"
|
|
26
|
+
Durar channels logs --channel all
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Status / capabilities / resolve / logs
|
|
30
|
+
|
|
31
|
+
- `channels status`: `--probe`, `--timeout <ms>`, `--json`
|
|
32
|
+
- `channels capabilities`: `--channel <name>`, `--account <id>` (only with `--channel`), `--target <dest>`, `--timeout <ms>`, `--json`
|
|
33
|
+
- `channels resolve`: `<entries...>`, `--channel <name>`, `--account <id>`, `--kind <auto|user|group>`, `--json`
|
|
34
|
+
- `channels logs`: `--channel <name|all>`, `--lines <n>`, `--json`
|
|
35
|
+
|
|
36
|
+
`channels status --probe` is the live path: on a reachable gateway it runs per-account
|
|
37
|
+
`probeAccount` and optional `auditAccount` checks, so output can include transport
|
|
38
|
+
state plus probe results such as `works`, `probe failed`, `audit ok`, or `audit failed`.
|
|
39
|
+
If the gateway is unreachable, `channels status` falls back to config-only summaries
|
|
40
|
+
instead of live probe output.
|
|
41
|
+
|
|
42
|
+
## Add / remove accounts
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
Durar channels add --channel telegram --token <bot-token>
|
|
46
|
+
Durar channels add --channel nostr --private-key "$NOSTR_PRIVATE_KEY"
|
|
47
|
+
Durar channels remove --channel telegram --delete
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Tip: `Durar channels add --help` shows per-channel flags (token, private key, app token, signal-cli paths, etc).
|
|
51
|
+
|
|
52
|
+
Common non-interactive add surfaces include:
|
|
53
|
+
|
|
54
|
+
- bot-token channels: `--token`, `--bot-token`, `--app-token`, `--token-file`
|
|
55
|
+
- Signal/iMessage transport fields: `--signal-number`, `--cli-path`, `--http-url`, `--http-host`, `--http-port`, `--db-path`, `--service`, `--region`
|
|
56
|
+
- Google Chat fields: `--webhook-path`, `--webhook-url`, `--audience-type`, `--audience`
|
|
57
|
+
- Matrix fields: `--homeserver`, `--user-id`, `--access-token`, `--password`, `--device-name`, `--initial-sync-limit`
|
|
58
|
+
- Nostr fields: `--private-key`, `--relay-urls`
|
|
59
|
+
- Tlon fields: `--ship`, `--url`, `--code`, `--group-channels`, `--dm-allowlist`, `--auto-discover-channels`
|
|
60
|
+
- `--use-env` for default-account env-backed auth where supported
|
|
61
|
+
|
|
62
|
+
When you run `Durar channels add` without flags, the interactive wizard can prompt:
|
|
63
|
+
|
|
64
|
+
- account ids per selected channel
|
|
65
|
+
- optional display names for those accounts
|
|
66
|
+
- `Bind configured channel accounts to agents now?`
|
|
67
|
+
|
|
68
|
+
If you confirm bind now, the wizard asks which agent should own each configured channel account and writes account-scoped routing bindings.
|
|
69
|
+
|
|
70
|
+
You can also manage the same routing rules later with `Durar agents bindings`, `Durar agents bind`, and `Durar agents unbind` (see [agents](/cli/agents)).
|
|
71
|
+
|
|
72
|
+
When you add a non-default account to a channel that is still using single-account top-level settings, Durar promotes account-scoped top-level values into the channel's account map before writing the new account. Most channels land those values in `channels.<channel>.accounts.default`, but bundled channels can preserve an existing matching promoted account instead. Matrix is the current example: if one named account already exists, or `defaultAccount` points at an existing named account, promotion preserves that account instead of creating a new `accounts.default`.
|
|
73
|
+
|
|
74
|
+
Routing behavior stays consistent:
|
|
75
|
+
|
|
76
|
+
- Existing channel-only bindings (no `accountId`) continue to match the default account.
|
|
77
|
+
- `channels add` does not auto-create or rewrite bindings in non-interactive mode.
|
|
78
|
+
- Interactive setup can optionally add account-scoped bindings.
|
|
79
|
+
|
|
80
|
+
If your config was already in a mixed state (named accounts present and top-level single-account values still set), run `Durar doctor --fix` to move account-scoped values into the promoted account chosen for that channel. Most channels promote into `accounts.default`; Matrix can preserve an existing named/default target instead.
|
|
81
|
+
|
|
82
|
+
## Login / logout (interactive)
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
Durar channels login --channel whatsapp
|
|
86
|
+
Durar channels logout --channel whatsapp
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Notes:
|
|
90
|
+
|
|
91
|
+
- `channels login` supports `--verbose`.
|
|
92
|
+
- `channels login` / `logout` can infer the channel when only one supported login target is configured.
|
|
93
|
+
|
|
94
|
+
## Troubleshooting
|
|
95
|
+
|
|
96
|
+
- Run `Durar status --deep` for a broad probe.
|
|
97
|
+
- Use `Durar doctor` for guided fixes.
|
|
98
|
+
- `Durar channels list` prints `Claude: HTTP 403 ... user:profile` → usage snapshot needs the `user:profile` scope. Use `--no-usage`, or provide a claude.ai session key (`CLAUDE_WEB_SESSION_KEY` / `CLAUDE_WEB_COOKIE`), or re-auth via Claude CLI.
|
|
99
|
+
- `Durar channels status` falls back to config-only summaries when the gateway is unreachable. If a supported channel credential is configured via SecretRef but unavailable in the current command path, it reports that account as configured with degraded notes instead of showing it as not configured.
|
|
100
|
+
|
|
101
|
+
## Capabilities probe
|
|
102
|
+
|
|
103
|
+
Fetch provider capability hints (intents/scopes where available) plus static feature support:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
Durar channels capabilities
|
|
107
|
+
Durar channels capabilities --channel discord --target channel:123
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Notes:
|
|
111
|
+
|
|
112
|
+
- `--channel` is optional; omit it to list every channel (including extensions).
|
|
113
|
+
- `--account` is only valid with `--channel`.
|
|
114
|
+
- `--target` accepts `channel:<id>` or a raw numeric channel id and only applies to Discord.
|
|
115
|
+
- Probes are provider-specific: Discord intents + optional channel permissions; Slack bot + user scopes; Telegram bot flags + webhook; Signal daemon version; Microsoft Teams app token + Graph roles/scopes (annotated where known). Channels without probes report `Probe: unavailable`.
|
|
116
|
+
|
|
117
|
+
## Resolve names to IDs
|
|
118
|
+
|
|
119
|
+
Resolve channel/user names to IDs using the provider directory:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
Durar channels resolve --channel slack "#general" "@jane"
|
|
123
|
+
Durar channels resolve --channel discord "My Server/#support" "@someone"
|
|
124
|
+
Durar channels resolve --channel matrix "Project Room"
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Notes:
|
|
128
|
+
|
|
129
|
+
- Use `--kind user|group|auto` to force the target type.
|
|
130
|
+
- Resolution prefers active matches when multiple entries share the same name.
|
|
131
|
+
- `channels resolve` is read-only. If a selected account is configured via SecretRef but that credential is unavailable in the current command path, the command returns degraded unresolved results with notes instead of aborting the entire run.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "CLI reference for `Durar clawbot` (legacy alias namespace)"
|
|
3
|
+
read_when:
|
|
4
|
+
- You maintain older scripts using `Durar clawbot ...`
|
|
5
|
+
- You need migration guidance to current commands
|
|
6
|
+
title: "clawbot"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# `Durar clawbot`
|
|
10
|
+
|
|
11
|
+
Legacy alias namespace kept for backwards compatibility.
|
|
12
|
+
|
|
13
|
+
Current supported alias:
|
|
14
|
+
|
|
15
|
+
- `Durar clawbot qr` (same behavior as [`Durar qr`](/cli/qr))
|
|
16
|
+
|
|
17
|
+
## Migration
|
|
18
|
+
|
|
19
|
+
Prefer modern top-level commands directly:
|
|
20
|
+
|
|
21
|
+
- `Durar clawbot qr` -> `Durar qr`
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "CLI reference for `Durar completion` (generate/install shell completion scripts)"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want shell completions for zsh/bash/fish/PowerShell
|
|
5
|
+
- You need to cache completion scripts under Durar state
|
|
6
|
+
title: "completion"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# `Durar completion`
|
|
10
|
+
|
|
11
|
+
Generate shell completion scripts and optionally install them into your shell profile.
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
Durar completion
|
|
17
|
+
Durar completion --shell zsh
|
|
18
|
+
Durar completion --install
|
|
19
|
+
Durar completion --shell fish --install
|
|
20
|
+
Durar completion --write-state
|
|
21
|
+
Durar completion --shell bash --write-state
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Options
|
|
25
|
+
|
|
26
|
+
- `-s, --shell <shell>`: shell target (`zsh`, `bash`, `powershell`, `fish`; default: `zsh`)
|
|
27
|
+
- `-i, --install`: install completion by adding a source line to your shell profile
|
|
28
|
+
- `--write-state`: write completion script(s) to `$Durar_STATE_DIR/completions` without printing to stdout
|
|
29
|
+
- `-y, --yes`: skip install confirmation prompts
|
|
30
|
+
|
|
31
|
+
## Notes
|
|
32
|
+
|
|
33
|
+
- `--install` writes a small "Durar Completion" block into your shell profile and points it at the cached script.
|
|
34
|
+
- Without `--install` or `--write-state`, the command prints the script to stdout.
|
|
35
|
+
- Completion generation eagerly loads command trees so nested subcommands are included.
|