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,427 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Legacy iMessage support via imsg (JSON-RPC over stdio). New setups should use BlueBubbles."
|
|
3
|
+
read_when:
|
|
4
|
+
- Setting up iMessage support
|
|
5
|
+
- Debugging iMessage send/receive
|
|
6
|
+
title: "iMessage"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# iMessage (legacy: imsg)
|
|
10
|
+
|
|
11
|
+
<Warning>
|
|
12
|
+
For new iMessage deployments, use <a href="/channels/bluebubbles">BlueBubbles</a>.
|
|
13
|
+
|
|
14
|
+
The `imsg` integration is legacy and may be removed in a future release.
|
|
15
|
+
</Warning>
|
|
16
|
+
|
|
17
|
+
Status: legacy external CLI integration. Gateway spawns `imsg rpc` and communicates over JSON-RPC on stdio (no separate daemon/port).
|
|
18
|
+
|
|
19
|
+
<CardGroup cols={3}>
|
|
20
|
+
<Card title="BlueBubbles (recommended)" icon="message-circle" href="/channels/bluebubbles">
|
|
21
|
+
Preferred iMessage path for new setups.
|
|
22
|
+
</Card>
|
|
23
|
+
<Card title="Pairing" icon="link" href="/channels/pairing">
|
|
24
|
+
iMessage DMs default to pairing mode.
|
|
25
|
+
</Card>
|
|
26
|
+
<Card title="Configuration reference" icon="settings" href="/gateway/configuration-reference#imessage">
|
|
27
|
+
Full iMessage field reference.
|
|
28
|
+
</Card>
|
|
29
|
+
</CardGroup>
|
|
30
|
+
|
|
31
|
+
## Quick setup
|
|
32
|
+
|
|
33
|
+
<Tabs>
|
|
34
|
+
<Tab title="Local Mac (fast path)">
|
|
35
|
+
<Steps>
|
|
36
|
+
<Step title="Install and verify imsg">
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
brew install steipete/tap/imsg
|
|
40
|
+
imsg rpc --help
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
</Step>
|
|
44
|
+
|
|
45
|
+
<Step title="Configure Durar">
|
|
46
|
+
|
|
47
|
+
```json5
|
|
48
|
+
{
|
|
49
|
+
channels: {
|
|
50
|
+
imessage: {
|
|
51
|
+
enabled: true,
|
|
52
|
+
cliPath: "/usr/local/bin/imsg",
|
|
53
|
+
dbPath: "/Users/<you>/Library/Messages/chat.db",
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
</Step>
|
|
60
|
+
|
|
61
|
+
<Step title="Start gateway">
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
Durar gateway
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
</Step>
|
|
68
|
+
|
|
69
|
+
<Step title="Approve first DM pairing (default dmPolicy)">
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
Durar pairing list imessage
|
|
73
|
+
Durar pairing approve imessage <CODE>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Pairing requests expire after 1 hour.
|
|
77
|
+
</Step>
|
|
78
|
+
</Steps>
|
|
79
|
+
|
|
80
|
+
</Tab>
|
|
81
|
+
|
|
82
|
+
<Tab title="Remote Mac over SSH">
|
|
83
|
+
Durar only requires a stdio-compatible `cliPath`, so you can point `cliPath` at a wrapper script that SSHes to a remote Mac and runs `imsg`.
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
#!/usr/bin/env bash
|
|
87
|
+
exec ssh -T gateway-host imsg "$@"
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Recommended config when attachments are enabled:
|
|
91
|
+
|
|
92
|
+
```json5
|
|
93
|
+
{
|
|
94
|
+
channels: {
|
|
95
|
+
imessage: {
|
|
96
|
+
enabled: true,
|
|
97
|
+
cliPath: "~/.Durar/scripts/imsg-ssh",
|
|
98
|
+
remoteHost: "user@gateway-host", // used for SCP attachment fetches
|
|
99
|
+
includeAttachments: true,
|
|
100
|
+
// Optional: override allowed attachment roots.
|
|
101
|
+
// Defaults include /Users/*/Library/Messages/Attachments
|
|
102
|
+
attachmentRoots: ["/Users/*/Library/Messages/Attachments"],
|
|
103
|
+
remoteAttachmentRoots: ["/Users/*/Library/Messages/Attachments"],
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
If `remoteHost` is not set, Durar attempts to auto-detect it by parsing the SSH wrapper script.
|
|
110
|
+
`remoteHost` must be `host` or `user@host` (no spaces or SSH options).
|
|
111
|
+
Durar uses strict host-key checking for SCP, so the relay host key must already exist in `~/.ssh/known_hosts`.
|
|
112
|
+
Attachment paths are validated against allowed roots (`attachmentRoots` / `remoteAttachmentRoots`).
|
|
113
|
+
|
|
114
|
+
</Tab>
|
|
115
|
+
</Tabs>
|
|
116
|
+
|
|
117
|
+
## Requirements and permissions (macOS)
|
|
118
|
+
|
|
119
|
+
- Messages must be signed in on the Mac running `imsg`.
|
|
120
|
+
- Full Disk Access is required for the process context running Durar/`imsg` (Messages DB access).
|
|
121
|
+
- Automation permission is required to send messages through Messages.app.
|
|
122
|
+
|
|
123
|
+
<Tip>
|
|
124
|
+
Permissions are granted per process context. If gateway runs headless (LaunchAgent/SSH), run a one-time interactive command in that same context to trigger prompts:
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
imsg chats --limit 1
|
|
128
|
+
# or
|
|
129
|
+
imsg send <handle> "test"
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
</Tip>
|
|
133
|
+
|
|
134
|
+
## Access control and routing
|
|
135
|
+
|
|
136
|
+
<Tabs>
|
|
137
|
+
<Tab title="DM policy">
|
|
138
|
+
`channels.imessage.dmPolicy` controls direct messages:
|
|
139
|
+
|
|
140
|
+
- `pairing` (default)
|
|
141
|
+
- `allowlist`
|
|
142
|
+
- `open` (requires `allowFrom` to include `"*"`)
|
|
143
|
+
- `disabled`
|
|
144
|
+
|
|
145
|
+
Allowlist field: `channels.imessage.allowFrom`.
|
|
146
|
+
|
|
147
|
+
Allowlist entries can be handles or chat targets (`chat_id:*`, `chat_guid:*`, `chat_identifier:*`).
|
|
148
|
+
|
|
149
|
+
</Tab>
|
|
150
|
+
|
|
151
|
+
<Tab title="Group policy + mentions">
|
|
152
|
+
`channels.imessage.groupPolicy` controls group handling:
|
|
153
|
+
|
|
154
|
+
- `allowlist` (default when configured)
|
|
155
|
+
- `open`
|
|
156
|
+
- `disabled`
|
|
157
|
+
|
|
158
|
+
Group sender allowlist: `channels.imessage.groupAllowFrom`.
|
|
159
|
+
|
|
160
|
+
Runtime fallback: if `groupAllowFrom` is unset, iMessage group sender checks fall back to `allowFrom` when available.
|
|
161
|
+
Runtime note: if `channels.imessage` is completely missing, runtime falls back to `groupPolicy="allowlist"` and logs a warning (even if `channels.defaults.groupPolicy` is set).
|
|
162
|
+
|
|
163
|
+
Mention gating for groups:
|
|
164
|
+
|
|
165
|
+
- iMessage has no native mention metadata
|
|
166
|
+
- mention detection uses regex patterns (`agents.list[].groupChat.mentionPatterns`, fallback `messages.groupChat.mentionPatterns`)
|
|
167
|
+
- with no configured patterns, mention gating cannot be enforced
|
|
168
|
+
|
|
169
|
+
Control commands from authorized senders can bypass mention gating in groups.
|
|
170
|
+
|
|
171
|
+
</Tab>
|
|
172
|
+
|
|
173
|
+
<Tab title="Sessions and deterministic replies">
|
|
174
|
+
- DMs use direct routing; groups use group routing.
|
|
175
|
+
- With default `session.dmScope=main`, iMessage DMs collapse into the agent main session.
|
|
176
|
+
- Group sessions are isolated (`agent:<agentId>:imessage:group:<chat_id>`).
|
|
177
|
+
- Replies route back to iMessage using originating channel/target metadata.
|
|
178
|
+
|
|
179
|
+
Group-ish thread behavior:
|
|
180
|
+
|
|
181
|
+
Some multi-participant iMessage threads can arrive with `is_group=false`.
|
|
182
|
+
If that `chat_id` is explicitly configured under `channels.imessage.groups`, Durar treats it as group traffic (group gating + group session isolation).
|
|
183
|
+
|
|
184
|
+
</Tab>
|
|
185
|
+
</Tabs>
|
|
186
|
+
|
|
187
|
+
## ACP conversation bindings
|
|
188
|
+
|
|
189
|
+
Legacy iMessage chats can also be bound to ACP sessions.
|
|
190
|
+
|
|
191
|
+
Fast operator flow:
|
|
192
|
+
|
|
193
|
+
- Run `/acp spawn codex --bind here` inside the DM or allowed group chat.
|
|
194
|
+
- Future messages in that same iMessage conversation route to the spawned ACP session.
|
|
195
|
+
- `/new` and `/reset` reset the same bound ACP session in place.
|
|
196
|
+
- `/acp close` closes the ACP session and removes the binding.
|
|
197
|
+
|
|
198
|
+
Configured persistent bindings are supported through top-level `bindings[]` entries with `type: "acp"` and `match.channel: "imessage"`.
|
|
199
|
+
|
|
200
|
+
`match.peer.id` can use:
|
|
201
|
+
|
|
202
|
+
- normalized DM handle such as `+15555550123` or `user@example.com`
|
|
203
|
+
- `chat_id:<id>` (recommended for stable group bindings)
|
|
204
|
+
- `chat_guid:<guid>`
|
|
205
|
+
- `chat_identifier:<identifier>`
|
|
206
|
+
|
|
207
|
+
Example:
|
|
208
|
+
|
|
209
|
+
```json5
|
|
210
|
+
{
|
|
211
|
+
agents: {
|
|
212
|
+
list: [
|
|
213
|
+
{
|
|
214
|
+
id: "codex",
|
|
215
|
+
runtime: {
|
|
216
|
+
type: "acp",
|
|
217
|
+
acp: { agent: "codex", backend: "acpx", mode: "persistent" },
|
|
218
|
+
},
|
|
219
|
+
},
|
|
220
|
+
],
|
|
221
|
+
},
|
|
222
|
+
bindings: [
|
|
223
|
+
{
|
|
224
|
+
type: "acp",
|
|
225
|
+
agentId: "codex",
|
|
226
|
+
match: {
|
|
227
|
+
channel: "imessage",
|
|
228
|
+
accountId: "default",
|
|
229
|
+
peer: { kind: "group", id: "chat_id:123" },
|
|
230
|
+
},
|
|
231
|
+
acp: { label: "codex-group" },
|
|
232
|
+
},
|
|
233
|
+
],
|
|
234
|
+
}
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
See [ACP Agents](/tools/acp-agents) for shared ACP binding behavior.
|
|
238
|
+
|
|
239
|
+
## Deployment patterns
|
|
240
|
+
|
|
241
|
+
<AccordionGroup>
|
|
242
|
+
<Accordion title="Dedicated bot macOS user (separate iMessage identity)">
|
|
243
|
+
Use a dedicated Apple ID and macOS user so bot traffic is isolated from your personal Messages profile.
|
|
244
|
+
|
|
245
|
+
Typical flow:
|
|
246
|
+
|
|
247
|
+
1. Create/sign in a dedicated macOS user.
|
|
248
|
+
2. Sign into Messages with the bot Apple ID in that user.
|
|
249
|
+
3. Install `imsg` in that user.
|
|
250
|
+
4. Create SSH wrapper so Durar can run `imsg` in that user context.
|
|
251
|
+
5. Point `channels.imessage.accounts.<id>.cliPath` and `.dbPath` to that user profile.
|
|
252
|
+
|
|
253
|
+
First run may require GUI approvals (Automation + Full Disk Access) in that bot user session.
|
|
254
|
+
|
|
255
|
+
</Accordion>
|
|
256
|
+
|
|
257
|
+
<Accordion title="Remote Mac over Tailscale (example)">
|
|
258
|
+
Common topology:
|
|
259
|
+
|
|
260
|
+
- gateway runs on Linux/VM
|
|
261
|
+
- iMessage + `imsg` runs on a Mac in your tailnet
|
|
262
|
+
- `cliPath` wrapper uses SSH to run `imsg`
|
|
263
|
+
- `remoteHost` enables SCP attachment fetches
|
|
264
|
+
|
|
265
|
+
Example:
|
|
266
|
+
|
|
267
|
+
```json5
|
|
268
|
+
{
|
|
269
|
+
channels: {
|
|
270
|
+
imessage: {
|
|
271
|
+
enabled: true,
|
|
272
|
+
cliPath: "~/.Durar/scripts/imsg-ssh",
|
|
273
|
+
remoteHost: "bot@mac-mini.tailnet-1234.ts.net",
|
|
274
|
+
includeAttachments: true,
|
|
275
|
+
dbPath: "/Users/bot/Library/Messages/chat.db",
|
|
276
|
+
},
|
|
277
|
+
},
|
|
278
|
+
}
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
```bash
|
|
282
|
+
#!/usr/bin/env bash
|
|
283
|
+
exec ssh -T bot@mac-mini.tailnet-1234.ts.net imsg "$@"
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
Use SSH keys so both SSH and SCP are non-interactive.
|
|
287
|
+
Ensure the host key is trusted first (for example `ssh bot@mac-mini.tailnet-1234.ts.net`) so `known_hosts` is populated.
|
|
288
|
+
|
|
289
|
+
</Accordion>
|
|
290
|
+
|
|
291
|
+
<Accordion title="Multi-account pattern">
|
|
292
|
+
iMessage supports per-account config under `channels.imessage.accounts`.
|
|
293
|
+
|
|
294
|
+
Each account can override fields such as `cliPath`, `dbPath`, `allowFrom`, `groupPolicy`, `mediaMaxMb`, history settings, and attachment root allowlists.
|
|
295
|
+
|
|
296
|
+
</Accordion>
|
|
297
|
+
</AccordionGroup>
|
|
298
|
+
|
|
299
|
+
## Media, chunking, and delivery targets
|
|
300
|
+
|
|
301
|
+
<AccordionGroup>
|
|
302
|
+
<Accordion title="Attachments and media">
|
|
303
|
+
- inbound attachment ingestion is optional: `channels.imessage.includeAttachments`
|
|
304
|
+
- remote attachment paths can be fetched via SCP when `remoteHost` is set
|
|
305
|
+
- attachment paths must match allowed roots:
|
|
306
|
+
- `channels.imessage.attachmentRoots` (local)
|
|
307
|
+
- `channels.imessage.remoteAttachmentRoots` (remote SCP mode)
|
|
308
|
+
- default root pattern: `/Users/*/Library/Messages/Attachments`
|
|
309
|
+
- SCP uses strict host-key checking (`StrictHostKeyChecking=yes`)
|
|
310
|
+
- outbound media size uses `channels.imessage.mediaMaxMb` (default 16 MB)
|
|
311
|
+
</Accordion>
|
|
312
|
+
|
|
313
|
+
<Accordion title="Outbound chunking">
|
|
314
|
+
- text chunk limit: `channels.imessage.textChunkLimit` (default 4000)
|
|
315
|
+
- chunk mode: `channels.imessage.chunkMode`
|
|
316
|
+
- `length` (default)
|
|
317
|
+
- `newline` (paragraph-first splitting)
|
|
318
|
+
</Accordion>
|
|
319
|
+
|
|
320
|
+
<Accordion title="Addressing formats">
|
|
321
|
+
Preferred explicit targets:
|
|
322
|
+
|
|
323
|
+
- `chat_id:123` (recommended for stable routing)
|
|
324
|
+
- `chat_guid:...`
|
|
325
|
+
- `chat_identifier:...`
|
|
326
|
+
|
|
327
|
+
Handle targets are also supported:
|
|
328
|
+
|
|
329
|
+
- `imessage:+1555...`
|
|
330
|
+
- `sms:+1555...`
|
|
331
|
+
- `user@example.com`
|
|
332
|
+
|
|
333
|
+
```bash
|
|
334
|
+
imsg chats --limit 20
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
</Accordion>
|
|
338
|
+
</AccordionGroup>
|
|
339
|
+
|
|
340
|
+
## Config writes
|
|
341
|
+
|
|
342
|
+
iMessage allows channel-initiated config writes by default (for `/config set|unset` when `commands.config: true`).
|
|
343
|
+
|
|
344
|
+
Disable:
|
|
345
|
+
|
|
346
|
+
```json5
|
|
347
|
+
{
|
|
348
|
+
channels: {
|
|
349
|
+
imessage: {
|
|
350
|
+
configWrites: false,
|
|
351
|
+
},
|
|
352
|
+
},
|
|
353
|
+
}
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
## Troubleshooting
|
|
357
|
+
|
|
358
|
+
<AccordionGroup>
|
|
359
|
+
<Accordion title="imsg not found or RPC unsupported">
|
|
360
|
+
Validate the binary and RPC support:
|
|
361
|
+
|
|
362
|
+
```bash
|
|
363
|
+
imsg rpc --help
|
|
364
|
+
Durar channels status --probe
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
If probe reports RPC unsupported, update `imsg`.
|
|
368
|
+
|
|
369
|
+
</Accordion>
|
|
370
|
+
|
|
371
|
+
<Accordion title="DMs are ignored">
|
|
372
|
+
Check:
|
|
373
|
+
|
|
374
|
+
- `channels.imessage.dmPolicy`
|
|
375
|
+
- `channels.imessage.allowFrom`
|
|
376
|
+
- pairing approvals (`Durar pairing list imessage`)
|
|
377
|
+
|
|
378
|
+
</Accordion>
|
|
379
|
+
|
|
380
|
+
<Accordion title="Group messages are ignored">
|
|
381
|
+
Check:
|
|
382
|
+
|
|
383
|
+
- `channels.imessage.groupPolicy`
|
|
384
|
+
- `channels.imessage.groupAllowFrom`
|
|
385
|
+
- `channels.imessage.groups` allowlist behavior
|
|
386
|
+
- mention pattern configuration (`agents.list[].groupChat.mentionPatterns`)
|
|
387
|
+
|
|
388
|
+
</Accordion>
|
|
389
|
+
|
|
390
|
+
<Accordion title="Remote attachments fail">
|
|
391
|
+
Check:
|
|
392
|
+
|
|
393
|
+
- `channels.imessage.remoteHost`
|
|
394
|
+
- `channels.imessage.remoteAttachmentRoots`
|
|
395
|
+
- SSH/SCP key auth from the gateway host
|
|
396
|
+
- host key exists in `~/.ssh/known_hosts` on the gateway host
|
|
397
|
+
- remote path readability on the Mac running Messages
|
|
398
|
+
|
|
399
|
+
</Accordion>
|
|
400
|
+
|
|
401
|
+
<Accordion title="macOS permission prompts were missed">
|
|
402
|
+
Re-run in an interactive GUI terminal in the same user/session context and approve prompts:
|
|
403
|
+
|
|
404
|
+
```bash
|
|
405
|
+
imsg chats --limit 1
|
|
406
|
+
imsg send <handle> "test"
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
Confirm Full Disk Access + Automation are granted for the process context that runs Durar/`imsg`.
|
|
410
|
+
|
|
411
|
+
</Accordion>
|
|
412
|
+
</AccordionGroup>
|
|
413
|
+
|
|
414
|
+
## Configuration reference pointers
|
|
415
|
+
|
|
416
|
+
- [Configuration reference - iMessage](/gateway/configuration-reference#imessage)
|
|
417
|
+
- [Gateway configuration](/gateway/configuration)
|
|
418
|
+
- [Pairing](/channels/pairing)
|
|
419
|
+
- [BlueBubbles](/channels/bluebubbles)
|
|
420
|
+
|
|
421
|
+
## Related
|
|
422
|
+
|
|
423
|
+
- [Channels Overview](/channels) — all supported channels
|
|
424
|
+
- [Pairing](/channels/pairing) — DM authentication and pairing flow
|
|
425
|
+
- [Groups](/channels/groups) — group chat behavior and mention gating
|
|
426
|
+
- [Channel Routing](/channels/channel-routing) — session routing for messages
|
|
427
|
+
- [Security](/gateway/security) — access model and hardening
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Messaging platforms Durar can connect to"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want to choose a chat channel for Durar
|
|
5
|
+
- You need a quick overview of supported messaging platforms
|
|
6
|
+
title: "Chat Channels"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Chat Channels
|
|
10
|
+
|
|
11
|
+
Durar can talk to you on any chat app you already use. Each channel connects via the Gateway.
|
|
12
|
+
Text is supported everywhere; media and reactions vary by channel.
|
|
13
|
+
|
|
14
|
+
## Supported channels
|
|
15
|
+
|
|
16
|
+
- [BlueBubbles](/channels/bluebubbles) — **Recommended for iMessage**; uses the BlueBubbles macOS server REST API with full feature support (bundled plugin; edit, unsend, effects, reactions, group management — edit currently broken on macOS 26 Tahoe).
|
|
17
|
+
- [Discord](/channels/discord) — Discord Bot API + Gateway; supports servers, channels, and DMs.
|
|
18
|
+
- [Feishu](/channels/feishu) — Feishu/Lark bot via WebSocket (bundled plugin).
|
|
19
|
+
- [Google Chat](/channels/googlechat) — Google Chat API app via HTTP webhook.
|
|
20
|
+
- [iMessage (legacy)](/channels/imessage) — Legacy macOS integration via imsg CLI (deprecated, use BlueBubbles for new setups).
|
|
21
|
+
- [IRC](/channels/irc) — Classic IRC servers; channels + DMs with pairing/allowlist controls.
|
|
22
|
+
- [LINE](/channels/line) — LINE Messaging API bot (bundled plugin).
|
|
23
|
+
- [Matrix](/channels/matrix) — Matrix protocol (bundled plugin).
|
|
24
|
+
- [Mattermost](/channels/mattermost) — Bot API + WebSocket; channels, groups, DMs (bundled plugin).
|
|
25
|
+
- [Microsoft Teams](/channels/msteams) — Bot Framework; enterprise support (bundled plugin).
|
|
26
|
+
- [Nextcloud Talk](/channels/nextcloud-talk) — Self-hosted chat via Nextcloud Talk (bundled plugin).
|
|
27
|
+
- [Nostr](/channels/nostr) — Decentralized DMs via NIP-04 (bundled plugin).
|
|
28
|
+
- [QQ Bot](/channels/qqbot) — QQ Bot API; private chat, group chat, and rich media (bundled plugin).
|
|
29
|
+
- [Signal](/channels/signal) — signal-cli; privacy-focused.
|
|
30
|
+
- [Slack](/channels/slack) — Bolt SDK; workspace apps.
|
|
31
|
+
- [Synology Chat](/channels/synology-chat) — Synology NAS Chat via outgoing+incoming webhooks (bundled plugin).
|
|
32
|
+
- [Telegram](/channels/telegram) — Bot API via grammY; supports groups.
|
|
33
|
+
- [Tlon](/channels/tlon) — Urbit-based messenger (bundled plugin).
|
|
34
|
+
- [Twitch](/channels/twitch) — Twitch chat via IRC connection (bundled plugin).
|
|
35
|
+
- [Voice Call](/plugins/voice-call) — Telephony via Plivo or Twilio (plugin, installed separately).
|
|
36
|
+
- [WebChat](/web/webchat) — Gateway WebChat UI over WebSocket.
|
|
37
|
+
- [WeChat](https://www.npmjs.com/package/@tencent-weixin/Durar-weixin) — Tencent iLink Bot plugin via QR login; private chats only.
|
|
38
|
+
- [WhatsApp](/channels/whatsapp) — Most popular; uses Baileys and requires QR pairing.
|
|
39
|
+
- [Zalo](/channels/zalo) — Zalo Bot API; Vietnam's popular messenger (bundled plugin).
|
|
40
|
+
- [Zalo Personal](/channels/zalouser) — Zalo personal account via QR login (bundled plugin).
|
|
41
|
+
|
|
42
|
+
## Notes
|
|
43
|
+
|
|
44
|
+
- Channels can run simultaneously; configure multiple and Durar will route per chat.
|
|
45
|
+
- Fastest setup is usually **Telegram** (simple bot token). WhatsApp requires QR pairing and
|
|
46
|
+
stores more state on disk.
|
|
47
|
+
- Group behavior varies by channel; see [Groups](/channels/groups).
|
|
48
|
+
- DM pairing and allowlists are enforced for safety; see [Security](/gateway/security).
|
|
49
|
+
- Troubleshooting: [Channel troubleshooting](/channels/troubleshooting).
|
|
50
|
+
- Model providers are documented separately; see [Model Providers](/providers/models).
|