nodmix 2026.5.25
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 +11573 -0
- package/LICENSE +21 -0
- package/README.md +486 -0
- package/docs/.i18n/README.md +81 -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 +78 -0
- package/docs/.i18n/glossary.de.json +78 -0
- package/docs/.i18n/glossary.es.json +78 -0
- package/docs/.i18n/glossary.fa.json +78 -0
- package/docs/.i18n/glossary.fr.json +78 -0
- package/docs/.i18n/glossary.id.json +78 -0
- package/docs/.i18n/glossary.it.json +78 -0
- package/docs/.i18n/glossary.ja-JP.json +98 -0
- package/docs/.i18n/glossary.ko.json +78 -0
- package/docs/.i18n/glossary.nl.json +78 -0
- package/docs/.i18n/glossary.pl.json +78 -0
- package/docs/.i18n/glossary.pt-BR.json +78 -0
- package/docs/.i18n/glossary.th.json +78 -0
- package/docs/.i18n/glossary.tr.json +78 -0
- package/docs/.i18n/glossary.uk.json +78 -0
- package/docs/.i18n/glossary.vi.json +78 -0
- package/docs/.i18n/glossary.zh-CN.json +1002 -0
- package/docs/.i18n/glossary.zh-TW.json +78 -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/translation-workflow.md +111 -0
- package/docs/.i18n/zh-Hans-navigation.json +542 -0
- package/docs/AGENTS.md +36 -0
- package/docs/announcements/bluebubbles-imessage.md +79 -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/pr/quick-settings-browser-tools.png +0 -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 +124 -0
- package/docs/automation/auth-monitoring.md +11 -0
- package/docs/automation/clawflow.md +12 -0
- package/docs/automation/cron-jobs.md +500 -0
- package/docs/automation/cron-vs-heartbeat.md +11 -0
- package/docs/automation/gmail-pubsub.md +11 -0
- package/docs/automation/hooks.md +365 -0
- package/docs/automation/index.md +135 -0
- package/docs/automation/poll.md +12 -0
- package/docs/automation/standing-orders.md +250 -0
- package/docs/automation/taskflow.md +155 -0
- package/docs/automation/tasks.md +374 -0
- package/docs/automation/troubleshooting.md +12 -0
- package/docs/automation/webhook.md +12 -0
- package/docs/brave-search.md +11 -0
- package/docs/channels/access-groups.md +201 -0
- package/docs/channels/ambient-room-events.md +214 -0
- package/docs/channels/bot-loop-protection.md +131 -0
- package/docs/channels/broadcast-groups.md +472 -0
- package/docs/channels/channel-routing.md +162 -0
- package/docs/channels/clickclack.md +138 -0
- package/docs/channels/discord.md +1762 -0
- package/docs/channels/feishu.md +502 -0
- package/docs/channels/googlechat.md +284 -0
- package/docs/channels/group-messages.md +95 -0
- package/docs/channels/groups.md +519 -0
- package/docs/channels/imessage-from-bluebubbles.md +259 -0
- package/docs/channels/imessage.md +813 -0
- package/docs/channels/index.md +64 -0
- package/docs/channels/irc.md +253 -0
- package/docs/channels/line.md +243 -0
- package/docs/channels/location.md +71 -0
- package/docs/channels/matrix-migration.md +370 -0
- package/docs/channels/matrix-presentation.md +77 -0
- package/docs/channels/matrix-push-rules.md +150 -0
- package/docs/channels/matrix.md +921 -0
- package/docs/channels/mattermost.md +542 -0
- package/docs/channels/msteams.md +1042 -0
- package/docs/channels/nextcloud-talk.md +176 -0
- package/docs/channels/nostr.md +253 -0
- package/docs/channels/pairing.md +214 -0
- package/docs/channels/qqbot.md +309 -0
- package/docs/channels/signal.md +400 -0
- package/docs/channels/slack.md +1564 -0
- package/docs/channels/synology-chat.md +187 -0
- package/docs/channels/telegram.md +1107 -0
- package/docs/channels/tlon.md +296 -0
- package/docs/channels/troubleshooting.md +161 -0
- package/docs/channels/twitch.md +431 -0
- package/docs/channels/wechat.md +171 -0
- package/docs/channels/whatsapp.md +739 -0
- package/docs/channels/yuanbao.md +416 -0
- package/docs/channels/zalo.md +253 -0
- package/docs/channels/zalouser.md +199 -0
- package/docs/ci.md +612 -0
- package/docs/clawhub/publishing.md +96 -0
- package/docs/cli/acp.md +370 -0
- package/docs/cli/agent.md +103 -0
- package/docs/cli/agents.md +232 -0
- package/docs/cli/approvals.md +190 -0
- package/docs/cli/backup.md +97 -0
- package/docs/cli/browser.md +307 -0
- package/docs/cli/channels.md +154 -0
- package/docs/cli/clawbot.md +25 -0
- package/docs/cli/commitments.md +90 -0
- package/docs/cli/completion.md +39 -0
- package/docs/cli/config.md +504 -0
- package/docs/cli/configure.md +77 -0
- package/docs/cli/crestodian.md +332 -0
- package/docs/cli/cron.md +281 -0
- package/docs/cli/daemon.md +67 -0
- package/docs/cli/dashboard.md +33 -0
- package/docs/cli/devices.md +204 -0
- package/docs/cli/directory.md +68 -0
- package/docs/cli/dns.md +53 -0
- package/docs/cli/docs.md +73 -0
- package/docs/cli/doctor.md +237 -0
- package/docs/cli/flows.md +52 -0
- package/docs/cli/gateway.md +567 -0
- package/docs/cli/health.md +43 -0
- package/docs/cli/hooks.md +345 -0
- package/docs/cli/index.md +396 -0
- package/docs/cli/infer.md +364 -0
- package/docs/cli/logs.md +65 -0
- package/docs/cli/mcp.md +529 -0
- package/docs/cli/memory.md +183 -0
- package/docs/cli/message.md +317 -0
- package/docs/cli/migrate.md +290 -0
- package/docs/cli/models.md +224 -0
- package/docs/cli/node.md +177 -0
- package/docs/cli/nodes.md +76 -0
- package/docs/cli/onboard.md +245 -0
- package/docs/cli/pairing.md +77 -0
- package/docs/cli/path.md +502 -0
- package/docs/cli/plugins.md +454 -0
- package/docs/cli/policy.md +418 -0
- package/docs/cli/proxy.md +89 -0
- package/docs/cli/qr.md +56 -0
- package/docs/cli/reset.md +39 -0
- package/docs/cli/sandbox.md +208 -0
- package/docs/cli/secrets.md +202 -0
- package/docs/cli/security.md +124 -0
- package/docs/cli/sessions.md +164 -0
- package/docs/cli/setup.md +59 -0
- package/docs/cli/skills.md +102 -0
- package/docs/cli/status.md +45 -0
- package/docs/cli/system.md +89 -0
- package/docs/cli/tasks.md +111 -0
- package/docs/cli/tui.md +89 -0
- package/docs/cli/uninstall.md +44 -0
- package/docs/cli/update.md +242 -0
- package/docs/cli/voicecall.md +204 -0
- package/docs/cli/webhooks.md +117 -0
- package/docs/cli/wiki.md +256 -0
- package/docs/concepts/active-memory.md +856 -0
- package/docs/concepts/agent-loop.md +185 -0
- package/docs/concepts/agent-runtimes.md +243 -0
- package/docs/concepts/agent-workspace.md +230 -0
- package/docs/concepts/agent.md +136 -0
- package/docs/concepts/architecture.md +154 -0
- package/docs/concepts/channel-docking.md +145 -0
- package/docs/concepts/commitments.md +150 -0
- package/docs/concepts/compaction.md +203 -0
- package/docs/concepts/context-engine.md +306 -0
- package/docs/concepts/context.md +199 -0
- package/docs/concepts/delegate-architecture.md +319 -0
- package/docs/concepts/dreaming.md +261 -0
- package/docs/concepts/experimental-features.md +108 -0
- package/docs/concepts/features.md +91 -0
- package/docs/concepts/mantis-slack-desktop-runbook.md +202 -0
- package/docs/concepts/mantis.md +740 -0
- package/docs/concepts/markdown-formatting.md +139 -0
- package/docs/concepts/memory-builtin.md +146 -0
- package/docs/concepts/memory-honcho.md +144 -0
- package/docs/concepts/memory-qmd.md +271 -0
- package/docs/concepts/memory-search.md +166 -0
- package/docs/concepts/memory.md +258 -0
- package/docs/concepts/message-lifecycle-refactor.md +1128 -0
- package/docs/concepts/messages.md +214 -0
- package/docs/concepts/model-failover.md +385 -0
- package/docs/concepts/model-providers.md +715 -0
- package/docs/concepts/models.md +370 -0
- package/docs/concepts/multi-agent.md +619 -0
- package/docs/concepts/oauth.md +198 -0
- package/docs/concepts/openclaw-sdk.md +323 -0
- package/docs/concepts/parallel-specialist-lanes.md +127 -0
- package/docs/concepts/personal-agent-benchmark-pack.md +74 -0
- package/docs/concepts/presence.md +117 -0
- package/docs/concepts/progress-drafts.md +362 -0
- package/docs/concepts/qa-e2e-automation.md +820 -0
- package/docs/concepts/qa-matrix.md +139 -0
- package/docs/concepts/queue-steering.md +90 -0
- package/docs/concepts/queue.md +122 -0
- package/docs/concepts/retry.md +86 -0
- package/docs/concepts/session-pruning.md +104 -0
- package/docs/concepts/session-tool.md +190 -0
- package/docs/concepts/session.md +164 -0
- package/docs/concepts/soul.md +116 -0
- package/docs/concepts/streaming.md +251 -0
- package/docs/concepts/system-prompt.md +310 -0
- package/docs/concepts/timezone.md +47 -0
- package/docs/concepts/typebox.md +309 -0
- package/docs/concepts/typing-indicators.md +88 -0
- package/docs/concepts/usage-tracking.md +66 -0
- package/docs/date-time.md +126 -0
- package/docs/debug/node-issue.md +90 -0
- package/docs/diagnostics/flags.md +138 -0
- package/docs/docs.json +1832 -0
- package/docs/gateway/authentication.md +239 -0
- package/docs/gateway/background-process.md +147 -0
- package/docs/gateway/bonjour.md +303 -0
- package/docs/gateway/bridge-protocol.md +94 -0
- package/docs/gateway/cli-backends.md +420 -0
- package/docs/gateway/config-agents.md +1514 -0
- package/docs/gateway/config-channels.md +945 -0
- package/docs/gateway/config-tools.md +769 -0
- package/docs/gateway/configuration-examples.md +705 -0
- package/docs/gateway/configuration-reference.md +1393 -0
- package/docs/gateway/configuration.md +737 -0
- package/docs/gateway/diagnostics.md +213 -0
- package/docs/gateway/discovery.md +154 -0
- package/docs/gateway/doctor.md +574 -0
- package/docs/gateway/gateway-lock.md +37 -0
- package/docs/gateway/health.md +73 -0
- package/docs/gateway/heartbeat.md +493 -0
- package/docs/gateway/index.md +383 -0
- package/docs/gateway/local-model-services.md +205 -0
- package/docs/gateway/local-models.md +355 -0
- package/docs/gateway/logging.md +149 -0
- package/docs/gateway/multiple-gateways.md +178 -0
- package/docs/gateway/network-model.md +15 -0
- package/docs/gateway/openai-http-api.md +350 -0
- package/docs/gateway/openresponses-http-api.md +347 -0
- package/docs/gateway/openshell.md +316 -0
- package/docs/gateway/opentelemetry.md +404 -0
- package/docs/gateway/operator-scopes.md +111 -0
- package/docs/gateway/pairing.md +207 -0
- package/docs/gateway/prometheus.md +230 -0
- package/docs/gateway/protocol.md +803 -0
- package/docs/gateway/remote-gateway-readme.md +169 -0
- package/docs/gateway/remote.md +280 -0
- package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +146 -0
- package/docs/gateway/sandboxing.md +545 -0
- package/docs/gateway/secrets-plan-contract.md +114 -0
- package/docs/gateway/secrets.md +609 -0
- package/docs/gateway/security/audit-checks.md +127 -0
- package/docs/gateway/security/index.md +1326 -0
- package/docs/gateway/security/secure-file-operations.md +76 -0
- package/docs/gateway/tailscale.md +156 -0
- package/docs/gateway/tools-invoke-http-api.md +169 -0
- package/docs/gateway/troubleshooting.md +772 -0
- package/docs/gateway/trusted-proxy-auth.md +451 -0
- package/docs/help/debugging.md +344 -0
- package/docs/help/environment.md +214 -0
- package/docs/help/faq-first-run.md +867 -0
- package/docs/help/faq-models.md +553 -0
- package/docs/help/faq.md +1975 -0
- package/docs/help/gpt55-codex-agentic-parity-maintainers.md +196 -0
- package/docs/help/gpt55-codex-agentic-parity.md +230 -0
- package/docs/help/index.md +39 -0
- package/docs/help/scripts.md +56 -0
- package/docs/help/testing-live.md +580 -0
- package/docs/help/testing-updates-plugins.md +291 -0
- package/docs/help/testing.md +928 -0
- package/docs/help/troubleshooting.md +424 -0
- package/docs/images/configure-model-picker-unsearchable.png +0 -0
- package/docs/images/feishu-get-group-id.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 +233 -0
- package/docs/install/azure.md +315 -0
- package/docs/install/bun.md +59 -0
- package/docs/install/clawdock.md +112 -0
- package/docs/install/development-channels.md +135 -0
- package/docs/install/digitalocean.md +174 -0
- package/docs/install/docker-vm-runtime.md +154 -0
- package/docs/install/docker.md +562 -0
- package/docs/install/exe-dev.md +201 -0
- package/docs/install/fly.md +524 -0
- package/docs/install/gcp.md +418 -0
- package/docs/install/hetzner.md +285 -0
- package/docs/install/hostinger.md +98 -0
- package/docs/install/index.md +221 -0
- package/docs/install/installer.md +455 -0
- package/docs/install/kubernetes.md +196 -0
- package/docs/install/macos-vm.md +281 -0
- package/docs/install/migrating-claude.md +165 -0
- package/docs/install/migrating-hermes.md +177 -0
- package/docs/install/migrating.md +137 -0
- package/docs/install/nix.md +112 -0
- package/docs/install/node.md +142 -0
- package/docs/install/northflank.mdx +44 -0
- package/docs/install/oracle.md +218 -0
- package/docs/install/podman.md +210 -0
- package/docs/install/railway.mdx +92 -0
- package/docs/install/raspberry-pi.md +234 -0
- package/docs/install/render.mdx +167 -0
- package/docs/install/uninstall.md +131 -0
- package/docs/install/updating.md +280 -0
- package/docs/logging.md +318 -0
- package/docs/nav-tabs-underline.js +100 -0
- package/docs/network.md +72 -0
- package/docs/nodes/audio.md +215 -0
- package/docs/nodes/camera.md +166 -0
- package/docs/nodes/images.md +77 -0
- package/docs/nodes/index.md +439 -0
- package/docs/nodes/location-command.md +102 -0
- package/docs/nodes/media-understanding.md +469 -0
- package/docs/nodes/talk.md +154 -0
- package/docs/nodes/troubleshooting.md +123 -0
- package/docs/nodes/voicewake.md +93 -0
- package/docs/perplexity.md +11 -0
- package/docs/pi-dev.md +82 -0
- package/docs/pi.md +573 -0
- package/docs/plan/codex-context-engine-harness.md +624 -0
- package/docs/plan/ui-channels.md +284 -0
- package/docs/platforms/android.md +285 -0
- package/docs/platforms/digitalocean.md +12 -0
- package/docs/platforms/index.md +60 -0
- package/docs/platforms/ios.md +283 -0
- package/docs/platforms/linux.md +141 -0
- package/docs/platforms/mac/bundled-gateway.md +79 -0
- package/docs/platforms/mac/canvas.md +128 -0
- package/docs/platforms/mac/child-process.md +72 -0
- package/docs/platforms/mac/dev-setup.md +112 -0
- package/docs/platforms/mac/health.md +39 -0
- package/docs/platforms/mac/icon.md +36 -0
- package/docs/platforms/mac/logging.md +62 -0
- package/docs/platforms/mac/menu-bar.md +93 -0
- package/docs/platforms/mac/peekaboo.md +92 -0
- package/docs/platforms/mac/permissions.md +53 -0
- package/docs/platforms/mac/remote.md +123 -0
- package/docs/platforms/mac/signing.md +52 -0
- package/docs/platforms/mac/skills.md +43 -0
- package/docs/platforms/mac/voice-overlay.md +66 -0
- package/docs/platforms/mac/voicewake.md +73 -0
- package/docs/platforms/mac/webchat.md +54 -0
- package/docs/platforms/mac/xpc.md +66 -0
- package/docs/platforms/macos.md +226 -0
- package/docs/platforms/oracle.md +12 -0
- package/docs/platforms/raspberry-pi.md +13 -0
- package/docs/platforms/windows.md +286 -0
- package/docs/plugins/adding-capabilities.md +133 -0
- package/docs/plugins/admin-http-rpc.md +216 -0
- package/docs/plugins/agent-tools.md +13 -0
- package/docs/plugins/architecture-internals.md +1195 -0
- package/docs/plugins/architecture.md +481 -0
- package/docs/plugins/building-extensions.md +13 -0
- package/docs/plugins/building-plugins.md +330 -0
- package/docs/plugins/bundles.md +310 -0
- package/docs/plugins/cli-backend-plugins.md +310 -0
- package/docs/plugins/codex-computer-use.md +293 -0
- package/docs/plugins/codex-harness-reference.md +409 -0
- package/docs/plugins/codex-harness-runtime.md +247 -0
- package/docs/plugins/codex-harness.md +746 -0
- package/docs/plugins/codex-native-plugins.md +276 -0
- package/docs/plugins/community.md +77 -0
- package/docs/plugins/compatibility.md +164 -0
- package/docs/plugins/dependency-resolution.md +143 -0
- package/docs/plugins/google-meet.md +1737 -0
- package/docs/plugins/hooks.md +459 -0
- package/docs/plugins/install-overrides.md +80 -0
- package/docs/plugins/manage-plugins.md +210 -0
- package/docs/plugins/manifest.md +1359 -0
- package/docs/plugins/memory-lancedb.md +385 -0
- package/docs/plugins/memory-wiki.md +529 -0
- package/docs/plugins/message-presentation.md +473 -0
- package/docs/plugins/oc-path.md +166 -0
- package/docs/plugins/plugin-inventory.md +182 -0
- package/docs/plugins/reference/acpx.md +23 -0
- package/docs/plugins/reference/admin-http-rpc.md +23 -0
- package/docs/plugins/reference/alibaba.md +23 -0
- package/docs/plugins/reference/amazon-bedrock-mantle.md +23 -0
- package/docs/plugins/reference/amazon-bedrock.md +23 -0
- package/docs/plugins/reference/anthropic-vertex.md +19 -0
- package/docs/plugins/reference/anthropic.md +23 -0
- package/docs/plugins/reference/arcee.md +23 -0
- package/docs/plugins/reference/azure-speech.md +23 -0
- package/docs/plugins/reference/bonjour.md +19 -0
- package/docs/plugins/reference/brave.md +23 -0
- package/docs/plugins/reference/browser.md +23 -0
- package/docs/plugins/reference/byteplus.md +19 -0
- package/docs/plugins/reference/canvas.md +19 -0
- package/docs/plugins/reference/cerebras.md +23 -0
- package/docs/plugins/reference/chutes.md +23 -0
- package/docs/plugins/reference/clickclack.md +23 -0
- package/docs/plugins/reference/cloudflare-ai-gateway.md +23 -0
- package/docs/plugins/reference/codex.md +23 -0
- package/docs/plugins/reference/comfy.md +23 -0
- package/docs/plugins/reference/copilot-proxy.md +19 -0
- package/docs/plugins/reference/deepgram.md +23 -0
- package/docs/plugins/reference/deepinfra.md +23 -0
- package/docs/plugins/reference/deepseek.md +23 -0
- package/docs/plugins/reference/diagnostics-otel.md +19 -0
- package/docs/plugins/reference/diagnostics-prometheus.md +19 -0
- package/docs/plugins/reference/diffs.md +19 -0
- package/docs/plugins/reference/discord.md +23 -0
- package/docs/plugins/reference/document-extract.md +23 -0
- package/docs/plugins/reference/duckduckgo.md +23 -0
- package/docs/plugins/reference/elevenlabs.md +23 -0
- package/docs/plugins/reference/exa.md +23 -0
- package/docs/plugins/reference/fal.md +23 -0
- package/docs/plugins/reference/feishu.md +23 -0
- package/docs/plugins/reference/file-transfer.md +19 -0
- package/docs/plugins/reference/firecrawl.md +23 -0
- package/docs/plugins/reference/fireworks.md +23 -0
- package/docs/plugins/reference/github-copilot.md +23 -0
- package/docs/plugins/reference/google-meet.md +23 -0
- package/docs/plugins/reference/google.md +23 -0
- package/docs/plugins/reference/googlechat.md +23 -0
- package/docs/plugins/reference/gradium.md +23 -0
- package/docs/plugins/reference/groq.md +23 -0
- package/docs/plugins/reference/huggingface.md +23 -0
- package/docs/plugins/reference/imessage.md +23 -0
- package/docs/plugins/reference/inworld.md +23 -0
- package/docs/plugins/reference/irc.md +23 -0
- package/docs/plugins/reference/kilocode.md +23 -0
- package/docs/plugins/reference/kimi.md +23 -0
- package/docs/plugins/reference/line.md +23 -0
- package/docs/plugins/reference/litellm.md +23 -0
- package/docs/plugins/reference/llm-task.md +19 -0
- package/docs/plugins/reference/lmstudio.md +23 -0
- package/docs/plugins/reference/lobster.md +19 -0
- package/docs/plugins/reference/matrix.md +23 -0
- package/docs/plugins/reference/mattermost.md +23 -0
- package/docs/plugins/reference/memory-core.md +19 -0
- package/docs/plugins/reference/memory-lancedb.md +23 -0
- package/docs/plugins/reference/memory-wiki.md +23 -0
- package/docs/plugins/reference/microsoft-foundry.md +19 -0
- package/docs/plugins/reference/microsoft.md +19 -0
- package/docs/plugins/reference/migrate-claude.md +19 -0
- package/docs/plugins/reference/migrate-hermes.md +19 -0
- package/docs/plugins/reference/minimax.md +23 -0
- package/docs/plugins/reference/mistral.md +23 -0
- package/docs/plugins/reference/moonshot.md +23 -0
- package/docs/plugins/reference/msteams.md +23 -0
- package/docs/plugins/reference/nextcloud-talk.md +23 -0
- package/docs/plugins/reference/nostr.md +23 -0
- package/docs/plugins/reference/nvidia.md +23 -0
- package/docs/plugins/reference/oc-path.md +23 -0
- package/docs/plugins/reference/ollama.md +23 -0
- package/docs/plugins/reference/open-prose.md +19 -0
- package/docs/plugins/reference/openai.md +23 -0
- package/docs/plugins/reference/opencode-go.md +23 -0
- package/docs/plugins/reference/opencode.md +23 -0
- package/docs/plugins/reference/openrouter.md +23 -0
- package/docs/plugins/reference/openshell.md +19 -0
- package/docs/plugins/reference/perplexity.md +23 -0
- package/docs/plugins/reference/policy.md +23 -0
- package/docs/plugins/reference/qa-channel.md +23 -0
- package/docs/plugins/reference/qa-lab.md +19 -0
- package/docs/plugins/reference/qa-matrix.md +19 -0
- package/docs/plugins/reference/qianfan.md +23 -0
- package/docs/plugins/reference/qqbot.md +23 -0
- package/docs/plugins/reference/qwen.md +23 -0
- package/docs/plugins/reference/runway.md +23 -0
- package/docs/plugins/reference/searxng.md +19 -0
- package/docs/plugins/reference/senseaudio.md +23 -0
- package/docs/plugins/reference/sglang.md +23 -0
- package/docs/plugins/reference/signal.md +23 -0
- package/docs/plugins/reference/skill-workshop.md +23 -0
- package/docs/plugins/reference/slack.md +23 -0
- package/docs/plugins/reference/stepfun.md +23 -0
- package/docs/plugins/reference/synology-chat.md +23 -0
- package/docs/plugins/reference/synthetic.md +23 -0
- package/docs/plugins/reference/tavily.md +23 -0
- package/docs/plugins/reference/telegram.md +23 -0
- package/docs/plugins/reference/tencent.md +23 -0
- package/docs/plugins/reference/tlon.md +23 -0
- package/docs/plugins/reference/together.md +23 -0
- package/docs/plugins/reference/tokenjuice.md +23 -0
- package/docs/plugins/reference/tts-local-cli.md +19 -0
- package/docs/plugins/reference/twitch.md +23 -0
- package/docs/plugins/reference/venice.md +23 -0
- package/docs/plugins/reference/vercel-ai-gateway.md +23 -0
- package/docs/plugins/reference/vllm.md +23 -0
- package/docs/plugins/reference/voice-call.md +23 -0
- package/docs/plugins/reference/volcengine.md +23 -0
- package/docs/plugins/reference/voyage.md +19 -0
- package/docs/plugins/reference/vydra.md +23 -0
- package/docs/plugins/reference/web-readability.md +19 -0
- package/docs/plugins/reference/webhooks.md +23 -0
- package/docs/plugins/reference/whatsapp.md +23 -0
- package/docs/plugins/reference/xai.md +23 -0
- package/docs/plugins/reference/xiaomi.md +23 -0
- package/docs/plugins/reference/zai.md +23 -0
- package/docs/plugins/reference/zalo.md +23 -0
- package/docs/plugins/reference/zalouser.md +24 -0
- package/docs/plugins/reference.md +138 -0
- package/docs/plugins/sdk-agent-harness.md +339 -0
- package/docs/plugins/sdk-channel-ingress.md +137 -0
- package/docs/plugins/sdk-channel-message.md +458 -0
- package/docs/plugins/sdk-channel-plugins.md +762 -0
- package/docs/plugins/sdk-channel-turn.md +580 -0
- package/docs/plugins/sdk-entrypoints.md +333 -0
- package/docs/plugins/sdk-migration.md +949 -0
- package/docs/plugins/sdk-overview.md +501 -0
- package/docs/plugins/sdk-provider-plugins.md +807 -0
- package/docs/plugins/sdk-runtime.md +676 -0
- package/docs/plugins/sdk-setup.md +550 -0
- package/docs/plugins/sdk-subpaths.md +396 -0
- package/docs/plugins/sdk-testing.md +401 -0
- package/docs/plugins/skill-workshop.md +713 -0
- package/docs/plugins/tool-plugins.md +411 -0
- package/docs/plugins/voice-call.md +943 -0
- package/docs/plugins/webhooks.md +192 -0
- package/docs/plugins/zalouser.md +86 -0
- package/docs/prose.md +137 -0
- package/docs/providers/alibaba.md +158 -0
- package/docs/providers/anthropic.md +344 -0
- package/docs/providers/arcee.md +144 -0
- package/docs/providers/azure-speech.md +119 -0
- package/docs/providers/bedrock-mantle.md +211 -0
- package/docs/providers/bedrock.md +414 -0
- package/docs/providers/cerebras.md +130 -0
- package/docs/providers/chutes.md +153 -0
- package/docs/providers/claude-max-api-proxy.md +188 -0
- package/docs/providers/cloudflare-ai-gateway.md +119 -0
- package/docs/providers/comfy.md +362 -0
- package/docs/providers/deepgram.md +184 -0
- package/docs/providers/deepinfra.md +87 -0
- package/docs/providers/deepseek.md +146 -0
- package/docs/providers/ds4.md +309 -0
- package/docs/providers/elevenlabs.md +130 -0
- package/docs/providers/fal.md +204 -0
- package/docs/providers/fireworks.md +144 -0
- package/docs/providers/github-copilot.md +225 -0
- package/docs/providers/glm.md +137 -0
- package/docs/providers/google.md +472 -0
- package/docs/providers/gradium.md +123 -0
- package/docs/providers/groq.md +180 -0
- package/docs/providers/huggingface.md +235 -0
- package/docs/providers/index.md +102 -0
- package/docs/providers/inferrs.md +272 -0
- package/docs/providers/inworld.md +120 -0
- package/docs/providers/kilocode.md +135 -0
- package/docs/providers/litellm.md +234 -0
- package/docs/providers/lmstudio.md +224 -0
- package/docs/providers/minimax.md +505 -0
- package/docs/providers/mistral.md +235 -0
- package/docs/providers/models.md +65 -0
- package/docs/providers/moonshot.md +413 -0
- package/docs/providers/nvidia.md +140 -0
- package/docs/providers/ollama.md +1180 -0
- package/docs/providers/openai.md +1057 -0
- package/docs/providers/opencode-go.md +123 -0
- package/docs/providers/opencode.md +149 -0
- package/docs/providers/openrouter.md +349 -0
- package/docs/providers/perplexity-provider.md +123 -0
- package/docs/providers/qianfan.md +132 -0
- package/docs/providers/qwen.md +332 -0
- package/docs/providers/runway.md +103 -0
- package/docs/providers/senseaudio.md +68 -0
- package/docs/providers/sglang.md +161 -0
- package/docs/providers/stepfun.md +229 -0
- package/docs/providers/synthetic.md +154 -0
- package/docs/providers/tencent.md +130 -0
- package/docs/providers/together.md +141 -0
- package/docs/providers/venice.md +315 -0
- package/docs/providers/vercel-ai-gateway.md +128 -0
- package/docs/providers/vllm.md +383 -0
- package/docs/providers/volcengine.md +199 -0
- package/docs/providers/vydra.md +180 -0
- package/docs/providers/xai.md +560 -0
- package/docs/providers/xiaomi.md +188 -0
- package/docs/providers/zai.md +203 -0
- package/docs/refactor/access.md +9 -0
- package/docs/refactor/acp.md +298 -0
- package/docs/refactor/canvas.md +131 -0
- package/docs/refactor/ingress-core.md +341 -0
- package/docs/reference/AGENTS.default.md +129 -0
- package/docs/reference/RELEASING.md +767 -0
- package/docs/reference/api-usage-costs.md +202 -0
- package/docs/reference/application-modernization-plan.md +208 -0
- package/docs/reference/code-mode.md +757 -0
- package/docs/reference/credits.md +33 -0
- package/docs/reference/device-models.md +50 -0
- package/docs/reference/full-release-validation.md +202 -0
- package/docs/reference/memory-config.md +630 -0
- package/docs/reference/openclaw-sdk-api-design.md +390 -0
- package/docs/reference/prompt-caching.md +358 -0
- package/docs/reference/rich-output-protocol.md +79 -0
- package/docs/reference/rpc.md +43 -0
- package/docs/reference/secretref-credential-surface.md +159 -0
- package/docs/reference/secretref-user-supplied-credentials-matrix.json +663 -0
- package/docs/reference/session-management-compaction.md +461 -0
- package/docs/reference/templates/AGENTS.dev.md +89 -0
- package/docs/reference/templates/AGENTS.md +225 -0
- package/docs/reference/templates/BOOT.md +16 -0
- package/docs/reference/templates/BOOTSTRAP.md +66 -0
- package/docs/reference/templates/HEARTBEAT.md +16 -0
- package/docs/reference/templates/IDENTITY.dev.md +52 -0
- package/docs/reference/templates/IDENTITY.md +34 -0
- package/docs/reference/templates/SOUL.dev.md +82 -0
- package/docs/reference/templates/SOUL.md +49 -0
- package/docs/reference/templates/TOOLS.dev.md +29 -0
- package/docs/reference/templates/TOOLS.md +51 -0
- package/docs/reference/templates/USER.dev.md +23 -0
- package/docs/reference/templates/USER.md +28 -0
- package/docs/reference/test.md +239 -0
- package/docs/reference/token-use.md +233 -0
- package/docs/reference/transcript-hygiene.md +214 -0
- package/docs/reference/wizard.md +252 -0
- package/docs/security/CONTRIBUTING-THREAT-MODEL.md +101 -0
- package/docs/security/THREAT-MODEL-ATLAS.md +611 -0
- package/docs/security/formal-verification.md +170 -0
- package/docs/security/incident-response.md +59 -0
- package/docs/security/network-proxy.md +268 -0
- package/docs/snippets/plugin-publish/minimal-openclaw.plugin.json +12 -0
- package/docs/snippets/plugin-publish/minimal-package.json +16 -0
- package/docs/start/bootstrapping.md +49 -0
- package/docs/start/docs-directory.md +69 -0
- package/docs/start/getting-started.md +152 -0
- package/docs/start/hubs.md +201 -0
- package/docs/start/lore.md +223 -0
- package/docs/start/onboarding-overview.md +72 -0
- package/docs/start/onboarding.md +95 -0
- package/docs/start/openclaw.md +244 -0
- package/docs/start/quickstart.md +25 -0
- package/docs/start/setup.md +178 -0
- package/docs/start/showcase.md +383 -0
- package/docs/start/wizard-cli-automation.md +232 -0
- package/docs/start/wizard-cli-reference.md +331 -0
- package/docs/start/wizard.md +141 -0
- package/docs/style.css +184 -0
- package/docs/superpowers/specs/2026-04-22-tweakcn-custom-theme-import-design.md +316 -0
- package/docs/tools/acp-agents-setup.md +352 -0
- package/docs/tools/acp-agents.md +847 -0
- package/docs/tools/agent-send.md +112 -0
- package/docs/tools/apply-patch.md +64 -0
- package/docs/tools/brave-search.md +139 -0
- package/docs/tools/browser-control.md +391 -0
- package/docs/tools/browser-linux-troubleshooting.md +173 -0
- package/docs/tools/browser-login.md +77 -0
- package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +219 -0
- package/docs/tools/browser.md +769 -0
- package/docs/tools/btw.md +159 -0
- package/docs/tools/capability-cookbook.md +12 -0
- package/docs/tools/clawhub.md +5 -0
- package/docs/tools/code-execution.md +173 -0
- package/docs/tools/creating-skills.md +120 -0
- package/docs/tools/diffs.md +506 -0
- package/docs/tools/duckduckgo-search.md +109 -0
- package/docs/tools/elevated.md +128 -0
- package/docs/tools/exa-search.md +152 -0
- package/docs/tools/exec-approvals-advanced.md +360 -0
- package/docs/tools/exec-approvals.md +474 -0
- package/docs/tools/exec.md +282 -0
- package/docs/tools/firecrawl.md +155 -0
- package/docs/tools/gemini-search.md +114 -0
- package/docs/tools/grok-search.md +113 -0
- package/docs/tools/image-generation.md +433 -0
- package/docs/tools/index.md +178 -0
- package/docs/tools/kimi-search.md +105 -0
- package/docs/tools/llm-task.md +137 -0
- package/docs/tools/lobster.md +365 -0
- package/docs/tools/loop-detection.md +154 -0
- package/docs/tools/media-overview.md +157 -0
- package/docs/tools/minimax-search.md +102 -0
- package/docs/tools/multi-agent-sandbox-tools.md +409 -0
- package/docs/tools/music-generation.md +371 -0
- package/docs/tools/ollama-search.md +153 -0
- package/docs/tools/pdf.md +195 -0
- package/docs/tools/perplexity-search.md +220 -0
- package/docs/tools/plugin.md +327 -0
- package/docs/tools/reactions.md +100 -0
- package/docs/tools/searxng-search.md +141 -0
- package/docs/tools/skills-config.md +195 -0
- package/docs/tools/skills.md +535 -0
- package/docs/tools/slash-commands.md +488 -0
- package/docs/tools/steer.md +84 -0
- package/docs/tools/subagents.md +650 -0
- package/docs/tools/tavily.md +162 -0
- package/docs/tools/thinking.md +140 -0
- package/docs/tools/tokenjuice.md +81 -0
- package/docs/tools/tool-search.md +269 -0
- package/docs/tools/trajectory.md +229 -0
- package/docs/tools/tts.md +1004 -0
- package/docs/tools/video-generation.md +552 -0
- package/docs/tools/web-fetch.md +195 -0
- package/docs/tools/web.md +459 -0
- package/docs/tts.md +11 -0
- package/docs/vps.md +139 -0
- package/docs/web/control-ui.md +503 -0
- package/docs/web/dashboard.md +107 -0
- package/docs/web/index.md +133 -0
- package/docs/web/tui.md +246 -0
- package/docs/web/webchat.md +99 -0
- package/docs/whatsapp-openclaw-ai-zh.jpg +0 -0
- package/docs/whatsapp-openclaw.jpg +0 -0
- package/nodmix.mjs +487 -0
- package/package.json +1852 -0
- package/patches/.gitkeep +0 -0
- package/patches/@agentclientprotocol__claude-agent-acp@0.36.1.patch +41 -0
- package/pnpm-workspace.yaml +63 -0
- package/scripts/crabbox-wrapper.mjs +353 -0
- package/scripts/lib/official-external-channel-catalog.json +559 -0
- package/scripts/lib/official-external-plugin-catalog.json +192 -0
- package/scripts/lib/official-external-provider-catalog.json +117 -0
- package/scripts/lib/package-dist-imports.mjs +171 -0
- package/scripts/npm-runner.mjs +91 -0
- package/scripts/postinstall-bundled-plugins.mjs +978 -0
- package/scripts/preinstall-package-manager-warning.mjs +64 -0
- package/scripts/windows-cmd-helpers.mjs +20 -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/camsnap/SKILL.md +45 -0
- package/skills/canvas/SKILL.md +78 -0
- package/skills/clawhub/SKILL.md +77 -0
- package/skills/coding-agent/SKILL.md +149 -0
- package/skills/diagram-maker/SKILL.md +53 -0
- package/skills/diagram-maker/references/excalidraw-patterns.md +85 -0
- package/skills/diagram-maker/references/svg-template.md +112 -0
- package/skills/discord/SKILL.md +136 -0
- package/skills/eightctl/SKILL.md +50 -0
- package/skills/gemini/SKILL.md +47 -0
- package/skills/gh-issues/SKILL.md +213 -0
- package/skills/gifgrep/SKILL.md +85 -0
- package/skills/github/SKILL.md +84 -0
- package/skills/gog/SKILL.md +116 -0
- package/skills/goplaces/SKILL.md +52 -0
- package/skills/healthcheck/SKILL.md +105 -0
- package/skills/himalaya/SKILL.md +80 -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/meme-maker/SKILL.md +42 -0
- package/skills/meme-maker/references/templates.json +358 -0
- package/skills/meme-maker/scripts/meme.mjs +398 -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 +319 -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/node-inspect-debugger/SKILL.md +85 -0
- package/skills/notion/SKILL.md +150 -0
- package/skills/obsidian/SKILL.md +119 -0
- package/skills/openai-whisper/SKILL.md +38 -0
- package/skills/openai-whisper-api/SKILL.md +71 -0
- package/skills/openai-whisper-api/scripts/transcribe.sh +154 -0
- package/skills/openhue/SKILL.md +112 -0
- package/skills/oracle/SKILL.md +126 -0
- package/skills/ordercli/SKILL.md +78 -0
- package/skills/peekaboo/SKILL.md +190 -0
- package/skills/pyproject.toml +10 -0
- package/skills/python-debugpy/SKILL.md +73 -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 +78 -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 +169 -0
- package/skills/skill-creator/scripts/test_package_skill.py +161 -0
- package/skills/skill-creator/scripts/test_quick_validate.py +116 -0
- package/skills/slack/SKILL.md +78 -0
- package/skills/songsee/SKILL.md +49 -0
- package/skills/sonoscli/SKILL.md +65 -0
- package/skills/spike/SKILL.md +51 -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 +91 -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 +64 -0
- package/skills/xurl/SKILL.md +120 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "How ClawHub publishing works for skills, plugins, owners, scopes, releases, and review."
|
|
3
|
+
read_when:
|
|
4
|
+
- Publishing a skill or plugin
|
|
5
|
+
- Debugging owner or package scope errors
|
|
6
|
+
- Adding publish UI, CLI, or backend behavior
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Publishing on ClawHub
|
|
10
|
+
|
|
11
|
+
ClawHub publishing is owner-scoped: every publish targets a publisher, and the
|
|
12
|
+
server decides whether the signed-in user is allowed to publish there.
|
|
13
|
+
|
|
14
|
+
## Owners
|
|
15
|
+
|
|
16
|
+
An owner is a ClawHub publisher handle, such as `@alice` or `@nodmix`.
|
|
17
|
+
Personal owners are created for users. Org owners can have multiple members.
|
|
18
|
+
|
|
19
|
+
When you publish, you either use your personal owner or choose an org owner
|
|
20
|
+
where you have publisher access.
|
|
21
|
+
|
|
22
|
+
## Skills
|
|
23
|
+
|
|
24
|
+
Skills are published from a skill folder. The public page is:
|
|
25
|
+
|
|
26
|
+
```text
|
|
27
|
+
https://clawhub.ai/<owner>/<slug>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Example:
|
|
31
|
+
|
|
32
|
+
```text
|
|
33
|
+
https://clawhub.ai/alice/review-helper
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
The publish request includes the selected owner, slug, version, changelog, and
|
|
37
|
+
files. The server verifies that the actor can publish as that owner before it
|
|
38
|
+
creates the release.
|
|
39
|
+
|
|
40
|
+
## Plugins
|
|
41
|
+
|
|
42
|
+
Plugins use npm-style package names. Scoped package names include the owner in
|
|
43
|
+
the first part of the name:
|
|
44
|
+
|
|
45
|
+
```text
|
|
46
|
+
@owner/package-name
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
The scope must match the selected publish owner. If your package is named
|
|
50
|
+
`@nodmix/dronzer`, it can only be published as `@nodmix`. If you publish as
|
|
51
|
+
`@vintageayu`, rename the package to `@vintageayu/dronzer`.
|
|
52
|
+
|
|
53
|
+
This prevents a package from claiming an org namespace that the publisher does
|
|
54
|
+
not control.
|
|
55
|
+
|
|
56
|
+
## Release Flow
|
|
57
|
+
|
|
58
|
+
1. The UI, CLI, or GitHub workflow gathers package metadata and files.
|
|
59
|
+
2. The publish request is sent to ClawHub with the selected owner.
|
|
60
|
+
3. The server validates owner permissions, package scope, package name, version,
|
|
61
|
+
file limits, and source metadata.
|
|
62
|
+
4. ClawHub stores the release and starts automated security checks.
|
|
63
|
+
5. New releases are hidden from normal install/download surfaces until review
|
|
64
|
+
and verification finish.
|
|
65
|
+
|
|
66
|
+
If validation fails, the release is not created.
|
|
67
|
+
|
|
68
|
+
## FAQ
|
|
69
|
+
|
|
70
|
+
### Package scope must match selected owner
|
|
71
|
+
|
|
72
|
+
If the package scope and selected owner do not match, ClawHub rejects the
|
|
73
|
+
publish:
|
|
74
|
+
|
|
75
|
+
```text
|
|
76
|
+
Package scope "@nodmix" must match selected owner "@vintageayu".
|
|
77
|
+
Publish as "@nodmix" or rename this package to "@vintageayu/dronzer".
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
To fix it, either choose the owner named by the package scope, or rename the
|
|
81
|
+
package so the scope matches the owner you can publish as.
|
|
82
|
+
|
|
83
|
+
If the package name already has the right scope but the package is owned by the
|
|
84
|
+
wrong publisher, transfer ownership instead:
|
|
85
|
+
|
|
86
|
+
```sh
|
|
87
|
+
clawhub package transfer @opik/opik-nodmix --to opik
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Use package transfer only when you have admin access to both the current package
|
|
91
|
+
owner and the destination publisher. It does not let you publish into a scope you
|
|
92
|
+
cannot manage.
|
|
93
|
+
|
|
94
|
+
This protects org namespaces. A package named `@nodmix/dronzer` claims the
|
|
95
|
+
`@nodmix` namespace, so only publishers with access to the `@nodmix` owner
|
|
96
|
+
can publish it.
|
package/docs/cli/acp.md
ADDED
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Run the ACP bridge for IDE integrations"
|
|
3
|
+
read_when:
|
|
4
|
+
- Setting up ACP-based IDE integrations
|
|
5
|
+
- Debugging ACP session routing to the Gateway
|
|
6
|
+
title: "ACP"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
Run the [Agent Client Protocol (ACP)](https://agentclientprotocol.com/) bridge that talks to an Nodmix Gateway.
|
|
10
|
+
|
|
11
|
+
This command speaks ACP over stdio for IDEs and forwards prompts to the Gateway
|
|
12
|
+
over WebSocket. It keeps ACP sessions mapped to Gateway session keys.
|
|
13
|
+
|
|
14
|
+
`nodmix acp` is a Gateway-backed ACP bridge, not a full ACP-native editor
|
|
15
|
+
runtime. It focuses on session routing, prompt delivery, and basic streaming
|
|
16
|
+
updates.
|
|
17
|
+
|
|
18
|
+
If you want an external MCP client to talk directly to Nodmix channel
|
|
19
|
+
conversations instead of hosting an ACP harness session, use
|
|
20
|
+
[`nodmix mcp serve`](/cli/mcp) instead.
|
|
21
|
+
|
|
22
|
+
## What this is not
|
|
23
|
+
|
|
24
|
+
This page is often confused with ACP harness sessions.
|
|
25
|
+
|
|
26
|
+
`nodmix acp` means:
|
|
27
|
+
|
|
28
|
+
- Nodmix acts as an ACP server
|
|
29
|
+
- an IDE or ACP client connects to Nodmix
|
|
30
|
+
- Nodmix forwards that work into a Gateway session
|
|
31
|
+
|
|
32
|
+
This is different from [ACP Agents](/tools/acp-agents), where Nodmix runs an
|
|
33
|
+
external harness such as Codex or Claude Code through `acpx`.
|
|
34
|
+
|
|
35
|
+
Quick rule:
|
|
36
|
+
|
|
37
|
+
- editor/client wants to talk ACP to Nodmix: use `nodmix acp`
|
|
38
|
+
- Nodmix should launch Codex/Claude/Gemini as an ACP harness: use `/acp spawn` and [ACP Agents](/tools/acp-agents)
|
|
39
|
+
|
|
40
|
+
## Compatibility Matrix
|
|
41
|
+
|
|
42
|
+
| ACP area | Status | Notes |
|
|
43
|
+
| --------------------------------------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
44
|
+
| `initialize`, `newSession`, `prompt`, `cancel` | Implemented | Core bridge flow over stdio to Gateway chat/send + abort. |
|
|
45
|
+
| `listSessions`, slash commands | Implemented | Session list works against Gateway session state with bounded cursor pagination and `cwd` filtering where Gateway session rows carry workspace metadata; commands are advertised via `available_commands_update`. |
|
|
46
|
+
| Session lineage metadata | Implemented | Session listings and session info snapshots include Nodmix parent and child lineage in `_meta` so ACP clients can render subagent graphs without private Gateway side channels. |
|
|
47
|
+
| `resumeSession`, `closeSession` | Implemented | Resume rebinds an ACP session to an existing Gateway session without replaying history. Close cancels active bridge work, resolves pending prompts as cancelled, and releases bridge session state. |
|
|
48
|
+
| `loadSession` | Partial | Rebinds the ACP session to a Gateway session key and replays ACP event-ledger history for bridge-created sessions. Older/no-ledger sessions fall back to stored user/assistant text. |
|
|
49
|
+
| Prompt content (`text`, embedded `resource`, images) | Partial | Text/resources are flattened into chat input; images become Gateway attachments. |
|
|
50
|
+
| Session modes | Partial | `session/set_mode` is supported and the bridge exposes initial Gateway-backed session controls for thought level, tool verbosity, reasoning, usage detail, and elevated actions. Broader ACP-native mode/config surfaces are still out of scope. |
|
|
51
|
+
| Session info and usage updates | Partial | The bridge emits `session_info_update` and best-effort `usage_update` notifications from cached Gateway session snapshots. Usage is approximate and only sent when Gateway token totals are marked fresh. |
|
|
52
|
+
| Tool streaming | Partial | `tool_call` / `tool_call_update` events include raw I/O, text content, and best-effort file locations when Gateway tool args/results expose them. Embedded terminals and richer diff-native output are still not exposed. |
|
|
53
|
+
| Exec approvals | Partial | Gateway exec approval prompts during active ACP prompt turns are relayed to the ACP client with `session/request_permission`. |
|
|
54
|
+
| Per-session MCP servers (`mcpServers`) | Unsupported | Bridge mode rejects per-session MCP server requests. Configure MCP on the Nodmix gateway or agent instead. |
|
|
55
|
+
| Client filesystem methods (`fs/read_text_file`, `fs/write_text_file`) | Unsupported | The bridge does not call ACP client filesystem methods. |
|
|
56
|
+
| Client terminal methods (`terminal/*`) | Unsupported | The bridge does not create ACP client terminals or stream terminal ids through tool calls. |
|
|
57
|
+
| Session plans / thought streaming | Unsupported | The bridge currently emits output text and tool status, not ACP plan or thought updates. |
|
|
58
|
+
|
|
59
|
+
## Known Limitations
|
|
60
|
+
|
|
61
|
+
- `loadSession` can replay complete ACP event-ledger history only for
|
|
62
|
+
bridge-created sessions. Older/no-ledger sessions still use transcript
|
|
63
|
+
fallback and do not reconstruct historic tool calls or system notices.
|
|
64
|
+
- If multiple ACP clients share the same Gateway session key, event and cancel
|
|
65
|
+
routing are best-effort rather than strictly isolated per client. Prefer the
|
|
66
|
+
default isolated `acp:<uuid>` sessions when you need clean editor-local
|
|
67
|
+
turns.
|
|
68
|
+
- Gateway stop states are translated into ACP stop reasons, but that mapping is
|
|
69
|
+
less expressive than a fully ACP-native runtime.
|
|
70
|
+
- Initial session controls currently surface a focused subset of Gateway knobs:
|
|
71
|
+
thought level, tool verbosity, reasoning, usage detail, and elevated
|
|
72
|
+
actions. Model selection and exec-host controls are not yet exposed as ACP
|
|
73
|
+
config options.
|
|
74
|
+
- `session_info_update` and `usage_update` are derived from Gateway session
|
|
75
|
+
snapshots, not live ACP-native runtime accounting. Usage is approximate,
|
|
76
|
+
carries no cost data, and is only emitted when the Gateway marks total token
|
|
77
|
+
data as fresh.
|
|
78
|
+
- Tool follow-along data is best-effort. The bridge can surface file paths that
|
|
79
|
+
appear in known tool args/results, but it does not yet emit ACP terminals or
|
|
80
|
+
structured file diffs.
|
|
81
|
+
- Exec approval relay is scoped to the active ACP prompt turn; approvals from
|
|
82
|
+
other Gateway sessions are ignored.
|
|
83
|
+
|
|
84
|
+
## Usage
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
nodmix acp
|
|
88
|
+
|
|
89
|
+
# Remote Gateway
|
|
90
|
+
nodmix acp --url wss://gateway-host:18789 --token <token>
|
|
91
|
+
|
|
92
|
+
# Remote Gateway (token from file)
|
|
93
|
+
nodmix acp --url wss://gateway-host:18789 --token-file ~/.nodmix/gateway.token
|
|
94
|
+
|
|
95
|
+
# Attach to an existing session key
|
|
96
|
+
nodmix acp --session agent:main:main
|
|
97
|
+
|
|
98
|
+
# Attach by label (must already exist)
|
|
99
|
+
nodmix acp --session-label "support inbox"
|
|
100
|
+
|
|
101
|
+
# Reset the session key before the first prompt
|
|
102
|
+
nodmix acp --session agent:main:main --reset-session
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## ACP client (debug)
|
|
106
|
+
|
|
107
|
+
Use the built-in ACP client to sanity-check the bridge without an IDE.
|
|
108
|
+
It spawns the ACP bridge and lets you type prompts interactively.
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
nodmix acp client
|
|
112
|
+
|
|
113
|
+
# Point the spawned bridge at a remote Gateway
|
|
114
|
+
nodmix acp client --server-args --url wss://gateway-host:18789 --token-file ~/.nodmix/gateway.token
|
|
115
|
+
|
|
116
|
+
# Override the server command (default: nodmix)
|
|
117
|
+
nodmix acp client --server "node" --server-args nodmix.mjs acp --url ws://127.0.0.1:19001
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Permission model (client debug mode):
|
|
121
|
+
|
|
122
|
+
- Auto-approval is allowlist-based and only applies to trusted core tool IDs.
|
|
123
|
+
- `read` auto-approval is scoped to the current working directory (`--cwd` when set).
|
|
124
|
+
- ACP only auto-approves narrow readonly classes: scoped `read` calls under the active cwd plus readonly search tools (`search`, `web_search`, `memory_search`). Unknown/non-core tools, out-of-scope reads, exec-capable tools, control-plane tools, mutating tools, and interactive flows always require explicit prompt approval.
|
|
125
|
+
- Server-provided `toolCall.kind` is treated as untrusted metadata (not an authorization source).
|
|
126
|
+
- This ACP bridge policy is separate from ACPX harness permissions. If you run Nodmix through the `acpx` backend, `plugins.entries.acpx.config.permissionMode=approve-all` is the break-glass "yolo" switch for that harness session.
|
|
127
|
+
|
|
128
|
+
## Protocol smoke testing
|
|
129
|
+
|
|
130
|
+
For protocol-level debugging, start a Gateway with isolated state and drive
|
|
131
|
+
`nodmix acp` over stdio with an ACP JSON-RPC client. Cover `initialize`,
|
|
132
|
+
`session/new`, `session/list` with an absolute `cwd`, `session/resume`,
|
|
133
|
+
`session/close`, duplicate close, and missing resume.
|
|
134
|
+
|
|
135
|
+
The proof should include the advertised lifecycle capabilities, a Gateway-backed
|
|
136
|
+
session row, update notifications, and the Gateway `sessions.list` log:
|
|
137
|
+
|
|
138
|
+
```json
|
|
139
|
+
{
|
|
140
|
+
"initialize": {
|
|
141
|
+
"protocolVersion": 1,
|
|
142
|
+
"agentCapabilities": {
|
|
143
|
+
"sessionCapabilities": {
|
|
144
|
+
"list": {},
|
|
145
|
+
"resume": {},
|
|
146
|
+
"close": {}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
"listSessions": {
|
|
151
|
+
"sessions": [
|
|
152
|
+
{
|
|
153
|
+
"sessionId": "agent:main:acp-smoke",
|
|
154
|
+
"cwd": "/path/to/workspace",
|
|
155
|
+
"_meta": {
|
|
156
|
+
"sessionKey": "agent:main:acp-smoke",
|
|
157
|
+
"kind": "direct"
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
],
|
|
161
|
+
"nextCursor": null
|
|
162
|
+
},
|
|
163
|
+
"notifications": ["session_info_update", "available_commands_update", "usage_update"],
|
|
164
|
+
"gatewayLogTail": ["[gateway] ready", "[ws] ⇄ res ✓ sessions.list 305ms"]
|
|
165
|
+
}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
Avoid using `nodmix gateway call sessions.list` as the only ACP proof. That
|
|
169
|
+
CLI path may request a fresh-token operator scope upgrade; ACP bridge
|
|
170
|
+
correctness is proven by ACP stdio frames plus the Gateway `sessions.list` log.
|
|
171
|
+
|
|
172
|
+
## How to use this
|
|
173
|
+
|
|
174
|
+
Use ACP when an IDE (or other client) speaks Agent Client Protocol and you want
|
|
175
|
+
it to drive an Nodmix Gateway session.
|
|
176
|
+
|
|
177
|
+
1. Ensure the Gateway is running (local or remote).
|
|
178
|
+
2. Configure the Gateway target (config or flags).
|
|
179
|
+
3. Point your IDE to run `nodmix acp` over stdio.
|
|
180
|
+
|
|
181
|
+
Example config (persisted):
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
nodmix config set gateway.remote.url wss://gateway-host:18789
|
|
185
|
+
nodmix config set gateway.remote.token <token>
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
Example direct run (no config write):
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
nodmix acp --url wss://gateway-host:18789 --token <token>
|
|
192
|
+
# preferred for local process safety
|
|
193
|
+
nodmix acp --url wss://gateway-host:18789 --token-file ~/.nodmix/gateway.token
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## Selecting agents
|
|
197
|
+
|
|
198
|
+
ACP does not pick agents directly. It routes by the Gateway session key.
|
|
199
|
+
|
|
200
|
+
Use agent-scoped session keys to target a specific agent:
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
nodmix acp --session agent:main:main
|
|
204
|
+
nodmix acp --session agent:design:main
|
|
205
|
+
nodmix acp --session agent:qa:bug-123
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
Each ACP session maps to a single Gateway session key. One agent can have many
|
|
209
|
+
sessions; ACP defaults to an isolated `acp:<uuid>` session unless you override
|
|
210
|
+
the key or label.
|
|
211
|
+
|
|
212
|
+
Per-session `mcpServers` are not supported in bridge mode. If an ACP client
|
|
213
|
+
sends them during `newSession` or `loadSession`, the bridge returns a clear
|
|
214
|
+
error instead of silently ignoring them.
|
|
215
|
+
|
|
216
|
+
If you want ACPX-backed sessions to see Nodmix plugin tools or selected
|
|
217
|
+
built-in tools such as `cron`, enable the gateway-side ACPX MCP bridges instead
|
|
218
|
+
of trying to pass per-session `mcpServers`. See
|
|
219
|
+
[ACP Agents](/tools/acp-agents-setup#plugin-tools-mcp-bridge) and
|
|
220
|
+
[Nodmix tools MCP bridge](/tools/acp-agents-setup#nodmix-tools-mcp-bridge).
|
|
221
|
+
|
|
222
|
+
## Use from `acpx` (Codex, Claude, other ACP clients)
|
|
223
|
+
|
|
224
|
+
If you want a coding agent such as Codex or Claude Code to talk to your
|
|
225
|
+
Nodmix bot over ACP, use `acpx` with its built-in `nodmix` target.
|
|
226
|
+
|
|
227
|
+
Typical flow:
|
|
228
|
+
|
|
229
|
+
1. Run the Gateway and make sure the ACP bridge can reach it.
|
|
230
|
+
2. Point `acpx nodmix` at `nodmix acp`.
|
|
231
|
+
3. Target the Nodmix session key you want the coding agent to use.
|
|
232
|
+
|
|
233
|
+
Examples:
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
# One-shot request into your default Nodmix ACP session
|
|
237
|
+
acpx nodmix exec "Summarize the active Nodmix session state."
|
|
238
|
+
|
|
239
|
+
# Persistent named session for follow-up turns
|
|
240
|
+
acpx nodmix sessions ensure --name codex-bridge
|
|
241
|
+
acpx nodmix -s codex-bridge --cwd /path/to/repo \
|
|
242
|
+
"Ask my Nodmix work agent for recent context relevant to this repo."
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
If you want `acpx nodmix` to target a specific Gateway and session key every
|
|
246
|
+
time, override the `nodmix` agent command in `~/.acpx/config.json`:
|
|
247
|
+
|
|
248
|
+
```json
|
|
249
|
+
{
|
|
250
|
+
"agents": {
|
|
251
|
+
"nodmix": {
|
|
252
|
+
"command": "env NODMIX_HIDE_BANNER=1 NODMIX_SUPPRESS_NOTES=1 nodmix acp --url ws://127.0.0.1:18789 --token-file ~/.nodmix/gateway.token --session agent:main:main"
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
For a repo-local Nodmix checkout, use the direct CLI entrypoint instead of the
|
|
259
|
+
dev runner so the ACP stream stays clean. For example:
|
|
260
|
+
|
|
261
|
+
```bash
|
|
262
|
+
env NODMIX_HIDE_BANNER=1 NODMIX_SUPPRESS_NOTES=1 node nodmix.mjs acp ...
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
This is the easiest way to let Codex, Claude Code, or another ACP-aware client
|
|
266
|
+
pull contextual information from an Nodmix agent without scraping a terminal.
|
|
267
|
+
|
|
268
|
+
## Zed editor setup
|
|
269
|
+
|
|
270
|
+
Add a custom ACP agent in `~/.config/zed/settings.json` (or use Zed's Settings UI):
|
|
271
|
+
|
|
272
|
+
```json
|
|
273
|
+
{
|
|
274
|
+
"agent_servers": {
|
|
275
|
+
"Nodmix ACP": {
|
|
276
|
+
"type": "custom",
|
|
277
|
+
"command": "nodmix",
|
|
278
|
+
"args": ["acp"],
|
|
279
|
+
"env": {}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
To target a specific Gateway or agent:
|
|
286
|
+
|
|
287
|
+
```json
|
|
288
|
+
{
|
|
289
|
+
"agent_servers": {
|
|
290
|
+
"Nodmix ACP": {
|
|
291
|
+
"type": "custom",
|
|
292
|
+
"command": "nodmix",
|
|
293
|
+
"args": [
|
|
294
|
+
"acp",
|
|
295
|
+
"--url",
|
|
296
|
+
"wss://gateway-host:18789",
|
|
297
|
+
"--token",
|
|
298
|
+
"<token>",
|
|
299
|
+
"--session",
|
|
300
|
+
"agent:design:main"
|
|
301
|
+
],
|
|
302
|
+
"env": {}
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
In Zed, open the Agent panel and select "Nodmix ACP" to start a thread.
|
|
309
|
+
|
|
310
|
+
## Session mapping
|
|
311
|
+
|
|
312
|
+
By default, ACP sessions get an isolated Gateway session key with an `acp:` prefix.
|
|
313
|
+
To reuse a known session, pass a session key or label:
|
|
314
|
+
|
|
315
|
+
- `--session <key>`: use a specific Gateway session key.
|
|
316
|
+
- `--session-label <label>`: resolve an existing session by label.
|
|
317
|
+
- `--reset-session`: mint a fresh session id for that key (same key, new transcript).
|
|
318
|
+
|
|
319
|
+
If your ACP client supports metadata, you can override per session:
|
|
320
|
+
|
|
321
|
+
```json
|
|
322
|
+
{
|
|
323
|
+
"_meta": {
|
|
324
|
+
"sessionKey": "agent:main:main",
|
|
325
|
+
"sessionLabel": "support inbox",
|
|
326
|
+
"resetSession": true
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
Learn more about session keys at [/concepts/session](/concepts/session).
|
|
332
|
+
|
|
333
|
+
## Options
|
|
334
|
+
|
|
335
|
+
- `--url <url>`: Gateway WebSocket URL (defaults to gateway.remote.url when configured).
|
|
336
|
+
- `--token <token>`: Gateway auth token.
|
|
337
|
+
- `--token-file <path>`: read Gateway auth token from file.
|
|
338
|
+
- `--password <password>`: Gateway auth password.
|
|
339
|
+
- `--password-file <path>`: read Gateway auth password from file.
|
|
340
|
+
- `--session <key>`: default session key.
|
|
341
|
+
- `--session-label <label>`: default session label to resolve.
|
|
342
|
+
- `--require-existing`: fail if the session key/label does not exist.
|
|
343
|
+
- `--reset-session`: reset the session key before first use.
|
|
344
|
+
- `--no-prefix-cwd`: do not prefix prompts with the working directory.
|
|
345
|
+
- `--provenance <off|meta|meta+receipt>`: include ACP provenance metadata or receipts.
|
|
346
|
+
- `--verbose, -v`: verbose logging to stderr.
|
|
347
|
+
|
|
348
|
+
Security note:
|
|
349
|
+
|
|
350
|
+
- `--token` and `--password` can be visible in local process listings on some systems.
|
|
351
|
+
- Prefer `--token-file`/`--password-file` or environment variables (`NODMIX_GATEWAY_TOKEN`, `NODMIX_GATEWAY_PASSWORD`).
|
|
352
|
+
- Gateway auth resolution follows the shared contract used by other Gateway clients:
|
|
353
|
+
- local mode: env (`NODMIX_GATEWAY_*`) -> `gateway.auth.*` -> `gateway.remote.*` fallback only when `gateway.auth.*` is unset (configured-but-unresolved local SecretRefs fail closed)
|
|
354
|
+
- remote mode: `gateway.remote.*` with env/config fallback per remote precedence rules
|
|
355
|
+
- `--url` is override-safe and does not reuse implicit config/env credentials; pass explicit `--token`/`--password` (or file variants)
|
|
356
|
+
- ACP runtime backend child processes receive `NODMIX_SHELL=acp`, which can be used for context-specific shell/profile rules.
|
|
357
|
+
- `nodmix acp client` sets `NODMIX_SHELL=acp-client` on the spawned bridge process.
|
|
358
|
+
|
|
359
|
+
### `acp client` options
|
|
360
|
+
|
|
361
|
+
- `--cwd <dir>`: working directory for the ACP session.
|
|
362
|
+
- `--server <command>`: ACP server command (default: `nodmix`).
|
|
363
|
+
- `--server-args <args...>`: extra arguments passed to the ACP server.
|
|
364
|
+
- `--server-verbose`: enable verbose logging on the ACP server.
|
|
365
|
+
- `--verbose, -v`: verbose client logging.
|
|
366
|
+
|
|
367
|
+
## Related
|
|
368
|
+
|
|
369
|
+
- [CLI reference](/cli)
|
|
370
|
+
- [ACP agents](/tools/acp-agents)
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "CLI reference for `nodmix agent` (send one agent turn via the Gateway)"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want to run one agent turn from scripts (optionally deliver reply)
|
|
5
|
+
title: "Agent"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# `nodmix agent`
|
|
9
|
+
|
|
10
|
+
Run an agent turn via the Gateway (use `--local` for embedded).
|
|
11
|
+
Use `--agent <id>` to target a configured agent directly.
|
|
12
|
+
|
|
13
|
+
Pass at least one session selector:
|
|
14
|
+
|
|
15
|
+
- `--to <dest>`
|
|
16
|
+
- `--session-id <id>`
|
|
17
|
+
- `--agent <id>`
|
|
18
|
+
|
|
19
|
+
Related:
|
|
20
|
+
|
|
21
|
+
- Agent send tool: [Agent send](/tools/agent-send)
|
|
22
|
+
|
|
23
|
+
## Options
|
|
24
|
+
|
|
25
|
+
- `-m, --message <text>`: required message body
|
|
26
|
+
- `-t, --to <dest>`: recipient used to derive the session key
|
|
27
|
+
- `--session-id <id>`: explicit session id
|
|
28
|
+
- `--agent <id>`: agent id; overrides routing bindings
|
|
29
|
+
- `--model <id>`: model override for this run (`provider/model` or model id)
|
|
30
|
+
- `--thinking <level>`: agent thinking level (`off`, `minimal`, `low`, `medium`, `high`, plus provider-supported custom levels such as `xhigh`, `adaptive`, or `max`)
|
|
31
|
+
- `--verbose <on|off>`: persist verbose level for the session
|
|
32
|
+
- `--channel <channel>`: delivery channel; omit to use the main session channel
|
|
33
|
+
- `--reply-to <target>`: delivery target override
|
|
34
|
+
- `--reply-channel <channel>`: delivery channel override
|
|
35
|
+
- `--reply-account <id>`: delivery account override
|
|
36
|
+
- `--local`: run the embedded agent directly (after plugin registry preload)
|
|
37
|
+
- `--deliver`: send the reply back to the selected channel/target
|
|
38
|
+
- `--timeout <seconds>`: override agent timeout (default 600 or config value)
|
|
39
|
+
- `--json`: output JSON
|
|
40
|
+
|
|
41
|
+
## Examples
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
nodmix agent --to +15555550123 --message "status update" --deliver
|
|
45
|
+
nodmix agent --agent ops --message "Summarize logs"
|
|
46
|
+
nodmix agent --agent ops --model openai/gpt-5.4 --message "Summarize logs"
|
|
47
|
+
nodmix agent --session-id 1234 --message "Summarize inbox" --thinking medium
|
|
48
|
+
nodmix agent --to +15555550123 --message "Trace logs" --verbose on --json
|
|
49
|
+
nodmix agent --agent ops --message "Generate report" --deliver --reply-channel slack --reply-to "#reports"
|
|
50
|
+
nodmix agent --agent ops --message "Run locally" --local
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Notes
|
|
54
|
+
|
|
55
|
+
- Gateway mode falls back to the embedded agent when the Gateway request fails. Use `--local` to force embedded execution up front.
|
|
56
|
+
- `--local` still preloads the plugin registry first, so plugin-provided providers, tools, and channels stay available during embedded runs.
|
|
57
|
+
- `--local` and embedded fallback runs are treated as one-shot runs. Bundled MCP loopback resources and warm Claude stdio sessions opened for that local process are retired after the reply, so scripted invocations do not keep local child processes alive.
|
|
58
|
+
- Gateway-backed runs leave Gateway-owned MCP loopback resources under the running Gateway process; older clients may still send the historical cleanup flag, but the Gateway accepts it as a compatibility no-op.
|
|
59
|
+
- `--channel`, `--reply-channel`, and `--reply-account` affect reply delivery, not session routing.
|
|
60
|
+
- `--json` keeps stdout reserved for the JSON response. Gateway, plugin, and embedded-fallback diagnostics are routed to stderr so scripts can parse stdout directly.
|
|
61
|
+
- Embedded fallback JSON includes `meta.transport: "embedded"` and `meta.fallbackFrom: "gateway"` so scripts can distinguish fallback runs from Gateway runs.
|
|
62
|
+
- If the Gateway accepts an agent run but the CLI times out waiting for the final reply, embedded fallback uses a fresh explicit `gateway-fallback-*` session/run id and reports `meta.fallbackReason: "gateway_timeout"` plus the fallback session fields. This avoids racing the Gateway-owned transcript lock or silently replacing the original routed conversation session.
|
|
63
|
+
- When this command triggers `models.json` regeneration, SecretRef-managed provider credentials are persisted as non-secret markers (for example env var names, `secretref-env:ENV_VAR_NAME`, or `secretref-managed`), not resolved secret plaintext.
|
|
64
|
+
- Marker writes are source-authoritative: Nodmix persists markers from the active source config snapshot, not from resolved runtime secret values.
|
|
65
|
+
|
|
66
|
+
## JSON delivery status
|
|
67
|
+
|
|
68
|
+
When `--json --deliver` is used, the CLI JSON response may include top-level `deliveryStatus` so scripts can distinguish delivered, suppressed, partial, and failed sends:
|
|
69
|
+
|
|
70
|
+
```json
|
|
71
|
+
{
|
|
72
|
+
"payloads": [{ "text": "Report ready", "mediaUrl": null }],
|
|
73
|
+
"meta": { "durationMs": 1200 },
|
|
74
|
+
"deliveryStatus": {
|
|
75
|
+
"requested": true,
|
|
76
|
+
"attempted": true,
|
|
77
|
+
"status": "sent",
|
|
78
|
+
"succeeded": true,
|
|
79
|
+
"resultCount": 1
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
`deliveryStatus.status` is one of `sent`, `suppressed`, `partial_failed`, or `failed`. `suppressed` means delivery was intentionally not sent, for example a message-sending hook cancelled it or there was no visible result; it is still a terminal no-retry outcome. `partial_failed` means at least one payload was sent before a later payload failed. `failed` means no durable send completed or delivery preflight failed.
|
|
85
|
+
|
|
86
|
+
Gateway-backed CLI responses also preserve the raw Gateway result shape, where the same object is available at `result.deliveryStatus`.
|
|
87
|
+
|
|
88
|
+
Common fields:
|
|
89
|
+
|
|
90
|
+
- `requested`: always `true` when the object is present.
|
|
91
|
+
- `attempted`: `true` after the durable send path ran; `false` for preflight failures or no visible payloads.
|
|
92
|
+
- `succeeded`: `true`, `false`, or `"partial"`; `"partial"` pairs with `status: "partial_failed"`.
|
|
93
|
+
- `reason`: a lowercase snake-case reason from durable delivery or preflight validation. Known reasons include `cancelled_by_message_sending_hook`, `no_visible_payload`, `no_visible_result`, `channel_resolved_to_internal`, `unknown_channel`, `invalid_delivery_target`, and `no_delivery_target`; failed durable sends may also report the failed stage. Treat unknown values as opaque because the set can expand.
|
|
94
|
+
- `resultCount`: number of channel send results when available.
|
|
95
|
+
- `sentBeforeError`: `true` when a partial failure sent at least one payload before the error.
|
|
96
|
+
- `error`: boolean `true` for failed or partial-failed sends.
|
|
97
|
+
- `errorMessage`: included only when an underlying delivery error message is captured. Preflight failures carry `error` and `reason` but no `errorMessage`.
|
|
98
|
+
- `payloadOutcomes`: optional per-payload results with `index`, `status`, `reason`, `resultCount`, `error`, `stage`, `sentBeforeError`, or hook metadata when available.
|
|
99
|
+
|
|
100
|
+
## Related
|
|
101
|
+
|
|
102
|
+
- [CLI reference](/cli)
|
|
103
|
+
- [Agent runtime](/concepts/agent)
|