@quantumclaw/quantumclaw 2026.3.22

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 (821) hide show
  1. package/CHANGELOG.md +4601 -0
  2. package/LICENSE +21 -0
  3. package/README.md +559 -0
  4. package/assets/avatar-placeholder.svg +19 -0
  5. package/assets/chrome-extension/icons/icon128.png +0 -0
  6. package/assets/chrome-extension/icons/icon16.png +0 -0
  7. package/assets/chrome-extension/icons/icon32.png +0 -0
  8. package/assets/chrome-extension/icons/icon48.png +0 -0
  9. package/assets/dmg-background-small.png +0 -0
  10. package/assets/dmg-background.png +0 -0
  11. package/docs/.i18n/README.md +31 -0
  12. package/docs/.i18n/glossary.ja-JP.json +14 -0
  13. package/docs/.i18n/glossary.zh-CN.json +302 -0
  14. package/docs/.i18n/ja-JP.tm.jsonl +0 -0
  15. package/docs/assets/install-script.svg +1 -0
  16. package/docs/assets/macos-onboarding/01-macos-warning.jpeg +0 -0
  17. package/docs/assets/macos-onboarding/02-local-networks.jpeg +0 -0
  18. package/docs/assets/macos-onboarding/03-security-notice.png +0 -0
  19. package/docs/assets/macos-onboarding/04-choose-gateway.png +0 -0
  20. package/docs/assets/macos-onboarding/05-permissions.png +0 -0
  21. package/docs/assets/pixel-lobster.svg +60 -0
  22. package/docs/assets/quantumclaw-logo-text-dark.png +0 -0
  23. package/docs/assets/quantumclaw-logo-text-dark.svg +418 -0
  24. package/docs/assets/quantumclaw-logo-text.png +0 -0
  25. package/docs/assets/quantumclaw-logo-text.svg +418 -0
  26. package/docs/assets/showcase/agents-ui.jpg +0 -0
  27. package/docs/assets/showcase/bambu-cli.png +0 -0
  28. package/docs/assets/showcase/codexmonitor.png +0 -0
  29. package/docs/assets/showcase/gohome-grafana.png +0 -0
  30. package/docs/assets/showcase/ios-testflight.jpg +0 -0
  31. package/docs/assets/showcase/oura-health.png +0 -0
  32. package/docs/assets/showcase/padel-cli.svg +11 -0
  33. package/docs/assets/showcase/padel-screenshot.jpg +0 -0
  34. package/docs/assets/showcase/papla-tts.jpg +0 -0
  35. package/docs/assets/showcase/pr-review-telegram.jpg +0 -0
  36. package/docs/assets/showcase/roborock-screenshot.jpg +0 -0
  37. package/docs/assets/showcase/roborock-status.svg +13 -0
  38. package/docs/assets/showcase/roof-camera-sky.jpg +0 -0
  39. package/docs/assets/showcase/snag.png +0 -0
  40. package/docs/assets/showcase/tesco-shop.jpg +0 -0
  41. package/docs/assets/showcase/wienerlinien.png +0 -0
  42. package/docs/assets/showcase/wine-cellar-skill.jpg +0 -0
  43. package/docs/assets/showcase/winix-air-purifier.jpg +0 -0
  44. package/docs/assets/showcase/xuezh-pronunciation.jpeg +0 -0
  45. package/docs/assets/sponsors/blacksmith.svg +14 -0
  46. package/docs/assets/sponsors/convex.svg +16 -0
  47. package/docs/assets/sponsors/openai.svg +3 -0
  48. package/docs/assets/sponsors/vercel.svg +5 -0
  49. package/docs/auth-credential-semantics.md +53 -0
  50. package/docs/automation/auth-monitoring.md +44 -0
  51. package/docs/automation/cron-jobs.md +727 -0
  52. package/docs/automation/cron-vs-heartbeat.md +286 -0
  53. package/docs/automation/gmail-pubsub.md +256 -0
  54. package/docs/automation/hooks.md +1056 -0
  55. package/docs/automation/poll.md +86 -0
  56. package/docs/automation/standing-orders.md +251 -0
  57. package/docs/automation/troubleshooting.md +122 -0
  58. package/docs/automation/webhook.md +217 -0
  59. package/docs/brave-search.md +93 -0
  60. package/docs/channels/bluebubbles.md +347 -0
  61. package/docs/channels/broadcast-groups.md +442 -0
  62. package/docs/channels/channel-routing.md +139 -0
  63. package/docs/channels/discord.md +1229 -0
  64. package/docs/channels/feishu.md +747 -0
  65. package/docs/channels/googlechat.md +261 -0
  66. package/docs/channels/group-messages.md +84 -0
  67. package/docs/channels/groups.md +379 -0
  68. package/docs/channels/imessage.md +367 -0
  69. package/docs/channels/index.md +47 -0
  70. package/docs/channels/irc.md +242 -0
  71. package/docs/channels/line.md +194 -0
  72. package/docs/channels/location.md +56 -0
  73. package/docs/channels/matrix.md +677 -0
  74. package/docs/channels/mattermost.md +427 -0
  75. package/docs/channels/msteams.md +780 -0
  76. package/docs/channels/nextcloud-talk.md +138 -0
  77. package/docs/channels/nostr.md +249 -0
  78. package/docs/channels/pairing.md +114 -0
  79. package/docs/channels/signal.md +329 -0
  80. package/docs/channels/slack.md +603 -0
  81. package/docs/channels/synology-chat.md +134 -0
  82. package/docs/channels/telegram.md +987 -0
  83. package/docs/channels/tlon.md +276 -0
  84. package/docs/channels/troubleshooting.md +118 -0
  85. package/docs/channels/twitch.md +379 -0
  86. package/docs/channels/whatsapp.md +460 -0
  87. package/docs/channels/zalo.md +243 -0
  88. package/docs/channels/zalouser.md +181 -0
  89. package/docs/ci.md +55 -0
  90. package/docs/cli/acp.md +288 -0
  91. package/docs/cli/agent.md +29 -0
  92. package/docs/cli/agents.md +123 -0
  93. package/docs/cli/approvals.md +50 -0
  94. package/docs/cli/backup.md +76 -0
  95. package/docs/cli/browser.md +106 -0
  96. package/docs/cli/channels.md +102 -0
  97. package/docs/cli/clawbot.md +21 -0
  98. package/docs/cli/completion.md +35 -0
  99. package/docs/cli/config.md +295 -0
  100. package/docs/cli/configure.md +36 -0
  101. package/docs/cli/cron.md +77 -0
  102. package/docs/cli/daemon.md +53 -0
  103. package/docs/cli/dashboard.md +22 -0
  104. package/docs/cli/devices.md +139 -0
  105. package/docs/cli/directory.md +63 -0
  106. package/docs/cli/dns.md +23 -0
  107. package/docs/cli/docs.md +15 -0
  108. package/docs/cli/doctor.md +48 -0
  109. package/docs/cli/gateway.md +235 -0
  110. package/docs/cli/health.md +21 -0
  111. package/docs/cli/hooks.md +329 -0
  112. package/docs/cli/index.md +1150 -0
  113. package/docs/cli/logs.md +28 -0
  114. package/docs/cli/memory.md +66 -0
  115. package/docs/cli/message.md +278 -0
  116. package/docs/cli/models.md +81 -0
  117. package/docs/cli/node.md +127 -0
  118. package/docs/cli/nodes.md +75 -0
  119. package/docs/cli/onboard.md +157 -0
  120. package/docs/cli/pairing.md +32 -0
  121. package/docs/cli/plugins.md +210 -0
  122. package/docs/cli/qr.md +46 -0
  123. package/docs/cli/reset.md +20 -0
  124. package/docs/cli/sandbox.md +197 -0
  125. package/docs/cli/secrets.md +188 -0
  126. package/docs/cli/security.md +79 -0
  127. package/docs/cli/sessions.md +110 -0
  128. package/docs/cli/setup.md +29 -0
  129. package/docs/cli/skills.md +36 -0
  130. package/docs/cli/status.md +30 -0
  131. package/docs/cli/system.md +60 -0
  132. package/docs/cli/tui.md +30 -0
  133. package/docs/cli/uninstall.md +20 -0
  134. package/docs/cli/update.md +103 -0
  135. package/docs/cli/voicecall.md +34 -0
  136. package/docs/cli/webhooks.md +25 -0
  137. package/docs/concepts/agent-loop.md +148 -0
  138. package/docs/concepts/agent-workspace.md +236 -0
  139. package/docs/concepts/agent.md +122 -0
  140. package/docs/concepts/architecture.md +137 -0
  141. package/docs/concepts/compaction.md +123 -0
  142. package/docs/concepts/context-engine.md +268 -0
  143. package/docs/concepts/context.md +172 -0
  144. package/docs/concepts/delegate-architecture.md +296 -0
  145. package/docs/concepts/features.md +73 -0
  146. package/docs/concepts/markdown-formatting.md +130 -0
  147. package/docs/concepts/memory.md +108 -0
  148. package/docs/concepts/messages.md +154 -0
  149. package/docs/concepts/model-failover.md +152 -0
  150. package/docs/concepts/model-providers.md +607 -0
  151. package/docs/concepts/models.md +225 -0
  152. package/docs/concepts/multi-agent.md +552 -0
  153. package/docs/concepts/oauth.md +158 -0
  154. package/docs/concepts/presence.md +102 -0
  155. package/docs/concepts/queue.md +89 -0
  156. package/docs/concepts/retry.md +69 -0
  157. package/docs/concepts/session-pruning.md +121 -0
  158. package/docs/concepts/session-tool.md +242 -0
  159. package/docs/concepts/session.md +310 -0
  160. package/docs/concepts/streaming.md +155 -0
  161. package/docs/concepts/system-prompt.md +132 -0
  162. package/docs/concepts/timezone.md +91 -0
  163. package/docs/concepts/typebox.md +291 -0
  164. package/docs/concepts/typing-indicators.md +68 -0
  165. package/docs/concepts/usage-tracking.md +35 -0
  166. package/docs/date-time.md +128 -0
  167. package/docs/debug/node-issue.md +85 -0
  168. package/docs/diagnostics/flags.md +91 -0
  169. package/docs/docs.json +2078 -0
  170. package/docs/gateway/authentication.md +179 -0
  171. package/docs/gateway/background-process.md +97 -0
  172. package/docs/gateway/bonjour.md +177 -0
  173. package/docs/gateway/bridge-protocol.md +91 -0
  174. package/docs/gateway/cli-backends.md +225 -0
  175. package/docs/gateway/configuration-examples.md +651 -0
  176. package/docs/gateway/configuration-reference.md +3123 -0
  177. package/docs/gateway/configuration.md +633 -0
  178. package/docs/gateway/discovery.md +123 -0
  179. package/docs/gateway/doctor.md +362 -0
  180. package/docs/gateway/gateway-lock.md +34 -0
  181. package/docs/gateway/health.md +44 -0
  182. package/docs/gateway/heartbeat.md +393 -0
  183. package/docs/gateway/index.md +261 -0
  184. package/docs/gateway/local-models.md +152 -0
  185. package/docs/gateway/logging.md +113 -0
  186. package/docs/gateway/multiple-gateways.md +112 -0
  187. package/docs/gateway/network-model.md +22 -0
  188. package/docs/gateway/openai-http-api.md +132 -0
  189. package/docs/gateway/openresponses-http-api.md +295 -0
  190. package/docs/gateway/openshell.md +307 -0
  191. package/docs/gateway/pairing.md +99 -0
  192. package/docs/gateway/protocol.md +267 -0
  193. package/docs/gateway/remote-gateway-readme.md +158 -0
  194. package/docs/gateway/remote.md +153 -0
  195. package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +134 -0
  196. package/docs/gateway/sandboxing.md +469 -0
  197. package/docs/gateway/secrets-plan-contract.md +116 -0
  198. package/docs/gateway/secrets.md +503 -0
  199. package/docs/gateway/security/index.md +1220 -0
  200. package/docs/gateway/tailscale.md +132 -0
  201. package/docs/gateway/tools-invoke-http-api.md +118 -0
  202. package/docs/gateway/troubleshooting.md +378 -0
  203. package/docs/gateway/trusted-proxy-auth.md +330 -0
  204. package/docs/help/debugging.md +168 -0
  205. package/docs/help/environment.md +163 -0
  206. package/docs/help/faq.md +2997 -0
  207. package/docs/help/index.md +28 -0
  208. package/docs/help/scripts.md +28 -0
  209. package/docs/help/testing.md +526 -0
  210. package/docs/help/troubleshooting.md +297 -0
  211. package/docs/images/configure-model-picker-unsearchable.png +0 -0
  212. package/docs/images/feishu-step2-create-app.png +0 -0
  213. package/docs/images/feishu-step3-credentials.png +0 -0
  214. package/docs/images/feishu-step4-permissions.png +0 -0
  215. package/docs/images/feishu-step5-bot-capability.png +0 -0
  216. package/docs/images/feishu-step6-event-subscription.png +0 -0
  217. package/docs/images/feishu-verification-token.png +0 -0
  218. package/docs/images/groups-flow.svg +52 -0
  219. package/docs/images/mobile-ui-screenshot.png +0 -0
  220. package/docs/index.md +196 -0
  221. package/docs/install/ansible.md +230 -0
  222. package/docs/install/azure.md +311 -0
  223. package/docs/install/bun.md +55 -0
  224. package/docs/install/development-channels.md +120 -0
  225. package/docs/install/digitalocean.md +129 -0
  226. package/docs/install/docker-vm-runtime.md +142 -0
  227. package/docs/install/docker.md +375 -0
  228. package/docs/install/exe-dev.md +126 -0
  229. package/docs/install/fly.md +501 -0
  230. package/docs/install/gcp.md +402 -0
  231. package/docs/install/hetzner.md +251 -0
  232. package/docs/install/index.md +183 -0
  233. package/docs/install/installer.md +415 -0
  234. package/docs/install/kubernetes.md +191 -0
  235. package/docs/install/macos-vm.md +281 -0
  236. package/docs/install/migrating-matrix.md +346 -0
  237. package/docs/install/migrating.md +110 -0
  238. package/docs/install/nix.md +89 -0
  239. package/docs/install/node.md +138 -0
  240. package/docs/install/northflank.mdx +54 -0
  241. package/docs/install/oracle.md +156 -0
  242. package/docs/install/podman.md +133 -0
  243. package/docs/install/railway.mdx +100 -0
  244. package/docs/install/raspberry-pi.md +159 -0
  245. package/docs/install/render.mdx +169 -0
  246. package/docs/install/uninstall.md +128 -0
  247. package/docs/install/updating.md +128 -0
  248. package/docs/ja-JP/index.md +186 -0
  249. package/docs/ja-JP/start/getting-started.md +125 -0
  250. package/docs/ja-JP/start/wizard.md +77 -0
  251. package/docs/logging.md +352 -0
  252. package/docs/nav-tabs-underline.js +100 -0
  253. package/docs/network.md +54 -0
  254. package/docs/nodes/audio.md +187 -0
  255. package/docs/nodes/camera.md +162 -0
  256. package/docs/nodes/images.md +72 -0
  257. package/docs/nodes/index.md +393 -0
  258. package/docs/nodes/location-command.md +98 -0
  259. package/docs/nodes/media-understanding.md +394 -0
  260. package/docs/nodes/talk.md +92 -0
  261. package/docs/nodes/troubleshooting.md +114 -0
  262. package/docs/nodes/voicewake.md +66 -0
  263. package/docs/perplexity.md +174 -0
  264. package/docs/pi-dev.md +80 -0
  265. package/docs/pi.md +567 -0
  266. package/docs/platforms/android.md +168 -0
  267. package/docs/platforms/digitalocean.md +266 -0
  268. package/docs/platforms/index.md +54 -0
  269. package/docs/platforms/ios.md +220 -0
  270. package/docs/platforms/linux.md +94 -0
  271. package/docs/platforms/mac/bundled-gateway.md +73 -0
  272. package/docs/platforms/mac/canvas.md +125 -0
  273. package/docs/platforms/mac/child-process.md +69 -0
  274. package/docs/platforms/mac/dev-setup.md +104 -0
  275. package/docs/platforms/mac/health.md +34 -0
  276. package/docs/platforms/mac/icon.md +31 -0
  277. package/docs/platforms/mac/logging.md +57 -0
  278. package/docs/platforms/mac/menu-bar.md +81 -0
  279. package/docs/platforms/mac/peekaboo.md +65 -0
  280. package/docs/platforms/mac/permissions.md +50 -0
  281. package/docs/platforms/mac/remote.md +84 -0
  282. package/docs/platforms/mac/signing.md +47 -0
  283. package/docs/platforms/mac/skills.md +33 -0
  284. package/docs/platforms/mac/voice-overlay.md +60 -0
  285. package/docs/platforms/mac/voicewake.md +67 -0
  286. package/docs/platforms/mac/webchat.md +43 -0
  287. package/docs/platforms/mac/xpc.md +61 -0
  288. package/docs/platforms/macos.md +226 -0
  289. package/docs/platforms/oracle.md +303 -0
  290. package/docs/platforms/raspberry-pi.md +412 -0
  291. package/docs/platforms/windows.md +241 -0
  292. package/docs/plugins/agent-tools.md +10 -0
  293. package/docs/plugins/architecture.md +1366 -0
  294. package/docs/plugins/building-extensions.md +10 -0
  295. package/docs/plugins/building-plugins.md +239 -0
  296. package/docs/plugins/bundles.md +181 -0
  297. package/docs/plugins/community.md +145 -0
  298. package/docs/plugins/manifest.md +241 -0
  299. package/docs/plugins/sdk-channel-plugins.md +370 -0
  300. package/docs/plugins/sdk-entrypoints.md +161 -0
  301. package/docs/plugins/sdk-migration.md +172 -0
  302. package/docs/plugins/sdk-overview.md +196 -0
  303. package/docs/plugins/sdk-provider-plugins.md +370 -0
  304. package/docs/plugins/sdk-runtime.md +345 -0
  305. package/docs/plugins/sdk-setup.md +331 -0
  306. package/docs/plugins/sdk-testing.md +263 -0
  307. package/docs/plugins/voice-call.md +380 -0
  308. package/docs/plugins/zalouser.md +77 -0
  309. package/docs/prose.md +134 -0
  310. package/docs/providers/anthropic.md +259 -0
  311. package/docs/providers/bedrock.md +176 -0
  312. package/docs/providers/claude-max-api-proxy.md +154 -0
  313. package/docs/providers/cloudflare-ai-gateway.md +71 -0
  314. package/docs/providers/deepgram.md +93 -0
  315. package/docs/providers/github-copilot.md +72 -0
  316. package/docs/providers/glm.md +43 -0
  317. package/docs/providers/google.md +78 -0
  318. package/docs/providers/groq.md +96 -0
  319. package/docs/providers/huggingface.md +209 -0
  320. package/docs/providers/index.md +69 -0
  321. package/docs/providers/kilocode.md +74 -0
  322. package/docs/providers/litellm.md +154 -0
  323. package/docs/providers/minimax.md +224 -0
  324. package/docs/providers/mistral.md +54 -0
  325. package/docs/providers/models.md +45 -0
  326. package/docs/providers/modelstudio.md +66 -0
  327. package/docs/providers/moonshot.md +175 -0
  328. package/docs/providers/nvidia.md +55 -0
  329. package/docs/providers/ollama.md +352 -0
  330. package/docs/providers/openai.md +303 -0
  331. package/docs/providers/opencode-go.md +45 -0
  332. package/docs/providers/opencode.md +64 -0
  333. package/docs/providers/openrouter.md +37 -0
  334. package/docs/providers/perplexity-provider.md +62 -0
  335. package/docs/providers/qianfan.md +38 -0
  336. package/docs/providers/qwen.md +53 -0
  337. package/docs/providers/sglang.md +104 -0
  338. package/docs/providers/synthetic.md +99 -0
  339. package/docs/providers/together.md +66 -0
  340. package/docs/providers/venice.md +282 -0
  341. package/docs/providers/vercel-ai-gateway.md +60 -0
  342. package/docs/providers/vllm.md +92 -0
  343. package/docs/providers/volcengine.md +74 -0
  344. package/docs/providers/xai.md +60 -0
  345. package/docs/providers/xiaomi.md +86 -0
  346. package/docs/providers/zai.md +46 -0
  347. package/docs/reference/AGENTS.default.md +126 -0
  348. package/docs/reference/RELEASING.md +42 -0
  349. package/docs/reference/api-usage-costs.md +144 -0
  350. package/docs/reference/credits.md +30 -0
  351. package/docs/reference/device-models.md +47 -0
  352. package/docs/reference/memory-config.md +711 -0
  353. package/docs/reference/prompt-caching.md +185 -0
  354. package/docs/reference/rpc.md +43 -0
  355. package/docs/reference/secretref-credential-surface.md +140 -0
  356. package/docs/reference/secretref-user-supplied-credentials-matrix.json +563 -0
  357. package/docs/reference/session-management-compaction.md +324 -0
  358. package/docs/reference/templates/AGENTS.dev.md +83 -0
  359. package/docs/reference/templates/AGENTS.md +219 -0
  360. package/docs/reference/templates/BOOT.md +11 -0
  361. package/docs/reference/templates/BOOTSTRAP.md +62 -0
  362. package/docs/reference/templates/HEARTBEAT.md +14 -0
  363. package/docs/reference/templates/IDENTITY.dev.md +47 -0
  364. package/docs/reference/templates/IDENTITY.md +29 -0
  365. package/docs/reference/templates/SOUL.dev.md +76 -0
  366. package/docs/reference/templates/SOUL.md +43 -0
  367. package/docs/reference/templates/TOOLS.dev.md +24 -0
  368. package/docs/reference/templates/TOOLS.md +47 -0
  369. package/docs/reference/templates/USER.dev.md +18 -0
  370. package/docs/reference/templates/USER.md +23 -0
  371. package/docs/reference/test.md +90 -0
  372. package/docs/reference/token-use.md +175 -0
  373. package/docs/reference/transcript-hygiene.md +151 -0
  374. package/docs/reference/wizard.md +235 -0
  375. package/docs/security/CONTRIBUTING-THREAT-MODEL.md +98 -0
  376. package/docs/security/THREAT-MODEL-ATLAS.md +611 -0
  377. package/docs/security/formal-verification.md +167 -0
  378. package/docs/start/bootstrapping.md +41 -0
  379. package/docs/start/docs-directory.md +66 -0
  380. package/docs/start/getting-started.md +116 -0
  381. package/docs/start/hubs.md +198 -0
  382. package/docs/start/lore.md +219 -0
  383. package/docs/start/onboarding-overview.md +67 -0
  384. package/docs/start/onboarding.md +91 -0
  385. package/docs/start/openclaw.md +221 -0
  386. package/docs/start/quickstart.md +22 -0
  387. package/docs/start/setup.md +164 -0
  388. package/docs/start/showcase.md +418 -0
  389. package/docs/start/wizard-cli-automation.md +215 -0
  390. package/docs/start/wizard-cli-reference.md +299 -0
  391. package/docs/start/wizard.md +125 -0
  392. package/docs/style.css +37 -0
  393. package/docs/tools/acp-agents.md +623 -0
  394. package/docs/tools/agent-send.md +100 -0
  395. package/docs/tools/apply-patch.md +51 -0
  396. package/docs/tools/brave-search.md +93 -0
  397. package/docs/tools/browser-linux-troubleshooting.md +138 -0
  398. package/docs/tools/browser-login.md +73 -0
  399. package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +211 -0
  400. package/docs/tools/browser.md +731 -0
  401. package/docs/tools/btw.md +142 -0
  402. package/docs/tools/capability-cookbook.md +119 -0
  403. package/docs/tools/clawhub.md +298 -0
  404. package/docs/tools/creating-skills.md +117 -0
  405. package/docs/tools/diffs.md +386 -0
  406. package/docs/tools/elevated.md +114 -0
  407. package/docs/tools/exec-approvals.md +430 -0
  408. package/docs/tools/exec.md +207 -0
  409. package/docs/tools/firecrawl.md +140 -0
  410. package/docs/tools/index.md +137 -0
  411. package/docs/tools/llm-task.md +119 -0
  412. package/docs/tools/lobster.md +340 -0
  413. package/docs/tools/loop-detection.md +100 -0
  414. package/docs/tools/multi-agent-sandbox-tools.md +364 -0
  415. package/docs/tools/pdf.md +156 -0
  416. package/docs/tools/perplexity-search.md +174 -0
  417. package/docs/tools/plugin.md +255 -0
  418. package/docs/tools/reactions.md +64 -0
  419. package/docs/tools/skills-config.md +86 -0
  420. package/docs/tools/skills.md +309 -0
  421. package/docs/tools/slash-commands.md +294 -0
  422. package/docs/tools/subagents.md +295 -0
  423. package/docs/tools/tavily.md +125 -0
  424. package/docs/tools/thinking.md +96 -0
  425. package/docs/tools/tts.md +406 -0
  426. package/docs/tools/web.md +516 -0
  427. package/docs/tts.md +406 -0
  428. package/docs/vps.md +112 -0
  429. package/docs/web/control-ui.md +275 -0
  430. package/docs/web/dashboard.md +54 -0
  431. package/docs/web/index.md +120 -0
  432. package/docs/web/tui.md +170 -0
  433. package/docs/web/webchat.md +61 -0
  434. package/docs/whatsapp-openclaw-ai-zh.jpg +0 -0
  435. package/docs/whatsapp-openclaw.jpg +0 -0
  436. package/docs/zh-CN/AGENTS.md +61 -0
  437. package/docs/zh-CN/automation/auth-monitoring.md +47 -0
  438. package/docs/zh-CN/automation/cron-jobs.md +435 -0
  439. package/docs/zh-CN/automation/cron-vs-heartbeat.md +286 -0
  440. package/docs/zh-CN/automation/gmail-pubsub.md +249 -0
  441. package/docs/zh-CN/automation/hooks.md +1051 -0
  442. package/docs/zh-CN/automation/poll.md +76 -0
  443. package/docs/zh-CN/automation/troubleshooting.md +8 -0
  444. package/docs/zh-CN/automation/webhook.md +163 -0
  445. package/docs/zh-CN/brave-search.md +60 -0
  446. package/docs/zh-CN/channels/bluebubbles.md +354 -0
  447. package/docs/zh-CN/channels/broadcast-groups.md +449 -0
  448. package/docs/zh-CN/channels/channel-routing.md +117 -0
  449. package/docs/zh-CN/channels/discord.md +468 -0
  450. package/docs/zh-CN/channels/feishu.md +728 -0
  451. package/docs/zh-CN/channels/googlechat.md +257 -0
  452. package/docs/zh-CN/channels/grammy.md +38 -0
  453. package/docs/zh-CN/channels/group-messages.md +91 -0
  454. package/docs/zh-CN/channels/groups.md +379 -0
  455. package/docs/zh-CN/channels/imessage.md +302 -0
  456. package/docs/zh-CN/channels/index.md +53 -0
  457. package/docs/zh-CN/channels/line.md +180 -0
  458. package/docs/zh-CN/channels/location.md +63 -0
  459. package/docs/zh-CN/channels/matrix.md +221 -0
  460. package/docs/zh-CN/channels/mattermost.md +144 -0
  461. package/docs/zh-CN/channels/msteams.md +775 -0
  462. package/docs/zh-CN/channels/nextcloud-talk.md +142 -0
  463. package/docs/zh-CN/channels/nostr.md +249 -0
  464. package/docs/zh-CN/channels/pairing.md +89 -0
  465. package/docs/zh-CN/channels/signal.md +209 -0
  466. package/docs/zh-CN/channels/slack.md +531 -0
  467. package/docs/zh-CN/channels/synology-chat.md +138 -0
  468. package/docs/zh-CN/channels/telegram.md +751 -0
  469. package/docs/zh-CN/channels/tlon.md +136 -0
  470. package/docs/zh-CN/channels/troubleshooting.md +36 -0
  471. package/docs/zh-CN/channels/twitch.md +385 -0
  472. package/docs/zh-CN/channels/whatsapp.md +411 -0
  473. package/docs/zh-CN/channels/zalo.md +196 -0
  474. package/docs/zh-CN/channels/zalouser.md +147 -0
  475. package/docs/zh-CN/cli/acp.md +173 -0
  476. package/docs/zh-CN/cli/agent.md +30 -0
  477. package/docs/zh-CN/cli/agents.md +82 -0
  478. package/docs/zh-CN/cli/approvals.md +57 -0
  479. package/docs/zh-CN/cli/browser.md +114 -0
  480. package/docs/zh-CN/cli/channels.md +86 -0
  481. package/docs/zh-CN/cli/config.md +57 -0
  482. package/docs/zh-CN/cli/configure.md +38 -0
  483. package/docs/zh-CN/cli/cron.md +43 -0
  484. package/docs/zh-CN/cli/dashboard.md +23 -0
  485. package/docs/zh-CN/cli/devices.md +74 -0
  486. package/docs/zh-CN/cli/directory.md +70 -0
  487. package/docs/zh-CN/cli/dns.md +30 -0
  488. package/docs/zh-CN/cli/docs.md +22 -0
  489. package/docs/zh-CN/cli/doctor.md +48 -0
  490. package/docs/zh-CN/cli/gateway.md +206 -0
  491. package/docs/zh-CN/cli/health.md +28 -0
  492. package/docs/zh-CN/cli/hooks.md +298 -0
  493. package/docs/zh-CN/cli/index.md +1143 -0
  494. package/docs/zh-CN/cli/logs.md +31 -0
  495. package/docs/zh-CN/cli/memory.md +52 -0
  496. package/docs/zh-CN/cli/message.md +246 -0
  497. package/docs/zh-CN/cli/models.md +85 -0
  498. package/docs/zh-CN/cli/node.md +115 -0
  499. package/docs/zh-CN/cli/nodes.md +80 -0
  500. package/docs/zh-CN/cli/onboard.md +164 -0
  501. package/docs/zh-CN/cli/pairing.md +28 -0
  502. package/docs/zh-CN/cli/plugins.md +66 -0
  503. package/docs/zh-CN/cli/reset.md +24 -0
  504. package/docs/zh-CN/cli/sandbox.md +158 -0
  505. package/docs/zh-CN/cli/security.md +33 -0
  506. package/docs/zh-CN/cli/sessions.md +23 -0
  507. package/docs/zh-CN/cli/setup.md +36 -0
  508. package/docs/zh-CN/cli/skills.md +33 -0
  509. package/docs/zh-CN/cli/status.md +33 -0
  510. package/docs/zh-CN/cli/system.md +63 -0
  511. package/docs/zh-CN/cli/tui.md +30 -0
  512. package/docs/zh-CN/cli/uninstall.md +24 -0
  513. package/docs/zh-CN/cli/update.md +101 -0
  514. package/docs/zh-CN/cli/voicecall.md +41 -0
  515. package/docs/zh-CN/cli/webhooks.md +32 -0
  516. package/docs/zh-CN/concepts/agent-loop.md +146 -0
  517. package/docs/zh-CN/concepts/agent-workspace.md +219 -0
  518. package/docs/zh-CN/concepts/agent.md +115 -0
  519. package/docs/zh-CN/concepts/architecture.md +123 -0
  520. package/docs/zh-CN/concepts/compaction.md +67 -0
  521. package/docs/zh-CN/concepts/context.md +168 -0
  522. package/docs/zh-CN/concepts/features.md +59 -0
  523. package/docs/zh-CN/concepts/markdown-formatting.md +117 -0
  524. package/docs/zh-CN/concepts/memory.md +412 -0
  525. package/docs/zh-CN/concepts/messages.md +141 -0
  526. package/docs/zh-CN/concepts/model-failover.md +145 -0
  527. package/docs/zh-CN/concepts/model-providers.md +606 -0
  528. package/docs/zh-CN/concepts/models.md +225 -0
  529. package/docs/zh-CN/concepts/multi-agent.md +372 -0
  530. package/docs/zh-CN/concepts/oauth.md +164 -0
  531. package/docs/zh-CN/concepts/presence.md +99 -0
  532. package/docs/zh-CN/concepts/queue.md +94 -0
  533. package/docs/zh-CN/concepts/retry.md +76 -0
  534. package/docs/zh-CN/concepts/session-pruning.md +129 -0
  535. package/docs/zh-CN/concepts/session-tool.md +200 -0
  536. package/docs/zh-CN/concepts/session.md +166 -0
  537. package/docs/zh-CN/concepts/streaming.md +133 -0
  538. package/docs/zh-CN/concepts/system-prompt.md +101 -0
  539. package/docs/zh-CN/concepts/timezone.md +96 -0
  540. package/docs/zh-CN/concepts/typebox.md +284 -0
  541. package/docs/zh-CN/concepts/typing-indicators.md +74 -0
  542. package/docs/zh-CN/concepts/usage-tracking.md +42 -0
  543. package/docs/zh-CN/date-time.md +129 -0
  544. package/docs/zh-CN/debug/node-issue.md +90 -0
  545. package/docs/zh-CN/diagnostics/flags.md +98 -0
  546. package/docs/zh-CN/gateway/authentication.md +184 -0
  547. package/docs/zh-CN/gateway/background-process.md +100 -0
  548. package/docs/zh-CN/gateway/bonjour.md +174 -0
  549. package/docs/zh-CN/gateway/bridge-protocol.md +86 -0
  550. package/docs/zh-CN/gateway/cli-backends.md +213 -0
  551. package/docs/zh-CN/gateway/configuration-examples.md +587 -0
  552. package/docs/zh-CN/gateway/configuration-reference.md +3103 -0
  553. package/docs/zh-CN/gateway/configuration.md +640 -0
  554. package/docs/zh-CN/gateway/discovery.md +123 -0
  555. package/docs/zh-CN/gateway/doctor.md +238 -0
  556. package/docs/zh-CN/gateway/gateway-lock.md +41 -0
  557. package/docs/zh-CN/gateway/health.md +42 -0
  558. package/docs/zh-CN/gateway/heartbeat.md +274 -0
  559. package/docs/zh-CN/gateway/index.md +335 -0
  560. package/docs/zh-CN/gateway/local-models.md +159 -0
  561. package/docs/zh-CN/gateway/logging.md +114 -0
  562. package/docs/zh-CN/gateway/multiple-gateways.md +119 -0
  563. package/docs/zh-CN/gateway/network-model.md +23 -0
  564. package/docs/zh-CN/gateway/openai-http-api.md +125 -0
  565. package/docs/zh-CN/gateway/openresponses-http-api.md +317 -0
  566. package/docs/zh-CN/gateway/pairing.md +99 -0
  567. package/docs/zh-CN/gateway/protocol.md +220 -0
  568. package/docs/zh-CN/gateway/remote-gateway-readme.md +164 -0
  569. package/docs/zh-CN/gateway/remote.md +133 -0
  570. package/docs/zh-CN/gateway/sandbox-vs-tool-policy-vs-elevated.md +135 -0
  571. package/docs/zh-CN/gateway/sandboxing.md +188 -0
  572. package/docs/zh-CN/gateway/security/index.md +777 -0
  573. package/docs/zh-CN/gateway/tailscale.md +124 -0
  574. package/docs/zh-CN/gateway/tools-invoke-http-api.md +92 -0
  575. package/docs/zh-CN/gateway/troubleshooting.md +771 -0
  576. package/docs/zh-CN/help/debugging.md +160 -0
  577. package/docs/zh-CN/help/environment.md +88 -0
  578. package/docs/zh-CN/help/faq.md +2640 -0
  579. package/docs/zh-CN/help/index.md +28 -0
  580. package/docs/zh-CN/help/scripts.md +35 -0
  581. package/docs/zh-CN/help/testing.md +375 -0
  582. package/docs/zh-CN/help/troubleshooting.md +104 -0
  583. package/docs/zh-CN/index.md +186 -0
  584. package/docs/zh-CN/install/ansible.md +215 -0
  585. package/docs/zh-CN/install/bun.md +65 -0
  586. package/docs/zh-CN/install/development-channels.md +81 -0
  587. package/docs/zh-CN/install/docker.md +532 -0
  588. package/docs/zh-CN/install/exe-dev.md +133 -0
  589. package/docs/zh-CN/install/fly.md +490 -0
  590. package/docs/zh-CN/install/gcp.md +510 -0
  591. package/docs/zh-CN/install/hetzner.md +337 -0
  592. package/docs/zh-CN/install/index.md +235 -0
  593. package/docs/zh-CN/install/installer.md +422 -0
  594. package/docs/zh-CN/install/macos-vm.md +288 -0
  595. package/docs/zh-CN/install/migrating.md +199 -0
  596. package/docs/zh-CN/install/nix.md +99 -0
  597. package/docs/zh-CN/install/node.md +8 -0
  598. package/docs/zh-CN/install/northflank.mdx +60 -0
  599. package/docs/zh-CN/install/railway.mdx +106 -0
  600. package/docs/zh-CN/install/render.mdx +169 -0
  601. package/docs/zh-CN/install/uninstall.md +135 -0
  602. package/docs/zh-CN/install/updating.md +233 -0
  603. package/docs/zh-CN/logging.md +329 -0
  604. package/docs/zh-CN/network.md +59 -0
  605. package/docs/zh-CN/nodes/audio.md +120 -0
  606. package/docs/zh-CN/nodes/camera.md +162 -0
  607. package/docs/zh-CN/nodes/images.md +79 -0
  608. package/docs/zh-CN/nodes/index.md +348 -0
  609. package/docs/zh-CN/nodes/location-command.md +120 -0
  610. package/docs/zh-CN/nodes/media-understanding.md +380 -0
  611. package/docs/zh-CN/nodes/talk.md +97 -0
  612. package/docs/zh-CN/nodes/troubleshooting.md +8 -0
  613. package/docs/zh-CN/nodes/voicewake.md +72 -0
  614. package/docs/zh-CN/perplexity.md +102 -0
  615. package/docs/zh-CN/pi-dev.md +77 -0
  616. package/docs/zh-CN/pi.md +619 -0
  617. package/docs/zh-CN/platforms/android.md +155 -0
  618. package/docs/zh-CN/platforms/digitalocean.md +273 -0
  619. package/docs/zh-CN/platforms/index.md +60 -0
  620. package/docs/zh-CN/platforms/ios.md +114 -0
  621. package/docs/zh-CN/platforms/linux.md +100 -0
  622. package/docs/zh-CN/platforms/mac/bundled-gateway.md +75 -0
  623. package/docs/zh-CN/platforms/mac/canvas.md +128 -0
  624. package/docs/zh-CN/platforms/mac/child-process.md +73 -0
  625. package/docs/zh-CN/platforms/mac/dev-setup.md +109 -0
  626. package/docs/zh-CN/platforms/mac/health.md +41 -0
  627. package/docs/zh-CN/platforms/mac/icon.md +38 -0
  628. package/docs/zh-CN/platforms/mac/logging.md +64 -0
  629. package/docs/zh-CN/platforms/mac/menu-bar.md +88 -0
  630. package/docs/zh-CN/platforms/mac/peekaboo.md +62 -0
  631. package/docs/zh-CN/platforms/mac/permissions.md +46 -0
  632. package/docs/zh-CN/platforms/mac/remote.md +90 -0
  633. package/docs/zh-CN/platforms/mac/signing.md +54 -0
  634. package/docs/zh-CN/platforms/mac/skills.md +40 -0
  635. package/docs/zh-CN/platforms/mac/voice-overlay.md +67 -0
  636. package/docs/zh-CN/platforms/mac/voicewake.md +74 -0
  637. package/docs/zh-CN/platforms/mac/webchat.md +43 -0
  638. package/docs/zh-CN/platforms/mac/xpc.md +68 -0
  639. package/docs/zh-CN/platforms/macos.md +193 -0
  640. package/docs/zh-CN/platforms/oracle.md +310 -0
  641. package/docs/zh-CN/platforms/raspberry-pi.md +416 -0
  642. package/docs/zh-CN/platforms/windows.md +247 -0
  643. package/docs/zh-CN/plugins/agent-tools.md +99 -0
  644. package/docs/zh-CN/plugins/manifest.md +68 -0
  645. package/docs/zh-CN/plugins/voice-call.md +250 -0
  646. package/docs/zh-CN/plugins/zalouser.md +88 -0
  647. package/docs/zh-CN/prose.md +141 -0
  648. package/docs/zh-CN/providers/anthropic.md +265 -0
  649. package/docs/zh-CN/providers/bedrock.md +170 -0
  650. package/docs/zh-CN/providers/claude-max-api-proxy.md +155 -0
  651. package/docs/zh-CN/providers/cloudflare-ai-gateway.md +78 -0
  652. package/docs/zh-CN/providers/deepgram.md +97 -0
  653. package/docs/zh-CN/providers/github-copilot.md +67 -0
  654. package/docs/zh-CN/providers/glm.md +50 -0
  655. package/docs/zh-CN/providers/huggingface.md +216 -0
  656. package/docs/zh-CN/providers/index.md +69 -0
  657. package/docs/zh-CN/providers/kilocode.md +80 -0
  658. package/docs/zh-CN/providers/litellm.md +160 -0
  659. package/docs/zh-CN/providers/minimax.md +222 -0
  660. package/docs/zh-CN/providers/mistral.md +61 -0
  661. package/docs/zh-CN/providers/models.md +51 -0
  662. package/docs/zh-CN/providers/moonshot.md +182 -0
  663. package/docs/zh-CN/providers/nvidia.md +62 -0
  664. package/docs/zh-CN/providers/ollama.md +359 -0
  665. package/docs/zh-CN/providers/openai.md +308 -0
  666. package/docs/zh-CN/providers/opencode-go.md +52 -0
  667. package/docs/zh-CN/providers/opencode.md +71 -0
  668. package/docs/zh-CN/providers/openrouter.md +44 -0
  669. package/docs/zh-CN/providers/qianfan.md +45 -0
  670. package/docs/zh-CN/providers/qwen.md +55 -0
  671. package/docs/zh-CN/providers/sglang.md +111 -0
  672. package/docs/zh-CN/providers/synthetic.md +106 -0
  673. package/docs/zh-CN/providers/together.md +72 -0
  674. package/docs/zh-CN/providers/venice.md +289 -0
  675. package/docs/zh-CN/providers/vercel-ai-gateway.md +66 -0
  676. package/docs/zh-CN/providers/xiaomi.md +93 -0
  677. package/docs/zh-CN/providers/zai.md +53 -0
  678. package/docs/zh-CN/reference/AGENTS.default.md +131 -0
  679. package/docs/zh-CN/reference/RELEASING.md +48 -0
  680. package/docs/zh-CN/reference/api-usage-costs.md +141 -0
  681. package/docs/zh-CN/reference/credits.md +34 -0
  682. package/docs/zh-CN/reference/device-models.md +54 -0
  683. package/docs/zh-CN/reference/rpc.md +48 -0
  684. package/docs/zh-CN/reference/session-management-compaction.md +287 -0
  685. package/docs/zh-CN/reference/templates/AGENTS.dev.md +89 -0
  686. package/docs/zh-CN/reference/templates/AGENTS.md +225 -0
  687. package/docs/zh-CN/reference/templates/BOOT.md +17 -0
  688. package/docs/zh-CN/reference/templates/BOOTSTRAP.md +68 -0
  689. package/docs/zh-CN/reference/templates/HEARTBEAT.md +18 -0
  690. package/docs/zh-CN/reference/templates/IDENTITY.dev.md +54 -0
  691. package/docs/zh-CN/reference/templates/IDENTITY.md +36 -0
  692. package/docs/zh-CN/reference/templates/SOUL.dev.md +83 -0
  693. package/docs/zh-CN/reference/templates/SOUL.md +49 -0
  694. package/docs/zh-CN/reference/templates/TOOLS.dev.md +31 -0
  695. package/docs/zh-CN/reference/templates/TOOLS.md +53 -0
  696. package/docs/zh-CN/reference/templates/USER.dev.md +25 -0
  697. package/docs/zh-CN/reference/templates/USER.md +30 -0
  698. package/docs/zh-CN/reference/test.md +57 -0
  699. package/docs/zh-CN/reference/token-use.md +119 -0
  700. package/docs/zh-CN/reference/transcript-hygiene.md +109 -0
  701. package/docs/zh-CN/reference/wizard.md +242 -0
  702. package/docs/zh-CN/security/formal-verification.md +171 -0
  703. package/docs/zh-CN/start/bootstrapping.md +9 -0
  704. package/docs/zh-CN/start/docs-directory.md +70 -0
  705. package/docs/zh-CN/start/getting-started.md +143 -0
  706. package/docs/zh-CN/start/hubs.md +194 -0
  707. package/docs/zh-CN/start/lore.md +226 -0
  708. package/docs/zh-CN/start/onboarding-overview.md +58 -0
  709. package/docs/zh-CN/start/onboarding.md +105 -0
  710. package/docs/zh-CN/start/openclaw.md +248 -0
  711. package/docs/zh-CN/start/quickstart.md +88 -0
  712. package/docs/zh-CN/start/setup.md +153 -0
  713. package/docs/zh-CN/start/showcase.md +423 -0
  714. package/docs/zh-CN/start/wizard-cli-automation.md +222 -0
  715. package/docs/zh-CN/start/wizard-cli-reference.md +306 -0
  716. package/docs/zh-CN/start/wizard.md +132 -0
  717. package/docs/zh-CN/tools/agent-send.md +59 -0
  718. package/docs/zh-CN/tools/apply-patch.md +57 -0
  719. package/docs/zh-CN/tools/browser-linux-troubleshooting.md +144 -0
  720. package/docs/zh-CN/tools/browser-login.md +75 -0
  721. package/docs/zh-CN/tools/browser.md +553 -0
  722. package/docs/zh-CN/tools/chrome-extension.md +183 -0
  723. package/docs/zh-CN/tools/clawhub.md +209 -0
  724. package/docs/zh-CN/tools/creating-skills.md +61 -0
  725. package/docs/zh-CN/tools/elevated.md +64 -0
  726. package/docs/zh-CN/tools/exec-approvals.md +234 -0
  727. package/docs/zh-CN/tools/exec.md +169 -0
  728. package/docs/zh-CN/tools/firecrawl.md +68 -0
  729. package/docs/zh-CN/tools/index.md +515 -0
  730. package/docs/zh-CN/tools/llm-task.md +117 -0
  731. package/docs/zh-CN/tools/lobster.md +349 -0
  732. package/docs/zh-CN/tools/multi-agent-sandbox-tools.md +401 -0
  733. package/docs/zh-CN/tools/plugin.md +1612 -0
  734. package/docs/zh-CN/tools/reactions.md +29 -0
  735. package/docs/zh-CN/tools/skills-config.md +78 -0
  736. package/docs/zh-CN/tools/skills.md +279 -0
  737. package/docs/zh-CN/tools/slash-commands.md +205 -0
  738. package/docs/zh-CN/tools/subagents.md +167 -0
  739. package/docs/zh-CN/tools/thinking.md +80 -0
  740. package/docs/zh-CN/tools/web.md +289 -0
  741. package/docs/zh-CN/tts.md +375 -0
  742. package/docs/zh-CN/vps.md +47 -0
  743. package/docs/zh-CN/web/control-ui.md +191 -0
  744. package/docs/zh-CN/web/dashboard.md +53 -0
  745. package/docs/zh-CN/web/index.md +118 -0
  746. package/docs/zh-CN/web/tui.md +166 -0
  747. package/docs/zh-CN/web/webchat.md +56 -0
  748. package/package.json +841 -0
  749. package/quantumclaw.mjs +135 -0
  750. package/skills/1password/SKILL.md +70 -0
  751. package/skills/1password/references/cli-examples.md +29 -0
  752. package/skills/1password/references/get-started.md +17 -0
  753. package/skills/apple-notes/SKILL.md +77 -0
  754. package/skills/apple-reminders/SKILL.md +118 -0
  755. package/skills/bear-notes/SKILL.md +107 -0
  756. package/skills/blogwatcher/SKILL.md +69 -0
  757. package/skills/blucli/SKILL.md +47 -0
  758. package/skills/bluebubbles/SKILL.md +131 -0
  759. package/skills/camsnap/SKILL.md +45 -0
  760. package/skills/canvas/SKILL.md +198 -0
  761. package/skills/clawhub/SKILL.md +77 -0
  762. package/skills/coding-agent/SKILL.md +295 -0
  763. package/skills/discord/SKILL.md +197 -0
  764. package/skills/eightctl/SKILL.md +50 -0
  765. package/skills/gemini/SKILL.md +43 -0
  766. package/skills/gh-issues/SKILL.md +865 -0
  767. package/skills/gifgrep/SKILL.md +79 -0
  768. package/skills/github/SKILL.md +163 -0
  769. package/skills/gog/SKILL.md +116 -0
  770. package/skills/goplaces/SKILL.md +52 -0
  771. package/skills/healthcheck/SKILL.md +245 -0
  772. package/skills/himalaya/SKILL.md +257 -0
  773. package/skills/himalaya/references/configuration.md +184 -0
  774. package/skills/himalaya/references/message-composition.md +199 -0
  775. package/skills/imsg/SKILL.md +122 -0
  776. package/skills/mcporter/SKILL.md +61 -0
  777. package/skills/model-usage/SKILL.md +69 -0
  778. package/skills/model-usage/references/codexbar-cli.md +33 -0
  779. package/skills/model-usage/scripts/model_usage.py +320 -0
  780. package/skills/model-usage/scripts/test_model_usage.py +40 -0
  781. package/skills/nano-pdf/SKILL.md +38 -0
  782. package/skills/node-connect/SKILL.md +142 -0
  783. package/skills/notion/SKILL.md +174 -0
  784. package/skills/obsidian/SKILL.md +81 -0
  785. package/skills/openai-image-gen/SKILL.md +92 -0
  786. package/skills/openai-image-gen/scripts/gen.py +328 -0
  787. package/skills/openai-image-gen/scripts/test_gen.py +140 -0
  788. package/skills/openai-whisper/SKILL.md +38 -0
  789. package/skills/openai-whisper-api/SKILL.md +52 -0
  790. package/skills/openai-whisper-api/scripts/transcribe.sh +85 -0
  791. package/skills/openhue/SKILL.md +112 -0
  792. package/skills/oracle/SKILL.md +125 -0
  793. package/skills/ordercli/SKILL.md +78 -0
  794. package/skills/peekaboo/SKILL.md +190 -0
  795. package/skills/sag/SKILL.md +87 -0
  796. package/skills/session-logs/SKILL.md +115 -0
  797. package/skills/sherpa-onnx-tts/SKILL.md +103 -0
  798. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
  799. package/skills/skill-creator/SKILL.md +372 -0
  800. package/skills/skill-creator/license.txt +202 -0
  801. package/skills/skill-creator/scripts/init_skill.py +378 -0
  802. package/skills/skill-creator/scripts/package_skill.py +139 -0
  803. package/skills/skill-creator/scripts/quick_validate.py +159 -0
  804. package/skills/skill-creator/scripts/test_package_skill.py +160 -0
  805. package/skills/skill-creator/scripts/test_quick_validate.py +72 -0
  806. package/skills/slack/SKILL.md +144 -0
  807. package/skills/songsee/SKILL.md +49 -0
  808. package/skills/sonoscli/SKILL.md +65 -0
  809. package/skills/spotify-player/SKILL.md +64 -0
  810. package/skills/summarize/SKILL.md +87 -0
  811. package/skills/things-mac/SKILL.md +86 -0
  812. package/skills/tmux/SKILL.md +153 -0
  813. package/skills/tmux/scripts/find-sessions.sh +112 -0
  814. package/skills/tmux/scripts/wait-for-text.sh +83 -0
  815. package/skills/trello/SKILL.md +95 -0
  816. package/skills/video-frames/SKILL.md +46 -0
  817. package/skills/video-frames/scripts/frame.sh +81 -0
  818. package/skills/voice-call/SKILL.md +45 -0
  819. package/skills/wacli/SKILL.md +72 -0
  820. package/skills/weather/SKILL.md +112 -0
  821. package/skills/xurl/SKILL.md +461 -0
