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,171 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "CLI reference for `Durar onboard` (interactive onboarding)"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want guided setup for gateway, workspace, auth, channels, and skills
|
|
5
|
+
title: "onboard"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# `Durar onboard`
|
|
9
|
+
|
|
10
|
+
Interactive onboarding for local or remote Gateway setup.
|
|
11
|
+
|
|
12
|
+
## Related guides
|
|
13
|
+
|
|
14
|
+
- CLI onboarding hub: [Onboarding (CLI)](/start/wizard)
|
|
15
|
+
- Onboarding overview: [Onboarding Overview](/start/onboarding-overview)
|
|
16
|
+
- CLI onboarding reference: [CLI Setup Reference](/start/wizard-cli-reference)
|
|
17
|
+
- CLI automation: [CLI Automation](/start/wizard-cli-automation)
|
|
18
|
+
- macOS onboarding: [Onboarding (macOS App)](/start/onboarding)
|
|
19
|
+
|
|
20
|
+
## Examples
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
Durar onboard
|
|
24
|
+
Durar onboard --flow quickstart
|
|
25
|
+
Durar onboard --flow manual
|
|
26
|
+
Durar onboard --mode remote --remote-url wss://gateway-host:18789
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
For plaintext private-network `ws://` targets (trusted networks only), set
|
|
30
|
+
`Durar_ALLOW_INSECURE_PRIVATE_WS=1` in the onboarding process environment.
|
|
31
|
+
|
|
32
|
+
Non-interactive custom provider:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
Durar onboard --non-interactive \
|
|
36
|
+
--auth-choice custom-api-key \
|
|
37
|
+
--custom-base-url "https://llm.example.com/v1" \
|
|
38
|
+
--custom-model-id "foo-large" \
|
|
39
|
+
--custom-api-key "$CUSTOM_API_KEY" \
|
|
40
|
+
--secret-input-mode plaintext \
|
|
41
|
+
--custom-compatibility openai
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
`--custom-api-key` is optional in non-interactive mode. If omitted, onboarding checks `CUSTOM_API_KEY`.
|
|
45
|
+
|
|
46
|
+
Non-interactive Ollama:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
Durar onboard --non-interactive \
|
|
50
|
+
--auth-choice ollama \
|
|
51
|
+
--custom-base-url "http://ollama-host:11434" \
|
|
52
|
+
--custom-model-id "qwen3.5:27b" \
|
|
53
|
+
--accept-risk
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
`--custom-base-url` defaults to `http://127.0.0.1:11434`. `--custom-model-id` is optional; if omitted, onboarding uses Ollama's suggested defaults. Cloud model IDs such as `kimi-k2.5:cloud` also work here.
|
|
57
|
+
|
|
58
|
+
Store provider keys as refs instead of plaintext:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
Durar onboard --non-interactive \
|
|
62
|
+
--auth-choice openai-api-key \
|
|
63
|
+
--secret-input-mode ref \
|
|
64
|
+
--accept-risk
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
With `--secret-input-mode ref`, onboarding writes env-backed refs instead of plaintext key values.
|
|
68
|
+
For auth-profile backed providers this writes `keyRef` entries; for custom providers this writes `models.providers.<id>.apiKey` as an env ref (for example `{ source: "env", provider: "default", id: "CUSTOM_API_KEY" }`).
|
|
69
|
+
|
|
70
|
+
Non-interactive `ref` mode contract:
|
|
71
|
+
|
|
72
|
+
- Set the provider env var in the onboarding process environment (for example `OPENAI_API_KEY`).
|
|
73
|
+
- Do not pass inline key flags (for example `--openai-api-key`) unless that env var is also set.
|
|
74
|
+
- If an inline key flag is passed without the required env var, onboarding fails fast with guidance.
|
|
75
|
+
|
|
76
|
+
Gateway token options in non-interactive mode:
|
|
77
|
+
|
|
78
|
+
- `--gateway-auth token --gateway-token <token>` stores a plaintext token.
|
|
79
|
+
- `--gateway-auth token --gateway-token-ref-env <name>` stores `gateway.auth.token` as an env SecretRef.
|
|
80
|
+
- `--gateway-token` and `--gateway-token-ref-env` are mutually exclusive.
|
|
81
|
+
- `--gateway-token-ref-env` requires a non-empty env var in the onboarding process environment.
|
|
82
|
+
- With `--install-daemon`, when token auth requires a token, SecretRef-managed gateway tokens are validated but not persisted as resolved plaintext in supervisor service environment metadata.
|
|
83
|
+
- With `--install-daemon`, if token mode requires a token and the configured token SecretRef is unresolved, onboarding fails closed with remediation guidance.
|
|
84
|
+
- With `--install-daemon`, if both `gateway.auth.token` and `gateway.auth.password` are configured and `gateway.auth.mode` is unset, onboarding blocks install until mode is set explicitly.
|
|
85
|
+
- Local onboarding writes `gateway.mode="local"` into the config. If a later config file is missing `gateway.mode`, treat that as config damage or an incomplete manual edit, not as a valid local-mode shortcut.
|
|
86
|
+
- `--allow-unconfigured` is a separate gateway runtime escape hatch. It does not mean onboarding may omit `gateway.mode`.
|
|
87
|
+
|
|
88
|
+
Example:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
export Durar_GATEWAY_TOKEN="your-token"
|
|
92
|
+
Durar onboard --non-interactive \
|
|
93
|
+
--mode local \
|
|
94
|
+
--auth-choice skip \
|
|
95
|
+
--gateway-auth token \
|
|
96
|
+
--gateway-token-ref-env Durar_GATEWAY_TOKEN \
|
|
97
|
+
--accept-risk
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Non-interactive local gateway health:
|
|
101
|
+
|
|
102
|
+
- Unless you pass `--skip-health`, onboarding waits for a reachable local gateway before it exits successfully.
|
|
103
|
+
- `--install-daemon` starts the managed gateway install path first. Without it, you must already have a local gateway running, for example `Durar gateway run`.
|
|
104
|
+
- If you only want config/workspace/bootstrap writes in automation, use `--skip-health`.
|
|
105
|
+
- On native Windows, `--install-daemon` tries Scheduled Tasks first and falls back to a per-user Startup-folder login item if task creation is denied.
|
|
106
|
+
|
|
107
|
+
Interactive onboarding behavior with reference mode:
|
|
108
|
+
|
|
109
|
+
- Choose **Use secret reference** when prompted.
|
|
110
|
+
- Then choose either:
|
|
111
|
+
- Environment variable
|
|
112
|
+
- Configured secret provider (`file` or `exec`)
|
|
113
|
+
- Onboarding performs a fast preflight validation before saving the ref.
|
|
114
|
+
- If validation fails, onboarding shows the error and lets you retry.
|
|
115
|
+
|
|
116
|
+
Non-interactive Z.AI endpoint choices:
|
|
117
|
+
|
|
118
|
+
Note: `--auth-choice zai-api-key` now auto-detects the best Z.AI endpoint for your key (prefers the general API with `zai/glm-5`).
|
|
119
|
+
If you specifically want the GLM Coding Plan endpoints, pick `zai-coding-global` or `zai-coding-cn`.
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
# Promptless endpoint selection
|
|
123
|
+
Durar onboard --non-interactive \
|
|
124
|
+
--auth-choice zai-coding-global \
|
|
125
|
+
--zai-api-key "$ZAI_API_KEY"
|
|
126
|
+
|
|
127
|
+
# Other Z.AI endpoint choices:
|
|
128
|
+
# --auth-choice zai-coding-cn
|
|
129
|
+
# --auth-choice zai-global
|
|
130
|
+
# --auth-choice zai-cn
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Non-interactive Mistral example:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
Durar onboard --non-interactive \
|
|
137
|
+
--auth-choice mistral-api-key \
|
|
138
|
+
--mistral-api-key "$MISTRAL_API_KEY"
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Flow notes:
|
|
142
|
+
|
|
143
|
+
- `quickstart`: minimal prompts, auto-generates a gateway token.
|
|
144
|
+
- `manual`: full prompts for port/bind/auth (alias of `advanced`).
|
|
145
|
+
- When an auth choice implies a preferred provider, onboarding prefilters the
|
|
146
|
+
default-model and allowlist pickers to that provider. For Volcengine and
|
|
147
|
+
BytePlus, this also matches the coding-plan variants
|
|
148
|
+
(`volcengine-plan/*`, `byteplus-plan/*`).
|
|
149
|
+
- If the preferred-provider filter yields no loaded models yet, onboarding
|
|
150
|
+
falls back to the unfiltered catalog instead of leaving the picker empty.
|
|
151
|
+
- In the web-search step, some providers can trigger provider-specific
|
|
152
|
+
follow-up prompts:
|
|
153
|
+
- **Grok** can offer optional `x_search` setup with the same `XAI_API_KEY`
|
|
154
|
+
and an `x_search` model choice.
|
|
155
|
+
- **Kimi** can ask for the Moonshot API region (`api.moonshot.ai` vs
|
|
156
|
+
`api.moonshot.cn`) and the default Kimi web-search model.
|
|
157
|
+
- Local onboarding DM scope behavior: [CLI Setup Reference](/start/wizard-cli-reference#outputs-and-internals).
|
|
158
|
+
- Fastest first chat: `Durar dashboard` (Control UI, no channel setup).
|
|
159
|
+
- Custom Provider: connect any OpenAI or Anthropic compatible endpoint,
|
|
160
|
+
including hosted providers not listed. Use Unknown to auto-detect.
|
|
161
|
+
|
|
162
|
+
## Common follow-up commands
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
Durar configure
|
|
166
|
+
Durar agents add <name>
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
<Note>
|
|
170
|
+
`--json` does not imply non-interactive mode. Use `--non-interactive` for scripts.
|
|
171
|
+
</Note>
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "CLI reference for `Durar pairing` (approve/list pairing requests)"
|
|
3
|
+
read_when:
|
|
4
|
+
- You’re using pairing-mode DMs and need to approve senders
|
|
5
|
+
title: "pairing"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# `Durar pairing`
|
|
9
|
+
|
|
10
|
+
Approve or inspect DM pairing requests (for channels that support pairing).
|
|
11
|
+
|
|
12
|
+
Related:
|
|
13
|
+
|
|
14
|
+
- Pairing flow: [Pairing](/channels/pairing)
|
|
15
|
+
|
|
16
|
+
## Commands
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
Durar pairing list telegram
|
|
20
|
+
Durar pairing list --channel telegram --account work
|
|
21
|
+
Durar pairing list telegram --json
|
|
22
|
+
|
|
23
|
+
Durar pairing approve <code>
|
|
24
|
+
Durar pairing approve telegram <code>
|
|
25
|
+
Durar pairing approve --channel telegram --account work <code> --notify
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## `pairing list`
|
|
29
|
+
|
|
30
|
+
List pending pairing requests for one channel.
|
|
31
|
+
|
|
32
|
+
Options:
|
|
33
|
+
|
|
34
|
+
- `[channel]`: positional channel id
|
|
35
|
+
- `--channel <channel>`: explicit channel id
|
|
36
|
+
- `--account <accountId>`: account id for multi-account channels
|
|
37
|
+
- `--json`: machine-readable output
|
|
38
|
+
|
|
39
|
+
Notes:
|
|
40
|
+
|
|
41
|
+
- If multiple pairing-capable channels are configured, you must provide a channel either positionally or with `--channel`.
|
|
42
|
+
- Extension channels are allowed as long as the channel id is valid.
|
|
43
|
+
|
|
44
|
+
## `pairing approve`
|
|
45
|
+
|
|
46
|
+
Approve a pending pairing code and allow that sender.
|
|
47
|
+
|
|
48
|
+
Usage:
|
|
49
|
+
|
|
50
|
+
- `Durar pairing approve <channel> <code>`
|
|
51
|
+
- `Durar pairing approve --channel <channel> <code>`
|
|
52
|
+
- `Durar pairing approve <code>` when exactly one pairing-capable channel is configured
|
|
53
|
+
|
|
54
|
+
Options:
|
|
55
|
+
|
|
56
|
+
- `--channel <channel>`: explicit channel id
|
|
57
|
+
- `--account <accountId>`: account id for multi-account channels
|
|
58
|
+
- `--notify`: send a confirmation back to the requester on the same channel
|
|
59
|
+
|
|
60
|
+
## Notes
|
|
61
|
+
|
|
62
|
+
- Channel input: pass it positionally (`pairing list telegram`) or with `--channel <channel>`.
|
|
63
|
+
- `pairing list` supports `--account <accountId>` for multi-account channels.
|
|
64
|
+
- `pairing approve` supports `--account <accountId>` and `--notify`.
|
|
65
|
+
- If only one pairing-capable channel is configured, `pairing approve <code>` is allowed.
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "CLI reference for `Durar plugins` (list, install, marketplace, uninstall, enable/disable, doctor)"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want to install or manage Gateway plugins or compatible bundles
|
|
5
|
+
- You want to debug plugin load failures
|
|
6
|
+
title: "plugins"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# `Durar plugins`
|
|
10
|
+
|
|
11
|
+
Manage Gateway plugins/extensions, hook packs, and compatible bundles.
|
|
12
|
+
|
|
13
|
+
Related:
|
|
14
|
+
|
|
15
|
+
- Plugin system: [Plugins](/tools/plugin)
|
|
16
|
+
- Bundle compatibility: [Plugin bundles](/plugins/bundles)
|
|
17
|
+
- Plugin manifest + schema: [Plugin manifest](/plugins/manifest)
|
|
18
|
+
- Security hardening: [Security](/gateway/security)
|
|
19
|
+
|
|
20
|
+
## Commands
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
Durar plugins list
|
|
24
|
+
Durar plugins list --enabled
|
|
25
|
+
Durar plugins list --verbose
|
|
26
|
+
Durar plugins list --json
|
|
27
|
+
Durar plugins install <path-or-spec>
|
|
28
|
+
Durar plugins inspect <id>
|
|
29
|
+
Durar plugins inspect <id> --json
|
|
30
|
+
Durar plugins inspect --all
|
|
31
|
+
Durar plugins info <id>
|
|
32
|
+
Durar plugins enable <id>
|
|
33
|
+
Durar plugins disable <id>
|
|
34
|
+
Durar plugins uninstall <id>
|
|
35
|
+
Durar plugins doctor
|
|
36
|
+
Durar plugins update <id>
|
|
37
|
+
Durar plugins update --all
|
|
38
|
+
Durar plugins marketplace list <marketplace>
|
|
39
|
+
Durar plugins marketplace list <marketplace> --json
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Bundled plugins ship with Durar. Some are enabled by default (for example
|
|
43
|
+
bundled model providers, bundled speech providers, and the bundled browser
|
|
44
|
+
plugin); others require `plugins enable`.
|
|
45
|
+
|
|
46
|
+
Native Durar plugins must ship `Durar.plugin.json` with an inline JSON
|
|
47
|
+
Schema (`configSchema`, even if empty). Compatible bundles use their own bundle
|
|
48
|
+
manifests instead.
|
|
49
|
+
|
|
50
|
+
`plugins list` shows `Format: Durar` or `Format: bundle`. Verbose list/info
|
|
51
|
+
output also shows the bundle subtype (`codex`, `claude`, or `cursor`) plus detected bundle
|
|
52
|
+
capabilities.
|
|
53
|
+
|
|
54
|
+
### Install
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
Durar plugins install <package> # Durar Gateway first, then npm
|
|
58
|
+
Durar plugins install Durar Gateway:<package> # Durar Gateway only
|
|
59
|
+
Durar plugins install <package> --force # overwrite existing install
|
|
60
|
+
Durar plugins install <package> --pin # pin version
|
|
61
|
+
Durar plugins install <package> --dangerously-force-unsafe-install
|
|
62
|
+
Durar plugins install <path> # local path
|
|
63
|
+
Durar plugins install <plugin>@<marketplace> # marketplace
|
|
64
|
+
Durar plugins install <plugin> --marketplace <name> # marketplace (explicit)
|
|
65
|
+
Durar plugins install <plugin> --marketplace https://github.com/<owner>/<repo>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Bare package names are checked against Durar Gateway first, then npm. Security note:
|
|
69
|
+
treat plugin installs like running code. Prefer pinned versions.
|
|
70
|
+
|
|
71
|
+
If config is invalid, `plugins install` normally fails closed and tells you to
|
|
72
|
+
run `Durar doctor --fix` first. The only documented exception is a narrow
|
|
73
|
+
bundled-plugin recovery path for plugins that explicitly opt into
|
|
74
|
+
`Durar.install.allowInvalidConfigRecovery`.
|
|
75
|
+
|
|
76
|
+
`--force` reuses the existing install target and overwrites an already-installed
|
|
77
|
+
plugin or hook pack in place. Use it when you are intentionally reinstalling
|
|
78
|
+
the same id from a new local path, archive, Durar Gateway package, or npm artifact.
|
|
79
|
+
|
|
80
|
+
`--pin` applies to npm installs only. It is not supported with `--marketplace`,
|
|
81
|
+
because marketplace installs persist marketplace source metadata instead of an
|
|
82
|
+
npm spec.
|
|
83
|
+
|
|
84
|
+
`--dangerously-force-unsafe-install` is a break-glass option for false positives
|
|
85
|
+
in the built-in dangerous-code scanner. It allows the install to continue even
|
|
86
|
+
when the built-in scanner reports `critical` findings, but it does **not**
|
|
87
|
+
bypass plugin `before_install` hook policy blocks and does **not** bypass scan
|
|
88
|
+
failures.
|
|
89
|
+
|
|
90
|
+
This CLI flag applies to plugin install/update flows. Gateway-backed skill
|
|
91
|
+
dependency installs use the matching `dangerouslyForceUnsafeInstall` request
|
|
92
|
+
override, while `Durar skills install` remains a separate Durar Gateway skill
|
|
93
|
+
download/install flow.
|
|
94
|
+
|
|
95
|
+
`plugins install` is also the install surface for hook packs that expose
|
|
96
|
+
`Durar.hooks` in `package.json`. Use `Durar hooks` for filtered hook
|
|
97
|
+
visibility and per-hook enablement, not package installation.
|
|
98
|
+
|
|
99
|
+
Npm specs are **registry-only** (package name + optional **exact version** or
|
|
100
|
+
**dist-tag**). Git/URL/file specs and semver ranges are rejected. Dependency
|
|
101
|
+
installs run with `--ignore-scripts` for safety.
|
|
102
|
+
|
|
103
|
+
Bare specs and `@latest` stay on the stable track. If npm resolves either of
|
|
104
|
+
those to a prerelease, Durar stops and asks you to opt in explicitly with a
|
|
105
|
+
prerelease tag such as `@beta`/`@rc` or an exact prerelease version such as
|
|
106
|
+
`@1.2.3-beta.4`.
|
|
107
|
+
|
|
108
|
+
If a bare install spec matches a bundled plugin id (for example `diffs`), Durar
|
|
109
|
+
installs the bundled plugin directly. To install an npm package with the same
|
|
110
|
+
name, use an explicit scoped spec (for example `@scope/diffs`).
|
|
111
|
+
|
|
112
|
+
Supported archives: `.zip`, `.tgz`, `.tar.gz`, `.tar`.
|
|
113
|
+
|
|
114
|
+
Claude marketplace installs are also supported.
|
|
115
|
+
|
|
116
|
+
Durar Gateway installs use an explicit `Durar Gateway:<package>` locator:
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
Durar plugins install Durar Gateway:Durar-codex-app-server
|
|
120
|
+
Durar plugins install Durar Gateway:Durar-codex-app-server@1.2.3
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Durar now also prefers Durar Gateway for bare npm-safe plugin specs. It only falls
|
|
124
|
+
back to npm if Durar Gateway does not have that package or version:
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
Durar plugins install Durar-codex-app-server
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Durar downloads the package archive from Durar Gateway, checks the advertised
|
|
131
|
+
plugin API / minimum gateway compatibility, then installs it through the normal
|
|
132
|
+
archive path. Recorded installs keep their Durar Gateway source metadata for later
|
|
133
|
+
updates.
|
|
134
|
+
|
|
135
|
+
Use `plugin@marketplace` shorthand when the marketplace name exists in Claude's
|
|
136
|
+
local registry cache at `~/.claude/plugins/known_marketplaces.json`:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
Durar plugins marketplace list <marketplace-name>
|
|
140
|
+
Durar plugins install <plugin-name>@<marketplace-name>
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Use `--marketplace` when you want to pass the marketplace source explicitly:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
Durar plugins install <plugin-name> --marketplace <marketplace-name>
|
|
147
|
+
Durar plugins install <plugin-name> --marketplace <owner/repo>
|
|
148
|
+
Durar plugins install <plugin-name> --marketplace https://github.com/<owner>/<repo>
|
|
149
|
+
Durar plugins install <plugin-name> --marketplace ./my-marketplace
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Marketplace sources can be:
|
|
153
|
+
|
|
154
|
+
- a Claude known-marketplace name from `~/.claude/plugins/known_marketplaces.json`
|
|
155
|
+
- a local marketplace root or `marketplace.json` path
|
|
156
|
+
- a GitHub repo shorthand such as `owner/repo`
|
|
157
|
+
- a GitHub repo URL such as `https://github.com/owner/repo`
|
|
158
|
+
- a git URL
|
|
159
|
+
|
|
160
|
+
For remote marketplaces loaded from GitHub or git, plugin entries must stay
|
|
161
|
+
inside the cloned marketplace repo. Durar accepts relative path sources from
|
|
162
|
+
that repo and rejects HTTP(S), absolute-path, git, GitHub, and other non-path
|
|
163
|
+
plugin sources from remote manifests.
|
|
164
|
+
|
|
165
|
+
For local paths and archives, Durar auto-detects:
|
|
166
|
+
|
|
167
|
+
- native Durar plugins (`Durar.plugin.json`)
|
|
168
|
+
- Codex-compatible bundles (`.codex-plugin/plugin.json`)
|
|
169
|
+
- Claude-compatible bundles (`.claude-plugin/plugin.json` or the default Claude
|
|
170
|
+
component layout)
|
|
171
|
+
- Cursor-compatible bundles (`.cursor-plugin/plugin.json`)
|
|
172
|
+
|
|
173
|
+
Compatible bundles install into the normal extensions root and participate in
|
|
174
|
+
the same list/info/enable/disable flow. Today, bundle skills, Claude
|
|
175
|
+
command-skills, Claude `settings.json` defaults, Claude `.lsp.json` /
|
|
176
|
+
manifest-declared `lspServers` defaults, Cursor command-skills, and compatible
|
|
177
|
+
Codex hook directories are supported; other detected bundle capabilities are
|
|
178
|
+
shown in diagnostics/info but are not yet wired into runtime execution.
|
|
179
|
+
|
|
180
|
+
### List
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
Durar plugins list
|
|
184
|
+
Durar plugins list --enabled
|
|
185
|
+
Durar plugins list --verbose
|
|
186
|
+
Durar plugins list --json
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
Use `--enabled` to show only loaded plugins. Use `--verbose` to switch from the
|
|
190
|
+
table view to per-plugin detail lines with source/origin/version/activation
|
|
191
|
+
metadata. Use `--json` for machine-readable inventory plus registry
|
|
192
|
+
diagnostics.
|
|
193
|
+
|
|
194
|
+
Use `--link` to avoid copying a local directory (adds to `plugins.load.paths`):
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
Durar plugins install -l ./my-plugin
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
`--force` is not supported with `--link` because linked installs reuse the
|
|
201
|
+
source path instead of copying over a managed install target.
|
|
202
|
+
|
|
203
|
+
Use `--pin` on npm installs to save the resolved exact spec (`name@version`) in
|
|
204
|
+
`plugins.installs` while keeping the default behavior unpinned.
|
|
205
|
+
|
|
206
|
+
### Uninstall
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
Durar plugins uninstall <id>
|
|
210
|
+
Durar plugins uninstall <id> --dry-run
|
|
211
|
+
Durar plugins uninstall <id> --keep-files
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
`uninstall` removes plugin records from `plugins.entries`, `plugins.installs`,
|
|
215
|
+
the plugin allowlist, and linked `plugins.load.paths` entries when applicable.
|
|
216
|
+
For active memory plugins, the memory slot resets to `memory-core`.
|
|
217
|
+
|
|
218
|
+
By default, uninstall also removes the plugin install directory under the active
|
|
219
|
+
state-dir plugin root. Use
|
|
220
|
+
`--keep-files` to keep files on disk.
|
|
221
|
+
|
|
222
|
+
`--keep-config` is supported as a deprecated alias for `--keep-files`.
|
|
223
|
+
|
|
224
|
+
### Update
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
Durar plugins update <id-or-npm-spec>
|
|
228
|
+
Durar plugins update --all
|
|
229
|
+
Durar plugins update <id-or-npm-spec> --dry-run
|
|
230
|
+
Durar plugins update @Durar/voice-call@beta
|
|
231
|
+
Durar plugins update Durar-codex-app-server --dangerously-force-unsafe-install
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
Updates apply to tracked installs in `plugins.installs` and tracked hook-pack
|
|
235
|
+
installs in `hooks.internal.installs`.
|
|
236
|
+
|
|
237
|
+
When you pass a plugin id, Durar reuses the recorded install spec for that
|
|
238
|
+
plugin. That means previously stored dist-tags such as `@beta` and exact pinned
|
|
239
|
+
versions continue to be used on later `update <id>` runs.
|
|
240
|
+
|
|
241
|
+
For npm installs, you can also pass an explicit npm package spec with a dist-tag
|
|
242
|
+
or exact version. Durar resolves that package name back to the tracked plugin
|
|
243
|
+
record, updates that installed plugin, and records the new npm spec for future
|
|
244
|
+
id-based updates.
|
|
245
|
+
|
|
246
|
+
When a stored integrity hash exists and the fetched artifact hash changes,
|
|
247
|
+
Durar prints a warning and asks for confirmation before proceeding. Use
|
|
248
|
+
global `--yes` to bypass prompts in CI/non-interactive runs.
|
|
249
|
+
|
|
250
|
+
`--dangerously-force-unsafe-install` is also available on `plugins update` as a
|
|
251
|
+
break-glass override for built-in dangerous-code scan false positives during
|
|
252
|
+
plugin updates. It still does not bypass plugin `before_install` policy blocks
|
|
253
|
+
or scan-failure blocking, and it only applies to plugin updates, not hook-pack
|
|
254
|
+
updates.
|
|
255
|
+
|
|
256
|
+
### Inspect
|
|
257
|
+
|
|
258
|
+
```bash
|
|
259
|
+
Durar plugins inspect <id>
|
|
260
|
+
Durar plugins inspect <id> --json
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
Deep introspection for a single plugin. Shows identity, load status, source,
|
|
264
|
+
registered capabilities, hooks, tools, commands, services, gateway methods,
|
|
265
|
+
HTTP routes, policy flags, diagnostics, install metadata, bundle capabilities,
|
|
266
|
+
and any detected MCP or LSP server support.
|
|
267
|
+
|
|
268
|
+
Each plugin is classified by what it actually registers at runtime:
|
|
269
|
+
|
|
270
|
+
- **plain-capability** — one capability type (e.g. a provider-only plugin)
|
|
271
|
+
- **hybrid-capability** — multiple capability types (e.g. text + speech + images)
|
|
272
|
+
- **hook-only** — only hooks, no capabilities or surfaces
|
|
273
|
+
- **non-capability** — tools/commands/services but no capabilities
|
|
274
|
+
|
|
275
|
+
See [Plugin shapes](/plugins/architecture#plugin-shapes) for more on the capability model.
|
|
276
|
+
|
|
277
|
+
The `--json` flag outputs a machine-readable report suitable for scripting and
|
|
278
|
+
auditing.
|
|
279
|
+
|
|
280
|
+
`inspect --all` renders a fleet-wide table with shape, capability kinds,
|
|
281
|
+
compatibility notices, bundle capabilities, and hook summary columns.
|
|
282
|
+
|
|
283
|
+
`info` is an alias for `inspect`.
|
|
284
|
+
|
|
285
|
+
### Doctor
|
|
286
|
+
|
|
287
|
+
```bash
|
|
288
|
+
Durar plugins doctor
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
`doctor` reports plugin load errors, manifest/discovery diagnostics, and
|
|
292
|
+
compatibility notices. When everything is clean it prints `No plugin issues
|
|
293
|
+
detected.`
|
|
294
|
+
|
|
295
|
+
### Marketplace
|
|
296
|
+
|
|
297
|
+
```bash
|
|
298
|
+
Durar plugins marketplace list <source>
|
|
299
|
+
Durar plugins marketplace list <source> --json
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
Marketplace list accepts a local marketplace path, a `marketplace.json` path, a
|
|
303
|
+
GitHub shorthand like `owner/repo`, a GitHub repo URL, or a git URL. `--json`
|
|
304
|
+
prints the resolved source label plus the parsed marketplace manifest and
|
|
305
|
+
plugin entries.
|
package/docs/cli/qr.md
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "CLI reference for `Durar qr` (generate mobile pairing QR + setup code)"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want to pair a mobile node app with a gateway quickly
|
|
5
|
+
- You need setup-code output for remote/manual sharing
|
|
6
|
+
title: "qr"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# `Durar qr`
|
|
10
|
+
|
|
11
|
+
Generate a mobile pairing QR and setup code from your current Gateway configuration.
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
Durar qr
|
|
17
|
+
Durar qr --setup-code-only
|
|
18
|
+
Durar qr --json
|
|
19
|
+
Durar qr --remote
|
|
20
|
+
Durar qr --url wss://gateway.example/ws
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Options
|
|
24
|
+
|
|
25
|
+
- `--remote`: prefer `gateway.remote.url`; if it is unset, `gateway.tailscale.mode=serve|funnel` can still provide the remote public URL
|
|
26
|
+
- `--url <url>`: override gateway URL used in payload
|
|
27
|
+
- `--public-url <url>`: override public URL used in payload
|
|
28
|
+
- `--token <token>`: override which gateway token the bootstrap flow authenticates against
|
|
29
|
+
- `--password <password>`: override which gateway password the bootstrap flow authenticates against
|
|
30
|
+
- `--setup-code-only`: print only setup code
|
|
31
|
+
- `--no-ascii`: skip ASCII QR rendering
|
|
32
|
+
- `--json`: emit JSON (`setupCode`, `gatewayUrl`, `auth`, `urlSource`)
|
|
33
|
+
|
|
34
|
+
## Notes
|
|
35
|
+
|
|
36
|
+
- `--token` and `--password` are mutually exclusive.
|
|
37
|
+
- The setup code itself now carries an opaque short-lived `bootstrapToken`, not the shared gateway token/password.
|
|
38
|
+
- In the built-in node/operator bootstrap flow, the primary node token still lands with `scopes: []`.
|
|
39
|
+
- If bootstrap handoff also issues an operator token, it stays bounded to the bootstrap allowlist: `operator.approvals`, `operator.read`, `operator.talk.secrets`, `operator.write`.
|
|
40
|
+
- Bootstrap scope checks are role-prefixed. That operator allowlist only satisfies operator requests; non-operator roles still need scopes under their own role prefix.
|
|
41
|
+
- Mobile pairing fails closed for Tailscale/public `ws://` gateway URLs. Private LAN `ws://` remains supported, but Tailscale/public mobile routes should use Tailscale Serve/Funnel or a `wss://` gateway URL.
|
|
42
|
+
- With `--remote`, Durar requires either `gateway.remote.url` or
|
|
43
|
+
`gateway.tailscale.mode=serve|funnel`.
|
|
44
|
+
- With `--remote`, if effectively active remote credentials are configured as SecretRefs and you do not pass `--token` or `--password`, the command resolves them from the active gateway snapshot. If gateway is unavailable, the command fails fast.
|
|
45
|
+
- Without `--remote`, local gateway auth SecretRefs are resolved when no CLI auth override is passed:
|
|
46
|
+
- `gateway.auth.token` resolves when token auth can win (explicit `gateway.auth.mode="token"` or inferred mode where no password source wins).
|
|
47
|
+
- `gateway.auth.password` resolves when password auth can win (explicit `gateway.auth.mode="password"` or inferred mode with no winning token from auth/env).
|
|
48
|
+
- If both `gateway.auth.token` and `gateway.auth.password` are configured (including SecretRefs) and `gateway.auth.mode` is unset, setup-code resolution fails until mode is set explicitly.
|
|
49
|
+
- Gateway version skew note: this command path requires a gateway that supports `secrets.resolve`; older gateways return an unknown-method error.
|
|
50
|
+
- After scanning, approve device pairing with:
|
|
51
|
+
- `Durar devices list`
|
|
52
|
+
- `Durar devices approve <requestId>`
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "CLI reference for `Durar reset` (reset local state/config)"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want to wipe local state while keeping the CLI installed
|
|
5
|
+
- You want a dry-run of what would be removed
|
|
6
|
+
title: "reset"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# `Durar reset`
|
|
10
|
+
|
|
11
|
+
Reset local config/state (keeps the CLI installed).
|
|
12
|
+
|
|
13
|
+
Options:
|
|
14
|
+
|
|
15
|
+
- `--scope <scope>`: `config`, `config+creds+sessions`, or `full`
|
|
16
|
+
- `--yes`: skip confirmation prompts
|
|
17
|
+
- `--non-interactive`: disable prompts; requires `--scope` and `--yes`
|
|
18
|
+
- `--dry-run`: print actions without removing files
|
|
19
|
+
|
|
20
|
+
Examples:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
Durar backup create
|
|
24
|
+
Durar reset
|
|
25
|
+
Durar reset --dry-run
|
|
26
|
+
Durar reset --scope config --yes --non-interactive
|
|
27
|
+
Durar reset --scope config+creds+sessions --yes --non-interactive
|
|
28
|
+
Durar reset --scope full --yes --non-interactive
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Notes:
|
|
32
|
+
|
|
33
|
+
- Run `Durar backup create` first if you want a restorable snapshot before removing local state.
|
|
34
|
+
- If you omit `--scope`, `Durar reset` uses an interactive prompt to choose what to remove.
|
|
35
|
+
- `--non-interactive` is only valid when both `--scope` and `--yes` are set.
|