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.
Files changed (827) hide show
  1. package/CHANGELOG.md +11573 -0
  2. package/LICENSE +21 -0
  3. package/README.md +486 -0
  4. package/docs/.i18n/README.md +81 -0
  5. package/docs/.i18n/ar-navigation.json +18 -0
  6. package/docs/.i18n/de-navigation.json +18 -0
  7. package/docs/.i18n/es-navigation.json +18 -0
  8. package/docs/.i18n/fr-navigation.json +18 -0
  9. package/docs/.i18n/glossary.ar.json +78 -0
  10. package/docs/.i18n/glossary.de.json +78 -0
  11. package/docs/.i18n/glossary.es.json +78 -0
  12. package/docs/.i18n/glossary.fa.json +78 -0
  13. package/docs/.i18n/glossary.fr.json +78 -0
  14. package/docs/.i18n/glossary.id.json +78 -0
  15. package/docs/.i18n/glossary.it.json +78 -0
  16. package/docs/.i18n/glossary.ja-JP.json +98 -0
  17. package/docs/.i18n/glossary.ko.json +78 -0
  18. package/docs/.i18n/glossary.nl.json +78 -0
  19. package/docs/.i18n/glossary.pl.json +78 -0
  20. package/docs/.i18n/glossary.pt-BR.json +78 -0
  21. package/docs/.i18n/glossary.th.json +78 -0
  22. package/docs/.i18n/glossary.tr.json +78 -0
  23. package/docs/.i18n/glossary.uk.json +78 -0
  24. package/docs/.i18n/glossary.vi.json +78 -0
  25. package/docs/.i18n/glossary.zh-CN.json +1002 -0
  26. package/docs/.i18n/glossary.zh-TW.json +78 -0
  27. package/docs/.i18n/id-navigation.json +18 -0
  28. package/docs/.i18n/it-navigation.json +18 -0
  29. package/docs/.i18n/ja-navigation.json +18 -0
  30. package/docs/.i18n/ko-navigation.json +18 -0
  31. package/docs/.i18n/pl-navigation.json +18 -0
  32. package/docs/.i18n/pt-BR-navigation.json +18 -0
  33. package/docs/.i18n/tr-navigation.json +18 -0
  34. package/docs/.i18n/translation-workflow.md +111 -0
  35. package/docs/.i18n/zh-Hans-navigation.json +542 -0
  36. package/docs/AGENTS.md +36 -0
  37. package/docs/announcements/bluebubbles-imessage.md +79 -0
  38. package/docs/assets/install-script.svg +1 -0
  39. package/docs/assets/macos-onboarding/01-macos-warning.jpeg +0 -0
  40. package/docs/assets/macos-onboarding/02-local-networks.jpeg +0 -0
  41. package/docs/assets/macos-onboarding/03-security-notice.png +0 -0
  42. package/docs/assets/macos-onboarding/04-choose-gateway.png +0 -0
  43. package/docs/assets/macos-onboarding/05-permissions.png +0 -0
  44. package/docs/assets/openclaw-logo-text-dark.png +0 -0
  45. package/docs/assets/openclaw-logo-text-dark.svg +418 -0
  46. package/docs/assets/openclaw-logo-text.png +0 -0
  47. package/docs/assets/openclaw-logo-text.svg +418 -0
  48. package/docs/assets/pixel-lobster.svg +60 -0
  49. package/docs/assets/pr/quick-settings-browser-tools.png +0 -0
  50. package/docs/assets/showcase/agents-ui.jpg +0 -0
  51. package/docs/assets/showcase/bambu-cli.png +0 -0
  52. package/docs/assets/showcase/codexmonitor.png +0 -0
  53. package/docs/assets/showcase/gohome-grafana.png +0 -0
  54. package/docs/assets/showcase/ios-testflight.jpg +0 -0
  55. package/docs/assets/showcase/oura-health.png +0 -0
  56. package/docs/assets/showcase/padel-cli.svg +11 -0
  57. package/docs/assets/showcase/padel-screenshot.jpg +0 -0
  58. package/docs/assets/showcase/papla-tts.jpg +0 -0
  59. package/docs/assets/showcase/pr-review-telegram.jpg +0 -0
  60. package/docs/assets/showcase/roborock-screenshot.jpg +0 -0
  61. package/docs/assets/showcase/roborock-status.svg +13 -0
  62. package/docs/assets/showcase/roof-camera-sky.jpg +0 -0
  63. package/docs/assets/showcase/snag.png +0 -0
  64. package/docs/assets/showcase/tesco-shop.jpg +0 -0
  65. package/docs/assets/showcase/wienerlinien.png +0 -0
  66. package/docs/assets/showcase/wine-cellar-skill.jpg +0 -0
  67. package/docs/assets/showcase/winix-air-purifier.jpg +0 -0
  68. package/docs/assets/showcase/xuezh-pronunciation.jpeg +0 -0
  69. package/docs/assets/sponsors/blacksmith-light.svg +14 -0
  70. package/docs/assets/sponsors/blacksmith.svg +14 -0
  71. package/docs/assets/sponsors/convex-light.svg +16 -0
  72. package/docs/assets/sponsors/convex.svg +16 -0
  73. package/docs/assets/sponsors/github-light.svg +3 -0
  74. package/docs/assets/sponsors/github.svg +3 -0
  75. package/docs/assets/sponsors/nvidia-dark.svg +9 -0
  76. package/docs/assets/sponsors/nvidia.svg +9 -0
  77. package/docs/assets/sponsors/openai-light.svg +3 -0
  78. package/docs/assets/sponsors/openai.svg +3 -0
  79. package/docs/assets/sponsors/vercel-light.svg +5 -0
  80. package/docs/assets/sponsors/vercel.svg +5 -0
  81. package/docs/auth-credential-semantics.md +124 -0
  82. package/docs/automation/auth-monitoring.md +11 -0
  83. package/docs/automation/clawflow.md +12 -0
  84. package/docs/automation/cron-jobs.md +500 -0
  85. package/docs/automation/cron-vs-heartbeat.md +11 -0
  86. package/docs/automation/gmail-pubsub.md +11 -0
  87. package/docs/automation/hooks.md +365 -0
  88. package/docs/automation/index.md +135 -0
  89. package/docs/automation/poll.md +12 -0
  90. package/docs/automation/standing-orders.md +250 -0
  91. package/docs/automation/taskflow.md +155 -0
  92. package/docs/automation/tasks.md +374 -0
  93. package/docs/automation/troubleshooting.md +12 -0
  94. package/docs/automation/webhook.md +12 -0
  95. package/docs/brave-search.md +11 -0
  96. package/docs/channels/access-groups.md +201 -0
  97. package/docs/channels/ambient-room-events.md +214 -0
  98. package/docs/channels/bot-loop-protection.md +131 -0
  99. package/docs/channels/broadcast-groups.md +472 -0
  100. package/docs/channels/channel-routing.md +162 -0
  101. package/docs/channels/clickclack.md +138 -0
  102. package/docs/channels/discord.md +1762 -0
  103. package/docs/channels/feishu.md +502 -0
  104. package/docs/channels/googlechat.md +284 -0
  105. package/docs/channels/group-messages.md +95 -0
  106. package/docs/channels/groups.md +519 -0
  107. package/docs/channels/imessage-from-bluebubbles.md +259 -0
  108. package/docs/channels/imessage.md +813 -0
  109. package/docs/channels/index.md +64 -0
  110. package/docs/channels/irc.md +253 -0
  111. package/docs/channels/line.md +243 -0
  112. package/docs/channels/location.md +71 -0
  113. package/docs/channels/matrix-migration.md +370 -0
  114. package/docs/channels/matrix-presentation.md +77 -0
  115. package/docs/channels/matrix-push-rules.md +150 -0
  116. package/docs/channels/matrix.md +921 -0
  117. package/docs/channels/mattermost.md +542 -0
  118. package/docs/channels/msteams.md +1042 -0
  119. package/docs/channels/nextcloud-talk.md +176 -0
  120. package/docs/channels/nostr.md +253 -0
  121. package/docs/channels/pairing.md +214 -0
  122. package/docs/channels/qqbot.md +309 -0
  123. package/docs/channels/signal.md +400 -0
  124. package/docs/channels/slack.md +1564 -0
  125. package/docs/channels/synology-chat.md +187 -0
  126. package/docs/channels/telegram.md +1107 -0
  127. package/docs/channels/tlon.md +296 -0
  128. package/docs/channels/troubleshooting.md +161 -0
  129. package/docs/channels/twitch.md +431 -0
  130. package/docs/channels/wechat.md +171 -0
  131. package/docs/channels/whatsapp.md +739 -0
  132. package/docs/channels/yuanbao.md +416 -0
  133. package/docs/channels/zalo.md +253 -0
  134. package/docs/channels/zalouser.md +199 -0
  135. package/docs/ci.md +612 -0
  136. package/docs/clawhub/publishing.md +96 -0
  137. package/docs/cli/acp.md +370 -0
  138. package/docs/cli/agent.md +103 -0
  139. package/docs/cli/agents.md +232 -0
  140. package/docs/cli/approvals.md +190 -0
  141. package/docs/cli/backup.md +97 -0
  142. package/docs/cli/browser.md +307 -0
  143. package/docs/cli/channels.md +154 -0
  144. package/docs/cli/clawbot.md +25 -0
  145. package/docs/cli/commitments.md +90 -0
  146. package/docs/cli/completion.md +39 -0
  147. package/docs/cli/config.md +504 -0
  148. package/docs/cli/configure.md +77 -0
  149. package/docs/cli/crestodian.md +332 -0
  150. package/docs/cli/cron.md +281 -0
  151. package/docs/cli/daemon.md +67 -0
  152. package/docs/cli/dashboard.md +33 -0
  153. package/docs/cli/devices.md +204 -0
  154. package/docs/cli/directory.md +68 -0
  155. package/docs/cli/dns.md +53 -0
  156. package/docs/cli/docs.md +73 -0
  157. package/docs/cli/doctor.md +237 -0
  158. package/docs/cli/flows.md +52 -0
  159. package/docs/cli/gateway.md +567 -0
  160. package/docs/cli/health.md +43 -0
  161. package/docs/cli/hooks.md +345 -0
  162. package/docs/cli/index.md +396 -0
  163. package/docs/cli/infer.md +364 -0
  164. package/docs/cli/logs.md +65 -0
  165. package/docs/cli/mcp.md +529 -0
  166. package/docs/cli/memory.md +183 -0
  167. package/docs/cli/message.md +317 -0
  168. package/docs/cli/migrate.md +290 -0
  169. package/docs/cli/models.md +224 -0
  170. package/docs/cli/node.md +177 -0
  171. package/docs/cli/nodes.md +76 -0
  172. package/docs/cli/onboard.md +245 -0
  173. package/docs/cli/pairing.md +77 -0
  174. package/docs/cli/path.md +502 -0
  175. package/docs/cli/plugins.md +454 -0
  176. package/docs/cli/policy.md +418 -0
  177. package/docs/cli/proxy.md +89 -0
  178. package/docs/cli/qr.md +56 -0
  179. package/docs/cli/reset.md +39 -0
  180. package/docs/cli/sandbox.md +208 -0
  181. package/docs/cli/secrets.md +202 -0
  182. package/docs/cli/security.md +124 -0
  183. package/docs/cli/sessions.md +164 -0
  184. package/docs/cli/setup.md +59 -0
  185. package/docs/cli/skills.md +102 -0
  186. package/docs/cli/status.md +45 -0
  187. package/docs/cli/system.md +89 -0
  188. package/docs/cli/tasks.md +111 -0
  189. package/docs/cli/tui.md +89 -0
  190. package/docs/cli/uninstall.md +44 -0
  191. package/docs/cli/update.md +242 -0
  192. package/docs/cli/voicecall.md +204 -0
  193. package/docs/cli/webhooks.md +117 -0
  194. package/docs/cli/wiki.md +256 -0
  195. package/docs/concepts/active-memory.md +856 -0
  196. package/docs/concepts/agent-loop.md +185 -0
  197. package/docs/concepts/agent-runtimes.md +243 -0
  198. package/docs/concepts/agent-workspace.md +230 -0
  199. package/docs/concepts/agent.md +136 -0
  200. package/docs/concepts/architecture.md +154 -0
  201. package/docs/concepts/channel-docking.md +145 -0
  202. package/docs/concepts/commitments.md +150 -0
  203. package/docs/concepts/compaction.md +203 -0
  204. package/docs/concepts/context-engine.md +306 -0
  205. package/docs/concepts/context.md +199 -0
  206. package/docs/concepts/delegate-architecture.md +319 -0
  207. package/docs/concepts/dreaming.md +261 -0
  208. package/docs/concepts/experimental-features.md +108 -0
  209. package/docs/concepts/features.md +91 -0
  210. package/docs/concepts/mantis-slack-desktop-runbook.md +202 -0
  211. package/docs/concepts/mantis.md +740 -0
  212. package/docs/concepts/markdown-formatting.md +139 -0
  213. package/docs/concepts/memory-builtin.md +146 -0
  214. package/docs/concepts/memory-honcho.md +144 -0
  215. package/docs/concepts/memory-qmd.md +271 -0
  216. package/docs/concepts/memory-search.md +166 -0
  217. package/docs/concepts/memory.md +258 -0
  218. package/docs/concepts/message-lifecycle-refactor.md +1128 -0
  219. package/docs/concepts/messages.md +214 -0
  220. package/docs/concepts/model-failover.md +385 -0
  221. package/docs/concepts/model-providers.md +715 -0
  222. package/docs/concepts/models.md +370 -0
  223. package/docs/concepts/multi-agent.md +619 -0
  224. package/docs/concepts/oauth.md +198 -0
  225. package/docs/concepts/openclaw-sdk.md +323 -0
  226. package/docs/concepts/parallel-specialist-lanes.md +127 -0
  227. package/docs/concepts/personal-agent-benchmark-pack.md +74 -0
  228. package/docs/concepts/presence.md +117 -0
  229. package/docs/concepts/progress-drafts.md +362 -0
  230. package/docs/concepts/qa-e2e-automation.md +820 -0
  231. package/docs/concepts/qa-matrix.md +139 -0
  232. package/docs/concepts/queue-steering.md +90 -0
  233. package/docs/concepts/queue.md +122 -0
  234. package/docs/concepts/retry.md +86 -0
  235. package/docs/concepts/session-pruning.md +104 -0
  236. package/docs/concepts/session-tool.md +190 -0
  237. package/docs/concepts/session.md +164 -0
  238. package/docs/concepts/soul.md +116 -0
  239. package/docs/concepts/streaming.md +251 -0
  240. package/docs/concepts/system-prompt.md +310 -0
  241. package/docs/concepts/timezone.md +47 -0
  242. package/docs/concepts/typebox.md +309 -0
  243. package/docs/concepts/typing-indicators.md +88 -0
  244. package/docs/concepts/usage-tracking.md +66 -0
  245. package/docs/date-time.md +126 -0
  246. package/docs/debug/node-issue.md +90 -0
  247. package/docs/diagnostics/flags.md +138 -0
  248. package/docs/docs.json +1832 -0
  249. package/docs/gateway/authentication.md +239 -0
  250. package/docs/gateway/background-process.md +147 -0
  251. package/docs/gateway/bonjour.md +303 -0
  252. package/docs/gateway/bridge-protocol.md +94 -0
  253. package/docs/gateway/cli-backends.md +420 -0
  254. package/docs/gateway/config-agents.md +1514 -0
  255. package/docs/gateway/config-channels.md +945 -0
  256. package/docs/gateway/config-tools.md +769 -0
  257. package/docs/gateway/configuration-examples.md +705 -0
  258. package/docs/gateway/configuration-reference.md +1393 -0
  259. package/docs/gateway/configuration.md +737 -0
  260. package/docs/gateway/diagnostics.md +213 -0
  261. package/docs/gateway/discovery.md +154 -0
  262. package/docs/gateway/doctor.md +574 -0
  263. package/docs/gateway/gateway-lock.md +37 -0
  264. package/docs/gateway/health.md +73 -0
  265. package/docs/gateway/heartbeat.md +493 -0
  266. package/docs/gateway/index.md +383 -0
  267. package/docs/gateway/local-model-services.md +205 -0
  268. package/docs/gateway/local-models.md +355 -0
  269. package/docs/gateway/logging.md +149 -0
  270. package/docs/gateway/multiple-gateways.md +178 -0
  271. package/docs/gateway/network-model.md +15 -0
  272. package/docs/gateway/openai-http-api.md +350 -0
  273. package/docs/gateway/openresponses-http-api.md +347 -0
  274. package/docs/gateway/openshell.md +316 -0
  275. package/docs/gateway/opentelemetry.md +404 -0
  276. package/docs/gateway/operator-scopes.md +111 -0
  277. package/docs/gateway/pairing.md +207 -0
  278. package/docs/gateway/prometheus.md +230 -0
  279. package/docs/gateway/protocol.md +803 -0
  280. package/docs/gateway/remote-gateway-readme.md +169 -0
  281. package/docs/gateway/remote.md +280 -0
  282. package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +146 -0
  283. package/docs/gateway/sandboxing.md +545 -0
  284. package/docs/gateway/secrets-plan-contract.md +114 -0
  285. package/docs/gateway/secrets.md +609 -0
  286. package/docs/gateway/security/audit-checks.md +127 -0
  287. package/docs/gateway/security/index.md +1326 -0
  288. package/docs/gateway/security/secure-file-operations.md +76 -0
  289. package/docs/gateway/tailscale.md +156 -0
  290. package/docs/gateway/tools-invoke-http-api.md +169 -0
  291. package/docs/gateway/troubleshooting.md +772 -0
  292. package/docs/gateway/trusted-proxy-auth.md +451 -0
  293. package/docs/help/debugging.md +344 -0
  294. package/docs/help/environment.md +214 -0
  295. package/docs/help/faq-first-run.md +867 -0
  296. package/docs/help/faq-models.md +553 -0
  297. package/docs/help/faq.md +1975 -0
  298. package/docs/help/gpt55-codex-agentic-parity-maintainers.md +196 -0
  299. package/docs/help/gpt55-codex-agentic-parity.md +230 -0
  300. package/docs/help/index.md +39 -0
  301. package/docs/help/scripts.md +56 -0
  302. package/docs/help/testing-live.md +580 -0
  303. package/docs/help/testing-updates-plugins.md +291 -0
  304. package/docs/help/testing.md +928 -0
  305. package/docs/help/troubleshooting.md +424 -0
  306. package/docs/images/configure-model-picker-unsearchable.png +0 -0
  307. package/docs/images/feishu-get-group-id.png +0 -0
  308. package/docs/images/groups-flow.svg +52 -0
  309. package/docs/images/mobile-ui-screenshot.png +0 -0
  310. package/docs/index.md +196 -0
  311. package/docs/install/ansible.md +233 -0
  312. package/docs/install/azure.md +315 -0
  313. package/docs/install/bun.md +59 -0
  314. package/docs/install/clawdock.md +112 -0
  315. package/docs/install/development-channels.md +135 -0
  316. package/docs/install/digitalocean.md +174 -0
  317. package/docs/install/docker-vm-runtime.md +154 -0
  318. package/docs/install/docker.md +562 -0
  319. package/docs/install/exe-dev.md +201 -0
  320. package/docs/install/fly.md +524 -0
  321. package/docs/install/gcp.md +418 -0
  322. package/docs/install/hetzner.md +285 -0
  323. package/docs/install/hostinger.md +98 -0
  324. package/docs/install/index.md +221 -0
  325. package/docs/install/installer.md +455 -0
  326. package/docs/install/kubernetes.md +196 -0
  327. package/docs/install/macos-vm.md +281 -0
  328. package/docs/install/migrating-claude.md +165 -0
  329. package/docs/install/migrating-hermes.md +177 -0
  330. package/docs/install/migrating.md +137 -0
  331. package/docs/install/nix.md +112 -0
  332. package/docs/install/node.md +142 -0
  333. package/docs/install/northflank.mdx +44 -0
  334. package/docs/install/oracle.md +218 -0
  335. package/docs/install/podman.md +210 -0
  336. package/docs/install/railway.mdx +92 -0
  337. package/docs/install/raspberry-pi.md +234 -0
  338. package/docs/install/render.mdx +167 -0
  339. package/docs/install/uninstall.md +131 -0
  340. package/docs/install/updating.md +280 -0
  341. package/docs/logging.md +318 -0
  342. package/docs/nav-tabs-underline.js +100 -0
  343. package/docs/network.md +72 -0
  344. package/docs/nodes/audio.md +215 -0
  345. package/docs/nodes/camera.md +166 -0
  346. package/docs/nodes/images.md +77 -0
  347. package/docs/nodes/index.md +439 -0
  348. package/docs/nodes/location-command.md +102 -0
  349. package/docs/nodes/media-understanding.md +469 -0
  350. package/docs/nodes/talk.md +154 -0
  351. package/docs/nodes/troubleshooting.md +123 -0
  352. package/docs/nodes/voicewake.md +93 -0
  353. package/docs/perplexity.md +11 -0
  354. package/docs/pi-dev.md +82 -0
  355. package/docs/pi.md +573 -0
  356. package/docs/plan/codex-context-engine-harness.md +624 -0
  357. package/docs/plan/ui-channels.md +284 -0
  358. package/docs/platforms/android.md +285 -0
  359. package/docs/platforms/digitalocean.md +12 -0
  360. package/docs/platforms/index.md +60 -0
  361. package/docs/platforms/ios.md +283 -0
  362. package/docs/platforms/linux.md +141 -0
  363. package/docs/platforms/mac/bundled-gateway.md +79 -0
  364. package/docs/platforms/mac/canvas.md +128 -0
  365. package/docs/platforms/mac/child-process.md +72 -0
  366. package/docs/platforms/mac/dev-setup.md +112 -0
  367. package/docs/platforms/mac/health.md +39 -0
  368. package/docs/platforms/mac/icon.md +36 -0
  369. package/docs/platforms/mac/logging.md +62 -0
  370. package/docs/platforms/mac/menu-bar.md +93 -0
  371. package/docs/platforms/mac/peekaboo.md +92 -0
  372. package/docs/platforms/mac/permissions.md +53 -0
  373. package/docs/platforms/mac/remote.md +123 -0
  374. package/docs/platforms/mac/signing.md +52 -0
  375. package/docs/platforms/mac/skills.md +43 -0
  376. package/docs/platforms/mac/voice-overlay.md +66 -0
  377. package/docs/platforms/mac/voicewake.md +73 -0
  378. package/docs/platforms/mac/webchat.md +54 -0
  379. package/docs/platforms/mac/xpc.md +66 -0
  380. package/docs/platforms/macos.md +226 -0
  381. package/docs/platforms/oracle.md +12 -0
  382. package/docs/platforms/raspberry-pi.md +13 -0
  383. package/docs/platforms/windows.md +286 -0
  384. package/docs/plugins/adding-capabilities.md +133 -0
  385. package/docs/plugins/admin-http-rpc.md +216 -0
  386. package/docs/plugins/agent-tools.md +13 -0
  387. package/docs/plugins/architecture-internals.md +1195 -0
  388. package/docs/plugins/architecture.md +481 -0
  389. package/docs/plugins/building-extensions.md +13 -0
  390. package/docs/plugins/building-plugins.md +330 -0
  391. package/docs/plugins/bundles.md +310 -0
  392. package/docs/plugins/cli-backend-plugins.md +310 -0
  393. package/docs/plugins/codex-computer-use.md +293 -0
  394. package/docs/plugins/codex-harness-reference.md +409 -0
  395. package/docs/plugins/codex-harness-runtime.md +247 -0
  396. package/docs/plugins/codex-harness.md +746 -0
  397. package/docs/plugins/codex-native-plugins.md +276 -0
  398. package/docs/plugins/community.md +77 -0
  399. package/docs/plugins/compatibility.md +164 -0
  400. package/docs/plugins/dependency-resolution.md +143 -0
  401. package/docs/plugins/google-meet.md +1737 -0
  402. package/docs/plugins/hooks.md +459 -0
  403. package/docs/plugins/install-overrides.md +80 -0
  404. package/docs/plugins/manage-plugins.md +210 -0
  405. package/docs/plugins/manifest.md +1359 -0
  406. package/docs/plugins/memory-lancedb.md +385 -0
  407. package/docs/plugins/memory-wiki.md +529 -0
  408. package/docs/plugins/message-presentation.md +473 -0
  409. package/docs/plugins/oc-path.md +166 -0
  410. package/docs/plugins/plugin-inventory.md +182 -0
  411. package/docs/plugins/reference/acpx.md +23 -0
  412. package/docs/plugins/reference/admin-http-rpc.md +23 -0
  413. package/docs/plugins/reference/alibaba.md +23 -0
  414. package/docs/plugins/reference/amazon-bedrock-mantle.md +23 -0
  415. package/docs/plugins/reference/amazon-bedrock.md +23 -0
  416. package/docs/plugins/reference/anthropic-vertex.md +19 -0
  417. package/docs/plugins/reference/anthropic.md +23 -0
  418. package/docs/plugins/reference/arcee.md +23 -0
  419. package/docs/plugins/reference/azure-speech.md +23 -0
  420. package/docs/plugins/reference/bonjour.md +19 -0
  421. package/docs/plugins/reference/brave.md +23 -0
  422. package/docs/plugins/reference/browser.md +23 -0
  423. package/docs/plugins/reference/byteplus.md +19 -0
  424. package/docs/plugins/reference/canvas.md +19 -0
  425. package/docs/plugins/reference/cerebras.md +23 -0
  426. package/docs/plugins/reference/chutes.md +23 -0
  427. package/docs/plugins/reference/clickclack.md +23 -0
  428. package/docs/plugins/reference/cloudflare-ai-gateway.md +23 -0
  429. package/docs/plugins/reference/codex.md +23 -0
  430. package/docs/plugins/reference/comfy.md +23 -0
  431. package/docs/plugins/reference/copilot-proxy.md +19 -0
  432. package/docs/plugins/reference/deepgram.md +23 -0
  433. package/docs/plugins/reference/deepinfra.md +23 -0
  434. package/docs/plugins/reference/deepseek.md +23 -0
  435. package/docs/plugins/reference/diagnostics-otel.md +19 -0
  436. package/docs/plugins/reference/diagnostics-prometheus.md +19 -0
  437. package/docs/plugins/reference/diffs.md +19 -0
  438. package/docs/plugins/reference/discord.md +23 -0
  439. package/docs/plugins/reference/document-extract.md +23 -0
  440. package/docs/plugins/reference/duckduckgo.md +23 -0
  441. package/docs/plugins/reference/elevenlabs.md +23 -0
  442. package/docs/plugins/reference/exa.md +23 -0
  443. package/docs/plugins/reference/fal.md +23 -0
  444. package/docs/plugins/reference/feishu.md +23 -0
  445. package/docs/plugins/reference/file-transfer.md +19 -0
  446. package/docs/plugins/reference/firecrawl.md +23 -0
  447. package/docs/plugins/reference/fireworks.md +23 -0
  448. package/docs/plugins/reference/github-copilot.md +23 -0
  449. package/docs/plugins/reference/google-meet.md +23 -0
  450. package/docs/plugins/reference/google.md +23 -0
  451. package/docs/plugins/reference/googlechat.md +23 -0
  452. package/docs/plugins/reference/gradium.md +23 -0
  453. package/docs/plugins/reference/groq.md +23 -0
  454. package/docs/plugins/reference/huggingface.md +23 -0
  455. package/docs/plugins/reference/imessage.md +23 -0
  456. package/docs/plugins/reference/inworld.md +23 -0
  457. package/docs/plugins/reference/irc.md +23 -0
  458. package/docs/plugins/reference/kilocode.md +23 -0
  459. package/docs/plugins/reference/kimi.md +23 -0
  460. package/docs/plugins/reference/line.md +23 -0
  461. package/docs/plugins/reference/litellm.md +23 -0
  462. package/docs/plugins/reference/llm-task.md +19 -0
  463. package/docs/plugins/reference/lmstudio.md +23 -0
  464. package/docs/plugins/reference/lobster.md +19 -0
  465. package/docs/plugins/reference/matrix.md +23 -0
  466. package/docs/plugins/reference/mattermost.md +23 -0
  467. package/docs/plugins/reference/memory-core.md +19 -0
  468. package/docs/plugins/reference/memory-lancedb.md +23 -0
  469. package/docs/plugins/reference/memory-wiki.md +23 -0
  470. package/docs/plugins/reference/microsoft-foundry.md +19 -0
  471. package/docs/plugins/reference/microsoft.md +19 -0
  472. package/docs/plugins/reference/migrate-claude.md +19 -0
  473. package/docs/plugins/reference/migrate-hermes.md +19 -0
  474. package/docs/plugins/reference/minimax.md +23 -0
  475. package/docs/plugins/reference/mistral.md +23 -0
  476. package/docs/plugins/reference/moonshot.md +23 -0
  477. package/docs/plugins/reference/msteams.md +23 -0
  478. package/docs/plugins/reference/nextcloud-talk.md +23 -0
  479. package/docs/plugins/reference/nostr.md +23 -0
  480. package/docs/plugins/reference/nvidia.md +23 -0
  481. package/docs/plugins/reference/oc-path.md +23 -0
  482. package/docs/plugins/reference/ollama.md +23 -0
  483. package/docs/plugins/reference/open-prose.md +19 -0
  484. package/docs/plugins/reference/openai.md +23 -0
  485. package/docs/plugins/reference/opencode-go.md +23 -0
  486. package/docs/plugins/reference/opencode.md +23 -0
  487. package/docs/plugins/reference/openrouter.md +23 -0
  488. package/docs/plugins/reference/openshell.md +19 -0
  489. package/docs/plugins/reference/perplexity.md +23 -0
  490. package/docs/plugins/reference/policy.md +23 -0
  491. package/docs/plugins/reference/qa-channel.md +23 -0
  492. package/docs/plugins/reference/qa-lab.md +19 -0
  493. package/docs/plugins/reference/qa-matrix.md +19 -0
  494. package/docs/plugins/reference/qianfan.md +23 -0
  495. package/docs/plugins/reference/qqbot.md +23 -0
  496. package/docs/plugins/reference/qwen.md +23 -0
  497. package/docs/plugins/reference/runway.md +23 -0
  498. package/docs/plugins/reference/searxng.md +19 -0
  499. package/docs/plugins/reference/senseaudio.md +23 -0
  500. package/docs/plugins/reference/sglang.md +23 -0
  501. package/docs/plugins/reference/signal.md +23 -0
  502. package/docs/plugins/reference/skill-workshop.md +23 -0
  503. package/docs/plugins/reference/slack.md +23 -0
  504. package/docs/plugins/reference/stepfun.md +23 -0
  505. package/docs/plugins/reference/synology-chat.md +23 -0
  506. package/docs/plugins/reference/synthetic.md +23 -0
  507. package/docs/plugins/reference/tavily.md +23 -0
  508. package/docs/plugins/reference/telegram.md +23 -0
  509. package/docs/plugins/reference/tencent.md +23 -0
  510. package/docs/plugins/reference/tlon.md +23 -0
  511. package/docs/plugins/reference/together.md +23 -0
  512. package/docs/plugins/reference/tokenjuice.md +23 -0
  513. package/docs/plugins/reference/tts-local-cli.md +19 -0
  514. package/docs/plugins/reference/twitch.md +23 -0
  515. package/docs/plugins/reference/venice.md +23 -0
  516. package/docs/plugins/reference/vercel-ai-gateway.md +23 -0
  517. package/docs/plugins/reference/vllm.md +23 -0
  518. package/docs/plugins/reference/voice-call.md +23 -0
  519. package/docs/plugins/reference/volcengine.md +23 -0
  520. package/docs/plugins/reference/voyage.md +19 -0
  521. package/docs/plugins/reference/vydra.md +23 -0
  522. package/docs/plugins/reference/web-readability.md +19 -0
  523. package/docs/plugins/reference/webhooks.md +23 -0
  524. package/docs/plugins/reference/whatsapp.md +23 -0
  525. package/docs/plugins/reference/xai.md +23 -0
  526. package/docs/plugins/reference/xiaomi.md +23 -0
  527. package/docs/plugins/reference/zai.md +23 -0
  528. package/docs/plugins/reference/zalo.md +23 -0
  529. package/docs/plugins/reference/zalouser.md +24 -0
  530. package/docs/plugins/reference.md +138 -0
  531. package/docs/plugins/sdk-agent-harness.md +339 -0
  532. package/docs/plugins/sdk-channel-ingress.md +137 -0
  533. package/docs/plugins/sdk-channel-message.md +458 -0
  534. package/docs/plugins/sdk-channel-plugins.md +762 -0
  535. package/docs/plugins/sdk-channel-turn.md +580 -0
  536. package/docs/plugins/sdk-entrypoints.md +333 -0
  537. package/docs/plugins/sdk-migration.md +949 -0
  538. package/docs/plugins/sdk-overview.md +501 -0
  539. package/docs/plugins/sdk-provider-plugins.md +807 -0
  540. package/docs/plugins/sdk-runtime.md +676 -0
  541. package/docs/plugins/sdk-setup.md +550 -0
  542. package/docs/plugins/sdk-subpaths.md +396 -0
  543. package/docs/plugins/sdk-testing.md +401 -0
  544. package/docs/plugins/skill-workshop.md +713 -0
  545. package/docs/plugins/tool-plugins.md +411 -0
  546. package/docs/plugins/voice-call.md +943 -0
  547. package/docs/plugins/webhooks.md +192 -0
  548. package/docs/plugins/zalouser.md +86 -0
  549. package/docs/prose.md +137 -0
  550. package/docs/providers/alibaba.md +158 -0
  551. package/docs/providers/anthropic.md +344 -0
  552. package/docs/providers/arcee.md +144 -0
  553. package/docs/providers/azure-speech.md +119 -0
  554. package/docs/providers/bedrock-mantle.md +211 -0
  555. package/docs/providers/bedrock.md +414 -0
  556. package/docs/providers/cerebras.md +130 -0
  557. package/docs/providers/chutes.md +153 -0
  558. package/docs/providers/claude-max-api-proxy.md +188 -0
  559. package/docs/providers/cloudflare-ai-gateway.md +119 -0
  560. package/docs/providers/comfy.md +362 -0
  561. package/docs/providers/deepgram.md +184 -0
  562. package/docs/providers/deepinfra.md +87 -0
  563. package/docs/providers/deepseek.md +146 -0
  564. package/docs/providers/ds4.md +309 -0
  565. package/docs/providers/elevenlabs.md +130 -0
  566. package/docs/providers/fal.md +204 -0
  567. package/docs/providers/fireworks.md +144 -0
  568. package/docs/providers/github-copilot.md +225 -0
  569. package/docs/providers/glm.md +137 -0
  570. package/docs/providers/google.md +472 -0
  571. package/docs/providers/gradium.md +123 -0
  572. package/docs/providers/groq.md +180 -0
  573. package/docs/providers/huggingface.md +235 -0
  574. package/docs/providers/index.md +102 -0
  575. package/docs/providers/inferrs.md +272 -0
  576. package/docs/providers/inworld.md +120 -0
  577. package/docs/providers/kilocode.md +135 -0
  578. package/docs/providers/litellm.md +234 -0
  579. package/docs/providers/lmstudio.md +224 -0
  580. package/docs/providers/minimax.md +505 -0
  581. package/docs/providers/mistral.md +235 -0
  582. package/docs/providers/models.md +65 -0
  583. package/docs/providers/moonshot.md +413 -0
  584. package/docs/providers/nvidia.md +140 -0
  585. package/docs/providers/ollama.md +1180 -0
  586. package/docs/providers/openai.md +1057 -0
  587. package/docs/providers/opencode-go.md +123 -0
  588. package/docs/providers/opencode.md +149 -0
  589. package/docs/providers/openrouter.md +349 -0
  590. package/docs/providers/perplexity-provider.md +123 -0
  591. package/docs/providers/qianfan.md +132 -0
  592. package/docs/providers/qwen.md +332 -0
  593. package/docs/providers/runway.md +103 -0
  594. package/docs/providers/senseaudio.md +68 -0
  595. package/docs/providers/sglang.md +161 -0
  596. package/docs/providers/stepfun.md +229 -0
  597. package/docs/providers/synthetic.md +154 -0
  598. package/docs/providers/tencent.md +130 -0
  599. package/docs/providers/together.md +141 -0
  600. package/docs/providers/venice.md +315 -0
  601. package/docs/providers/vercel-ai-gateway.md +128 -0
  602. package/docs/providers/vllm.md +383 -0
  603. package/docs/providers/volcengine.md +199 -0
  604. package/docs/providers/vydra.md +180 -0
  605. package/docs/providers/xai.md +560 -0
  606. package/docs/providers/xiaomi.md +188 -0
  607. package/docs/providers/zai.md +203 -0
  608. package/docs/refactor/access.md +9 -0
  609. package/docs/refactor/acp.md +298 -0
  610. package/docs/refactor/canvas.md +131 -0
  611. package/docs/refactor/ingress-core.md +341 -0
  612. package/docs/reference/AGENTS.default.md +129 -0
  613. package/docs/reference/RELEASING.md +767 -0
  614. package/docs/reference/api-usage-costs.md +202 -0
  615. package/docs/reference/application-modernization-plan.md +208 -0
  616. package/docs/reference/code-mode.md +757 -0
  617. package/docs/reference/credits.md +33 -0
  618. package/docs/reference/device-models.md +50 -0
  619. package/docs/reference/full-release-validation.md +202 -0
  620. package/docs/reference/memory-config.md +630 -0
  621. package/docs/reference/openclaw-sdk-api-design.md +390 -0
  622. package/docs/reference/prompt-caching.md +358 -0
  623. package/docs/reference/rich-output-protocol.md +79 -0
  624. package/docs/reference/rpc.md +43 -0
  625. package/docs/reference/secretref-credential-surface.md +159 -0
  626. package/docs/reference/secretref-user-supplied-credentials-matrix.json +663 -0
  627. package/docs/reference/session-management-compaction.md +461 -0
  628. package/docs/reference/templates/AGENTS.dev.md +89 -0
  629. package/docs/reference/templates/AGENTS.md +225 -0
  630. package/docs/reference/templates/BOOT.md +16 -0
  631. package/docs/reference/templates/BOOTSTRAP.md +66 -0
  632. package/docs/reference/templates/HEARTBEAT.md +16 -0
  633. package/docs/reference/templates/IDENTITY.dev.md +52 -0
  634. package/docs/reference/templates/IDENTITY.md +34 -0
  635. package/docs/reference/templates/SOUL.dev.md +82 -0
  636. package/docs/reference/templates/SOUL.md +49 -0
  637. package/docs/reference/templates/TOOLS.dev.md +29 -0
  638. package/docs/reference/templates/TOOLS.md +51 -0
  639. package/docs/reference/templates/USER.dev.md +23 -0
  640. package/docs/reference/templates/USER.md +28 -0
  641. package/docs/reference/test.md +239 -0
  642. package/docs/reference/token-use.md +233 -0
  643. package/docs/reference/transcript-hygiene.md +214 -0
  644. package/docs/reference/wizard.md +252 -0
  645. package/docs/security/CONTRIBUTING-THREAT-MODEL.md +101 -0
  646. package/docs/security/THREAT-MODEL-ATLAS.md +611 -0
  647. package/docs/security/formal-verification.md +170 -0
  648. package/docs/security/incident-response.md +59 -0
  649. package/docs/security/network-proxy.md +268 -0
  650. package/docs/snippets/plugin-publish/minimal-openclaw.plugin.json +12 -0
  651. package/docs/snippets/plugin-publish/minimal-package.json +16 -0
  652. package/docs/start/bootstrapping.md +49 -0
  653. package/docs/start/docs-directory.md +69 -0
  654. package/docs/start/getting-started.md +152 -0
  655. package/docs/start/hubs.md +201 -0
  656. package/docs/start/lore.md +223 -0
  657. package/docs/start/onboarding-overview.md +72 -0
  658. package/docs/start/onboarding.md +95 -0
  659. package/docs/start/openclaw.md +244 -0
  660. package/docs/start/quickstart.md +25 -0
  661. package/docs/start/setup.md +178 -0
  662. package/docs/start/showcase.md +383 -0
  663. package/docs/start/wizard-cli-automation.md +232 -0
  664. package/docs/start/wizard-cli-reference.md +331 -0
  665. package/docs/start/wizard.md +141 -0
  666. package/docs/style.css +184 -0
  667. package/docs/superpowers/specs/2026-04-22-tweakcn-custom-theme-import-design.md +316 -0
  668. package/docs/tools/acp-agents-setup.md +352 -0
  669. package/docs/tools/acp-agents.md +847 -0
  670. package/docs/tools/agent-send.md +112 -0
  671. package/docs/tools/apply-patch.md +64 -0
  672. package/docs/tools/brave-search.md +139 -0
  673. package/docs/tools/browser-control.md +391 -0
  674. package/docs/tools/browser-linux-troubleshooting.md +173 -0
  675. package/docs/tools/browser-login.md +77 -0
  676. package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +219 -0
  677. package/docs/tools/browser.md +769 -0
  678. package/docs/tools/btw.md +159 -0
  679. package/docs/tools/capability-cookbook.md +12 -0
  680. package/docs/tools/clawhub.md +5 -0
  681. package/docs/tools/code-execution.md +173 -0
  682. package/docs/tools/creating-skills.md +120 -0
  683. package/docs/tools/diffs.md +506 -0
  684. package/docs/tools/duckduckgo-search.md +109 -0
  685. package/docs/tools/elevated.md +128 -0
  686. package/docs/tools/exa-search.md +152 -0
  687. package/docs/tools/exec-approvals-advanced.md +360 -0
  688. package/docs/tools/exec-approvals.md +474 -0
  689. package/docs/tools/exec.md +282 -0
  690. package/docs/tools/firecrawl.md +155 -0
  691. package/docs/tools/gemini-search.md +114 -0
  692. package/docs/tools/grok-search.md +113 -0
  693. package/docs/tools/image-generation.md +433 -0
  694. package/docs/tools/index.md +178 -0
  695. package/docs/tools/kimi-search.md +105 -0
  696. package/docs/tools/llm-task.md +137 -0
  697. package/docs/tools/lobster.md +365 -0
  698. package/docs/tools/loop-detection.md +154 -0
  699. package/docs/tools/media-overview.md +157 -0
  700. package/docs/tools/minimax-search.md +102 -0
  701. package/docs/tools/multi-agent-sandbox-tools.md +409 -0
  702. package/docs/tools/music-generation.md +371 -0
  703. package/docs/tools/ollama-search.md +153 -0
  704. package/docs/tools/pdf.md +195 -0
  705. package/docs/tools/perplexity-search.md +220 -0
  706. package/docs/tools/plugin.md +327 -0
  707. package/docs/tools/reactions.md +100 -0
  708. package/docs/tools/searxng-search.md +141 -0
  709. package/docs/tools/skills-config.md +195 -0
  710. package/docs/tools/skills.md +535 -0
  711. package/docs/tools/slash-commands.md +488 -0
  712. package/docs/tools/steer.md +84 -0
  713. package/docs/tools/subagents.md +650 -0
  714. package/docs/tools/tavily.md +162 -0
  715. package/docs/tools/thinking.md +140 -0
  716. package/docs/tools/tokenjuice.md +81 -0
  717. package/docs/tools/tool-search.md +269 -0
  718. package/docs/tools/trajectory.md +229 -0
  719. package/docs/tools/tts.md +1004 -0
  720. package/docs/tools/video-generation.md +552 -0
  721. package/docs/tools/web-fetch.md +195 -0
  722. package/docs/tools/web.md +459 -0
  723. package/docs/tts.md +11 -0
  724. package/docs/vps.md +139 -0
  725. package/docs/web/control-ui.md +503 -0
  726. package/docs/web/dashboard.md +107 -0
  727. package/docs/web/index.md +133 -0
  728. package/docs/web/tui.md +246 -0
  729. package/docs/web/webchat.md +99 -0
  730. package/docs/whatsapp-openclaw-ai-zh.jpg +0 -0
  731. package/docs/whatsapp-openclaw.jpg +0 -0
  732. package/nodmix.mjs +487 -0
  733. package/package.json +1852 -0
  734. package/patches/.gitkeep +0 -0
  735. package/patches/@agentclientprotocol__claude-agent-acp@0.36.1.patch +41 -0
  736. package/pnpm-workspace.yaml +63 -0
  737. package/scripts/crabbox-wrapper.mjs +353 -0
  738. package/scripts/lib/official-external-channel-catalog.json +559 -0
  739. package/scripts/lib/official-external-plugin-catalog.json +192 -0
  740. package/scripts/lib/official-external-provider-catalog.json +117 -0
  741. package/scripts/lib/package-dist-imports.mjs +171 -0
  742. package/scripts/npm-runner.mjs +91 -0
  743. package/scripts/postinstall-bundled-plugins.mjs +978 -0
  744. package/scripts/preinstall-package-manager-warning.mjs +64 -0
  745. package/scripts/windows-cmd-helpers.mjs +20 -0
  746. package/skills/1password/SKILL.md +70 -0
  747. package/skills/1password/references/cli-examples.md +29 -0
  748. package/skills/1password/references/get-started.md +17 -0
  749. package/skills/apple-notes/SKILL.md +77 -0
  750. package/skills/apple-reminders/SKILL.md +118 -0
  751. package/skills/bear-notes/SKILL.md +107 -0
  752. package/skills/blogwatcher/SKILL.md +69 -0
  753. package/skills/blucli/SKILL.md +47 -0
  754. package/skills/camsnap/SKILL.md +45 -0
  755. package/skills/canvas/SKILL.md +78 -0
  756. package/skills/clawhub/SKILL.md +77 -0
  757. package/skills/coding-agent/SKILL.md +149 -0
  758. package/skills/diagram-maker/SKILL.md +53 -0
  759. package/skills/diagram-maker/references/excalidraw-patterns.md +85 -0
  760. package/skills/diagram-maker/references/svg-template.md +112 -0
  761. package/skills/discord/SKILL.md +136 -0
  762. package/skills/eightctl/SKILL.md +50 -0
  763. package/skills/gemini/SKILL.md +47 -0
  764. package/skills/gh-issues/SKILL.md +213 -0
  765. package/skills/gifgrep/SKILL.md +85 -0
  766. package/skills/github/SKILL.md +84 -0
  767. package/skills/gog/SKILL.md +116 -0
  768. package/skills/goplaces/SKILL.md +52 -0
  769. package/skills/healthcheck/SKILL.md +105 -0
  770. package/skills/himalaya/SKILL.md +80 -0
  771. package/skills/himalaya/references/configuration.md +184 -0
  772. package/skills/himalaya/references/message-composition.md +199 -0
  773. package/skills/imsg/SKILL.md +122 -0
  774. package/skills/mcporter/SKILL.md +61 -0
  775. package/skills/meme-maker/SKILL.md +42 -0
  776. package/skills/meme-maker/references/templates.json +358 -0
  777. package/skills/meme-maker/scripts/meme.mjs +398 -0
  778. package/skills/model-usage/SKILL.md +69 -0
  779. package/skills/model-usage/references/codexbar-cli.md +33 -0
  780. package/skills/model-usage/scripts/model_usage.py +319 -0
  781. package/skills/model-usage/scripts/test_model_usage.py +40 -0
  782. package/skills/nano-pdf/SKILL.md +38 -0
  783. package/skills/node-connect/SKILL.md +142 -0
  784. package/skills/node-inspect-debugger/SKILL.md +85 -0
  785. package/skills/notion/SKILL.md +150 -0
  786. package/skills/obsidian/SKILL.md +119 -0
  787. package/skills/openai-whisper/SKILL.md +38 -0
  788. package/skills/openai-whisper-api/SKILL.md +71 -0
  789. package/skills/openai-whisper-api/scripts/transcribe.sh +154 -0
  790. package/skills/openhue/SKILL.md +112 -0
  791. package/skills/oracle/SKILL.md +126 -0
  792. package/skills/ordercli/SKILL.md +78 -0
  793. package/skills/peekaboo/SKILL.md +190 -0
  794. package/skills/pyproject.toml +10 -0
  795. package/skills/python-debugpy/SKILL.md +73 -0
  796. package/skills/sag/SKILL.md +87 -0
  797. package/skills/session-logs/SKILL.md +151 -0
  798. package/skills/sherpa-onnx-tts/SKILL.md +109 -0
  799. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
  800. package/skills/skill-creator/SKILL.md +78 -0
  801. package/skills/skill-creator/license.txt +202 -0
  802. package/skills/skill-creator/scripts/init_skill.py +378 -0
  803. package/skills/skill-creator/scripts/package_skill.py +139 -0
  804. package/skills/skill-creator/scripts/quick_validate.py +169 -0
  805. package/skills/skill-creator/scripts/test_package_skill.py +161 -0
  806. package/skills/skill-creator/scripts/test_quick_validate.py +116 -0
  807. package/skills/slack/SKILL.md +78 -0
  808. package/skills/songsee/SKILL.md +49 -0
  809. package/skills/sonoscli/SKILL.md +65 -0
  810. package/skills/spike/SKILL.md +51 -0
  811. package/skills/spotify-player/SKILL.md +64 -0
  812. package/skills/summarize/SKILL.md +87 -0
  813. package/skills/taskflow/SKILL.md +149 -0
  814. package/skills/taskflow/examples/inbox-triage.lobster +33 -0
  815. package/skills/taskflow/examples/pr-intake.lobster +32 -0
  816. package/skills/taskflow-inbox-triage/SKILL.md +119 -0
  817. package/skills/things-mac/SKILL.md +86 -0
  818. package/skills/tmux/SKILL.md +91 -0
  819. package/skills/tmux/scripts/find-sessions.sh +112 -0
  820. package/skills/tmux/scripts/wait-for-text.sh +83 -0
  821. package/skills/trello/SKILL.md +108 -0
  822. package/skills/video-frames/SKILL.md +46 -0
  823. package/skills/video-frames/scripts/frame.sh +81 -0
  824. package/skills/voice-call/SKILL.md +45 -0
  825. package/skills/wacli/SKILL.md +72 -0
  826. package/skills/weather/SKILL.md +64 -0
  827. package/skills/xurl/SKILL.md +120 -0
