@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,1056 @@
1
+ ---
2
+ summary: "Hooks: event-driven automation for commands and lifecycle events"
3
+ read_when:
4
+ - You want event-driven automation for /new, /reset, /stop, and agent lifecycle events
5
+ - You want to build, install, or debug hooks
6
+ title: "Hooks"
7
+ ---
8
+
9
+ # Hooks
10
+
11
+ Hooks provide an extensible event-driven system for automating actions in response to agent commands and events. Hooks are automatically discovered from directories and can be inspected with `quantumclaw hooks`, while hook-pack installation and updates now go through `quantumclaw plugins`.
12
+
13
+ ## Getting Oriented
14
+
15
+ Hooks are small scripts that run when something happens. There are two kinds:
16
+
17
+ - **Hooks** (this page): run inside the Gateway when agent events fire, like `/new`, `/reset`, `/stop`, or lifecycle events.
18
+ - **Webhooks**: external HTTP webhooks that let other systems trigger work in QuantumClaw. See [Webhook Hooks](/automation/webhook) or use `quantumclaw webhooks` for Gmail helper commands.
19
+
20
+ Hooks can also be bundled inside plugins; see [Plugin hooks](/plugins/architecture#provider-runtime-hooks). `quantumclaw hooks list` shows both standalone hooks and plugin-managed hooks.
21
+
22
+ Common uses:
23
+
24
+ - Save a memory snapshot when you reset a session
25
+ - Keep an audit trail of commands for troubleshooting or compliance
26
+ - Trigger follow-up automation when a session starts or ends
27
+ - Write files into the agent workspace or call external APIs when events fire
28
+
29
+ If you can write a small TypeScript function, you can write a hook. Managed and bundled hooks are trusted local code. Workspace hooks are discovered automatically, but QuantumClaw keeps them disabled until you explicitly enable them via the CLI or config.
30
+
31
+ ## Overview
32
+
33
+ The hooks system allows you to:
34
+
35
+ - Save session context to memory when `/new` is issued
36
+ - Log all commands for auditing
37
+ - Trigger custom automations on agent lifecycle events
38
+ - Extend QuantumClaw's behavior without modifying core code
39
+
40
+ ## Getting Started
41
+
42
+ ### Bundled Hooks
43
+
44
+ QuantumClaw ships with four bundled hooks that are automatically discovered:
45
+
46
+ - **💾 session-memory**: Saves session context to your agent workspace (default `~/.quantumclaw/workspace/memory/`) when you issue `/new`
47
+ - **📎 bootstrap-extra-files**: Injects additional workspace bootstrap files from configured glob/path patterns during `agent:bootstrap`
48
+ - **📝 command-logger**: Logs all command events to `~/.quantumclaw/logs/commands.log`
49
+ - **🚀 boot-md**: Runs `BOOT.md` when the gateway starts (requires internal hooks enabled)
50
+
51
+ List available hooks:
52
+
53
+ ```bash
54
+ quantumclaw hooks list
55
+ ```
56
+
57
+ Enable a hook:
58
+
59
+ ```bash
60
+ quantumclaw hooks enable session-memory
61
+ ```
62
+
63
+ Check hook status:
64
+
65
+ ```bash
66
+ quantumclaw hooks check
67
+ ```
68
+
69
+ Get detailed information:
70
+
71
+ ```bash
72
+ quantumclaw hooks info session-memory
73
+ ```
74
+
75
+ ### Onboarding
76
+
77
+ During onboarding (`quantumclaw onboard`), you'll be prompted to enable recommended hooks. The wizard automatically discovers eligible hooks and presents them for selection.
78
+
79
+ ### Trust Boundary
80
+
81
+ Hooks run inside the Gateway process. Treat bundled hooks, managed hooks, and `hooks.internal.load.extraDirs` as trusted local code. Workspace hooks under `<workspace>/hooks/` are repo-local code, so QuantumClaw requires an explicit enable step before loading them.
82
+
83
+ ## Hook Discovery
84
+
85
+ Hooks are automatically discovered from these directories:
86
+
87
+ 1. **Workspace hooks**: `<workspace>/hooks/` (per-agent, disabled by default until explicitly enabled)
88
+ 2. **Managed hooks**: `~/.quantumclaw/hooks/` (user-installed, shared across workspaces)
89
+ 3. **Extra hook directories**: `hooks.internal.load.extraDirs` (operator-configured shared hook folders)
90
+ 4. **Bundled hooks**: `<quantumclaw>/dist/hooks/bundled/` (shipped with QuantumClaw)
91
+
92
+ Workspace hooks can add new hook names for a repo, but they cannot override bundled, managed, or plugin-provided hooks with the same name.
93
+
94
+ Managed hook directories can be either a **single hook** or a **hook pack** (package directory).
95
+
96
+ Each hook is a directory containing:
97
+
98
+ ```
99
+ my-hook/
100
+ ├── HOOK.md # Metadata + documentation
101
+ └── handler.ts # Handler implementation
102
+ ```
103
+
104
+ ## Hook Packs (npm/archives)
105
+
106
+ Hook packs are standard npm packages that export one or more hooks via `quantumclaw.hooks` in
107
+ `package.json`. Install them with:
108
+
109
+ ```bash
110
+ quantumclaw plugins install <path-or-spec>
111
+ ```
112
+
113
+ Npm specs are registry-only (package name + optional exact version or dist-tag).
114
+ Git/URL/file specs and semver ranges are rejected.
115
+
116
+ Bare specs and `@latest` stay on the stable track. If npm resolves either of
117
+ those to a prerelease, QuantumClaw stops and asks you to opt in explicitly with a
118
+ prerelease tag such as `@beta`/`@rc` or an exact prerelease version.
119
+
120
+ Example `package.json`:
121
+
122
+ ```json
123
+ {
124
+ "name": "@acme/my-hooks",
125
+ "version": "0.1.0",
126
+ "quantumclaw": {
127
+ "hooks": ["./hooks/my-hook", "./hooks/other-hook"]
128
+ }
129
+ }
130
+ ```
131
+
132
+ Each entry points to a hook directory containing `HOOK.md` and `handler.ts` (or `index.ts`).
133
+ Hook packs can ship dependencies; they will be installed under `~/.quantumclaw/hooks/<id>`.
134
+ Each `quantumclaw.hooks` entry must stay inside the package directory after symlink
135
+ resolution; entries that escape are rejected.
136
+
137
+ Security note: `quantumclaw plugins install` installs hook-pack dependencies with `npm install --ignore-scripts`
138
+ (no lifecycle scripts). Keep hook pack dependency trees "pure JS/TS" and avoid packages that rely
139
+ on `postinstall` builds.
140
+
141
+ ## Hook Structure
142
+
143
+ ### HOOK.md Format
144
+
145
+ The `HOOK.md` file contains metadata in YAML frontmatter plus Markdown documentation:
146
+
147
+ ```markdown
148
+ ---
149
+ name: my-hook
150
+ description: "Short description of what this hook does"
151
+ homepage: https://docs.quantumclaw.ai/automation/hooks#my-hook
152
+ metadata:
153
+ { "quantumclaw": { "emoji": "🔗", "events": ["command:new"], "requires": { "bins": ["node"] } } }
154
+ ---
155
+
156
+ # My Hook
157
+
158
+ Detailed documentation goes here...
159
+
160
+ ## What It Does
161
+
162
+ - Listens for `/new` commands
163
+ - Performs some action
164
+ - Logs the result
165
+
166
+ ## Requirements
167
+
168
+ - Node.js must be installed
169
+
170
+ ## Configuration
171
+
172
+ No configuration needed.
173
+ ```
174
+
175
+ ### Metadata Fields
176
+
177
+ The `metadata.quantumclaw` object supports:
178
+
179
+ - **`emoji`**: Display emoji for CLI (e.g., `"💾"`)
180
+ - **`events`**: Array of events to listen for (e.g., `["command:new", "command:reset"]`)
181
+ - **`export`**: Named export to use (defaults to `"default"`)
182
+ - **`homepage`**: Documentation URL
183
+ - **`requires`**: Optional requirements
184
+ - **`bins`**: Required binaries on PATH (e.g., `["git", "node"]`)
185
+ - **`anyBins`**: At least one of these binaries must be present
186
+ - **`env`**: Required environment variables
187
+ - **`config`**: Required config paths (e.g., `["workspace.dir"]`)
188
+ - **`os`**: Required platforms (e.g., `["darwin", "linux"]`)
189
+ - **`always`**: Bypass eligibility checks (boolean)
190
+ - **`install`**: Installation methods (for bundled hooks: `[{"id":"bundled","kind":"bundled"}]`)
191
+
192
+ ### Handler Implementation
193
+
194
+ The `handler.ts` file exports a `HookHandler` function:
195
+
196
+ ```typescript
197
+ const myHandler = async (event) => {
198
+ // Only trigger on 'new' command
199
+ if (event.type !== "command" || event.action !== "new") {
200
+ return;
201
+ }
202
+
203
+ console.log(`[my-hook] New command triggered`);
204
+ console.log(` Session: ${event.sessionKey}`);
205
+ console.log(` Timestamp: ${event.timestamp.toISOString()}`);
206
+
207
+ // Your custom logic here
208
+
209
+ // Optionally send message to user
210
+ event.messages.push("✨ My hook executed!");
211
+ };
212
+
213
+ export default myHandler;
214
+ ```
215
+
216
+ #### Event Context
217
+
218
+ Each event includes:
219
+
220
+ ```typescript
221
+ {
222
+ type: 'command' | 'session' | 'agent' | 'gateway' | 'message',
223
+ action: string, // e.g., 'new', 'reset', 'stop', 'received', 'sent'
224
+ sessionKey: string, // Session identifier
225
+ timestamp: Date, // When the event occurred
226
+ messages: string[], // Push messages here to send to user
227
+ context: {
228
+ // Command events:
229
+ sessionEntry?: SessionEntry,
230
+ sessionId?: string,
231
+ sessionFile?: string,
232
+ commandSource?: string, // e.g., 'whatsapp', 'telegram'
233
+ senderId?: string,
234
+ workspaceDir?: string,
235
+ bootstrapFiles?: WorkspaceBootstrapFile[],
236
+ cfg?: QuantumClawConfig,
237
+ // Message events (see Message Events section for full details):
238
+ from?: string, // message:received
239
+ to?: string, // message:sent
240
+ content?: string,
241
+ channelId?: string,
242
+ success?: boolean, // message:sent
243
+ }
244
+ }
245
+ ```
246
+
247
+ ## Event Types
248
+
249
+ ### Command Events
250
+
251
+ Triggered when agent commands are issued:
252
+
253
+ - **`command`**: All command events (general listener)
254
+ - **`command:new`**: When `/new` command is issued
255
+ - **`command:reset`**: When `/reset` command is issued
256
+ - **`command:stop`**: When `/stop` command is issued
257
+
258
+ ### Session Events
259
+
260
+ - **`session:compact:before`**: Right before compaction summarizes history
261
+ - **`session:compact:after`**: After compaction completes with summary metadata
262
+
263
+ Internal hook payloads emit these as `type: "session"` with `action: "compact:before"` / `action: "compact:after"`; listeners subscribe with the combined keys above.
264
+ Specific handler registration uses the literal key format `${type}:${action}`. For these events, register `session:compact:before` and `session:compact:after`.
265
+
266
+ ### Agent Events
267
+
268
+ - **`agent:bootstrap`**: Before workspace bootstrap files are injected (hooks may mutate `context.bootstrapFiles`)
269
+
270
+ ### Gateway Events
271
+
272
+ Triggered when the gateway starts:
273
+
274
+ - **`gateway:startup`**: After channels start and hooks are loaded
275
+
276
+ ### Message Events
277
+
278
+ Triggered when messages are received or sent:
279
+
280
+ - **`message`**: All message events (general listener)
281
+ - **`message:received`**: When an inbound message is received from any channel. Fires early in processing before media understanding. Content may contain raw placeholders like `<media:audio>` for media attachments that haven't been processed yet.
282
+ - **`message:transcribed`**: When a message has been fully processed, including audio transcription and link understanding. At this point, `transcript` contains the full transcript text for audio messages. Use this hook when you need access to transcribed audio content.
283
+ - **`message:preprocessed`**: Fires for every message after all media + link understanding completes, giving hooks access to the fully enriched body (transcripts, image descriptions, link summaries) before the agent sees it.
284
+ - **`message:sent`**: When an outbound message is successfully sent
285
+
286
+ #### Message Event Context
287
+
288
+ Message events include rich context about the message:
289
+
290
+ ```typescript
291
+ // message:received context
292
+ {
293
+ from: string, // Sender identifier (phone number, user ID, etc.)
294
+ content: string, // Message content
295
+ timestamp?: number, // Unix timestamp when received
296
+ channelId: string, // Channel (e.g., "whatsapp", "telegram", "discord")
297
+ accountId?: string, // Provider account ID for multi-account setups
298
+ conversationId?: string, // Chat/conversation ID
299
+ messageId?: string, // Message ID from the provider
300
+ metadata?: { // Additional provider-specific data
301
+ to?: string,
302
+ provider?: string,
303
+ surface?: string,
304
+ threadId?: string,
305
+ senderId?: string,
306
+ senderName?: string,
307
+ senderUsername?: string,
308
+ senderE164?: string,
309
+ }
310
+ }
311
+
312
+ // message:sent context
313
+ {
314
+ to: string, // Recipient identifier
315
+ content: string, // Message content that was sent
316
+ success: boolean, // Whether the send succeeded
317
+ error?: string, // Error message if sending failed
318
+ channelId: string, // Channel (e.g., "whatsapp", "telegram", "discord")
319
+ accountId?: string, // Provider account ID
320
+ conversationId?: string, // Chat/conversation ID
321
+ messageId?: string, // Message ID returned by the provider
322
+ isGroup?: boolean, // Whether this outbound message belongs to a group/channel context
323
+ groupId?: string, // Group/channel identifier for correlation with message:received
324
+ }
325
+
326
+ // message:transcribed context
327
+ {
328
+ body?: string, // Raw inbound body before enrichment
329
+ bodyForAgent?: string, // Enriched body visible to the agent
330
+ transcript: string, // Audio transcript text
331
+ channelId: string, // Channel (e.g., "telegram", "whatsapp")
332
+ conversationId?: string,
333
+ messageId?: string,
334
+ }
335
+
336
+ // message:preprocessed context
337
+ {
338
+ body?: string, // Raw inbound body
339
+ bodyForAgent?: string, // Final enriched body after media/link understanding
340
+ transcript?: string, // Transcript when audio was present
341
+ channelId: string, // Channel (e.g., "telegram", "whatsapp")
342
+ conversationId?: string,
343
+ messageId?: string,
344
+ isGroup?: boolean,
345
+ groupId?: string,
346
+ }
347
+ ```
348
+
349
+ #### Example: Message Logger Hook
350
+
351
+ ```typescript
352
+ const isMessageReceivedEvent = (event: { type: string; action: string }) =>
353
+ event.type === "message" && event.action === "received";
354
+ const isMessageSentEvent = (event: { type: string; action: string }) =>
355
+ event.type === "message" && event.action === "sent";
356
+
357
+ const handler = async (event) => {
358
+ if (isMessageReceivedEvent(event as { type: string; action: string })) {
359
+ console.log(`[message-logger] Received from ${event.context.from}: ${event.context.content}`);
360
+ } else if (isMessageSentEvent(event as { type: string; action: string })) {
361
+ console.log(`[message-logger] Sent to ${event.context.to}: ${event.context.content}`);
362
+ }
363
+ };
364
+
365
+ export default handler;
366
+ ```
367
+
368
+ ### Tool Result Hooks (Plugin API)
369
+
370
+ These hooks are not event-stream listeners; they let plugins synchronously adjust tool results before QuantumClaw persists them.
371
+
372
+ - **`tool_result_persist`**: transform tool results before they are written to the session transcript. Must be synchronous; return the updated tool result payload or `undefined` to keep it as-is. See [Agent Loop](/concepts/agent-loop).
373
+
374
+ ### Plugin Hook Events
375
+
376
+ Compaction lifecycle hooks exposed through the plugin hook runner:
377
+
378
+ - **`before_compaction`**: Runs before compaction with count/token metadata
379
+ - **`after_compaction`**: Runs after compaction with compaction summary metadata
380
+
381
+ ### Future Events
382
+
383
+ Planned event types:
384
+
385
+ - **`session:start`**: When a new session begins
386
+ - **`session:end`**: When a session ends
387
+ - **`agent:error`**: When an agent encounters an error
388
+
389
+ ## Creating Custom Hooks
390
+
391
+ ### 1. Choose Location
392
+
393
+ - **Workspace hooks** (`<workspace>/hooks/`): Per-agent, highest precedence
394
+ - **Managed hooks** (`~/.quantumclaw/hooks/`): Shared across workspaces
395
+
396
+ ### 2. Create Directory Structure
397
+
398
+ ```bash
399
+ mkdir -p ~/.quantumclaw/hooks/my-hook
400
+ cd ~/.quantumclaw/hooks/my-hook
401
+ ```
402
+
403
+ ### 3. Create HOOK.md
404
+
405
+ ```markdown
406
+ ---
407
+ name: my-hook
408
+ description: "Does something useful"
409
+ metadata: { "quantumclaw": { "emoji": "🎯", "events": ["command:new"] } }
410
+ ---
411
+
412
+ # My Custom Hook
413
+
414
+ This hook does something useful when you issue `/new`.
415
+ ```
416
+
417
+ ### 4. Create handler.ts
418
+
419
+ ```typescript
420
+ const handler = async (event) => {
421
+ if (event.type !== "command" || event.action !== "new") {
422
+ return;
423
+ }
424
+
425
+ console.log("[my-hook] Running!");
426
+ // Your logic here
427
+ };
428
+
429
+ export default handler;
430
+ ```
431
+
432
+ ### 5. Enable and Test
433
+
434
+ ```bash
435
+ # Verify hook is discovered
436
+ quantumclaw hooks list
437
+
438
+ # Enable it
439
+ quantumclaw hooks enable my-hook
440
+
441
+ # Restart your gateway process (menu bar app restart on macOS, or restart your dev process)
442
+
443
+ # Trigger the event
444
+ # Send /new via your messaging channel
445
+ ```
446
+
447
+ ## Configuration
448
+
449
+ ### New Config Format (Recommended)
450
+
451
+ ```json
452
+ {
453
+ "hooks": {
454
+ "internal": {
455
+ "enabled": true,
456
+ "entries": {
457
+ "session-memory": { "enabled": true },
458
+ "command-logger": { "enabled": false }
459
+ }
460
+ }
461
+ }
462
+ }
463
+ ```
464
+
465
+ ### Per-Hook Configuration
466
+
467
+ Hooks can have custom configuration:
468
+
469
+ ```json
470
+ {
471
+ "hooks": {
472
+ "internal": {
473
+ "enabled": true,
474
+ "entries": {
475
+ "my-hook": {
476
+ "enabled": true,
477
+ "env": {
478
+ "MY_CUSTOM_VAR": "value"
479
+ }
480
+ }
481
+ }
482
+ }
483
+ }
484
+ }
485
+ ```
486
+
487
+ ### Extra Directories
488
+
489
+ Load hooks from additional directories:
490
+
491
+ ```json
492
+ {
493
+ "hooks": {
494
+ "internal": {
495
+ "enabled": true,
496
+ "load": {
497
+ "extraDirs": ["/path/to/more/hooks"]
498
+ }
499
+ }
500
+ }
501
+ }
502
+ ```
503
+
504
+ ### Legacy Config Format (Still Supported)
505
+
506
+ The old config format still works for backwards compatibility:
507
+
508
+ ```json
509
+ {
510
+ "hooks": {
511
+ "internal": {
512
+ "enabled": true,
513
+ "handlers": [
514
+ {
515
+ "event": "command:new",
516
+ "module": "./hooks/handlers/my-handler.ts",
517
+ "export": "default"
518
+ }
519
+ ]
520
+ }
521
+ }
522
+ }
523
+ ```
524
+
525
+ Note: `module` must be a workspace-relative path. Absolute paths and traversal outside the workspace are rejected.
526
+
527
+ **Migration**: Use the new discovery-based system for new hooks. Legacy handlers are loaded after directory-based hooks.
528
+
529
+ ## CLI Commands
530
+
531
+ ### List Hooks
532
+
533
+ ```bash
534
+ # List all hooks
535
+ quantumclaw hooks list
536
+
537
+ # Show only eligible hooks
538
+ quantumclaw hooks list --eligible
539
+
540
+ # Verbose output (show missing requirements)
541
+ quantumclaw hooks list --verbose
542
+
543
+ # JSON output
544
+ quantumclaw hooks list --json
545
+ ```
546
+
547
+ ### Hook Information
548
+
549
+ ```bash
550
+ # Show detailed info about a hook
551
+ quantumclaw hooks info session-memory
552
+
553
+ # JSON output
554
+ quantumclaw hooks info session-memory --json
555
+ ```
556
+
557
+ ### Check Eligibility
558
+
559
+ ```bash
560
+ # Show eligibility summary
561
+ quantumclaw hooks check
562
+
563
+ # JSON output
564
+ quantumclaw hooks check --json
565
+ ```
566
+
567
+ ### Enable/Disable
568
+
569
+ ```bash
570
+ # Enable a hook
571
+ quantumclaw hooks enable session-memory
572
+
573
+ # Disable a hook
574
+ quantumclaw hooks disable command-logger
575
+ ```
576
+
577
+ ## Bundled hook reference
578
+
579
+ ### session-memory
580
+
581
+ Saves session context to memory when you issue `/new`.
582
+
583
+ **Events**: `command:new`
584
+
585
+ **Requirements**: `workspace.dir` must be configured
586
+
587
+ **Output**: `<workspace>/memory/YYYY-MM-DD-slug.md` (defaults to `~/.quantumclaw/workspace`)
588
+
589
+ **What it does**:
590
+
591
+ 1. Uses the pre-reset session entry to locate the correct transcript
592
+ 2. Extracts the last 15 lines of conversation
593
+ 3. Uses LLM to generate a descriptive filename slug
594
+ 4. Saves session metadata to a dated memory file
595
+
596
+ **Example output**:
597
+
598
+ ```markdown
599
+ # Session: 2026-01-16 14:30:00 UTC
600
+
601
+ - **Session Key**: agent:main:main
602
+ - **Session ID**: abc123def456
603
+ - **Source**: telegram
604
+ ```
605
+
606
+ **Filename examples**:
607
+
608
+ - `2026-01-16-vendor-pitch.md`
609
+ - `2026-01-16-api-design.md`
610
+ - `2026-01-16-1430.md` (fallback timestamp if slug generation fails)
611
+
612
+ **Enable**:
613
+
614
+ ```bash
615
+ quantumclaw hooks enable session-memory
616
+ ```
617
+
618
+ ### bootstrap-extra-files
619
+
620
+ Injects additional bootstrap files (for example monorepo-local `AGENTS.md` / `TOOLS.md`) during `agent:bootstrap`.
621
+
622
+ **Events**: `agent:bootstrap`
623
+
624
+ **Requirements**: `workspace.dir` must be configured
625
+
626
+ **Output**: No files written; bootstrap context is modified in-memory only.
627
+
628
+ **Config**:
629
+
630
+ ```json
631
+ {
632
+ "hooks": {
633
+ "internal": {
634
+ "enabled": true,
635
+ "entries": {
636
+ "bootstrap-extra-files": {
637
+ "enabled": true,
638
+ "paths": ["packages/*/AGENTS.md", "packages/*/TOOLS.md"]
639
+ }
640
+ }
641
+ }
642
+ }
643
+ }
644
+ ```
645
+
646
+ **Notes**:
647
+
648
+ - Paths are resolved relative to workspace.
649
+ - Files must stay inside workspace (realpath-checked).
650
+ - Only recognized bootstrap basenames are loaded.
651
+ - Subagent allowlist is preserved (`AGENTS.md` and `TOOLS.md` only).
652
+
653
+ **Enable**:
654
+
655
+ ```bash
656
+ quantumclaw hooks enable bootstrap-extra-files
657
+ ```
658
+
659
+ ### command-logger
660
+
661
+ Logs all command events to a centralized audit file.
662
+
663
+ **Events**: `command`
664
+
665
+ **Requirements**: None
666
+
667
+ **Output**: `~/.quantumclaw/logs/commands.log`
668
+
669
+ **What it does**:
670
+
671
+ 1. Captures event details (command action, timestamp, session key, sender ID, source)
672
+ 2. Appends to log file in JSONL format
673
+ 3. Runs silently in the background
674
+
675
+ **Example log entries**:
676
+
677
+ ```jsonl
678
+ {"timestamp":"2026-01-16T14:30:00.000Z","action":"new","sessionKey":"agent:main:main","senderId":"+1234567890","source":"telegram"}
679
+ {"timestamp":"2026-01-16T15:45:22.000Z","action":"stop","sessionKey":"agent:main:main","senderId":"user@example.com","source":"whatsapp"}
680
+ ```
681
+
682
+ **View logs**:
683
+
684
+ ```bash
685
+ # View recent commands
686
+ tail -n 20 ~/.quantumclaw/logs/commands.log
687
+
688
+ # Pretty-print with jq
689
+ cat ~/.quantumclaw/logs/commands.log | jq .
690
+
691
+ # Filter by action
692
+ grep '"action":"new"' ~/.quantumclaw/logs/commands.log | jq .
693
+ ```
694
+
695
+ **Enable**:
696
+
697
+ ```bash
698
+ quantumclaw hooks enable command-logger
699
+ ```
700
+
701
+ ### boot-md
702
+
703
+ Runs `BOOT.md` when the gateway starts (after channels start).
704
+ Internal hooks must be enabled for this to run.
705
+
706
+ **Events**: `gateway:startup`
707
+
708
+ **Requirements**: `workspace.dir` must be configured
709
+
710
+ **What it does**:
711
+
712
+ 1. Reads `BOOT.md` from your workspace
713
+ 2. Runs the instructions via the agent runner
714
+ 3. Sends any requested outbound messages via the message tool
715
+
716
+ **Enable**:
717
+
718
+ ```bash
719
+ quantumclaw hooks enable boot-md
720
+ ```
721
+
722
+ ## Best Practices
723
+
724
+ ### Keep Handlers Fast
725
+
726
+ Hooks run during command processing. Keep them lightweight:
727
+
728
+ ```typescript
729
+ // ✓ Good - async work, returns immediately
730
+ const handler: HookHandler = async (event) => {
731
+ void processInBackground(event); // Fire and forget
732
+ };
733
+
734
+ // ✗ Bad - blocks command processing
735
+ const handler: HookHandler = async (event) => {
736
+ await slowDatabaseQuery(event);
737
+ await evenSlowerAPICall(event);
738
+ };
739
+ ```
740
+
741
+ ### Handle Errors Gracefully
742
+
743
+ Always wrap risky operations:
744
+
745
+ ```typescript
746
+ const handler: HookHandler = async (event) => {
747
+ try {
748
+ await riskyOperation(event);
749
+ } catch (err) {
750
+ console.error("[my-handler] Failed:", err instanceof Error ? err.message : String(err));
751
+ // Don't throw - let other handlers run
752
+ }
753
+ };
754
+ ```
755
+
756
+ ### Filter Events Early
757
+
758
+ Return early if the event isn't relevant:
759
+
760
+ ```typescript
761
+ const handler: HookHandler = async (event) => {
762
+ // Only handle 'new' commands
763
+ if (event.type !== "command" || event.action !== "new") {
764
+ return;
765
+ }
766
+
767
+ // Your logic here
768
+ };
769
+ ```
770
+
771
+ ### Use Specific Event Keys
772
+
773
+ Specify exact events in metadata when possible:
774
+
775
+ ```yaml
776
+ metadata: { "quantumclaw": { "events": ["command:new"] } } # Specific
777
+ ```
778
+
779
+ Rather than:
780
+
781
+ ```yaml
782
+ metadata: { "quantumclaw": { "events": ["command"] } } # General - more overhead
783
+ ```
784
+
785
+ ## Debugging
786
+
787
+ ### Enable Hook Logging
788
+
789
+ The gateway logs hook loading at startup:
790
+
791
+ ```
792
+ Registered hook: session-memory -> command:new
793
+ Registered hook: bootstrap-extra-files -> agent:bootstrap
794
+ Registered hook: command-logger -> command
795
+ Registered hook: boot-md -> gateway:startup
796
+ ```
797
+
798
+ ### Check Discovery
799
+
800
+ List all discovered hooks:
801
+
802
+ ```bash
803
+ quantumclaw hooks list --verbose
804
+ ```
805
+
806
+ ### Check Registration
807
+
808
+ In your handler, log when it's called:
809
+
810
+ ```typescript
811
+ const handler: HookHandler = async (event) => {
812
+ console.log("[my-handler] Triggered:", event.type, event.action);
813
+ // Your logic
814
+ };
815
+ ```
816
+
817
+ ### Verify Eligibility
818
+
819
+ Check why a hook isn't eligible:
820
+
821
+ ```bash
822
+ quantumclaw hooks info my-hook
823
+ ```
824
+
825
+ Look for missing requirements in the output.
826
+
827
+ ## Testing
828
+
829
+ ### Gateway Logs
830
+
831
+ Monitor gateway logs to see hook execution:
832
+
833
+ ```bash
834
+ # macOS
835
+ ./scripts/clawlog.sh -f
836
+
837
+ # Other platforms
838
+ tail -f ~/.quantumclaw/gateway.log
839
+ ```
840
+
841
+ ### Test Hooks Directly
842
+
843
+ Test your handlers in isolation:
844
+
845
+ ```typescript
846
+ import { test } from "vitest";
847
+ import myHandler from "./hooks/my-hook/handler.js";
848
+
849
+ test("my handler works", async () => {
850
+ const event = {
851
+ type: "command",
852
+ action: "new",
853
+ sessionKey: "test-session",
854
+ timestamp: new Date(),
855
+ messages: [],
856
+ context: { foo: "bar" },
857
+ };
858
+
859
+ await myHandler(event);
860
+
861
+ // Assert side effects
862
+ });
863
+ ```
864
+
865
+ ## Architecture
866
+
867
+ ### Core Components
868
+
869
+ - **`src/hooks/types.ts`**: Type definitions
870
+ - **`src/hooks/workspace.ts`**: Directory scanning and loading
871
+ - **`src/hooks/frontmatter.ts`**: HOOK.md metadata parsing
872
+ - **`src/hooks/config.ts`**: Eligibility checking
873
+ - **`src/hooks/hooks-status.ts`**: Status reporting
874
+ - **`src/hooks/loader.ts`**: Dynamic module loader
875
+ - **`src/cli/hooks-cli.ts`**: CLI commands
876
+ - **`src/gateway/server-startup.ts`**: Loads hooks at gateway start
877
+ - **`src/auto-reply/reply/commands-core.ts`**: Triggers command events
878
+
879
+ ### Discovery Flow
880
+
881
+ ```
882
+ Gateway startup
883
+
884
+ Scan directories (workspace → managed → bundled)
885
+
886
+ Parse HOOK.md files
887
+
888
+ Check eligibility (bins, env, config, os)
889
+
890
+ Load handlers from eligible hooks
891
+
892
+ Register handlers for events
893
+ ```
894
+
895
+ ### Event Flow
896
+
897
+ ```
898
+ User sends /new
899
+
900
+ Command validation
901
+
902
+ Create hook event
903
+
904
+ Trigger hook (all registered handlers)
905
+
906
+ Command processing continues
907
+
908
+ Session reset
909
+ ```
910
+
911
+ ## Troubleshooting
912
+
913
+ ### Hook Not Discovered
914
+
915
+ 1. Check directory structure:
916
+
917
+ ```bash
918
+ ls -la ~/.quantumclaw/hooks/my-hook/
919
+ # Should show: HOOK.md, handler.ts
920
+ ```
921
+
922
+ 2. Verify HOOK.md format:
923
+
924
+ ```bash
925
+ cat ~/.quantumclaw/hooks/my-hook/HOOK.md
926
+ # Should have YAML frontmatter with name and metadata
927
+ ```
928
+
929
+ 3. List all discovered hooks:
930
+
931
+ ```bash
932
+ quantumclaw hooks list
933
+ ```
934
+
935
+ ### Hook Not Eligible
936
+
937
+ Check requirements:
938
+
939
+ ```bash
940
+ quantumclaw hooks info my-hook
941
+ ```
942
+
943
+ Look for missing:
944
+
945
+ - Binaries (check PATH)
946
+ - Environment variables
947
+ - Config values
948
+ - OS compatibility
949
+
950
+ ### Hook Not Executing
951
+
952
+ 1. Verify hook is enabled:
953
+
954
+ ```bash
955
+ quantumclaw hooks list
956
+ # Should show ✓ next to enabled hooks
957
+ ```
958
+
959
+ 2. Restart your gateway process so hooks reload.
960
+
961
+ 3. Check gateway logs for errors:
962
+
963
+ ```bash
964
+ ./scripts/clawlog.sh | grep hook
965
+ ```
966
+
967
+ ### Handler Errors
968
+
969
+ Check for TypeScript/import errors:
970
+
971
+ ```bash
972
+ # Test import directly
973
+ node -e "import('./path/to/handler.ts').then(console.log)"
974
+ ```
975
+
976
+ ## Migration Guide
977
+
978
+ ### From Legacy Config to Discovery
979
+
980
+ **Before**:
981
+
982
+ ```json
983
+ {
984
+ "hooks": {
985
+ "internal": {
986
+ "enabled": true,
987
+ "handlers": [
988
+ {
989
+ "event": "command:new",
990
+ "module": "./hooks/handlers/my-handler.ts"
991
+ }
992
+ ]
993
+ }
994
+ }
995
+ }
996
+ ```
997
+
998
+ **After**:
999
+
1000
+ 1. Create hook directory:
1001
+
1002
+ ```bash
1003
+ mkdir -p ~/.quantumclaw/hooks/my-hook
1004
+ mv ./hooks/handlers/my-handler.ts ~/.quantumclaw/hooks/my-hook/handler.ts
1005
+ ```
1006
+
1007
+ 2. Create HOOK.md:
1008
+
1009
+ ```markdown
1010
+ ---
1011
+ name: my-hook
1012
+ description: "My custom hook"
1013
+ metadata: { "quantumclaw": { "emoji": "🎯", "events": ["command:new"] } }
1014
+ ---
1015
+
1016
+ # My Hook
1017
+
1018
+ Does something useful.
1019
+ ```
1020
+
1021
+ 3. Update config:
1022
+
1023
+ ```json
1024
+ {
1025
+ "hooks": {
1026
+ "internal": {
1027
+ "enabled": true,
1028
+ "entries": {
1029
+ "my-hook": { "enabled": true }
1030
+ }
1031
+ }
1032
+ }
1033
+ }
1034
+ ```
1035
+
1036
+ 4. Verify and restart your gateway process:
1037
+
1038
+ ```bash
1039
+ quantumclaw hooks list
1040
+ # Should show: 🎯 my-hook ✓
1041
+ ```
1042
+
1043
+ **Benefits of migration**:
1044
+
1045
+ - Automatic discovery
1046
+ - CLI management
1047
+ - Eligibility checking
1048
+ - Better documentation
1049
+ - Consistent structure
1050
+
1051
+ ## See Also
1052
+
1053
+ - [CLI Reference: hooks](/cli/hooks)
1054
+ - [Bundled Hooks README](https://github.com/quantumclaw/quantumclaw/tree/main/src/hooks/bundled)
1055
+ - [Webhook Hooks](/automation/webhook)
1056
+ - [Configuration](/gateway/configuration-reference#hooks)