@@ -0,0 +1,677 @@
1
+ ---
2
+ summary: "Matrix support status, setup, and configuration examples"
3
+ read_when:
4
+ - Setting up Matrix in QuantumClaw
5
+ - Configuring Matrix E2EE and verification
6
+ title: "Matrix"
7
+ ---
8
+
9
+ # Matrix (plugin)
10
+
11
+ Matrix is the Matrix channel plugin for QuantumClaw.
12
+ It uses the official `matrix-js-sdk` and supports DMs, rooms, threads, media, reactions, polls, location, and E2EE.
13
+
14
+ ## Plugin required
15
+
16
+ Matrix is a plugin and is not bundled with core QuantumClaw.
17
+
18
+ Install from npm:
19
+
20
+ ```bash
21
+ quantumclaw plugins install @quantumclaw/matrix
22
+ ```
23
+
24
+ Install from a local checkout:
25
+
26
+ ```bash
27
+ quantumclaw plugins install ./extensions/matrix
28
+ ```
29
+
30
+ See [Plugins](/tools/plugin) for plugin behavior and install rules.
31
+
32
+ ## Setup
33
+
34
+ 1. Install the plugin.
35
+ 2. Create a Matrix account on your homeserver.
36
+ 3. Configure `channels.matrix` with either:
37
+ - `homeserver` + `accessToken`, or
38
+ - `homeserver` + `userId` + `password`.
39
+ 4. Restart the gateway.
40
+ 5. Start a DM with the bot or invite it to a room.
41
+
42
+ Interactive setup paths:
43
+
44
+ ```bash
45
+ quantumclaw channels add
46
+ quantumclaw configure --section channels
47
+ ```
48
+
49
+ What the Matrix wizard actually asks for:
50
+
51
+ - homeserver URL
52
+ - auth method: access token or password
53
+ - user ID only when you choose password auth
54
+ - optional device name
55
+ - whether to enable E2EE
56
+ - whether to configure Matrix room access now
57
+
58
+ Wizard behavior that matters:
59
+
60
+ - If Matrix auth env vars already exist for the selected account, and that account does not already have auth saved in config, the wizard offers an env shortcut and only writes `enabled: true` for that account.
61
+ - When you add another Matrix account interactively, the entered account name is normalized into the account ID used in config and env vars. For example, `Ops Bot` becomes `ops-bot`.
62
+ - DM allowlist prompts accept full `@user:server` values immediately. Display names only work when live directory lookup finds one exact match; otherwise the wizard asks you to retry with a full Matrix ID.
63
+ - Room allowlist prompts accept room IDs and aliases directly. They can also resolve joined-room names live, but unresolved names are only kept as typed during setup and are ignored later by runtime allowlist resolution. Prefer `!room:server` or `#alias:server`.
64
+ - Runtime room/session identity uses the stable Matrix room ID. Room-declared aliases are only used as lookup inputs, not as the long-term session key or stable group identity.
65
+ - To resolve room names before saving them, use `quantumclaw channels resolve --channel matrix "Project Room"`.
66
+
67
+ Minimal token-based setup:
68
+
69
+ ```json5
70
+ {
71
+ channels: {
72
+ matrix: {
73
+ enabled: true,
74
+ homeserver: "https://matrix.example.org",
75
+ accessToken: "syt_xxx",
76
+ dm: { policy: "pairing" },
77
+ },
78
+ },
79
+ }
80
+ ```
81
+
82
+ Password-based setup (token is cached after login):
83
+
84
+ ```json5
85
+ {
86
+ channels: {
87
+ matrix: {
88
+ enabled: true,
89
+ homeserver: "https://matrix.example.org",
90
+ userId: "@bot:example.org",
91
+ password: "replace-me", // pragma: allowlist secret
92
+ deviceName: "QuantumClaw Gateway",
93
+ },
94
+ },
95
+ }
96
+ ```
97
+
98
+ Matrix stores cached credentials in `~/.quantumclaw/credentials/matrix/`.
99
+ The default account uses `credentials.json`; named accounts use `credentials-<account>.json`.
100
+
101
+ Environment variable equivalents (used when the config key is not set):
102
+
103
+ - `MATRIX_HOMESERVER`
104
+ - `MATRIX_ACCESS_TOKEN`
105
+ - `MATRIX_USER_ID`
106
+ - `MATRIX_PASSWORD`
107
+ - `MATRIX_DEVICE_ID`
108
+ - `MATRIX_DEVICE_NAME`
109
+
110
+ For non-default accounts, use account-scoped env vars:
111
+
112
+ - `MATRIX_<ACCOUNT_ID>_HOMESERVER`
113
+ - `MATRIX_<ACCOUNT_ID>_ACCESS_TOKEN`
114
+ - `MATRIX_<ACCOUNT_ID>_USER_ID`
115
+ - `MATRIX_<ACCOUNT_ID>_PASSWORD`
116
+ - `MATRIX_<ACCOUNT_ID>_DEVICE_ID`
117
+ - `MATRIX_<ACCOUNT_ID>_DEVICE_NAME`
118
+
119
+ Example for account `ops`:
120
+
121
+ - `MATRIX_OPS_HOMESERVER`
122
+ - `MATRIX_OPS_ACCESS_TOKEN`
123
+
124
+ For normalized account ID `ops-bot`, use:
125
+
126
+ - `MATRIX_OPS_BOT_HOMESERVER`
127
+ - `MATRIX_OPS_BOT_ACCESS_TOKEN`
128
+
129
+ The interactive wizard only offers the env-var shortcut when those auth env vars are already present and the selected account does not already have Matrix auth saved in config.
130
+
131
+ ## Configuration example
132
+
133
+ This is a practical baseline config with DM pairing, room allowlist, and E2EE enabled:
134
+
135
+ ```json5
136
+ {
137
+ channels: {
138
+ matrix: {
139
+ enabled: true,
140
+ homeserver: "https://matrix.example.org",
141
+ accessToken: "syt_xxx",
142
+ encryption: true,
143
+
144
+ dm: {
145
+ policy: "pairing",
146
+ },
147
+
148
+ groupPolicy: "allowlist",
149
+ groupAllowFrom: ["@admin:example.org"],
150
+ groups: {
151
+ "!roomid:example.org": {
152
+ requireMention: true,
153
+ },
154
+ },
155
+
156
+ autoJoin: "allowlist",
157
+ autoJoinAllowlist: ["!roomid:example.org"],
158
+ threadReplies: "inbound",
159
+ replyToMode: "off",
160
+ },
161
+ },
162
+ }
163
+ ```
164
+
165
+ ## E2EE setup
166
+
167
+ ## Bot to bot rooms
168
+
169
+ By default, Matrix messages from other configured QuantumClaw Matrix accounts are ignored.
170
+
171
+ Use `allowBots` when you intentionally want inter-agent Matrix traffic:
172
+
173
+ ```json5
174
+ {
175
+ channels: {
176
+ matrix: {
177
+ allowBots: "mentions", // true | "mentions"
178
+ groups: {
179
+ "!roomid:example.org": {
180
+ requireMention: true,
181
+ },
182
+ },
183
+ },
184
+ },
185
+ }
186
+ ```
187
+
188
+ - `allowBots: true` accepts messages from other configured Matrix bot accounts in allowed rooms and DMs.
189
+ - `allowBots: "mentions"` accepts those messages only when they visibly mention this bot in rooms. DMs are still allowed.
190
+ - `groups.<room>.allowBots` overrides the account-level setting for one room.
191
+ - QuantumClaw still ignores messages from the same Matrix user ID to avoid self-reply loops.
192
+ - Matrix does not expose a native bot flag here; QuantumClaw treats "bot-authored" as "sent by another configured Matrix account on this QuantumClaw gateway".
193
+
194
+ Use strict room allowlists and mention requirements when enabling bot-to-bot traffic in shared rooms.
195
+
196
+ Enable encryption:
197
+
198
+ ```json5
199
+ {
200
+ channels: {
201
+ matrix: {
202
+ enabled: true,
203
+ homeserver: "https://matrix.example.org",
204
+ accessToken: "syt_xxx",
205
+ encryption: true,
206
+ dm: { policy: "pairing" },
207
+ },
208
+ },
209
+ }
210
+ ```
211
+
212
+ Check verification status:
213
+
214
+ ```bash
215
+ quantumclaw matrix verify status
216
+ ```
217
+
218
+ Verbose status (full diagnostics):
219
+
220
+ ```bash
221
+ quantumclaw matrix verify status --verbose
222
+ ```
223
+
224
+ Include the stored recovery key in machine-readable output:
225
+
226
+ ```bash
227
+ quantumclaw matrix verify status --include-recovery-key --json
228
+ ```
229
+
230
+ Bootstrap cross-signing and verification state:
231
+
232
+ ```bash
233
+ quantumclaw matrix verify bootstrap
234
+ ```
235
+
236
+ Multi-account support: use `channels.matrix.accounts` with per-account credentials and optional `name`. See [Configuration reference](/gateway/configuration-reference#multi-account-all-channels) for the shared pattern.
237
+
238
+ Verbose bootstrap diagnostics:
239
+
240
+ ```bash
241
+ quantumclaw matrix verify bootstrap --verbose
242
+ ```
243
+
244
+ Force a fresh cross-signing identity reset before bootstrapping:
245
+
246
+ ```bash
247
+ quantumclaw matrix verify bootstrap --force-reset-cross-signing
248
+ ```
249
+
250
+ Verify this device with a recovery key:
251
+
252
+ ```bash
253
+ quantumclaw matrix verify device "<your-recovery-key>"
254
+ ```
255
+
256
+ Verbose device verification details:
257
+
258
+ ```bash
259
+ quantumclaw matrix verify device "<your-recovery-key>" --verbose
260
+ ```
261
+
262
+ Check room-key backup health:
263
+
264
+ ```bash
265
+ quantumclaw matrix verify backup status
266
+ ```
267
+
268
+ Verbose backup health diagnostics:
269
+
270
+ ```bash
271
+ quantumclaw matrix verify backup status --verbose
272
+ ```
273
+
274
+ Restore room keys from server backup:
275
+
276
+ ```bash
277
+ quantumclaw matrix verify backup restore
278
+ ```
279
+
280
+ Verbose restore diagnostics:
281
+
282
+ ```bash
283
+ quantumclaw matrix verify backup restore --verbose
284
+ ```
285
+
286
+ Delete the current server backup and create a fresh backup baseline:
287
+
288
+ ```bash
289
+ quantumclaw matrix verify backup reset --yes
290
+ ```
291
+
292
+ All `verify` commands are concise by default (including quiet internal SDK logging) and show detailed diagnostics only with `--verbose`.
293
+ Use `--json` for full machine-readable output when scripting.
294
+
295
+ In multi-account setups, Matrix CLI commands use the implicit Matrix default account unless you pass `--account <id>`.
296
+ If you configure multiple named accounts, set `channels.matrix.defaultAccount` first or those implicit CLI operations will stop and ask you to choose an account explicitly.
297
+ Use `--account` whenever you want verification or device operations to target a named account explicitly:
298
+
299
+ ```bash
300
+ quantumclaw matrix verify status --account assistant
301
+ quantumclaw matrix verify backup restore --account assistant
302
+ quantumclaw matrix devices list --account assistant
303
+ ```
304
+
305
+ When encryption is disabled or unavailable for a named account, Matrix warnings and verification errors point at that account's config key, for example `channels.matrix.accounts.assistant.encryption`.
306
+
307
+ ### What "verified" means
308
+
309
+ QuantumClaw treats this Matrix device as verified only when it is verified by your own cross-signing identity.
310
+ In practice, `quantumclaw matrix verify status --verbose` exposes three trust signals:
311
+
312
+ - `Locally trusted`: this device is trusted by the current client only
313
+ - `Cross-signing verified`: the SDK reports the device as verified through cross-signing
314
+ - `Signed by owner`: the device is signed by your own self-signing key
315
+
316
+ `Verified by owner` becomes `yes` only when cross-signing verification or owner-signing is present.
317
+ Local trust by itself is not enough for QuantumClaw to treat the device as fully verified.
318
+
319
+ ### What bootstrap does
320
+
321
+ `quantumclaw matrix verify bootstrap` is the repair and setup command for encrypted Matrix accounts.
322
+ It does all of the following in order:
323
+
324
+ - bootstraps secret storage, reusing an existing recovery key when possible
325
+ - bootstraps cross-signing and uploads missing public cross-signing keys
326
+ - attempts to mark and cross-sign the current device
327
+ - creates a new server-side room-key backup if one does not already exist
328
+
329
+ If the homeserver requires interactive auth to upload cross-signing keys, QuantumClaw tries the upload without auth first, then with `m.login.dummy`, then with `m.login.password` when `channels.matrix.password` is configured.
330
+
331
+ Use `--force-reset-cross-signing` only when you intentionally want to discard the current cross-signing identity and create a new one.
332
+
333
+ If you intentionally want to discard the current room-key backup and start a new backup baseline for future messages, use `quantumclaw matrix verify backup reset --yes`.
334
+ Do this only when you accept that unrecoverable old encrypted history will stay unavailable.
335
+
336
+ ### Fresh backup baseline
337
+
338
+ If you want to keep future encrypted messages working and accept losing unrecoverable old history, run these commands in order:
339
+
340
+ ```bash
341
+ quantumclaw matrix verify backup reset --yes
342
+ quantumclaw matrix verify backup status --verbose
343
+ quantumclaw matrix verify status
344
+ ```
345
+
346
+ Add `--account <id>` to each command when you want to target a named Matrix account explicitly.
347
+
348
+ ### Startup behavior
349
+
350
+ When `encryption: true`, Matrix defaults `startupVerification` to `"if-unverified"`.
351
+ On startup, if this device is still unverified, Matrix will request self-verification in another Matrix client,
352
+ skip duplicate requests while one is already pending, and apply a local cooldown before retrying after restarts.
353
+ Failed request attempts retry sooner than successful request creation by default.
354
+ Set `startupVerification: "off"` to disable automatic startup requests, or tune `startupVerificationCooldownHours`
355
+ if you want a shorter or longer retry window.
356
+
357
+ Startup also performs a conservative crypto bootstrap pass automatically.
358
+ That pass tries to reuse the current secret storage and cross-signing identity first, and avoids resetting cross-signing unless you run an explicit bootstrap repair flow.
359
+
360
+ If startup finds broken bootstrap state and `channels.matrix.password` is configured, QuantumClaw can attempt a stricter repair path.
361
+ If the current device is already owner-signed, QuantumClaw preserves that identity instead of resetting it automatically.
362
+
363
+ Upgrading from the previous public Matrix plugin:
364
+
365
+ - QuantumClaw automatically reuses the same Matrix account, access token, and device identity when possible.
366
+ - Before any actionable Matrix migration changes run, QuantumClaw creates or reuses a recovery snapshot under `~/Backups/quantumclaw-migrations/`.
367
+ - If you use multiple Matrix accounts, set `channels.matrix.defaultAccount` before upgrading from the old flat-store layout so QuantumClaw knows which account should receive that shared legacy state.
368
+ - If the previous plugin stored a Matrix room-key backup decryption key locally, startup or `quantumclaw doctor --fix` will import it into the new recovery-key flow automatically.
369
+ - If the Matrix access token changed after migration was prepared, startup now scans sibling token-hash storage roots for pending legacy restore state before giving up on the automatic backup restore.
370
+ - If the Matrix access token changes later for the same account, homeserver, and user, QuantumClaw now prefers reusing the most complete existing token-hash storage root instead of starting from an empty Matrix state directory.
371
+ - On the next gateway start, backed-up room keys are restored automatically into the new crypto store.
372
+ - If the old plugin had local-only room keys that were never backed up, QuantumClaw will warn clearly. Those keys cannot be exported automatically from the previous rust crypto store, so some old encrypted history may remain unavailable until recovered manually.
373
+ - See [Matrix migration](/install/migrating-matrix) for the full upgrade flow, limits, recovery commands, and common migration messages.
374
+
375
+ Encrypted runtime state is organized under per-account, per-user token-hash roots in
376
+ `~/.quantumclaw/matrix/accounts/<account>/<homeserver>__<user>/<token-hash>/`.
377
+ That directory contains the sync store (`bot-storage.json`), crypto store (`crypto/`),
378
+ recovery key file (`recovery-key.json`), IndexedDB snapshot (`crypto-idb-snapshot.json`),
379
+ thread bindings (`thread-bindings.json`), and startup verification state (`startup-verification.json`)
380
+ when those features are in use.
381
+ When the token changes but the account identity stays the same, QuantumClaw reuses the best existing
382
+ root for that account/homeserver/user tuple so prior sync state, crypto state, thread bindings,
383
+ and startup verification state remain visible.
384
+
385
+ ### Node crypto store model
386
+
387
+ Matrix E2EE in this plugin uses the official `matrix-js-sdk` Rust crypto path in Node.
388
+ That path expects IndexedDB-backed persistence when you want crypto state to survive restarts.
389
+
390
+ QuantumClaw currently provides that in Node by:
391
+
392
+ - using `fake-indexeddb` as the IndexedDB API shim expected by the SDK
393
+ - restoring the Rust crypto IndexedDB contents from `crypto-idb-snapshot.json` before `initRustCrypto`
394
+ - persisting the updated IndexedDB contents back to `crypto-idb-snapshot.json` after init and during runtime
395
+
396
+ This is compatibility/storage plumbing, not a custom crypto implementation.
397
+ The snapshot file is sensitive runtime state and is stored with restrictive file permissions.
398
+ Under QuantumClaw's security model, the gateway host and local QuantumClaw state directory are already inside the trusted operator boundary, so this is primarily an operational durability concern rather than a separate remote trust boundary.
399
+
400
+ Planned improvement:
401
+
402
+ - add SecretRef support for persistent Matrix key material so recovery keys and related store-encryption secrets can be sourced from QuantumClaw secrets providers instead of only local files
403
+
404
+ ## Automatic verification notices
405
+
406
+ Matrix now posts verification lifecycle notices directly into the strict DM verification room as `m.notice` messages.
407
+ That includes:
408
+
409
+ - verification request notices
410
+ - verification ready notices (with explicit "Verify by emoji" guidance)
411
+ - verification start and completion notices
412
+ - SAS details (emoji and decimal) when available
413
+
414
+ Incoming verification requests from another Matrix client are tracked and auto-accepted by QuantumClaw.
415
+ For self-verification flows, QuantumClaw also starts the SAS flow automatically when emoji verification becomes available and confirms its own side.
416
+ For verification requests from another Matrix user/device, QuantumClaw auto-accepts the request and then waits for the SAS flow to proceed normally.
417
+ You still need to compare the emoji or decimal SAS in your Matrix client and confirm "They match" there to complete the verification.
418
+
419
+ QuantumClaw does not auto-accept self-initiated duplicate flows blindly. Startup skips creating a new request when a self-verification request is already pending.
420
+
421
+ Verification protocol/system notices are not forwarded to the agent chat pipeline, so they do not produce `NO_REPLY`.
422
+
423
+ ### Device hygiene
424
+
425
+ Old QuantumClaw-managed Matrix devices can accumulate on the account and make encrypted-room trust harder to reason about.
426
+ List them with:
427
+
428
+ ```bash
429
+ quantumclaw matrix devices list
430
+ ```
431
+
432
+ Remove stale QuantumClaw-managed devices with:
433
+
434
+ ```bash
435
+ quantumclaw matrix devices prune-stale
436
+ ```
437
+
438
+ ### Direct Room Repair
439
+
440
+ If direct-message state gets out of sync, QuantumClaw can end up with stale `m.direct` mappings that point at old solo rooms instead of the live DM. Inspect the current mapping for a peer with:
441
+
442
+ ```bash
443
+ quantumclaw matrix direct inspect --user-id @alice:example.org
444
+ ```
445
+
446
+ Repair it with:
447
+
448
+ ```bash
449
+ quantumclaw matrix direct repair --user-id @alice:example.org
450
+ ```
451
+
452
+ Repair keeps the Matrix-specific logic inside the plugin:
453
+
454
+ - it prefers a strict 1:1 DM that is already mapped in `m.direct`
455
+ - otherwise it falls back to any currently joined strict 1:1 DM with that user
456
+ - if no healthy DM exists, it creates a fresh direct room and rewrites `m.direct` to point at it
457
+
458
+ The repair flow does not delete old rooms automatically. It only picks the healthy DM and updates the mapping so new Matrix sends, verification notices, and other direct-message flows target the right room again.
459
+
460
+ ## Threads
461
+
462
+ Matrix supports native Matrix threads for both automatic replies and message-tool sends.
463
+
464
+ - `threadReplies: "off"` keeps replies top-level.
465
+ - `threadReplies: "inbound"` replies inside a thread only when the inbound message was already in that thread.
466
+ - `threadReplies: "always"` keeps room replies in a thread rooted at the triggering message.
467
+ - Inbound threaded messages include the thread root message as extra agent context.
468
+ - Message-tool sends now auto-inherit the current Matrix thread when the target is the same room, or the same DM user target, unless an explicit `threadId` is provided.
469
+ - Runtime thread bindings are supported for Matrix. `/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age`, and thread-bound `/acp spawn` now work in Matrix rooms and DMs.
470
+ - Top-level Matrix room/DM `/focus` creates a new Matrix thread and binds it to the target session when `threadBindings.spawnSubagentSessions=true`.
471
+ - Running `/focus` or `/acp spawn --thread here` inside an existing Matrix thread binds that current thread instead.
472
+
473
+ ### Thread Binding Config
474
+
475
+ Matrix inherits global defaults from `session.threadBindings`, and also supports per-channel overrides:
476
+
477
+ - `threadBindings.enabled`
478
+ - `threadBindings.idleHours`
479
+ - `threadBindings.maxAgeHours`
480
+ - `threadBindings.spawnSubagentSessions`
481
+ - `threadBindings.spawnAcpSessions`
482
+
483
+ Matrix thread-bound spawn flags are opt-in:
484
+
485
+ - Set `threadBindings.spawnSubagentSessions: true` to allow top-level `/focus` to create and bind new Matrix threads.
486
+ - Set `threadBindings.spawnAcpSessions: true` to allow `/acp spawn --thread auto|here` to bind ACP sessions to Matrix threads.
487
+
488
+ ## Reactions
489
+
490
+ Matrix supports outbound reaction actions, inbound reaction notifications, and inbound ack reactions.
491
+
492
+ - Outbound reaction tooling is gated by `channels["matrix"].actions.reactions`.
493
+ - `react` adds a reaction to a specific Matrix event.
494
+ - `reactions` lists the current reaction summary for a specific Matrix event.
495
+ - `emoji=""` removes the bot account's own reactions on that event.
496
+ - `remove: true` removes only the specified emoji reaction from the bot account.
497
+
498
+ Ack reactions use the standard QuantumClaw resolution order:
499
+
500
+ - `channels["matrix"].accounts.<accountId>.ackReaction`
501
+ - `channels["matrix"].ackReaction`
502
+ - `messages.ackReaction`
503
+ - agent identity emoji fallback
504
+
505
+ Ack reaction scope resolves in this order:
506
+
507
+ - `channels["matrix"].accounts.<accountId>.ackReactionScope`
508
+ - `channels["matrix"].ackReactionScope`
509
+ - `messages.ackReactionScope`
510
+
511
+ Reaction notification mode resolves in this order:
512
+
513
+ - `channels["matrix"].accounts.<accountId>.reactionNotifications`
514
+ - `channels["matrix"].reactionNotifications`
515
+ - default: `own`
516
+
517
+ Current behavior:
518
+
519
+ - `reactionNotifications: "own"` forwards added `m.reaction` events when they target bot-authored Matrix messages.
520
+ - `reactionNotifications: "off"` disables reaction system events.
521
+ - Reaction removals are still not synthesized into system events because Matrix surfaces those as redactions, not as standalone `m.reaction` removals.
522
+
523
+ ## DM and room policy example
524
+
525
+ ```json5
526
+ {
527
+ channels: {
528
+ matrix: {
529
+ dm: {
530
+ policy: "allowlist",
531
+ allowFrom: ["@admin:example.org"],
532
+ },
533
+ groupPolicy: "allowlist",
534
+ groupAllowFrom: ["@admin:example.org"],
535
+ groups: {
536
+ "!roomid:example.org": {
537
+ requireMention: true,
538
+ },
539
+ },
540
+ },
541
+ },
542
+ }
543
+ ```
544
+
545
+ See [Groups](/channels/groups) for mention-gating and allowlist behavior.
546
+
547
+ Pairing example for Matrix DMs:
548
+
549
+ ```bash
550
+ quantumclaw pairing list matrix
551
+ quantumclaw pairing approve matrix <CODE>
552
+ ```
553
+
554
+ If an unapproved Matrix user keeps messaging you before approval, QuantumClaw reuses the same pending pairing code and may send a reminder reply again after a short cooldown instead of minting a new code.
555
+
556
+ See [Pairing](/channels/pairing) for the shared DM pairing flow and storage layout.
557
+
558
+ ## Multi-account example
559
+
560
+ ```json5
561
+ {
562
+ channels: {
563
+ matrix: {
564
+ enabled: true,
565
+ defaultAccount: "assistant",
566
+ dm: { policy: "pairing" },
567
+ accounts: {
568
+ assistant: {
569
+ homeserver: "https://matrix.example.org",
570
+ accessToken: "syt_assistant_xxx",
571
+ encryption: true,
572
+ },
573
+ alerts: {
574
+ homeserver: "https://matrix.example.org",
575
+ accessToken: "syt_alerts_xxx",
576
+ dm: {
577
+ policy: "allowlist",
578
+ allowFrom: ["@ops:example.org"],
579
+ },
580
+ },
581
+ },
582
+ },
583
+ },
584
+ }
585
+ ```
586
+
587
+ Top-level `channels.matrix` values act as defaults for named accounts unless an account overrides them.
588
+ Set `defaultAccount` when you want QuantumClaw to prefer one named Matrix account for implicit routing, probing, and CLI operations.
589
+ If you configure multiple named accounts, set `defaultAccount` or pass `--account <id>` for CLI commands that rely on implicit account selection.
590
+ Pass `--account <id>` to `quantumclaw matrix verify ...` and `quantumclaw matrix devices ...` when you want to override that implicit selection for one command.
591
+
592
+ ## Private/LAN homeservers
593
+
594
+ By default, QuantumClaw blocks private/internal Matrix homeservers for SSRF protection unless you
595
+ explicitly opt in per account.
596
+
597
+ If your homeserver runs on localhost, a LAN/Tailscale IP, or an internal hostname, enable
598
+ `allowPrivateNetwork` for that Matrix account:
599
+
600
+ ```json5
601
+ {
602
+ channels: {
603
+ matrix: {
604
+ homeserver: "http://matrix-synapse:8008",
605
+ allowPrivateNetwork: true,
606
+ accessToken: "syt_internal_xxx",
607
+ },
608
+ },
609
+ }
610
+ ```
611
+
612
+ CLI setup example:
613
+
614
+ ```bash
615
+ quantumclaw matrix account add \
616
+ --account ops \
617
+ --homeserver http://matrix-synapse:8008 \
618
+ --allow-private-network \
619
+ --access-token syt_ops_xxx
620
+ ```
621
+
622
+ This opt-in only allows trusted private/internal targets. Public cleartext homeservers such as
623
+ `http://matrix.example.org:8008` remain blocked. Prefer `https://` whenever possible.
624
+
625
+ ## Target resolution
626
+
627
+ Matrix accepts these target forms anywhere QuantumClaw asks you for a room or user target:
628
+
629
+ - Users: `@user:server`, `user:@user:server`, or `matrix:user:@user:server`
630
+ - Rooms: `!room:server`, `room:!room:server`, or `matrix:room:!room:server`
631
+ - Aliases: `#alias:server`, `channel:#alias:server`, or `matrix:channel:#alias:server`
632
+
633
+ Live directory lookup uses the logged-in Matrix account:
634
+
635
+ - User lookups query the Matrix user directory on that homeserver.
636
+ - Room lookups accept explicit room IDs and aliases directly, then fall back to searching joined room names for that account.
637
+ - Joined-room name lookup is best-effort. If a room name cannot be resolved to an ID or alias, it is ignored by runtime allowlist resolution.
638
+
639
+ ## Configuration reference
640
+
641
+ - `enabled`: enable or disable the channel.
642
+ - `name`: optional label for the account.
643
+ - `defaultAccount`: preferred account ID when multiple Matrix accounts are configured.
644
+ - `homeserver`: homeserver URL, for example `https://matrix.example.org`.
645
+ - `allowPrivateNetwork`: allow this Matrix account to connect to private/internal homeservers. Enable this when the homeserver resolves to `localhost`, a LAN/Tailscale IP, or an internal host such as `matrix-synapse`.
646
+ - `userId`: full Matrix user ID, for example `@bot:example.org`.
647
+ - `accessToken`: access token for token-based auth.
648
+ - `password`: password for password-based login.
649
+ - `deviceId`: explicit Matrix device ID.
650
+ - `deviceName`: device display name for password login.
651
+ - `avatarUrl`: stored self-avatar URL for profile sync and `set-profile` updates.
652
+ - `initialSyncLimit`: startup sync event limit.
653
+ - `encryption`: enable E2EE.
654
+ - `allowlistOnly`: force allowlist-only behavior for DMs and rooms.
655
+ - `groupPolicy`: `open`, `allowlist`, or `disabled`.
656
+ - `groupAllowFrom`: allowlist of user IDs for room traffic.
657
+ - `groupAllowFrom` entries should be full Matrix user IDs. Unresolved names are ignored at runtime.
658
+ - `replyToMode`: `off`, `first`, or `all`.
659
+ - `threadReplies`: `off`, `inbound`, or `always`.
660
+ - `threadBindings`: per-channel overrides for thread-bound session routing and lifecycle.
661
+ - `startupVerification`: automatic self-verification request mode on startup (`if-unverified`, `off`).
662
+ - `startupVerificationCooldownHours`: cooldown before retrying automatic startup verification requests.
663
+ - `textChunkLimit`: outbound message chunk size.
664
+ - `chunkMode`: `length` or `newline`.
665
+ - `responsePrefix`: optional message prefix for outbound replies.
666
+ - `ackReaction`: optional ack reaction override for this channel/account.
667
+ - `ackReactionScope`: optional ack reaction scope override (`group-mentions`, `group-all`, `direct`, `all`, `none`, `off`).
668
+ - `reactionNotifications`: inbound reaction notification mode (`own`, `off`).
669
+ - `mediaMaxMb`: outbound media size cap in MB.
670
+ - `autoJoin`: invite auto-join policy (`always`, `allowlist`, `off`). Default: `off`.
671
+ - `autoJoinAllowlist`: rooms/aliases allowed when `autoJoin` is `allowlist`. Alias entries are resolved to room IDs during invite handling; QuantumClaw does not trust alias state claimed by the invited room.
672
+ - `dm`: DM policy block (`enabled`, `policy`, `allowFrom`).
673
+ - `dm.allowFrom` entries should be full Matrix user IDs unless you already resolved them through live directory lookup.
674
+ - `accounts`: named per-account overrides. Top-level `channels.matrix` values act as defaults for these entries.
675
+ - `groups`: per-room policy map. Prefer room IDs or aliases; unresolved room names are ignored at runtime. Session/group identity uses the stable room ID after resolution, while human-readable labels still come from room names.
676
+ - `rooms`: legacy alias for `groups`.
677
+ - `actions`: per-action tool gating (`messages`, `reactions`, `pins`, `profile`, `memberInfo`, `channelInfo`, `verification`).