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,105 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: healthcheck
|
|
3
|
+
description: "Audit/harden Nodmix hosts: SSH, firewall, updates, exposure, backups, disk encryption, gateway security."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Nodmix host healthcheck
|
|
7
|
+
|
|
8
|
+
Goal: assess host risk, run read-only checks, then propose staged hardening without breaking access.
|
|
9
|
+
|
|
10
|
+
## Rules
|
|
11
|
+
|
|
12
|
+
- Ask before state-changing actions.
|
|
13
|
+
- Do not change SSH/firewall/remote access until access path is confirmed.
|
|
14
|
+
- Prefer reversible steps and rollback notes.
|
|
15
|
+
- Never claim Nodmix manages OS firewall, SSH, or updates.
|
|
16
|
+
- If identity/role unknown, recommend only.
|
|
17
|
+
- User choices: numbered list.
|
|
18
|
+
- Never print secrets.
|
|
19
|
+
|
|
20
|
+
## Context to infer first
|
|
21
|
+
|
|
22
|
+
- OS/version, container vs host.
|
|
23
|
+
- Privilege level.
|
|
24
|
+
- Access path: local, SSH, RDP, tailnet.
|
|
25
|
+
- Network exposure: public IP, reverse proxy, tunnel, LAN only.
|
|
26
|
+
- Nodmix gateway status, bind, auth.
|
|
27
|
+
- Backup status.
|
|
28
|
+
- Disk encryption.
|
|
29
|
+
- Automatic security updates.
|
|
30
|
+
- Usage mode: personal workstation, local assistant box, remote server, other.
|
|
31
|
+
|
|
32
|
+
Ask only for missing facts. Simple phrasing preferred.
|
|
33
|
+
|
|
34
|
+
## Read-only checks
|
|
35
|
+
|
|
36
|
+
Ask once for permission to run read-only checks. Then run relevant commands.
|
|
37
|
+
|
|
38
|
+
Common:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
nodmix security audit --deep
|
|
42
|
+
nodmix gateway status --deep
|
|
43
|
+
nodmix doctor
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
macOS:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
sw_vers
|
|
50
|
+
lsof -nP -iTCP -sTCP:LISTEN
|
|
51
|
+
/usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
|
|
52
|
+
pfctl -s info
|
|
53
|
+
tmutil status
|
|
54
|
+
fdesetup status
|
|
55
|
+
softwareupdate --schedule
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Linux:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
cat /etc/os-release
|
|
62
|
+
ss -ltnup || ss -ltnp
|
|
63
|
+
ufw status || firewall-cmd --state || nft list ruleset
|
|
64
|
+
systemctl status ssh sshd
|
|
65
|
+
lsblk -f
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Windows:
|
|
69
|
+
|
|
70
|
+
```powershell
|
|
71
|
+
systeminfo
|
|
72
|
+
Get-NetFirewallProfile
|
|
73
|
+
Get-BitLockerVolume
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Risk profile
|
|
77
|
+
|
|
78
|
+
After context is known, ask desired posture:
|
|
79
|
+
|
|
80
|
+
1. Convenience: local/private, minimal prompts.
|
|
81
|
+
2. Balanced: secure defaults, low friction.
|
|
82
|
+
3. Strict: remote/public/sensitive data, more lock-down.
|
|
83
|
+
|
|
84
|
+
## Report shape
|
|
85
|
+
|
|
86
|
+
- Current posture: one paragraph.
|
|
87
|
+
- Findings: severity + evidence + why it matters.
|
|
88
|
+
- Recommended plan: staged, reversible.
|
|
89
|
+
- Commands: read-only first; write actions only after approval.
|
|
90
|
+
- Gaps: what could not be checked.
|
|
91
|
+
|
|
92
|
+
## Hardening menu
|
|
93
|
+
|
|
94
|
+
Offer only relevant items:
|
|
95
|
+
|
|
96
|
+
- Bind gateway to loopback/LAN/tailnet intentionally.
|
|
97
|
+
- Require auth for remote access.
|
|
98
|
+
- Close public ports or restrict by firewall.
|
|
99
|
+
- Enable OS security updates.
|
|
100
|
+
- Enable disk encryption.
|
|
101
|
+
- Verify backups and restore path.
|
|
102
|
+
- Disable password SSH or require keys/MFA where appropriate.
|
|
103
|
+
- Add scheduled `nodmix security audit --deep`.
|
|
104
|
+
|
|
105
|
+
Confirm exact action before applying.
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: himalaya
|
|
3
|
+
description: "Himalaya CLI for IMAP/SMTP mail: list, read, search, compose, reply, forward, copy, move, delete."
|
|
4
|
+
homepage: https://github.com/pimalaya/himalaya
|
|
5
|
+
metadata:
|
|
6
|
+
{
|
|
7
|
+
"nodmix":
|
|
8
|
+
{
|
|
9
|
+
"emoji": "📧",
|
|
10
|
+
"requires": { "bins": ["himalaya"] },
|
|
11
|
+
"install":
|
|
12
|
+
[
|
|
13
|
+
{
|
|
14
|
+
"id": "brew",
|
|
15
|
+
"kind": "brew",
|
|
16
|
+
"formula": "himalaya",
|
|
17
|
+
"bins": ["himalaya"],
|
|
18
|
+
"label": "Install Himalaya (brew)",
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
},
|
|
22
|
+
}
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
# Himalaya
|
|
26
|
+
|
|
27
|
+
Use `himalaya` for IMAP/SMTP email from shell.
|
|
28
|
+
|
|
29
|
+
## References
|
|
30
|
+
|
|
31
|
+
- `references/configuration.md`: account config, auth, backend setup.
|
|
32
|
+
- `references/message-composition.md`: MML compose syntax.
|
|
33
|
+
|
|
34
|
+
## Setup
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
himalaya --version
|
|
38
|
+
himalaya account configure
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Config path: `~/.config/himalaya/config.toml`.
|
|
42
|
+
|
|
43
|
+
Prefer password managers/keyrings for credentials; do not paste secrets into chat/logs.
|
|
44
|
+
|
|
45
|
+
## Read/search
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
himalaya folder list
|
|
49
|
+
himalaya envelope list
|
|
50
|
+
himalaya message read <id>
|
|
51
|
+
himalaya envelope list from alice@example.com subject invoice
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Write
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
himalaya message write
|
|
58
|
+
himalaya template write
|
|
59
|
+
himalaya template send < /tmp/message.txt
|
|
60
|
+
himalaya message reply <id>
|
|
61
|
+
himalaya message forward <id>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Use MML for attachments and rich messages; read `references/message-composition.md` first.
|
|
65
|
+
|
|
66
|
+
## Organize
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
himalaya message copy <id> <folder>
|
|
70
|
+
himalaya message move <id> <folder>
|
|
71
|
+
himalaya message delete <id>
|
|
72
|
+
himalaya flag add <id> --flag seen
|
|
73
|
+
himalaya flag remove <id> --flag seen
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Safety
|
|
77
|
+
|
|
78
|
+
- Confirm before sending, deleting, or moving many messages.
|
|
79
|
+
- Use `--account` when multiple accounts exist.
|
|
80
|
+
- Quote exact message IDs in summaries.
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
# Himalaya Configuration Reference
|
|
2
|
+
|
|
3
|
+
Configuration file location: `~/.config/himalaya/config.toml`
|
|
4
|
+
|
|
5
|
+
## Minimal IMAP + SMTP Setup
|
|
6
|
+
|
|
7
|
+
```toml
|
|
8
|
+
[accounts.default]
|
|
9
|
+
email = "user@example.com"
|
|
10
|
+
display-name = "Your Name"
|
|
11
|
+
default = true
|
|
12
|
+
|
|
13
|
+
# IMAP backend for reading emails
|
|
14
|
+
backend.type = "imap"
|
|
15
|
+
backend.host = "imap.example.com"
|
|
16
|
+
backend.port = 993
|
|
17
|
+
backend.encryption.type = "tls"
|
|
18
|
+
backend.login = "user@example.com"
|
|
19
|
+
backend.auth.type = "password"
|
|
20
|
+
backend.auth.raw = "your-password"
|
|
21
|
+
|
|
22
|
+
# SMTP backend for sending emails
|
|
23
|
+
message.send.backend.type = "smtp"
|
|
24
|
+
message.send.backend.host = "smtp.example.com"
|
|
25
|
+
message.send.backend.port = 587
|
|
26
|
+
message.send.backend.encryption.type = "start-tls"
|
|
27
|
+
message.send.backend.login = "user@example.com"
|
|
28
|
+
message.send.backend.auth.type = "password"
|
|
29
|
+
message.send.backend.auth.raw = "your-password"
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Password Options
|
|
33
|
+
|
|
34
|
+
### Raw password (testing only, not recommended)
|
|
35
|
+
|
|
36
|
+
```toml
|
|
37
|
+
backend.auth.raw = "your-password"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Password from command (recommended)
|
|
41
|
+
|
|
42
|
+
```toml
|
|
43
|
+
backend.auth.cmd = "pass show email/imap"
|
|
44
|
+
# backend.auth.cmd = "security find-generic-password -a user@example.com -s imap -w"
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### System keyring (requires keyring feature)
|
|
48
|
+
|
|
49
|
+
```toml
|
|
50
|
+
backend.auth.keyring = "imap-example"
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Then run `himalaya account configure <account>` to store the password.
|
|
54
|
+
|
|
55
|
+
## Gmail Configuration
|
|
56
|
+
|
|
57
|
+
```toml
|
|
58
|
+
[accounts.gmail]
|
|
59
|
+
email = "you@gmail.com"
|
|
60
|
+
display-name = "Your Name"
|
|
61
|
+
default = true
|
|
62
|
+
|
|
63
|
+
backend.type = "imap"
|
|
64
|
+
backend.host = "imap.gmail.com"
|
|
65
|
+
backend.port = 993
|
|
66
|
+
backend.encryption.type = "tls"
|
|
67
|
+
backend.login = "you@gmail.com"
|
|
68
|
+
backend.auth.type = "password"
|
|
69
|
+
backend.auth.cmd = "pass show google/app-password"
|
|
70
|
+
|
|
71
|
+
message.send.backend.type = "smtp"
|
|
72
|
+
message.send.backend.host = "smtp.gmail.com"
|
|
73
|
+
message.send.backend.port = 587
|
|
74
|
+
message.send.backend.encryption.type = "start-tls"
|
|
75
|
+
message.send.backend.login = "you@gmail.com"
|
|
76
|
+
message.send.backend.auth.type = "password"
|
|
77
|
+
message.send.backend.auth.cmd = "pass show google/app-password"
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Note:** Gmail requires an App Password if 2FA is enabled.
|
|
81
|
+
|
|
82
|
+
## iCloud Configuration
|
|
83
|
+
|
|
84
|
+
```toml
|
|
85
|
+
[accounts.icloud]
|
|
86
|
+
email = "you@icloud.com"
|
|
87
|
+
display-name = "Your Name"
|
|
88
|
+
|
|
89
|
+
backend.type = "imap"
|
|
90
|
+
backend.host = "imap.mail.me.com"
|
|
91
|
+
backend.port = 993
|
|
92
|
+
backend.encryption.type = "tls"
|
|
93
|
+
backend.login = "you@icloud.com"
|
|
94
|
+
backend.auth.type = "password"
|
|
95
|
+
backend.auth.cmd = "pass show icloud/app-password"
|
|
96
|
+
|
|
97
|
+
message.send.backend.type = "smtp"
|
|
98
|
+
message.send.backend.host = "smtp.mail.me.com"
|
|
99
|
+
message.send.backend.port = 587
|
|
100
|
+
message.send.backend.encryption.type = "start-tls"
|
|
101
|
+
message.send.backend.login = "you@icloud.com"
|
|
102
|
+
message.send.backend.auth.type = "password"
|
|
103
|
+
message.send.backend.auth.cmd = "pass show icloud/app-password"
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
**Note:** Generate an app-specific password at appleid.apple.com
|
|
107
|
+
|
|
108
|
+
## Folder Aliases
|
|
109
|
+
|
|
110
|
+
Map custom folder names:
|
|
111
|
+
|
|
112
|
+
```toml
|
|
113
|
+
[accounts.default.folder.alias]
|
|
114
|
+
inbox = "INBOX"
|
|
115
|
+
sent = "Sent"
|
|
116
|
+
drafts = "Drafts"
|
|
117
|
+
trash = "Trash"
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Multiple Accounts
|
|
121
|
+
|
|
122
|
+
```toml
|
|
123
|
+
[accounts.personal]
|
|
124
|
+
email = "personal@example.com"
|
|
125
|
+
default = true
|
|
126
|
+
# ... backend config ...
|
|
127
|
+
|
|
128
|
+
[accounts.work]
|
|
129
|
+
email = "work@company.com"
|
|
130
|
+
# ... backend config ...
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Switch accounts with `--account`:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
himalaya --account work envelope list
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Notmuch Backend (local mail)
|
|
140
|
+
|
|
141
|
+
```toml
|
|
142
|
+
[accounts.local]
|
|
143
|
+
email = "user@example.com"
|
|
144
|
+
|
|
145
|
+
backend.type = "notmuch"
|
|
146
|
+
backend.db-path = "~/.mail/.notmuch"
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## OAuth2 Authentication (for providers that support it)
|
|
150
|
+
|
|
151
|
+
```toml
|
|
152
|
+
backend.auth.type = "oauth2"
|
|
153
|
+
backend.auth.client-id = "your-client-id"
|
|
154
|
+
backend.auth.client-secret.cmd = "pass show oauth/client-secret"
|
|
155
|
+
backend.auth.access-token.cmd = "pass show oauth/access-token"
|
|
156
|
+
backend.auth.refresh-token.cmd = "pass show oauth/refresh-token"
|
|
157
|
+
backend.auth.auth-url = "https://provider.com/oauth/authorize"
|
|
158
|
+
backend.auth.token-url = "https://provider.com/oauth/token"
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## Additional Options
|
|
162
|
+
|
|
163
|
+
### Signature
|
|
164
|
+
|
|
165
|
+
```toml
|
|
166
|
+
[accounts.default]
|
|
167
|
+
signature = "Best regards,\nYour Name"
|
|
168
|
+
signature-delim = "-- \n"
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Downloads directory
|
|
172
|
+
|
|
173
|
+
```toml
|
|
174
|
+
[accounts.default]
|
|
175
|
+
downloads-dir = "~/Downloads/himalaya"
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Editor for composing
|
|
179
|
+
|
|
180
|
+
Set via environment variable:
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
export EDITOR="vim"
|
|
184
|
+
```
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
# Message Composition with MML (MIME Meta Language)
|
|
2
|
+
|
|
3
|
+
Himalaya uses MML for composing emails. MML is a simple XML-based syntax that compiles to MIME messages.
|
|
4
|
+
|
|
5
|
+
## Basic Message Structure
|
|
6
|
+
|
|
7
|
+
An email message is a list of **headers** followed by a **body**, separated by a blank line:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
From: sender@example.com
|
|
11
|
+
To: recipient@example.com
|
|
12
|
+
Subject: Hello World
|
|
13
|
+
|
|
14
|
+
This is the message body.
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Headers
|
|
18
|
+
|
|
19
|
+
Common headers:
|
|
20
|
+
|
|
21
|
+
- `From`: Sender address
|
|
22
|
+
- `To`: Primary recipient(s)
|
|
23
|
+
- `Cc`: Carbon copy recipients
|
|
24
|
+
- `Bcc`: Blind carbon copy recipients
|
|
25
|
+
- `Subject`: Message subject
|
|
26
|
+
- `Reply-To`: Address for replies (if different from From)
|
|
27
|
+
- `In-Reply-To`: Message ID being replied to
|
|
28
|
+
|
|
29
|
+
### Address Formats
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
To: user@example.com
|
|
33
|
+
To: John Doe <john@example.com>
|
|
34
|
+
To: "John Doe" <john@example.com>
|
|
35
|
+
To: user1@example.com, user2@example.com, "Jane" <jane@example.com>
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Plain Text Body
|
|
39
|
+
|
|
40
|
+
Simple plain text email:
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
From: alice@localhost
|
|
44
|
+
To: bob@localhost
|
|
45
|
+
Subject: Plain Text Example
|
|
46
|
+
|
|
47
|
+
Hello, this is a plain text email.
|
|
48
|
+
No special formatting needed.
|
|
49
|
+
|
|
50
|
+
Best,
|
|
51
|
+
Alice
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## MML for Rich Emails
|
|
55
|
+
|
|
56
|
+
### Multipart Messages
|
|
57
|
+
|
|
58
|
+
Alternative text/html parts:
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
From: alice@localhost
|
|
62
|
+
To: bob@localhost
|
|
63
|
+
Subject: Multipart Example
|
|
64
|
+
|
|
65
|
+
<#multipart type=alternative>
|
|
66
|
+
This is the plain text version.
|
|
67
|
+
<#part type=text/html>
|
|
68
|
+
<html><body><h1>This is the HTML version</h1></body></html>
|
|
69
|
+
<#/multipart>
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Attachments
|
|
73
|
+
|
|
74
|
+
Attach a file:
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
From: alice@localhost
|
|
78
|
+
To: bob@localhost
|
|
79
|
+
Subject: With Attachment
|
|
80
|
+
|
|
81
|
+
Here is the document you requested.
|
|
82
|
+
|
|
83
|
+
<#part filename=/path/to/document.pdf><#/part>
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Attachment with custom name:
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
<#part filename=/path/to/file.pdf name=report.pdf><#/part>
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Multiple attachments:
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
<#part filename=/path/to/doc1.pdf><#/part>
|
|
96
|
+
<#part filename=/path/to/doc2.pdf><#/part>
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Inline Images
|
|
100
|
+
|
|
101
|
+
Embed an image inline:
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
From: alice@localhost
|
|
105
|
+
To: bob@localhost
|
|
106
|
+
Subject: Inline Image
|
|
107
|
+
|
|
108
|
+
<#multipart type=related>
|
|
109
|
+
<#part type=text/html>
|
|
110
|
+
<html><body>
|
|
111
|
+
<p>Check out this image:</p>
|
|
112
|
+
<img src="cid:image1">
|
|
113
|
+
</body></html>
|
|
114
|
+
<#part disposition=inline id=image1 filename=/path/to/image.png><#/part>
|
|
115
|
+
<#/multipart>
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Mixed Content (Text + Attachments)
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
From: alice@localhost
|
|
122
|
+
To: bob@localhost
|
|
123
|
+
Subject: Mixed Content
|
|
124
|
+
|
|
125
|
+
<#multipart type=mixed>
|
|
126
|
+
<#part type=text/plain>
|
|
127
|
+
Please find the attached files.
|
|
128
|
+
|
|
129
|
+
Best,
|
|
130
|
+
Alice
|
|
131
|
+
<#part filename=/path/to/file1.pdf><#/part>
|
|
132
|
+
<#part filename=/path/to/file2.zip><#/part>
|
|
133
|
+
<#/multipart>
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## MML Tag Reference
|
|
137
|
+
|
|
138
|
+
### `<#multipart>`
|
|
139
|
+
|
|
140
|
+
Groups multiple parts together.
|
|
141
|
+
|
|
142
|
+
- `type=alternative`: Different representations of same content
|
|
143
|
+
- `type=mixed`: Independent parts (text + attachments)
|
|
144
|
+
- `type=related`: Parts that reference each other (HTML + images)
|
|
145
|
+
|
|
146
|
+
### `<#part>`
|
|
147
|
+
|
|
148
|
+
Defines a message part.
|
|
149
|
+
|
|
150
|
+
- `type=<mime-type>`: Content type (e.g., `text/html`, `application/pdf`)
|
|
151
|
+
- `filename=<path>`: File to attach
|
|
152
|
+
- `name=<name>`: Display name for attachment
|
|
153
|
+
- `disposition=inline`: Display inline instead of as attachment
|
|
154
|
+
- `id=<cid>`: Content ID for referencing in HTML
|
|
155
|
+
|
|
156
|
+
## Composing from CLI
|
|
157
|
+
|
|
158
|
+
### Interactive compose
|
|
159
|
+
|
|
160
|
+
Opens your `$EDITOR`:
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
himalaya message write
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Reply (opens editor with quoted message)
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
himalaya message reply 42
|
|
170
|
+
himalaya message reply 42 --all # reply-all
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Forward
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
himalaya message forward 42
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### Send from stdin
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
cat message.txt | himalaya template send
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### Prefill headers from CLI
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
himalaya message write \
|
|
189
|
+
-H "To:recipient@example.com" \
|
|
190
|
+
-H "Subject:Quick Message" \
|
|
191
|
+
"Message body here"
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
## Tips
|
|
195
|
+
|
|
196
|
+
- The editor opens with a template; fill in headers and body.
|
|
197
|
+
- Save and exit the editor to send; exit without saving to cancel.
|
|
198
|
+
- MML parts are compiled to proper MIME when sending.
|
|
199
|
+
- Use `himalaya message export --full` to inspect the raw MIME structure of received emails.
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: imsg
|
|
3
|
+
description: "iMessage/SMS CLI for listing chats, history, and sending messages via Messages.app."
|
|
4
|
+
homepage: https://imsg.to
|
|
5
|
+
metadata:
|
|
6
|
+
{
|
|
7
|
+
"nodmix":
|
|
8
|
+
{
|
|
9
|
+
"emoji": "📨",
|
|
10
|
+
"os": ["darwin"],
|
|
11
|
+
"requires": { "bins": ["imsg"] },
|
|
12
|
+
"install":
|
|
13
|
+
[
|
|
14
|
+
{
|
|
15
|
+
"id": "brew",
|
|
16
|
+
"kind": "brew",
|
|
17
|
+
"formula": "steipete/tap/imsg",
|
|
18
|
+
"bins": ["imsg"],
|
|
19
|
+
"label": "Install imsg (brew)",
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
}
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
# imsg
|
|
27
|
+
|
|
28
|
+
Use `imsg` to read and send iMessage/SMS via macOS Messages.app.
|
|
29
|
+
|
|
30
|
+
## When to Use
|
|
31
|
+
|
|
32
|
+
Use when:
|
|
33
|
+
|
|
34
|
+
- User explicitly asks to send iMessage or SMS
|
|
35
|
+
- Reading iMessage conversation history
|
|
36
|
+
- Checking recent Messages.app chats
|
|
37
|
+
- Sending to phone numbers or Apple IDs
|
|
38
|
+
|
|
39
|
+
## When NOT to Use
|
|
40
|
+
|
|
41
|
+
Do not use when:
|
|
42
|
+
|
|
43
|
+
- Telegram messages -> use `message` tool with `channel:telegram`
|
|
44
|
+
- Signal messages -> use Signal channel if configured
|
|
45
|
+
- WhatsApp messages -> use WhatsApp channel if configured
|
|
46
|
+
- Discord messages -> use `message` tool with `channel:discord`
|
|
47
|
+
- Slack messages -> use `slack` skill
|
|
48
|
+
- Group chat management (adding/removing members) -> not supported
|
|
49
|
+
- Bulk/mass messaging -> always confirm with user first
|
|
50
|
+
- Replying in current conversation -> just reply normally (Nodmix routes automatically)
|
|
51
|
+
|
|
52
|
+
## Requirements
|
|
53
|
+
|
|
54
|
+
- macOS with Messages.app signed in
|
|
55
|
+
- Full Disk Access for terminal
|
|
56
|
+
- Automation permission for Messages.app (for sending)
|
|
57
|
+
|
|
58
|
+
## Common Commands
|
|
59
|
+
|
|
60
|
+
### List Chats
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
imsg chats --limit 10 --json
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### View History
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# By chat ID
|
|
70
|
+
imsg history --chat-id 1 --limit 20 --json
|
|
71
|
+
|
|
72
|
+
# With attachments info
|
|
73
|
+
imsg history --chat-id 1 --limit 20 --attachments --json
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Watch for New Messages
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
imsg watch --chat-id 1 --attachments
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Send Messages
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
# Text only
|
|
86
|
+
imsg send --to "+14155551212" --text "Hello!"
|
|
87
|
+
|
|
88
|
+
# With attachment
|
|
89
|
+
imsg send --to "+14155551212" --text "Check this out" --file /path/to/image.jpg
|
|
90
|
+
|
|
91
|
+
# Specify service
|
|
92
|
+
imsg send --to "+14155551212" --text "Hi" --service imessage
|
|
93
|
+
imsg send --to "+14155551212" --text "Hi" --service sms
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Service Options
|
|
97
|
+
|
|
98
|
+
- `--service imessage` - Force iMessage (requires recipient has iMessage)
|
|
99
|
+
- `--service sms` - Force SMS (green bubble)
|
|
100
|
+
- `--service auto` - Let Messages.app decide (default)
|
|
101
|
+
|
|
102
|
+
## Safety Rules
|
|
103
|
+
|
|
104
|
+
1. **Always confirm recipient and message content** before sending
|
|
105
|
+
2. **Never send to unknown numbers** without explicit user approval
|
|
106
|
+
3. **Be careful with attachments** - confirm file path exists
|
|
107
|
+
4. **Rate limit yourself** - don't spam
|
|
108
|
+
|
|
109
|
+
## Example Workflow
|
|
110
|
+
|
|
111
|
+
User: "Text mom that I'll be late"
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
# 1. Find mom's chat
|
|
115
|
+
imsg chats --limit 20 --json | jq '.[] | select(.displayName | contains("Mom"))'
|
|
116
|
+
|
|
117
|
+
# 2. Confirm with user
|
|
118
|
+
# "Found Mom at +1555123456. Send 'I'll be late' via iMessage?"
|
|
119
|
+
|
|
120
|
+
# 3. Send after confirmation
|
|
121
|
+
imsg send --to "+1555123456" --text "I'll be late"
|
|
122
|
+
```
|