@@ -0,0 +1,64 @@
1
+ ---
2
+ summary: "Messaging platforms Nodmix can connect to"
3
+ read_when:
4
+ - You want to choose a chat channel for Nodmix
5
+ - You need a quick overview of supported messaging platforms
6
+ title: "Chat channels"
7
+ ---
8
+
9
+ Nodmix can talk to you on any chat app you already use. Each channel connects via the Gateway.
10
+ Text is supported everywhere; media and reactions vary by channel.
11
+
12
+ ## Delivery notes
13
+
14
+ - Telegram replies that contain markdown image syntax, such as `![alt](url)`,
15
+ are converted into media replies on the final outbound path when possible.
16
+ - Slack multi-person DMs route as group chats, so group policy, mention
17
+ behavior, and group-session rules apply to MPIM conversations.
18
+ - WhatsApp setup is install-on-demand: onboarding can show the setup flow before
19
+ the plugin package is installed, and the Gateway loads the external
20
+ ClawHub/npm plugin only when the channel is actually active.
21
+ - Channels that accept bot-authored inbound messages can use shared
22
+ [bot loop protection](/channels/bot-loop-protection) to prevent bot pairs from
23
+ replying to each other indefinitely.
24
+ - Supported always-on rooms can use [ambient room events](/channels/ambient-room-events)
25
+ so unmentioned room chatter becomes quiet context unless the agent sends with
26
+ the `message` tool.
27
+
28
+ ## Supported channels
29
+
30
+ - [Discord](/channels/discord) - Discord Bot API + Gateway; supports servers, channels, and DMs.
31
+ - [Feishu](/channels/feishu) - Feishu/Lark bot via WebSocket (bundled plugin).
32
+ - [Google Chat](/channels/googlechat) - Google Chat API app via HTTP webhook (downloadable plugin).
33
+ - [iMessage](/channels/imessage) - Native macOS integration via the `imsg` bridge on a signed-in Mac (or SSH wrapper when the Gateway runs elsewhere), including private API actions for replies, tapbacks, effects, attachments, and group management. Preferred for new Nodmix iMessage setups when host permissions and Messages access fit.
34
+ - [IRC](/channels/irc) - Classic IRC servers; channels + DMs with pairing/allowlist controls.
35
+ - [LINE](/channels/line) - LINE Messaging API bot (downloadable plugin).
36
+ - [Matrix](/channels/matrix) - Matrix protocol (downloadable plugin).
37
+ - [Mattermost](/channels/mattermost) - Bot API + WebSocket; channels, groups, DMs (downloadable plugin).
38
+ - [Microsoft Teams](/channels/msteams) - Bot Framework; enterprise support (bundled plugin).
39
+ - [Nextcloud Talk](/channels/nextcloud-talk) - Self-hosted chat via Nextcloud Talk (bundled plugin).
40
+ - [Nostr](/channels/nostr) - Decentralized DMs via NIP-04 (bundled plugin).
41
+ - [QQ Bot](/channels/qqbot) - QQ Bot API; private chat, group chat, and rich media (bundled plugin).
42
+ - [Signal](/channels/signal) - signal-cli; privacy-focused.
43
+ - [Slack](/channels/slack) - Bolt SDK; workspace apps.
44
+ - [Synology Chat](/channels/synology-chat) - Synology NAS Chat via outgoing+incoming webhooks (bundled plugin).
45
+ - [Telegram](/channels/telegram) - Bot API via grammY; supports groups.
46
+ - [Tlon](/channels/tlon) - Urbit-based messenger (bundled plugin).
47
+ - [Twitch](/channels/twitch) - Twitch chat via IRC connection (bundled plugin).
48
+ - [Voice Call](/plugins/voice-call) - Telephony via Plivo or Twilio (plugin, installed separately).
49
+ - [WebChat](/web/webchat) - Gateway WebChat UI over WebSocket.
50
+ - [WeChat](/channels/wechat) - Tencent iLink Bot plugin via QR login; private chats only (external plugin).
51
+ - [WhatsApp](/channels/whatsapp) - Most popular; uses Baileys and requires QR pairing.
52
+ - [Yuanbao](/channels/yuanbao) - Tencent Yuanbao bot (external plugin).
53
+ - [Zalo](/channels/zalo) - Zalo Bot API; Vietnam's popular messenger (bundled plugin).
54
+ - [Zalo Personal](/channels/zalouser) - Zalo personal account via QR login (bundled plugin).
55
+
56
+ ## Notes
57
+
58
+ - Channels can run simultaneously; configure multiple and Nodmix will route per chat.
59
+ - Fastest setup is usually **Telegram** (simple bot token). WhatsApp requires QR pairing and
60
+ stores more state on disk.
61
+ - Group behavior varies by channel; see [Groups](/channels/groups).
62
+ - DM pairing and allowlists are enforced for safety; see [Security](/gateway/security).
63
+ - Troubleshooting: [Channel troubleshooting](/channels/troubleshooting).
64
+ - Model providers are documented separately; see [Model Providers](/providers/models).
@@ -0,0 +1,253 @@
1
+ ---
2
+ summary: "IRC plugin setup, access controls, and troubleshooting"
3
+ title: IRC
4
+ read_when:
5
+ - You want to connect Nodmix to IRC channels or DMs
6
+ - You are configuring IRC allowlists, group policy, or mention gating
7
+ ---
8
+
9
+ Use IRC when you want Nodmix in classic channels (`#room`) and direct messages.
10
+ IRC ships as a bundled plugin, but it is configured in the main config under `channels.irc`.
11
+
12
+ ## Quick start
13
+
14
+ 1. Enable IRC config in `~/.nodmix/nodmix.json`.
15
+ 2. Set at least:
16
+
17
+ ```json5
18
+ {
19
+ channels: {
20
+ irc: {
21
+ enabled: true,
22
+ host: "irc.example.com",
23
+ port: 6697,
24
+ tls: true,
25
+ nick: "nodmix-bot",
26
+ channels: ["#nodmix"],
27
+ },
28
+ },
29
+ }
30
+ ```
31
+
32
+ Prefer a private IRC server for bot coordination. If you intentionally use a public IRC network, common choices include Libera.Chat, OFTC, and Snoonet. Avoid predictable public channels for bot or swarm backchannel traffic.
33
+
34
+ 3. Start/restart gateway:
35
+
36
+ ```bash
37
+ nodmix gateway run
38
+ ```
39
+
40
+ ## Security defaults
41
+
42
+ - IRC uses raw TCP/TLS sockets outside Nodmix operator-managed forward proxy routing. In deployments that require all egress through that forward proxy, set `channels.irc.enabled=false` unless direct IRC egress is explicitly approved.
43
+ - `channels.irc.dmPolicy` defaults to `"pairing"`.
44
+ - `channels.irc.groupPolicy` defaults to `"allowlist"`.
45
+ - With `groupPolicy="allowlist"`, set `channels.irc.groups` to define allowed channels.
46
+ - Use TLS (`channels.irc.tls=true`) unless you intentionally accept plaintext transport.
47
+
48
+ ## Access control
49
+
50
+ There are two separate "gates" for IRC channels:
51
+
52
+ 1. **Channel access** (`groupPolicy` + `groups`): whether the bot accepts messages from a channel at all.
53
+ 2. **Sender access** (`groupAllowFrom` / per-channel `groups["#channel"].allowFrom`): who is allowed to trigger the bot inside that channel.
54
+
55
+ Config keys:
56
+
57
+ - DM allowlist (DM sender access): `channels.irc.allowFrom`
58
+ - Group sender allowlist (channel sender access): `channels.irc.groupAllowFrom`
59
+ - Per-channel controls (channel + sender + mention rules): `channels.irc.groups["#channel"]`
60
+ - `channels.irc.groupPolicy="open"` allows unconfigured channels (**still mention-gated by default**)
61
+
62
+ Allowlist entries should use stable sender identities (`nick!user@host`).
63
+ Bare nick matching is mutable and only enabled when `channels.irc.dangerouslyAllowNameMatching: true`.
64
+
65
+ ### Common gotcha: `allowFrom` is for DMs, not channels
66
+
67
+ If you see logs like:
68
+
69
+ - `irc: drop group sender alice!ident@host (policy=allowlist)`
70
+
71
+ ...it means the sender wasn't allowed for **group/channel** messages. Fix it by either:
72
+
73
+ - setting `channels.irc.groupAllowFrom` (global for all channels), or
74
+ - setting per-channel sender allowlists: `channels.irc.groups["#channel"].allowFrom`
75
+
76
+ Example (allow anyone in `#tuirc-dev` to talk to the bot):
77
+
78
+ ```json5
79
+ {
80
+ channels: {
81
+ irc: {
82
+ groupPolicy: "allowlist",
83
+ groups: {
84
+ "#tuirc-dev": { allowFrom: ["*"] },
85
+ },
86
+ },
87
+ },
88
+ }
89
+ ```
90
+
91
+ ## Reply triggering (mentions)
92
+
93
+ Even if a channel is allowed (via `groupPolicy` + `groups`) and the sender is allowed, Nodmix defaults to **mention-gating** in group contexts.
94
+
95
+ That means you may see logs like `drop channel … (missing-mention)` unless the message includes a mention pattern that matches the bot.
96
+
97
+ To make the bot reply in an IRC channel **without needing a mention**, disable mention gating for that channel:
98
+
99
+ ```json5
100
+ {
101
+ channels: {
102
+ irc: {
103
+ groupPolicy: "allowlist",
104
+ groups: {
105
+ "#tuirc-dev": {
106
+ requireMention: false,
107
+ allowFrom: ["*"],
108
+ },
109
+ },
110
+ },
111
+ },
112
+ }
113
+ ```
114
+
115
+ Or to allow **all** IRC channels (no per-channel allowlist) and still reply without mentions:
116
+
117
+ ```json5
118
+ {
119
+ channels: {
120
+ irc: {
121
+ groupPolicy: "open",
122
+ groups: {
123
+ "*": { requireMention: false, allowFrom: ["*"] },
124
+ },
125
+ },
126
+ },
127
+ }
128
+ ```
129
+
130
+ ## Security note (recommended for public channels)
131
+
132
+ If you allow `allowFrom: ["*"]` in a public channel, anyone can prompt the bot.
133
+ To reduce risk, restrict tools for that channel.
134
+
135
+ ### Same tools for everyone in the channel
136
+
137
+ ```json5
138
+ {
139
+ channels: {
140
+ irc: {
141
+ groups: {
142
+ "#tuirc-dev": {
143
+ allowFrom: ["*"],
144
+ tools: {
145
+ deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"],
146
+ },
147
+ },
148
+ },
149
+ },
150
+ },
151
+ }
152
+ ```
153
+
154
+ ### Different tools per sender (owner gets more power)
155
+
156
+ Use `toolsBySender` to apply a stricter policy to `"*"` and a looser one to your nick:
157
+
158
+ ```json5
159
+ {
160
+ channels: {
161
+ irc: {
162
+ groups: {
163
+ "#tuirc-dev": {
164
+ allowFrom: ["*"],
165
+ toolsBySender: {
166
+ "*": {
167
+ deny: ["group:runtime", "group:fs", "gateway", "nodes", "cron", "browser"],
168
+ },
169
+ "id:eigen": {
170
+ deny: ["gateway", "nodes", "cron"],
171
+ },
172
+ },
173
+ },
174
+ },
175
+ },
176
+ },
177
+ }
178
+ ```
179
+
180
+ Notes:
181
+
182
+ - `toolsBySender` keys should use `id:` for IRC sender identity values:
183
+ `id:eigen` or `id:eigen!~eigen@174.127.248.171` for stronger matching.
184
+ - Legacy unprefixed keys are still accepted and matched as `id:` only.
185
+ - The first matching sender policy wins; `"*"` is the wildcard fallback.
186
+
187
+ For more on group access vs mention-gating (and how they interact), see: [/channels/groups](/channels/groups).
188
+
189
+ ## NickServ
190
+
191
+ To identify with NickServ after connect:
192
+
193
+ ```json5
194
+ {
195
+ channels: {
196
+ irc: {
197
+ nickserv: {
198
+ enabled: true,
199
+ service: "NickServ",
200
+ password: "your-nickserv-password",
201
+ },
202
+ },
203
+ },
204
+ }
205
+ ```
206
+
207
+ Optional one-time registration on connect:
208
+
209
+ ```json5
210
+ {
211
+ channels: {
212
+ irc: {
213
+ nickserv: {
214
+ register: true,
215
+ registerEmail: "bot@example.com",
216
+ },
217
+ },
218
+ },
219
+ }
220
+ ```
221
+
222
+ Disable `register` after the nick is registered to avoid repeated REGISTER attempts.
223
+
224
+ ## Environment variables
225
+
226
+ Default account supports:
227
+
228
+ - `IRC_HOST`
229
+ - `IRC_PORT`
230
+ - `IRC_TLS`
231
+ - `IRC_NICK`
232
+ - `IRC_USERNAME`
233
+ - `IRC_REALNAME`
234
+ - `IRC_PASSWORD`
235
+ - `IRC_CHANNELS` (comma-separated)
236
+ - `IRC_NICKSERV_PASSWORD`
237
+ - `IRC_NICKSERV_REGISTER_EMAIL`
238
+
239
+ `IRC_HOST` cannot be set from a workspace `.env`; see [Workspace `.env` files](/gateway/security).
240
+
241
+ ## Troubleshooting
242
+
243
+ - If the bot connects but never replies in channels, verify `channels.irc.groups` **and** whether mention-gating is dropping messages (`missing-mention`). If you want it to reply without pings, set `requireMention:false` for the channel.
244
+ - If login fails, verify nick availability and server password.
245
+ - If TLS fails on a custom network, verify host/port and certificate setup.
246
+
247
+ ## Related
248
+
249
+ - [Channels Overview](/channels) — all supported channels
250
+ - [Pairing](/channels/pairing) — DM authentication and pairing flow
251
+ - [Groups](/channels/groups) — group chat behavior and mention gating
252
+ - [Channel Routing](/channels/channel-routing) — session routing for messages
253
+ - [Security](/gateway/security) — access model and hardening
@@ -0,0 +1,243 @@
1
+ ---
2
+ summary: "LINE Messaging API plugin setup, config, and usage"
3
+ read_when:
4
+ - You want to connect Nodmix to LINE
5
+ - You need LINE webhook + credential setup
6
+ - You want LINE-specific message options
7
+ title: LINE
8
+ ---
9
+
10
+ LINE connects to Nodmix via the LINE Messaging API. The plugin runs as a webhook
11
+ receiver on the gateway and uses your channel access token + channel secret for
12
+ authentication.
13
+
14
+ Status: downloadable plugin. Direct messages, group chats, media, locations, Flex
15
+ messages, template messages, and quick replies are supported. Reactions and threads
16
+ are not supported.
17
+
18
+ ## Install
19
+
20
+ Install LINE before configuring the channel:
21
+
22
+ ```bash
23
+ nodmix plugins install @nodmix/line
24
+ ```
25
+
26
+ Local checkout (when running from a git repo):
27
+
28
+ ```bash
29
+ nodmix plugins install ./path/to/local/line-plugin
30
+ ```
31
+
32
+ ## Setup
33
+
34
+ 1. Create a LINE Developers account and open the Console:
35
+ [https://developers.line.biz/console/](https://developers.line.biz/console/)
36
+ 2. Create (or pick) a Provider and add a **Messaging API** channel.
37
+ 3. Copy the **Channel access token** and **Channel secret** from the channel settings.
38
+ 4. Enable **Use webhook** in the Messaging API settings.
39
+ 5. Set the webhook URL to your gateway endpoint (HTTPS required):
40
+
41
+ ```
42
+ https://gateway-host/line/webhook
43
+ ```
44
+
45
+ The gateway responds to LINE's webhook verification (GET) and acknowledges signed
46
+ inbound events (POST) immediately after signature and payload validation; agent
47
+ processing continues asynchronously.
48
+ If you need a custom path, set `channels.line.webhookPath` or
49
+ `channels.line.accounts.<id>.webhookPath` and update the URL accordingly.
50
+
51
+ Security note:
52
+
53
+ - LINE signature verification is body-dependent (HMAC over the raw body), so Nodmix applies strict pre-auth body limits and timeout before verification.
54
+ - Nodmix processes webhook events from the verified raw request bytes. Upstream middleware-transformed `req.body` values are ignored for signature-integrity safety.
55
+
56
+ ## Configure
57
+
58
+ Minimal config:
59
+
60
+ ```json5
61
+ {
62
+ channels: {
63
+ line: {
64
+ enabled: true,
65
+ channelAccessToken: "LINE_CHANNEL_ACCESS_TOKEN",
66
+ channelSecret: "LINE_CHANNEL_SECRET",
67
+ dmPolicy: "pairing",
68
+ },
69
+ },
70
+ }
71
+ ```
72
+
73
+ Public DM config:
74
+
75
+ ```json5
76
+ {
77
+ channels: {
78
+ line: {
79
+ enabled: true,
80
+ channelAccessToken: "LINE_CHANNEL_ACCESS_TOKEN",
81
+ channelSecret: "LINE_CHANNEL_SECRET",
82
+ dmPolicy: "open",
83
+ allowFrom: ["*"],
84
+ },
85
+ },
86
+ }
87
+ ```
88
+
89
+ Env vars (default account only):
90
+
91
+ - `LINE_CHANNEL_ACCESS_TOKEN`
92
+ - `LINE_CHANNEL_SECRET`
93
+
94
+ Token/secret files:
95
+
96
+ ```json5
97
+ {
98
+ channels: {
99
+ line: {
100
+ tokenFile: "/path/to/line-token.txt",
101
+ secretFile: "/path/to/line-secret.txt",
102
+ },
103
+ },
104
+ }
105
+ ```
106
+
107
+ `tokenFile` and `secretFile` must point to regular files. Symlinks are rejected.
108
+
109
+ Multiple accounts:
110
+
111
+ ```json5
112
+ {
113
+ channels: {
114
+ line: {
115
+ accounts: {
116
+ marketing: {
117
+ channelAccessToken: "...",
118
+ channelSecret: "...",
119
+ webhookPath: "/line/marketing",
120
+ },
121
+ },
122
+ },
123
+ },
124
+ }
125
+ ```
126
+
127
+ ## Access control
128
+
129
+ Direct messages default to pairing. Unknown senders get a pairing code and their
130
+ messages are ignored until approved.
131
+
132
+ ```bash
133
+ nodmix pairing list line
134
+ nodmix pairing approve line <CODE>
135
+ ```
136
+
137
+ Allowlists and policies:
138
+
139
+ - `channels.line.dmPolicy`: `pairing | allowlist | open | disabled`
140
+ - `channels.line.allowFrom`: allowlisted LINE user IDs for DMs; `dmPolicy: "open"` requires `["*"]`
141
+ - `channels.line.groupPolicy`: `allowlist | open | disabled`
142
+ - `channels.line.groupAllowFrom`: allowlisted LINE user IDs for groups
143
+ - Per-group overrides: `channels.line.groups.<groupId>.allowFrom`
144
+ - Static sender access groups can be referenced from `allowFrom`, `groupAllowFrom`, and per-group `allowFrom` with `accessGroup:<name>`.
145
+ - Runtime note: if `channels.line` is completely missing, runtime falls back to `groupPolicy="allowlist"` for group checks (even if `channels.defaults.groupPolicy` is set).
146
+
147
+ LINE IDs are case-sensitive. Valid IDs look like:
148
+
149
+ - User: `U` + 32 hex chars
150
+ - Group: `C` + 32 hex chars
151
+ - Room: `R` + 32 hex chars
152
+
153
+ ## Message behavior
154
+
155
+ - Text is chunked at 5000 characters.
156
+ - Markdown formatting is stripped; code blocks and tables are converted into Flex
157
+ cards when possible.
158
+ - Streaming responses are buffered; LINE receives full chunks with a loading
159
+ animation while the agent works.
160
+ - Media downloads are capped by `channels.line.mediaMaxMb` (default 10).
161
+ - Inbound media is saved under `~/.nodmix/media/inbound/` before it is passed
162
+ to the agent, matching the shared media store used by other bundled channel
163
+ plugins.
164
+
165
+ ## Channel data (rich messages)
166
+
167
+ Use `channelData.line` to send quick replies, locations, Flex cards, or template
168
+ messages.
169
+
170
+ ```json5
171
+ {
172
+ text: "Here you go",
173
+ channelData: {
174
+ line: {
175
+ quickReplies: ["Status", "Help"],
176
+ location: {
177
+ title: "Office",
178
+ address: "123 Main St",
179
+ latitude: 35.681236,
180
+ longitude: 139.767125,
181
+ },
182
+ flexMessage: {
183
+ altText: "Status card",
184
+ contents: {
185
+ /* Flex payload */
186
+ },
187
+ },
188
+ templateMessage: {
189
+ type: "confirm",
190
+ text: "Proceed?",
191
+ confirmLabel: "Yes",
192
+ confirmData: "yes",
193
+ cancelLabel: "No",
194
+ cancelData: "no",
195
+ },
196
+ },
197
+ },
198
+ }
199
+ ```
200
+
201
+ The LINE plugin also ships a `/card` command for Flex message presets:
202
+
203
+ ```
204
+ /card info "Welcome" "Thanks for joining!"
205
+ ```
206
+
207
+ ## ACP support
208
+
209
+ LINE supports ACP (Agent Communication Protocol) conversation bindings:
210
+
211
+ - `/acp spawn <agent> --bind here` binds the current LINE chat to an ACP session without creating a child thread.
212
+ - Configured ACP bindings and active conversation-bound ACP sessions work on LINE like other conversation channels.
213
+
214
+ See [ACP agents](/tools/acp-agents) for details.
215
+
216
+ ## Outbound media
217
+
218
+ The LINE plugin supports sending images, videos, and audio files through the agent message tool. Media is sent via the LINE-specific delivery path with appropriate preview and tracking handling:
219
+
220
+ - **Images**: sent as LINE image messages with automatic preview generation.
221
+ - **Videos**: sent with explicit preview and content-type handling.
222
+ - **Audio**: sent as LINE audio messages.
223
+
224
+ Outbound media URLs must be public HTTPS URLs. Nodmix validates the target hostname before handing the URL to LINE and rejects loopback, link-local, and private-network targets.
225
+
226
+ Generic media sends fall back to the existing image-only route when a LINE-specific path is not available.
227
+
228
+ ## Troubleshooting
229
+
230
+ - **Webhook verification fails:** ensure the webhook URL is HTTPS and the
231
+ `channelSecret` matches the LINE console.
232
+ - **No inbound events:** confirm the webhook path matches `channels.line.webhookPath`
233
+ and that the gateway is reachable from LINE.
234
+ - **Media download errors:** raise `channels.line.mediaMaxMb` if media exceeds the
235
+ default limit.
236
+
237
+ ## Related
238
+
239
+ - [Channels Overview](/channels) — all supported channels
240
+ - [Pairing](/channels/pairing) — DM authentication and pairing flow
241
+ - [Groups](/channels/groups) — group chat behavior and mention gating
242
+ - [Channel Routing](/channels/channel-routing) — session routing for messages
243
+ - [Security](/gateway/security) — access model and hardening
@@ -0,0 +1,71 @@
1
+ ---
2
+ summary: "Inbound channel location parsing (Telegram/WhatsApp/Matrix) and context fields"
3
+ read_when:
4
+ - Adding or modifying channel location parsing
5
+ - Using location context fields in agent prompts or tools
6
+ title: "Channel location parsing"
7
+ ---
8
+
9
+ Nodmix normalizes shared locations from chat channels into:
10
+
11
+ - terse coordinate text appended to the inbound body, and
12
+ - structured fields in the auto-reply context payload. Channel-provided labels, addresses, and captions/comments are rendered into the prompt by the shared untrusted metadata JSON block, not inline in the user body.
13
+
14
+ Currently supported:
15
+
16
+ - **Telegram** (location pins + venues + live locations)
17
+ - **WhatsApp** (locationMessage + liveLocationMessage)
18
+ - **Matrix** (`m.location` with `geo_uri`)
19
+
20
+ ## Text formatting
21
+
22
+ Locations are rendered as friendly lines without brackets:
23
+
24
+ - Pin:
25
+ - `📍 48.858844, 2.294351 ±12m`
26
+ - Named place:
27
+ - `📍 48.858844, 2.294351 ±12m`
28
+ - Live share:
29
+ - `🛰 Live location: 48.858844, 2.294351 ±12m`
30
+
31
+ If the channel includes a label, address, or caption/comment, it is preserved in the context payload and appears in the prompt as fenced untrusted JSON:
32
+
33
+ ````text
34
+ Location (untrusted metadata):
35
+ ```json
36
+ {
37
+ "latitude": 48.858844,
38
+ "longitude": 2.294351,
39
+ "name": "Eiffel Tower",
40
+ "address": "Champ de Mars, Paris",
41
+ "caption": "Meet here"
42
+ }
43
+ ```
44
+ ````
45
+
46
+ ## Context fields
47
+
48
+ When a location is present, these fields are added to `ctx`:
49
+
50
+ - `LocationLat` (number)
51
+ - `LocationLon` (number)
52
+ - `LocationAccuracy` (number, meters; optional)
53
+ - `LocationName` (string; optional)
54
+ - `LocationAddress` (string; optional)
55
+ - `LocationSource` (`pin | place | live`)
56
+ - `LocationIsLive` (boolean)
57
+ - `LocationCaption` (string; optional)
58
+
59
+ The prompt renderer treats `LocationName`, `LocationAddress`, and `LocationCaption` as untrusted metadata and serializes them through the same bounded JSON path used for other channel context.
60
+
61
+ ## Channel notes
62
+
63
+ - **Telegram**: venues map to `LocationName/LocationAddress`; live locations use `live_period`.
64
+ - **WhatsApp**: `locationMessage.comment` and `liveLocationMessage.caption` populate `LocationCaption`.
65
+ - **Matrix**: `geo_uri` is parsed as a pin location; altitude is ignored and `LocationIsLive` is always false.
66
+
67
+ ## Related
68
+
69
+ - [Location command (nodes)](/nodes/location-command)
70
+ - [Camera capture](/nodes/camera)
71
+ - [Media understanding](/nodes/media-understanding)