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,332 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "CLI reference and security model for Crestodian, the configless-safe setup and repair helper"
|
|
3
|
+
read_when:
|
|
4
|
+
- You run nodmix with no command and want to understand Crestodian
|
|
5
|
+
- You need a configless-safe way to inspect or repair Nodmix
|
|
6
|
+
- You are designing or enabling message-channel rescue mode
|
|
7
|
+
title: "Crestodian"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# `nodmix crestodian`
|
|
11
|
+
|
|
12
|
+
Crestodian is Nodmix's local setup, repair, and configuration helper. It is
|
|
13
|
+
designed to stay reachable when the normal agent path is broken.
|
|
14
|
+
|
|
15
|
+
Running `nodmix` with no command starts Crestodian in an interactive terminal.
|
|
16
|
+
Running `nodmix crestodian` starts the same helper explicitly.
|
|
17
|
+
|
|
18
|
+
## What Crestodian shows
|
|
19
|
+
|
|
20
|
+
On startup, interactive Crestodian opens the same TUI shell used by
|
|
21
|
+
`nodmix tui`, with a Crestodian chat backend. The chat log starts with a short
|
|
22
|
+
greeting:
|
|
23
|
+
|
|
24
|
+
- when to start Crestodian
|
|
25
|
+
- the model or deterministic planner path Crestodian is actually using
|
|
26
|
+
- config validity and the default agent
|
|
27
|
+
- Gateway reachability from the first startup probe
|
|
28
|
+
- the next debug action Crestodian can take
|
|
29
|
+
|
|
30
|
+
It does not dump secrets or load plugin CLI commands just to start. The TUI
|
|
31
|
+
still provides the normal header, chat log, status line, footer, autocomplete,
|
|
32
|
+
and editor controls.
|
|
33
|
+
|
|
34
|
+
Use `status` for the detailed inventory with config path, docs/source paths,
|
|
35
|
+
local CLI probes, API-key presence, agents, model, and Gateway details.
|
|
36
|
+
|
|
37
|
+
Crestodian uses the same Nodmix reference discovery as regular agents. In a Git checkout,
|
|
38
|
+
it points itself at local `docs/` and the local source tree. In an npm package install, it
|
|
39
|
+
uses the bundled package docs and links to
|
|
40
|
+
[https://github.com/nodmix/nodmix](https://github.com/nodmix/nodmix), with explicit
|
|
41
|
+
guidance to review source whenever the docs are not enough.
|
|
42
|
+
|
|
43
|
+
## Examples
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
nodmix
|
|
47
|
+
nodmix crestodian
|
|
48
|
+
nodmix crestodian --json
|
|
49
|
+
nodmix crestodian --message "models"
|
|
50
|
+
nodmix crestodian --message "validate config"
|
|
51
|
+
nodmix crestodian --message "setup workspace ~/Projects/work model openai/gpt-5.5" --yes
|
|
52
|
+
nodmix crestodian --message "set default model openai/gpt-5.5" --yes
|
|
53
|
+
nodmix onboard --modern
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Inside the Crestodian TUI:
|
|
57
|
+
|
|
58
|
+
```text
|
|
59
|
+
status
|
|
60
|
+
health
|
|
61
|
+
doctor
|
|
62
|
+
doctor fix
|
|
63
|
+
validate config
|
|
64
|
+
setup
|
|
65
|
+
setup workspace ~/Projects/work model openai/gpt-5.5
|
|
66
|
+
config set gateway.port 19001
|
|
67
|
+
config set-ref gateway.auth.token env NODMIX_GATEWAY_TOKEN
|
|
68
|
+
gateway status
|
|
69
|
+
restart gateway
|
|
70
|
+
agents
|
|
71
|
+
create agent work workspace ~/Projects/work
|
|
72
|
+
models
|
|
73
|
+
set default model openai/gpt-5.5
|
|
74
|
+
plugins list
|
|
75
|
+
plugins search slack
|
|
76
|
+
plugin install clawhub:nodmix-codex-app-server
|
|
77
|
+
plugin uninstall nodmix-codex-app-server
|
|
78
|
+
talk to work agent
|
|
79
|
+
talk to agent for ~/Projects/work
|
|
80
|
+
audit
|
|
81
|
+
quit
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Safe startup
|
|
85
|
+
|
|
86
|
+
Crestodian's startup path is deliberately small. It can run when:
|
|
87
|
+
|
|
88
|
+
- `nodmix.json` is missing
|
|
89
|
+
- `nodmix.json` is invalid
|
|
90
|
+
- the Gateway is down
|
|
91
|
+
- plugin command registration is unavailable
|
|
92
|
+
- no agent has been configured yet
|
|
93
|
+
|
|
94
|
+
`nodmix --help` and `nodmix --version` still use the normal fast paths.
|
|
95
|
+
Noninteractive `nodmix` exits with a short message instead of printing root
|
|
96
|
+
help, because the no-command product is Crestodian.
|
|
97
|
+
|
|
98
|
+
## Operations and approval
|
|
99
|
+
|
|
100
|
+
Crestodian uses typed operations instead of editing config ad hoc.
|
|
101
|
+
|
|
102
|
+
Read-only operations can run immediately:
|
|
103
|
+
|
|
104
|
+
- show overview
|
|
105
|
+
- list agents
|
|
106
|
+
- list installed plugins
|
|
107
|
+
- search ClawHub plugins
|
|
108
|
+
- show model/backend status
|
|
109
|
+
- run status or health checks
|
|
110
|
+
- check Gateway reachability
|
|
111
|
+
- run doctor without interactive fixes
|
|
112
|
+
- validate config
|
|
113
|
+
- show the audit-log path
|
|
114
|
+
|
|
115
|
+
Persistent operations require conversational approval in interactive mode unless
|
|
116
|
+
you pass `--yes` for a direct command:
|
|
117
|
+
|
|
118
|
+
- write config
|
|
119
|
+
- run `config set`
|
|
120
|
+
- set supported SecretRef values through `config set-ref`
|
|
121
|
+
- run setup/onboarding bootstrap
|
|
122
|
+
- change the default model
|
|
123
|
+
- start, stop, or restart the Gateway
|
|
124
|
+
- create agents
|
|
125
|
+
- install plugins from ClawHub or npm
|
|
126
|
+
- uninstall plugins
|
|
127
|
+
- run doctor repairs that rewrite config or state
|
|
128
|
+
|
|
129
|
+
Applied writes are recorded in:
|
|
130
|
+
|
|
131
|
+
```text
|
|
132
|
+
~/.nodmix/audit/crestodian.jsonl
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Discovery is not audited. Only applied operations and writes are logged.
|
|
136
|
+
|
|
137
|
+
`nodmix onboard --modern` starts Crestodian as the modern onboarding preview.
|
|
138
|
+
Plain `nodmix onboard` still runs classic onboarding.
|
|
139
|
+
|
|
140
|
+
## Setup bootstrap
|
|
141
|
+
|
|
142
|
+
`setup` is the chat-first onboarding bootstrap. It writes only through typed
|
|
143
|
+
config operations and asks for approval first.
|
|
144
|
+
|
|
145
|
+
```text
|
|
146
|
+
setup
|
|
147
|
+
setup workspace ~/Projects/work
|
|
148
|
+
setup workspace ~/Projects/work model openai/gpt-5.5
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
When no model is configured, setup selects the first usable backend in this
|
|
152
|
+
order and tells you what it chose:
|
|
153
|
+
|
|
154
|
+
- existing explicit model, if already configured
|
|
155
|
+
- `OPENAI_API_KEY` -> `openai/gpt-5.5`
|
|
156
|
+
- `ANTHROPIC_API_KEY` -> `anthropic/claude-opus-4-7`
|
|
157
|
+
- Claude Code CLI -> `claude-cli/claude-opus-4-7`
|
|
158
|
+
- Codex -> `openai/gpt-5.5` through the Codex app-server harness
|
|
159
|
+
|
|
160
|
+
If none are available, setup still writes the default workspace and leaves the
|
|
161
|
+
model unset. Install or log into Codex/Claude Code, or expose
|
|
162
|
+
`OPENAI_API_KEY`/`ANTHROPIC_API_KEY`, then run setup again.
|
|
163
|
+
|
|
164
|
+
## Model-Assisted Planner
|
|
165
|
+
|
|
166
|
+
Crestodian always starts in deterministic mode. For fuzzy commands that the
|
|
167
|
+
deterministic parser does not understand, local Crestodian can make one bounded
|
|
168
|
+
planner turn through Nodmix's normal runtime paths. It first uses the
|
|
169
|
+
configured Nodmix model. If no configured model is usable yet, it can fall
|
|
170
|
+
back to local runtimes already present on the machine:
|
|
171
|
+
|
|
172
|
+
- Claude Code CLI: `claude-cli/claude-opus-4-7`
|
|
173
|
+
- Codex app-server harness: `openai/gpt-5.5`
|
|
174
|
+
|
|
175
|
+
The model-assisted planner cannot mutate config directly. It must translate the
|
|
176
|
+
request into one of Crestodian's typed commands, then the normal approval and
|
|
177
|
+
audit rules apply. Crestodian prints the model it used and the interpreted
|
|
178
|
+
command before it runs anything. Configless fallback planner turns are
|
|
179
|
+
temporary, tool-disabled where the runtime supports it, and use a temporary
|
|
180
|
+
workspace/session.
|
|
181
|
+
|
|
182
|
+
Message-channel rescue mode does not use the model-assisted planner. Remote
|
|
183
|
+
rescue stays deterministic so a broken or compromised normal agent path cannot
|
|
184
|
+
be used as a config editor.
|
|
185
|
+
|
|
186
|
+
## Switching to an agent
|
|
187
|
+
|
|
188
|
+
Use a natural-language selector to leave Crestodian and open the normal TUI:
|
|
189
|
+
|
|
190
|
+
```text
|
|
191
|
+
talk to agent
|
|
192
|
+
talk to work agent
|
|
193
|
+
switch to main agent
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
`nodmix tui`, `nodmix chat`, and `nodmix terminal` still open the normal
|
|
197
|
+
agent TUI directly. They do not start Crestodian.
|
|
198
|
+
|
|
199
|
+
After switching into the normal TUI, use `/crestodian` to return to Crestodian.
|
|
200
|
+
You can include a follow-up request:
|
|
201
|
+
|
|
202
|
+
```text
|
|
203
|
+
/crestodian
|
|
204
|
+
/crestodian restart gateway
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
Agent switches inside the TUI leave a breadcrumb that `/crestodian` is available.
|
|
208
|
+
|
|
209
|
+
## Message rescue mode
|
|
210
|
+
|
|
211
|
+
Message rescue mode is the message-channel entrypoint for Crestodian. It is for
|
|
212
|
+
the case where your normal agent is dead, but a trusted channel such as WhatsApp
|
|
213
|
+
still receives commands.
|
|
214
|
+
|
|
215
|
+
Supported text command:
|
|
216
|
+
|
|
217
|
+
- `/crestodian <request>`
|
|
218
|
+
|
|
219
|
+
Operator flow:
|
|
220
|
+
|
|
221
|
+
```text
|
|
222
|
+
You, in a trusted owner DM: /crestodian status
|
|
223
|
+
Nodmix: Crestodian rescue mode. Gateway reachable: no. Config valid: no.
|
|
224
|
+
You: /crestodian restart gateway
|
|
225
|
+
Nodmix: Plan: restart the Gateway. Reply /crestodian yes to apply.
|
|
226
|
+
You: /crestodian yes
|
|
227
|
+
Nodmix: Applied. Audit entry written.
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
Agent creation can also be queued from the local prompt or rescue mode:
|
|
231
|
+
|
|
232
|
+
```text
|
|
233
|
+
create agent work workspace ~/Projects/work model openai/gpt-5.5
|
|
234
|
+
/crestodian create agent work workspace ~/Projects/work
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
Remote rescue mode is an admin surface. It must be treated like remote config
|
|
238
|
+
repair, not like normal chat.
|
|
239
|
+
|
|
240
|
+
Security contract for remote rescue:
|
|
241
|
+
|
|
242
|
+
- Disabled when sandboxing is active. If an agent/session is sandboxed,
|
|
243
|
+
Crestodian must refuse remote rescue and explain that local CLI repair is
|
|
244
|
+
required.
|
|
245
|
+
- Default effective state is `auto`: allow remote rescue only in trusted YOLO
|
|
246
|
+
operation, where the runtime already has unsandboxed local authority.
|
|
247
|
+
- Require an explicit owner identity. Rescue must not accept wildcard sender
|
|
248
|
+
rules, open group policy, unauthenticated webhooks, or anonymous channels.
|
|
249
|
+
- Owner DMs only by default. Group/channel rescue requires explicit opt-in.
|
|
250
|
+
- Plugin search and list are read-only. Plugin install is local-only by default
|
|
251
|
+
because it downloads executable code. Plugin uninstall can be allowed as an
|
|
252
|
+
approved repair operation when rescue policy permits persistent writes.
|
|
253
|
+
- Remote rescue cannot open the local TUI or switch into an interactive agent
|
|
254
|
+
session. Use local `nodmix` for agent handoff.
|
|
255
|
+
- Persistent writes still require approval, even in rescue mode.
|
|
256
|
+
- Audit every applied rescue operation. Message-channel rescue records channel,
|
|
257
|
+
account, sender, and source-address metadata. Config-mutating operations also
|
|
258
|
+
record config hashes before and after.
|
|
259
|
+
- Never echo secrets. SecretRef inspection should report availability, not
|
|
260
|
+
values.
|
|
261
|
+
- If the Gateway is alive, prefer Gateway typed operations. If the Gateway is
|
|
262
|
+
dead, use only the minimal local repair surface that does not depend on the
|
|
263
|
+
normal agent loop.
|
|
264
|
+
|
|
265
|
+
Config shape:
|
|
266
|
+
|
|
267
|
+
```jsonc
|
|
268
|
+
{
|
|
269
|
+
"crestodian": {
|
|
270
|
+
"rescue": {
|
|
271
|
+
"enabled": "auto",
|
|
272
|
+
"ownerDmOnly": true,
|
|
273
|
+
},
|
|
274
|
+
},
|
|
275
|
+
}
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
`enabled` should accept:
|
|
279
|
+
|
|
280
|
+
- `"auto"`: default. Allow only when the effective runtime is YOLO and
|
|
281
|
+
sandboxing is off.
|
|
282
|
+
- `false`: never allow message-channel rescue.
|
|
283
|
+
- `true`: explicitly allow rescue when the owner/channel checks pass. This
|
|
284
|
+
still must not bypass the sandboxing denial.
|
|
285
|
+
|
|
286
|
+
The default `"auto"` YOLO posture is:
|
|
287
|
+
|
|
288
|
+
- sandbox mode resolves to `off`
|
|
289
|
+
- `tools.exec.security` resolves to `full`
|
|
290
|
+
- `tools.exec.ask` resolves to `off`
|
|
291
|
+
|
|
292
|
+
Remote rescue is covered by the Docker lane:
|
|
293
|
+
|
|
294
|
+
```bash
|
|
295
|
+
pnpm test:docker:crestodian-rescue
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
Configless local planner fallback is covered by:
|
|
299
|
+
|
|
300
|
+
```bash
|
|
301
|
+
pnpm test:docker:crestodian-planner
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
An opt-in live channel command-surface smoke checks `/crestodian status` plus a
|
|
305
|
+
persistent approval roundtrip through the rescue handler:
|
|
306
|
+
|
|
307
|
+
```bash
|
|
308
|
+
pnpm test:live:crestodian-rescue-channel
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
Fresh configless setup through Crestodian is covered by:
|
|
312
|
+
|
|
313
|
+
```bash
|
|
314
|
+
pnpm test:docker:crestodian-first-run
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
That lane starts with an empty state dir, routes bare `nodmix` to Crestodian,
|
|
318
|
+
sets the default model, creates an additional agent, configures Discord through
|
|
319
|
+
a plugin enablement plus token SecretRef, validates config, and checks the audit
|
|
320
|
+
log. QA Lab also has a repo-backed scenario for the same Ring 0 flow:
|
|
321
|
+
|
|
322
|
+
```bash
|
|
323
|
+
pnpm nodmix qa suite --scenario crestodian-ring-zero-setup
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
## Related
|
|
327
|
+
|
|
328
|
+
- [CLI reference](/cli)
|
|
329
|
+
- [Doctor](/cli/doctor)
|
|
330
|
+
- [TUI](/cli/tui)
|
|
331
|
+
- [Sandbox](/cli/sandbox)
|
|
332
|
+
- [Security](/cli/security)
|
package/docs/cli/cron.md
ADDED
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "CLI reference for `nodmix cron` (schedule and run background jobs)"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want scheduled jobs and wakeups
|
|
5
|
+
- You are debugging cron execution and logs
|
|
6
|
+
title: "Cron"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# `nodmix cron`
|
|
10
|
+
|
|
11
|
+
Manage cron jobs for the Gateway scheduler.
|
|
12
|
+
|
|
13
|
+
<Tip>
|
|
14
|
+
Run `nodmix cron --help` for the full command surface. See [Cron jobs](/automation/cron-jobs) for the conceptual guide.
|
|
15
|
+
</Tip>
|
|
16
|
+
|
|
17
|
+
## Sessions
|
|
18
|
+
|
|
19
|
+
`--session` accepts `main`, `isolated`, `current`, or `session:<id>`.
|
|
20
|
+
|
|
21
|
+
<AccordionGroup>
|
|
22
|
+
<Accordion title="Session keys">
|
|
23
|
+
- `main` binds to the agent's main session.
|
|
24
|
+
- `isolated` creates a fresh transcript and session id for each run.
|
|
25
|
+
- `current` binds to the active session at creation time.
|
|
26
|
+
- `session:<id>` pins to an explicit persistent session key.
|
|
27
|
+
|
|
28
|
+
</Accordion>
|
|
29
|
+
<Accordion title="Isolated session semantics">
|
|
30
|
+
Isolated runs reset ambient conversation context. Channel and group routing, send/queue policy, elevation, origin, and ACP runtime binding are reset for the new run. Safe preferences and explicit user-selected model or auth overrides can carry across runs.
|
|
31
|
+
</Accordion>
|
|
32
|
+
</AccordionGroup>
|
|
33
|
+
|
|
34
|
+
## Delivery
|
|
35
|
+
|
|
36
|
+
`nodmix cron list` and `nodmix cron show <job-id>` preview the resolved delivery route. For `channel: "last"`, the preview shows whether the route resolved from the main or current session, or will fail closed.
|
|
37
|
+
|
|
38
|
+
Provider-prefixed targets can disambiguate unresolved announce channels. For example, `to: "telegram:123"` selects Telegram when `delivery.channel` is omitted or `last`. Only prefixes advertised by the loaded plugin are provider selectors. If `delivery.channel` is explicit, the prefix must match that channel; `channel: "whatsapp"` with `to: "telegram:123"` is rejected. Service prefixes such as `imessage:` and `sms:` remain channel-owned target syntax.
|
|
39
|
+
|
|
40
|
+
<Note>
|
|
41
|
+
Isolated `cron add` jobs default to `--announce` delivery. Use `--no-deliver` to keep output internal. `--deliver` remains as a deprecated alias for `--announce`.
|
|
42
|
+
</Note>
|
|
43
|
+
|
|
44
|
+
### Delivery ownership
|
|
45
|
+
|
|
46
|
+
Isolated cron chat delivery is shared between the agent and the runner:
|
|
47
|
+
|
|
48
|
+
- The agent can send directly using the `message` tool when a chat route is available.
|
|
49
|
+
- `announce` fallback-delivers the final reply only when the agent did not send directly to the resolved target.
|
|
50
|
+
- `webhook` posts the finished payload to a URL.
|
|
51
|
+
- `none` disables runner fallback delivery.
|
|
52
|
+
|
|
53
|
+
`--announce` is runner fallback delivery for the final reply. `--no-deliver` disables that fallback but does not remove the agent's `message` tool when a chat route is available.
|
|
54
|
+
|
|
55
|
+
Reminders created from an active chat preserve the live chat delivery target for fallback announce delivery. Internal session keys may be lowercase; do not use them as a source of truth for case-sensitive provider IDs such as Matrix room IDs.
|
|
56
|
+
|
|
57
|
+
### Failure delivery
|
|
58
|
+
|
|
59
|
+
Failure notifications resolve in this order:
|
|
60
|
+
|
|
61
|
+
1. `delivery.failureDestination` on the job.
|
|
62
|
+
2. Global `cron.failureDestination`.
|
|
63
|
+
3. The job's primary announce target (when no explicit failure destination is set).
|
|
64
|
+
|
|
65
|
+
<Note>
|
|
66
|
+
Main-session jobs may only use `delivery.failureDestination` when primary delivery mode is `webhook`. Isolated jobs accept it in all modes.
|
|
67
|
+
</Note>
|
|
68
|
+
|
|
69
|
+
Note: isolated cron runs treat run-level agent failures as job errors even when
|
|
70
|
+
no reply payload is produced, so model/provider failures still increment error
|
|
71
|
+
counters and trigger failure notifications.
|
|
72
|
+
|
|
73
|
+
If an isolated run times out before the first model request, `nodmix cron show`
|
|
74
|
+
and `nodmix cron runs` include a phase-specific error such as
|
|
75
|
+
`setup timed out before runner start` or
|
|
76
|
+
`stalled before first model call (last phase: context-engine)`.
|
|
77
|
+
For CLI-backed providers, the pre-model watchdog stays active until the external
|
|
78
|
+
CLI turn starts, so session lookup, hook, auth, prompt, and CLI setup stalls are
|
|
79
|
+
reported as pre-model cron failures.
|
|
80
|
+
|
|
81
|
+
## Scheduling
|
|
82
|
+
|
|
83
|
+
### One-shot jobs
|
|
84
|
+
|
|
85
|
+
`--at <datetime>` schedules a one-shot run. Offset-less datetimes are treated as UTC unless you also pass `--tz <iana>`, which interprets the wall-clock time in the given timezone.
|
|
86
|
+
|
|
87
|
+
<Note>
|
|
88
|
+
One-shot jobs delete after success by default. Use `--keep-after-run` to preserve them.
|
|
89
|
+
</Note>
|
|
90
|
+
|
|
91
|
+
### Recurring jobs
|
|
92
|
+
|
|
93
|
+
Recurring jobs use exponential retry backoff after consecutive errors: 30s, 1m, 5m, 15m, 60m. The schedule returns to normal after the next successful run.
|
|
94
|
+
|
|
95
|
+
Skipped runs are tracked separately from execution errors. They do not affect retry backoff, but `nodmix cron edit <job-id> --failure-alert-include-skipped` can opt failure alerts into repeated skipped-run notifications.
|
|
96
|
+
|
|
97
|
+
For isolated jobs that target a local configured model provider, cron runs a lightweight provider preflight before starting the agent turn. Loopback, private-network, and `.local` `api: "ollama"` providers are probed at `/api/tags`; local OpenAI-compatible providers such as vLLM, SGLang, and LM Studio are probed at `/models`. If the endpoint is unreachable, the run is recorded as `skipped` and retried on a later schedule; matching dead endpoints are cached for 5 minutes to avoid many jobs hammering the same local server.
|
|
98
|
+
|
|
99
|
+
Note: cron job definitions live in `jobs.json`, while pending runtime state lives in `jobs-state.json`. If `jobs.json` is edited externally, the Gateway reloads changed schedules and clears stale pending slots; formatting-only rewrites do not clear the pending slot.
|
|
100
|
+
|
|
101
|
+
### Manual runs
|
|
102
|
+
|
|
103
|
+
`nodmix cron run <job-id>` force-runs by default and returns as soon as the manual run is queued. Successful responses include `{ ok: true, enqueued: true, runId }`. Use the returned `runId` to inspect the later result:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
nodmix cron run <job-id>
|
|
107
|
+
nodmix cron runs --id <job-id> --run-id <run-id>
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Add `--wait` when a script should block until that exact queued run records a terminal status:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
nodmix cron run <job-id> --wait --wait-timeout 10m --poll-interval 2s
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
With `--wait`, the CLI still calls `cron.run` first, then polls `cron.runs` for the returned `runId`. The command exits `0` only when the run finishes with status `ok`. It exits non-zero when the run finishes with `error` or `skipped`, when the Gateway response does not include a `runId`, or when `--wait-timeout` expires. `--poll-interval` must be greater than zero.
|
|
117
|
+
|
|
118
|
+
<Note>
|
|
119
|
+
Use `--due` when you want the manual command to run only if the job is currently due. If `--due --wait` does not enqueue a run, the command returns the normal non-run response instead of polling.
|
|
120
|
+
</Note>
|
|
121
|
+
|
|
122
|
+
## Models
|
|
123
|
+
|
|
124
|
+
`cron add|edit --model <ref>` selects an allowed model for the job.
|
|
125
|
+
|
|
126
|
+
<Warning>
|
|
127
|
+
If the model is not allowed or cannot be resolved, cron fails the run with an explicit validation error instead of falling back to the job's agent or default model selection.
|
|
128
|
+
</Warning>
|
|
129
|
+
|
|
130
|
+
Cron `--model` is a **job primary**, not a chat-session `/model` override. That means:
|
|
131
|
+
|
|
132
|
+
- Configured model fallbacks still apply when the selected job model fails.
|
|
133
|
+
- Per-job payload `fallbacks` replaces the configured fallback list when present.
|
|
134
|
+
- An empty per-job fallback list (`fallbacks: []` in the job payload/API) makes the cron run strict.
|
|
135
|
+
- When a job has `--model` but no fallback list is configured, Nodmix passes an explicit empty fallback override so the agent primary is not appended as a hidden retry target.
|
|
136
|
+
|
|
137
|
+
`nodmix doctor` reports jobs that already have `payload.model` set, including provider namespace counts and mismatches against `agents.defaults.model`. Use that check when auth, provider, or billing behavior looks different between live chat and scheduled jobs.
|
|
138
|
+
|
|
139
|
+
### Isolated cron model precedence
|
|
140
|
+
|
|
141
|
+
Isolated cron resolves the active model in this order:
|
|
142
|
+
|
|
143
|
+
1. Gmail-hook override.
|
|
144
|
+
2. Per-job `--model`.
|
|
145
|
+
3. Stored cron-session model override (when the user selected one).
|
|
146
|
+
4. Agent or default model selection.
|
|
147
|
+
|
|
148
|
+
### Fast mode
|
|
149
|
+
|
|
150
|
+
Isolated cron fast mode follows the resolved live model selection. Model config `params.fastMode` applies by default, but a stored session `fastMode` override still wins over config.
|
|
151
|
+
|
|
152
|
+
### Live model switch retries
|
|
153
|
+
|
|
154
|
+
If an isolated run throws `LiveSessionModelSwitchError`, cron persists the switched provider and model (and switched auth profile override when present) for the active run before retrying. The outer retry loop is bounded to two switch retries after the initial attempt, then aborts instead of looping forever.
|
|
155
|
+
|
|
156
|
+
## Run output and denials
|
|
157
|
+
|
|
158
|
+
### Stale acknowledgement suppression
|
|
159
|
+
|
|
160
|
+
Isolated cron turns suppress stale acknowledgement-only replies. If the first result is just an interim status update and no descendant subagent run is responsible for the eventual answer, cron re-prompts once for the real result before delivery.
|
|
161
|
+
|
|
162
|
+
### Silent token suppression
|
|
163
|
+
|
|
164
|
+
If an isolated cron run returns only the silent token (`NO_REPLY` or `no_reply`), cron suppresses both direct outbound delivery and the fallback queued summary path, so nothing is posted back to chat.
|
|
165
|
+
|
|
166
|
+
### Structured denials
|
|
167
|
+
|
|
168
|
+
Isolated cron runs use structured execution-denial metadata from the embedded run as the authoritative denial signal. They also honor node-host `UNAVAILABLE` wrappers when the nested structured error message starts with `SYSTEM_RUN_DENIED` or `INVALID_REQUEST`.
|
|
169
|
+
|
|
170
|
+
Cron does not classify final-output prose or approval-looking refusal phrases as denials unless the embedded run also provides structured denial metadata, so ordinary assistant text is not treated as a blocked command.
|
|
171
|
+
|
|
172
|
+
`cron list` and run history surface the denial reason instead of reporting a blocked command as `ok`.
|
|
173
|
+
|
|
174
|
+
## Retention
|
|
175
|
+
|
|
176
|
+
Retention and pruning are controlled in config:
|
|
177
|
+
|
|
178
|
+
- `cron.sessionRetention` (default `24h`) prunes completed isolated run sessions.
|
|
179
|
+
- `cron.runLog.maxBytes` and `cron.runLog.keepLines` prune `~/.nodmix/cron/runs/<jobId>.jsonl`.
|
|
180
|
+
|
|
181
|
+
## Migrating older jobs
|
|
182
|
+
|
|
183
|
+
<Note>
|
|
184
|
+
If you have cron jobs from before the current delivery and store format, run `nodmix doctor --fix`. Doctor normalizes legacy cron fields (`jobId`, `schedule.cron`, top-level delivery fields including legacy `threadId`, payload `provider` delivery aliases) and migrates simple `notify: true` webhook fallback jobs to explicit webhook delivery when `cron.webhook` is configured.
|
|
185
|
+
</Note>
|
|
186
|
+
|
|
187
|
+
## Common edits
|
|
188
|
+
|
|
189
|
+
Update delivery settings without changing the message:
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
nodmix cron edit <job-id> --announce --channel telegram --to "123456789"
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
Disable delivery for an isolated job:
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
nodmix cron edit <job-id> --no-deliver
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
Enable lightweight bootstrap context for an isolated job:
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
nodmix cron edit <job-id> --light-context
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
Announce to a specific channel:
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
nodmix cron edit <job-id> --announce --channel slack --to "channel:C1234567890"
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
Announce to a Telegram forum topic:
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
nodmix cron edit <job-id> --announce --channel telegram --to "-1001234567890" --thread-id 42
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
Create an isolated job with lightweight bootstrap context:
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
nodmix cron add \
|
|
223
|
+
--name "Lightweight morning brief" \
|
|
224
|
+
--cron "0 7 * * *" \
|
|
225
|
+
--session isolated \
|
|
226
|
+
--message "Summarize overnight updates." \
|
|
227
|
+
--light-context \
|
|
228
|
+
--no-deliver
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
`--light-context` applies to isolated agent-turn jobs only. For cron runs, lightweight mode keeps bootstrap context empty instead of injecting the full workspace bootstrap set.
|
|
232
|
+
|
|
233
|
+
## Common admin commands
|
|
234
|
+
|
|
235
|
+
Manual run and inspection:
|
|
236
|
+
|
|
237
|
+
```bash
|
|
238
|
+
nodmix cron list
|
|
239
|
+
nodmix cron list --agent ops
|
|
240
|
+
nodmix cron get <job-id>
|
|
241
|
+
nodmix cron show <job-id>
|
|
242
|
+
nodmix cron run <job-id>
|
|
243
|
+
nodmix cron run <job-id> --due
|
|
244
|
+
nodmix cron run <job-id> --wait --wait-timeout 10m
|
|
245
|
+
nodmix cron run <job-id> --wait --wait-timeout 10m --poll-interval 2s
|
|
246
|
+
nodmix cron runs --id <job-id> --limit 50
|
|
247
|
+
nodmix cron runs --id <job-id> --run-id <run-id>
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
`nodmix cron list` shows all matching jobs by default. Pass `--agent <id>` to show only jobs whose effective normalized agent id matches; jobs without a stored agent id count as the configured default agent.
|
|
251
|
+
|
|
252
|
+
`nodmix cron get <job-id>` returns the stored job JSON directly. Use `cron show <job-id>` when you want the human-readable view with delivery-route preview.
|
|
253
|
+
|
|
254
|
+
`cron list --json` and `cron show <job-id> --json` include a top-level `status` field on each job, computed from `enabled`, `state.runningAtMs`, and `state.lastRunStatus`. Values: `disabled`, `running`, `ok`, `error`, `skipped`, or `idle`. This mirrors the human-readable status column so external tooling can read job state without re-deriving it.
|
|
255
|
+
|
|
256
|
+
`cron runs` entries include delivery diagnostics with the intended cron target, the resolved target, message-tool sends, fallback use, and delivered state.
|
|
257
|
+
|
|
258
|
+
Agent and session retargeting:
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
nodmix cron edit <job-id> --agent ops
|
|
262
|
+
nodmix cron edit <job-id> --clear-agent
|
|
263
|
+
nodmix cron edit <job-id> --session current
|
|
264
|
+
nodmix cron edit <job-id> --session "session:daily-brief"
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
`nodmix cron add` warns when `--agent` is omitted on agent-turn jobs and falls back to the default agent (`main`). Pass `--agent <id>` at create time to pin a specific agent.
|
|
268
|
+
|
|
269
|
+
Delivery tweaks:
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
nodmix cron edit <job-id> --announce --channel slack --to "channel:C1234567890"
|
|
273
|
+
nodmix cron edit <job-id> --best-effort-deliver
|
|
274
|
+
nodmix cron edit <job-id> --no-best-effort-deliver
|
|
275
|
+
nodmix cron edit <job-id> --no-deliver
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
## Related
|
|
279
|
+
|
|
280
|
+
- [CLI reference](/cli)
|
|
281
|
+
- [Scheduled tasks](/automation/cron-jobs)
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "CLI reference for `nodmix daemon` (legacy alias for gateway service management)"
|
|
3
|
+
read_when:
|
|
4
|
+
- You still use `nodmix daemon ...` in scripts
|
|
5
|
+
- You need service lifecycle commands (install/start/stop/restart/status)
|
|
6
|
+
title: "Daemon"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# `nodmix daemon`
|
|
10
|
+
|
|
11
|
+
Legacy alias for Gateway service management commands.
|
|
12
|
+
|
|
13
|
+
`nodmix daemon ...` maps to the same service control surface as `nodmix gateway ...` service commands.
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
nodmix daemon status
|
|
19
|
+
nodmix daemon install
|
|
20
|
+
nodmix daemon start
|
|
21
|
+
nodmix daemon stop
|
|
22
|
+
nodmix daemon restart
|
|
23
|
+
nodmix daemon uninstall
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Subcommands
|
|
27
|
+
|
|
28
|
+
- `status`: show service install state and probe Gateway health
|
|
29
|
+
- `install`: install service (`launchd`/`systemd`/`schtasks`)
|
|
30
|
+
- `uninstall`: remove service
|
|
31
|
+
- `start`: start service
|
|
32
|
+
- `stop`: stop service
|
|
33
|
+
- `restart`: restart service
|
|
34
|
+
|
|
35
|
+
## Common options
|
|
36
|
+
|
|
37
|
+
- `status`: `--url`, `--token`, `--password`, `--timeout`, `--no-probe`, `--require-rpc`, `--deep`, `--json`
|
|
38
|
+
- `install`: `--port`, `--runtime <node|bun>`, `--token`, `--force`, `--json`
|
|
39
|
+
- `restart`: `--safe`, `--skip-deferral`, `--force`, `--wait <duration>`, `--json`
|
|
40
|
+
- lifecycle (`uninstall|start|stop`): `--json`
|
|
41
|
+
|
|
42
|
+
Notes:
|
|
43
|
+
|
|
44
|
+
- `status` resolves configured auth SecretRefs for probe auth when possible.
|
|
45
|
+
- If a required auth SecretRef is unresolved in this command path, `daemon status --json` reports `rpc.authWarning` when probe connectivity/auth fails; pass `--token`/`--password` explicitly or resolve the secret source first.
|
|
46
|
+
- If the probe succeeds, unresolved auth-ref warnings are suppressed to avoid false positives.
|
|
47
|
+
- `status --deep` adds a best-effort system-level service scan. When it finds other gateway-like services, human output prints cleanup hints and warns that one gateway per machine is still the normal recommendation.
|
|
48
|
+
- `status --deep` also runs config validation in plugin-aware mode and surfaces configured plugin manifest warnings (for example missing channel config metadata) so install and update smoke checks catch them. Default `status` keeps the fast read-only path that skips plugin validation.
|
|
49
|
+
- On Linux systemd installs, `status` token-drift checks include both `Environment=` and `EnvironmentFile=` unit sources.
|
|
50
|
+
- Drift checks resolve `gateway.auth.token` SecretRefs using merged runtime env (service command env first, then process env fallback).
|
|
51
|
+
- If token auth is not effectively active (explicit `gateway.auth.mode` of `password`/`none`/`trusted-proxy`, or mode unset where password can win and no token candidate can win), token-drift checks skip config token resolution.
|
|
52
|
+
- When token auth requires a token and `gateway.auth.token` is SecretRef-managed, `install` validates that the SecretRef is resolvable but does not persist the resolved token into service environment metadata.
|
|
53
|
+
- If token auth requires a token and the configured token SecretRef is unresolved, install fails closed.
|
|
54
|
+
- If both `gateway.auth.token` and `gateway.auth.password` are configured and `gateway.auth.mode` is unset, install is blocked until mode is set explicitly.
|
|
55
|
+
- On macOS, `install` keeps LaunchAgent plists owner-only and loads managed service environment values through an owner-only file and wrapper instead of serializing API keys or auth-profile env refs into `EnvironmentVariables`.
|
|
56
|
+
- If you intentionally run multiple gateways on one host, isolate ports, config/state, and workspaces; see [/gateway#multiple-gateways-same-host](/gateway#multiple-gateways-same-host).
|
|
57
|
+
- `restart --safe` asks the running Gateway to preflight active work and schedule one coalesced restart after active work drains. Plain `restart` keeps the existing service-manager behavior; `--force` remains the immediate override path.
|
|
58
|
+
- `restart --safe --skip-deferral` runs the Nodmix-aware safe restart but bypasses the active-work deferral gate so the Gateway emits the restart immediately even when blockers are reported. Operator escape hatch when a stuck task run pins the safe restart; requires `--safe`.
|
|
59
|
+
|
|
60
|
+
## Prefer
|
|
61
|
+
|
|
62
|
+
Use [`nodmix gateway`](/cli/gateway) for current docs and examples.
|
|
63
|
+
|
|
64
|
+
## Related
|
|
65
|
+
|
|
66
|
+
- [CLI reference](/cli)
|
|
67
|
+
- [Gateway runbook](/gateway)
|