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,131 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Stable, beta, and dev channels: semantics, switching, pinning, and tagging"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want to switch between stable/beta/dev
|
|
5
|
+
- You want to pin a specific version, tag, or SHA
|
|
6
|
+
- You are tagging or publishing prereleases
|
|
7
|
+
title: "Release Channels"
|
|
8
|
+
sidebarTitle: "Release Channels"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Development channels
|
|
12
|
+
|
|
13
|
+
Durar ships three update channels:
|
|
14
|
+
|
|
15
|
+
- **stable**: npm dist-tag `latest`. Recommended for most users.
|
|
16
|
+
- **beta**: npm dist-tag `beta` when it is current; if beta is missing or older than
|
|
17
|
+
the latest stable release, the update flow falls back to `latest`.
|
|
18
|
+
- **dev**: moving head of `main` (git). npm dist-tag: `dev` (when published).
|
|
19
|
+
The `main` branch is for experimentation and active development. It may contain
|
|
20
|
+
incomplete features or breaking changes. Do not use it for production gateways.
|
|
21
|
+
|
|
22
|
+
We usually ship stable builds to **beta** first, test them there, then run an
|
|
23
|
+
explicit promotion step that moves the vetted build to `latest` without
|
|
24
|
+
changing the version number. Maintainers can also publish a stable release
|
|
25
|
+
directly to `latest` when needed. Dist-tags are the source of truth for npm
|
|
26
|
+
installs.
|
|
27
|
+
|
|
28
|
+
## Switching channels
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
Durar update --channel stable
|
|
32
|
+
Durar update --channel beta
|
|
33
|
+
Durar update --channel dev
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
`--channel` persists your choice in config (`update.channel`) and aligns the
|
|
37
|
+
install method:
|
|
38
|
+
|
|
39
|
+
- **`stable`** (package installs): updates via npm dist-tag `latest`.
|
|
40
|
+
- **`beta`** (package installs): prefers npm dist-tag `beta`, but falls back to
|
|
41
|
+
`latest` when `beta` is missing or older than the current stable tag.
|
|
42
|
+
- **`stable`** (git installs): checks out the latest stable git tag.
|
|
43
|
+
- **`beta`** (git installs): prefers the latest beta git tag, but falls back to
|
|
44
|
+
the latest stable git tag when beta is missing or older.
|
|
45
|
+
- **`dev`**: ensures a git checkout (default `~/Durar`, override with
|
|
46
|
+
`Durar_GIT_DIR`), switches to `main`, rebases on upstream, builds, and
|
|
47
|
+
installs the global CLI from that checkout.
|
|
48
|
+
|
|
49
|
+
Tip: if you want stable + dev in parallel, keep two clones and point your
|
|
50
|
+
gateway at the stable one.
|
|
51
|
+
|
|
52
|
+
## One-off version or tag targeting
|
|
53
|
+
|
|
54
|
+
Use `--tag` to target a specific dist-tag, version, or package spec for a single
|
|
55
|
+
update **without** changing your persisted channel:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# Install a specific version
|
|
59
|
+
Durar update --tag 2026.4.1-beta.1
|
|
60
|
+
|
|
61
|
+
# Install from the beta dist-tag (one-off, does not persist)
|
|
62
|
+
Durar update --tag beta
|
|
63
|
+
|
|
64
|
+
# Install from GitHub main branch (npm tarball)
|
|
65
|
+
Durar update --tag main
|
|
66
|
+
|
|
67
|
+
# Install a specific npm package spec
|
|
68
|
+
Durar update --tag Durar@2026.4.1-beta.1
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Notes:
|
|
72
|
+
|
|
73
|
+
- `--tag` applies to **package (npm) installs only**. Git installs ignore it.
|
|
74
|
+
- The tag is not persisted. Your next `Durar update` uses your configured
|
|
75
|
+
channel as usual.
|
|
76
|
+
- Downgrade protection: if the target version is older than your current version,
|
|
77
|
+
Durar prompts for confirmation (skip with `--yes`).
|
|
78
|
+
- `--channel beta` is different from `--tag beta`: the channel flow can fall back
|
|
79
|
+
to stable/latest when beta is missing or older, while `--tag beta` targets the
|
|
80
|
+
raw `beta` dist-tag for that one run.
|
|
81
|
+
|
|
82
|
+
## Dry run
|
|
83
|
+
|
|
84
|
+
Preview what `Durar update` would do without making changes:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
Durar update --dry-run
|
|
88
|
+
Durar update --channel beta --dry-run
|
|
89
|
+
Durar update --tag 2026.4.1-beta.1 --dry-run
|
|
90
|
+
Durar update --dry-run --json
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
The dry run shows the effective channel, target version, planned actions, and
|
|
94
|
+
whether a downgrade confirmation would be required.
|
|
95
|
+
|
|
96
|
+
## Plugins and channels
|
|
97
|
+
|
|
98
|
+
When you switch channels with `Durar update`, Durar also syncs plugin
|
|
99
|
+
sources:
|
|
100
|
+
|
|
101
|
+
- `dev` prefers bundled plugins from the git checkout.
|
|
102
|
+
- `stable` and `beta` restore npm-installed plugin packages.
|
|
103
|
+
- npm-installed plugins are updated after the core update completes.
|
|
104
|
+
|
|
105
|
+
## Checking current status
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
Durar update status
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Shows the active channel, install kind (git or package), current version, and
|
|
112
|
+
source (config, git tag, git branch, or default).
|
|
113
|
+
|
|
114
|
+
## Tagging best practices
|
|
115
|
+
|
|
116
|
+
- Tag releases you want git checkouts to land on (`vYYYY.M.D` for stable,
|
|
117
|
+
`vYYYY.M.D-beta.N` for beta).
|
|
118
|
+
- `vYYYY.M.D.beta.N` is also recognized for compatibility, but prefer `-beta.N`.
|
|
119
|
+
- Legacy `vYYYY.M.D-<patch>` tags are still recognized as stable (non-beta).
|
|
120
|
+
- Keep tags immutable: never move or reuse a tag.
|
|
121
|
+
- npm dist-tags remain the source of truth for npm installs:
|
|
122
|
+
- `latest` -> stable
|
|
123
|
+
- `beta` -> candidate build or beta-first stable build
|
|
124
|
+
- `dev` -> main snapshot (optional)
|
|
125
|
+
|
|
126
|
+
## macOS app availability
|
|
127
|
+
|
|
128
|
+
Beta and dev builds may **not** include a macOS app release. That is OK:
|
|
129
|
+
|
|
130
|
+
- The git tag and npm dist-tag can still be published.
|
|
131
|
+
- Call out "no macOS build for this beta" in release notes or changelog.
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Host Durar on a DigitalOcean Droplet"
|
|
3
|
+
read_when:
|
|
4
|
+
- Setting up Durar on DigitalOcean
|
|
5
|
+
- Looking for a simple paid VPS for Durar
|
|
6
|
+
title: "DigitalOcean"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# DigitalOcean
|
|
10
|
+
|
|
11
|
+
Run a persistent Durar Gateway on a DigitalOcean Droplet.
|
|
12
|
+
|
|
13
|
+
## Prerequisites
|
|
14
|
+
|
|
15
|
+
- DigitalOcean account ([signup](https://cloud.digitalocean.com/registrations/new))
|
|
16
|
+
- SSH key pair (or willingness to use password auth)
|
|
17
|
+
- About 20 minutes
|
|
18
|
+
|
|
19
|
+
## Setup
|
|
20
|
+
|
|
21
|
+
<Steps>
|
|
22
|
+
<Step title="Create a Droplet">
|
|
23
|
+
<Warning>
|
|
24
|
+
Use a clean base image (Ubuntu 24.04 LTS). Avoid third-party Marketplace 1-click images unless you have reviewed their startup scripts and firewall defaults.
|
|
25
|
+
</Warning>
|
|
26
|
+
|
|
27
|
+
1. Log into [DigitalOcean](https://cloud.digitalocean.com/).
|
|
28
|
+
2. Click **Create > Droplets**.
|
|
29
|
+
3. Choose:
|
|
30
|
+
- **Region:** Closest to you
|
|
31
|
+
- **Image:** Ubuntu 24.04 LTS
|
|
32
|
+
- **Size:** Basic, Regular, 1 vCPU / 1 GB RAM / 25 GB SSD
|
|
33
|
+
- **Authentication:** SSH key (recommended) or password
|
|
34
|
+
4. Click **Create Droplet** and note the IP address.
|
|
35
|
+
|
|
36
|
+
</Step>
|
|
37
|
+
|
|
38
|
+
<Step title="Connect and install">
|
|
39
|
+
```bash
|
|
40
|
+
ssh root@YOUR_DROPLET_IP
|
|
41
|
+
|
|
42
|
+
apt update && apt upgrade -y
|
|
43
|
+
|
|
44
|
+
# Install Node.js 24
|
|
45
|
+
curl -fsSL https://deb.nodesource.com/setup_24.x | bash -
|
|
46
|
+
apt install -y nodejs
|
|
47
|
+
|
|
48
|
+
# Install Durar
|
|
49
|
+
curl -fsSL https://Durar.ai/install.sh | bash
|
|
50
|
+
Durar --version
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
</Step>
|
|
54
|
+
|
|
55
|
+
<Step title="Run onboarding">
|
|
56
|
+
```bash
|
|
57
|
+
Durar onboard --install-daemon
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
The wizard walks you through model auth, channel setup, gateway token generation, and daemon installation (systemd).
|
|
61
|
+
|
|
62
|
+
</Step>
|
|
63
|
+
|
|
64
|
+
<Step title="Add swap (recommended for 1 GB Droplets)">
|
|
65
|
+
```bash
|
|
66
|
+
fallocate -l 2G /swapfile
|
|
67
|
+
chmod 600 /swapfile
|
|
68
|
+
mkswap /swapfile
|
|
69
|
+
swapon /swapfile
|
|
70
|
+
echo '/swapfile none swap sw 0 0' >> /etc/fstab
|
|
71
|
+
```
|
|
72
|
+
</Step>
|
|
73
|
+
|
|
74
|
+
<Step title="Verify the gateway">
|
|
75
|
+
```bash
|
|
76
|
+
Durar status
|
|
77
|
+
systemctl --user status Durar-gateway.service
|
|
78
|
+
journalctl --user -u Durar-gateway.service -f
|
|
79
|
+
```
|
|
80
|
+
</Step>
|
|
81
|
+
|
|
82
|
+
<Step title="Access the Control UI">
|
|
83
|
+
The gateway binds to loopback by default. Pick one of these options.
|
|
84
|
+
|
|
85
|
+
**Option A: SSH tunnel (simplest)**
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
# From your local machine
|
|
89
|
+
ssh -L 18789:localhost:18789 root@YOUR_DROPLET_IP
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Then open `http://localhost:18789`.
|
|
93
|
+
|
|
94
|
+
**Option B: Tailscale Serve**
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
curl -fsSL https://tailscale.com/install.sh | sh
|
|
98
|
+
tailscale up
|
|
99
|
+
Durar config set gateway.tailscale.mode serve
|
|
100
|
+
Durar gateway restart
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Then open `https://<magicdns>/` from any device on your tailnet.
|
|
104
|
+
|
|
105
|
+
**Option C: Tailnet bind (no Serve)**
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
Durar config set gateway.bind tailnet
|
|
109
|
+
Durar gateway restart
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Then open `http://<tailscale-ip>:18789` (token required).
|
|
113
|
+
|
|
114
|
+
</Step>
|
|
115
|
+
</Steps>
|
|
116
|
+
|
|
117
|
+
## Troubleshooting
|
|
118
|
+
|
|
119
|
+
**Gateway will not start** -- Run `Durar doctor --non-interactive` and check logs with `journalctl --user -u Durar-gateway.service -n 50`.
|
|
120
|
+
|
|
121
|
+
**Port already in use** -- Run `lsof -i :18789` to find the process, then stop it.
|
|
122
|
+
|
|
123
|
+
**Out of memory** -- Verify swap is active with `free -h`. If still hitting OOM, use API-based models (Claude, GPT) rather than local models, or upgrade to a 2 GB Droplet.
|
|
124
|
+
|
|
125
|
+
## Next steps
|
|
126
|
+
|
|
127
|
+
- [Channels](/channels) -- connect Telegram, WhatsApp, Discord, and more
|
|
128
|
+
- [Gateway configuration](/gateway/configuration) -- all config options
|
|
129
|
+
- [Updating](/install/updating) -- keep Durar up to date
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Shared Docker VM runtime steps for long-lived Durar Gateway hosts"
|
|
3
|
+
read_when:
|
|
4
|
+
- You are deploying Durar on a cloud VM with Docker
|
|
5
|
+
- You need the shared binary bake, persistence, and update flow
|
|
6
|
+
title: "Docker VM Runtime"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Docker VM Runtime
|
|
10
|
+
|
|
11
|
+
Shared runtime steps for VM-based Docker installs such as GCP, Hetzner, and similar VPS providers.
|
|
12
|
+
|
|
13
|
+
## Bake required binaries into the image
|
|
14
|
+
|
|
15
|
+
Installing binaries inside a running container is a trap.
|
|
16
|
+
Anything installed at runtime will be lost on restart.
|
|
17
|
+
|
|
18
|
+
All external binaries required by skills must be installed at image build time.
|
|
19
|
+
|
|
20
|
+
The examples below show three common binaries only:
|
|
21
|
+
|
|
22
|
+
- `gog` for Gmail access
|
|
23
|
+
- `goplaces` for Google Places
|
|
24
|
+
- `wacli` for WhatsApp
|
|
25
|
+
|
|
26
|
+
These are examples, not a complete list.
|
|
27
|
+
You may install as many binaries as needed using the same pattern.
|
|
28
|
+
|
|
29
|
+
If you add new skills later that depend on additional binaries, you must:
|
|
30
|
+
|
|
31
|
+
1. Update the Dockerfile
|
|
32
|
+
2. Rebuild the image
|
|
33
|
+
3. Restart the containers
|
|
34
|
+
|
|
35
|
+
**Example Dockerfile**
|
|
36
|
+
|
|
37
|
+
```dockerfile
|
|
38
|
+
FROM node:24-bookworm
|
|
39
|
+
|
|
40
|
+
RUN apt-get update && apt-get install -y socat && rm -rf /var/lib/apt/lists/*
|
|
41
|
+
|
|
42
|
+
# Example binary 1: Gmail CLI
|
|
43
|
+
RUN curl -L https://github.com/steipete/gog/releases/latest/download/gog_Linux_x86_64.tar.gz \
|
|
44
|
+
| tar -xz -C /usr/local/bin && chmod +x /usr/local/bin/gog
|
|
45
|
+
|
|
46
|
+
# Example binary 2: Google Places CLI
|
|
47
|
+
RUN curl -L https://github.com/steipete/goplaces/releases/latest/download/goplaces_Linux_x86_64.tar.gz \
|
|
48
|
+
| tar -xz -C /usr/local/bin && chmod +x /usr/local/bin/goplaces
|
|
49
|
+
|
|
50
|
+
# Example binary 3: WhatsApp CLI
|
|
51
|
+
RUN curl -L https://github.com/steipete/wacli/releases/latest/download/wacli_Linux_x86_64.tar.gz \
|
|
52
|
+
| tar -xz -C /usr/local/bin && chmod +x /usr/local/bin/wacli
|
|
53
|
+
|
|
54
|
+
# Add more binaries below using the same pattern
|
|
55
|
+
|
|
56
|
+
WORKDIR /app
|
|
57
|
+
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc ./
|
|
58
|
+
COPY ui/package.json ./ui/package.json
|
|
59
|
+
COPY scripts ./scripts
|
|
60
|
+
|
|
61
|
+
RUN corepack enable
|
|
62
|
+
RUN pnpm install --frozen-lockfile
|
|
63
|
+
|
|
64
|
+
COPY . .
|
|
65
|
+
RUN pnpm build
|
|
66
|
+
RUN pnpm ui:install
|
|
67
|
+
RUN pnpm ui:build
|
|
68
|
+
|
|
69
|
+
ENV NODE_ENV=production
|
|
70
|
+
|
|
71
|
+
CMD ["node","dist/index.js"]
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
<Note>
|
|
75
|
+
The download URLs above are for x86_64 (amd64). For ARM-based VMs (e.g. Hetzner ARM, GCP Tau T2A), replace the download URLs with the appropriate ARM64 variants from each tool's release page.
|
|
76
|
+
</Note>
|
|
77
|
+
|
|
78
|
+
## Build and launch
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
docker compose build
|
|
82
|
+
docker compose up -d Durar-gateway
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
If build fails with `Killed` or `exit code 137` during `pnpm install --frozen-lockfile`, the VM is out of memory.
|
|
86
|
+
Use a larger machine class before retrying.
|
|
87
|
+
|
|
88
|
+
Verify binaries:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
docker compose exec Durar-gateway which gog
|
|
92
|
+
docker compose exec Durar-gateway which goplaces
|
|
93
|
+
docker compose exec Durar-gateway which wacli
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Expected output:
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
/usr/local/bin/gog
|
|
100
|
+
/usr/local/bin/goplaces
|
|
101
|
+
/usr/local/bin/wacli
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Verify Gateway:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
docker compose logs -f Durar-gateway
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Expected output:
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
[gateway] listening on ws://0.0.0.0:18789
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## What persists where
|
|
117
|
+
|
|
118
|
+
Durar runs in Docker, but Docker is not the source of truth.
|
|
119
|
+
All long-lived state must survive restarts, rebuilds, and reboots.
|
|
120
|
+
|
|
121
|
+
| Component | Location | Persistence mechanism | Notes |
|
|
122
|
+
| ------------------- | --------------------------------- | ---------------------- | ------------------------------------------------------------- |
|
|
123
|
+
| Gateway config | `/home/node/.Durar/` | Host volume mount | Includes `Durar.json`, `.env` |
|
|
124
|
+
| Model auth profiles | `/home/node/.Durar/agents/` | Host volume mount | `agents/<agentId>/agent/auth-profiles.json` (OAuth, API keys) |
|
|
125
|
+
| Skill configs | `/home/node/.Durar/skills/` | Host volume mount | Skill-level state |
|
|
126
|
+
| Agent workspace | `/home/node/.Durar/workspace/` | Host volume mount | Code and agent artifacts |
|
|
127
|
+
| WhatsApp session | `/home/node/.Durar/` | Host volume mount | Preserves QR login |
|
|
128
|
+
| Gmail keyring | `/home/node/.Durar/` | Host volume + password | Requires `GOG_KEYRING_PASSWORD` |
|
|
129
|
+
| External binaries | `/usr/local/bin/` | Docker image | Must be baked at build time |
|
|
130
|
+
| Node runtime | Container filesystem | Docker image | Rebuilt every image build |
|
|
131
|
+
| OS packages | Container filesystem | Docker image | Do not install at runtime |
|
|
132
|
+
| Docker container | Ephemeral | Restartable | Safe to destroy |
|
|
133
|
+
|
|
134
|
+
## Updates
|
|
135
|
+
|
|
136
|
+
To update Durar on the VM:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
git pull
|
|
140
|
+
docker compose build
|
|
141
|
+
docker compose up -d
|
|
142
|
+
```
|