@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,310 @@
1
+ ---
2
+ summary: "Session management rules, keys, and persistence for chats"
3
+ read_when:
4
+ - Modifying session handling or storage
5
+ title: "Session Management"
6
+ ---
7
+
8
+ # Session Management
9
+
10
+ QuantumClaw treats **one direct-chat session per agent** as primary. Direct chats collapse to `agent:<agentId>:<mainKey>` (default `main`), while group/channel chats get their own keys. `session.mainKey` is honored.
11
+
12
+ Use `session.dmScope` to control how **direct messages** are grouped:
13
+
14
+ - `main` (default): all DMs share the main session for continuity.
15
+ - `per-peer`: isolate by sender id across channels.
16
+ - `per-channel-peer`: isolate by channel + sender (recommended for multi-user inboxes).
17
+ - `per-account-channel-peer`: isolate by account + channel + sender (recommended for multi-account inboxes).
18
+ Use `session.identityLinks` to map provider-prefixed peer ids to a canonical identity so the same person shares a DM session across channels when using `per-peer`, `per-channel-peer`, or `per-account-channel-peer`.
19
+
20
+ ## Secure DM mode (recommended for multi-user setups)
21
+
22
+ > **Security Warning:** If your agent can receive DMs from **multiple people**, you should strongly consider enabling secure DM mode. Without it, all users share the same conversation context, which can leak private information between users.
23
+
24
+ **Example of the problem with default settings:**
25
+
26
+ - Alice (`<SENDER_A>`) messages your agent about a private topic (for example, a medical appointment)
27
+ - Bob (`<SENDER_B>`) messages your agent asking "What were we talking about?"
28
+ - Because both DMs share the same session, the model may answer Bob using Alice's prior context.
29
+
30
+ **The fix:** Set `dmScope` to isolate sessions per user:
31
+
32
+ ```json5
33
+ // ~/.quantumclaw/quantumclaw.json
34
+ {
35
+ session: {
36
+ // Secure DM mode: isolate DM context per channel + sender.
37
+ dmScope: "per-channel-peer",
38
+ },
39
+ }
40
+ ```
41
+
42
+ **When to enable this:**
43
+
44
+ - You have pairing approvals for more than one sender
45
+ - You use a DM allowlist with multiple entries
46
+ - You set `dmPolicy: "open"`
47
+ - Multiple phone numbers or accounts can message your agent
48
+
49
+ Notes:
50
+
51
+ - Default is `dmScope: "main"` for continuity (all DMs share the main session). This is fine for single-user setups.
52
+ - Local CLI onboarding writes `session.dmScope: "per-channel-peer"` by default when unset (existing explicit values are preserved).
53
+ - For multi-account inboxes on the same channel, prefer `per-account-channel-peer`.
54
+ - If the same person contacts you on multiple channels, use `session.identityLinks` to collapse their DM sessions into one canonical identity.
55
+ - You can verify your DM settings with `quantumclaw security audit` (see [security](/cli/security)).
56
+
57
+ ## Gateway is the source of truth
58
+
59
+ All session state is **owned by the gateway** (the “master” QuantumClaw). UI clients (macOS app, WebChat, etc.) must query the gateway for session lists and token counts instead of reading local files.
60
+
61
+ - In **remote mode**, the session store you care about lives on the remote gateway host, not your Mac.
62
+ - Token counts shown in UIs come from the gateway’s store fields (`inputTokens`, `outputTokens`, `totalTokens`, `contextTokens`). Clients do not parse JSONL transcripts to “fix up” totals.
63
+
64
+ ## Where state lives
65
+
66
+ - On the **gateway host**:
67
+ - Store file: `~/.quantumclaw/agents/<agentId>/sessions/sessions.json` (per agent).
68
+ - Transcripts: `~/.quantumclaw/agents/<agentId>/sessions/<SessionId>.jsonl` (Telegram topic sessions use `.../<SessionId>-topic-<threadId>.jsonl`).
69
+ - The store is a map `sessionKey -> { sessionId, updatedAt, ... }`. Deleting entries is safe; they are recreated on demand.
70
+ - Group entries may include `displayName`, `channel`, `subject`, `room`, and `space` to label sessions in UIs.
71
+ - Session entries include `origin` metadata (label + routing hints) so UIs can explain where a session came from.
72
+ - QuantumClaw does **not** read legacy Pi/Tau session folders.
73
+
74
+ ## Maintenance
75
+
76
+ QuantumClaw applies session-store maintenance to keep `sessions.json` and transcript artifacts bounded over time.
77
+
78
+ ### Defaults
79
+
80
+ - `session.maintenance.mode`: `warn`
81
+ - `session.maintenance.pruneAfter`: `30d`
82
+ - `session.maintenance.maxEntries`: `500`
83
+ - `session.maintenance.rotateBytes`: `10mb`
84
+ - `session.maintenance.resetArchiveRetention`: defaults to `pruneAfter` (`30d`)
85
+ - `session.maintenance.maxDiskBytes`: unset (disabled)
86
+ - `session.maintenance.highWaterBytes`: defaults to `80%` of `maxDiskBytes` when budgeting is enabled
87
+
88
+ ### How it works
89
+
90
+ Maintenance runs during session-store writes, and you can trigger it on demand with `quantumclaw sessions cleanup`.
91
+
92
+ - `mode: "warn"`: reports what would be evicted but does not mutate entries/transcripts.
93
+ - `mode: "enforce"`: applies cleanup in this order:
94
+ 1. prune stale entries older than `pruneAfter`
95
+ 2. cap entry count to `maxEntries` (oldest first)
96
+ 3. archive transcript files for removed entries that are no longer referenced
97
+ 4. purge old `*.deleted.<timestamp>` and `*.reset.<timestamp>` archives by retention policy
98
+ 5. rotate `sessions.json` when it exceeds `rotateBytes`
99
+ 6. if `maxDiskBytes` is set, enforce disk budget toward `highWaterBytes` (oldest artifacts first, then oldest sessions)
100
+
101
+ ### Performance caveat for large stores
102
+
103
+ Large session stores are common in high-volume setups. Maintenance work is write-path work, so very large stores can increase write latency.
104
+
105
+ What increases cost most:
106
+
107
+ - very high `session.maintenance.maxEntries` values
108
+ - long `pruneAfter` windows that keep stale entries around
109
+ - many transcript/archive artifacts in `~/.quantumclaw/agents/<agentId>/sessions/`
110
+ - enabling disk budgets (`maxDiskBytes`) without reasonable pruning/cap limits
111
+
112
+ What to do:
113
+
114
+ - use `mode: "enforce"` in production so growth is bounded automatically
115
+ - set both time and count limits (`pruneAfter` + `maxEntries`), not just one
116
+ - set `maxDiskBytes` + `highWaterBytes` for hard upper bounds in large deployments
117
+ - keep `highWaterBytes` meaningfully below `maxDiskBytes` (default is 80%)
118
+ - run `quantumclaw sessions cleanup --dry-run --json` after config changes to verify projected impact before enforcing
119
+ - for frequent active sessions, pass `--active-key` when running manual cleanup
120
+
121
+ ### Customize examples
122
+
123
+ Use a conservative enforce policy:
124
+
125
+ ```json5
126
+ {
127
+ session: {
128
+ maintenance: {
129
+ mode: "enforce",
130
+ pruneAfter: "45d",
131
+ maxEntries: 800,
132
+ rotateBytes: "20mb",
133
+ resetArchiveRetention: "14d",
134
+ },
135
+ },
136
+ }
137
+ ```
138
+
139
+ Enable a hard disk budget for the sessions directory:
140
+
141
+ ```json5
142
+ {
143
+ session: {
144
+ maintenance: {
145
+ mode: "enforce",
146
+ maxDiskBytes: "1gb",
147
+ highWaterBytes: "800mb",
148
+ },
149
+ },
150
+ }
151
+ ```
152
+
153
+ Tune for larger installs (example):
154
+
155
+ ```json5
156
+ {
157
+ session: {
158
+ maintenance: {
159
+ mode: "enforce",
160
+ pruneAfter: "14d",
161
+ maxEntries: 2000,
162
+ rotateBytes: "25mb",
163
+ maxDiskBytes: "2gb",
164
+ highWaterBytes: "1.6gb",
165
+ },
166
+ },
167
+ }
168
+ ```
169
+
170
+ Preview or force maintenance from CLI:
171
+
172
+ ```bash
173
+ quantumclaw sessions cleanup --dry-run
174
+ quantumclaw sessions cleanup --enforce
175
+ ```
176
+
177
+ ## Session pruning
178
+
179
+ QuantumClaw trims **old tool results** from the in-memory context right before LLM calls by default.
180
+ This does **not** rewrite JSONL history. See [/concepts/session-pruning](/concepts/session-pruning).
181
+
182
+ ## Pre-compaction memory flush
183
+
184
+ When a session nears auto-compaction, QuantumClaw can run a **silent memory flush**
185
+ turn that reminds the model to write durable notes to disk. This only runs when
186
+ the workspace is writable. See [Memory](/concepts/memory) and
187
+ [Compaction](/concepts/compaction).
188
+
189
+ ## Mapping transports → session keys
190
+
191
+ - Direct chats follow `session.dmScope` (default `main`).
192
+ - `main`: `agent:<agentId>:<mainKey>` (continuity across devices/channels).
193
+ - Multiple phone numbers and channels can map to the same agent main key; they act as transports into one conversation.
194
+ - `per-peer`: `agent:<agentId>:direct:<peerId>`.
195
+ - `per-channel-peer`: `agent:<agentId>:<channel>:direct:<peerId>`.
196
+ - `per-account-channel-peer`: `agent:<agentId>:<channel>:<accountId>:direct:<peerId>` (accountId defaults to `default`).
197
+ - If `session.identityLinks` matches a provider-prefixed peer id (for example `telegram:123`), the canonical key replaces `<peerId>` so the same person shares a session across channels.
198
+ - Group chats isolate state: `agent:<agentId>:<channel>:group:<id>` (rooms/channels use `agent:<agentId>:<channel>:channel:<id>`).
199
+ - Telegram forum topics append `:topic:<threadId>` to the group id for isolation.
200
+ - Legacy `group:<id>` keys are still recognized for migration.
201
+ - Inbound contexts may still use `group:<id>`; the channel is inferred from `Provider` and normalized to the canonical `agent:<agentId>:<channel>:group:<id>` form.
202
+ - Other sources:
203
+ - Cron jobs: `cron:<job.id>` (isolated) or custom `session:<custom-id>` (persistent)
204
+ - Webhooks: `hook:<uuid>` (unless explicitly set by the hook)
205
+ - Node runs: `node-<nodeId>`
206
+
207
+ ## Lifecycle
208
+
209
+ - Reset policy: sessions are reused until they expire, and expiry is evaluated on the next inbound message.
210
+ - Daily reset: defaults to **4:00 AM local time on the gateway host**. A session is stale once its last update is earlier than the most recent daily reset time.
211
+ - Idle reset (optional): `idleMinutes` adds a sliding idle window. When both daily and idle resets are configured, **whichever expires first** forces a new session.
212
+ - Legacy idle-only: if you set `session.idleMinutes` without any `session.reset`/`resetByType` config, QuantumClaw stays in idle-only mode for backward compatibility.
213
+ - Per-type overrides (optional): `resetByType` lets you override the policy for `direct`, `group`, and `thread` sessions (thread = Slack/Discord threads, Telegram topics, Matrix threads when provided by the connector).
214
+ - Per-channel overrides (optional): `resetByChannel` overrides the reset policy for a channel (applies to all session types for that channel and takes precedence over `reset`/`resetByType`).
215
+ - Reset triggers: exact `/new` or `/reset` (plus any extras in `resetTriggers`) start a fresh session id and pass the remainder of the message through. `/new <model>` accepts a model alias, `provider/model`, or provider name (fuzzy match) to set the new session model. If `/new` or `/reset` is sent alone, QuantumClaw runs a short “hello” greeting turn to confirm the reset.
216
+ - Manual reset: delete specific keys from the store or remove the JSONL transcript; the next message recreates them.
217
+ - Isolated cron jobs always mint a fresh `sessionId` per run (no idle reuse).
218
+
219
+ ## Send policy (optional)
220
+
221
+ Block delivery for specific session types without listing individual ids.
222
+
223
+ ```json5
224
+ {
225
+ session: {
226
+ sendPolicy: {
227
+ rules: [
228
+ { action: "deny", match: { channel: "discord", chatType: "group" } },
229
+ { action: "deny", match: { keyPrefix: "cron:" } },
230
+ // Match the raw session key (including the `agent:<id>:` prefix).
231
+ { action: "deny", match: { rawKeyPrefix: "agent:main:discord:" } },
232
+ ],
233
+ default: "allow",
234
+ },
235
+ },
236
+ }
237
+ ```
238
+
239
+ Runtime override (owner only):
240
+
241
+ - `/send on` → allow for this session
242
+ - `/send off` → deny for this session
243
+ - `/send inherit` → clear override and use config rules
244
+ Send these as standalone messages so they register.
245
+
246
+ ## Configuration (optional rename example)
247
+
248
+ ```json5
249
+ // ~/.quantumclaw/quantumclaw.json
250
+ {
251
+ session: {
252
+ scope: "per-sender", // keep group keys separate
253
+ dmScope: "main", // DM continuity (set per-channel-peer/per-account-channel-peer for shared inboxes)
254
+ identityLinks: {
255
+ alice: ["telegram:123456789", "discord:987654321012345678"],
256
+ },
257
+ reset: {
258
+ // Defaults: mode=daily, atHour=4 (gateway host local time).
259
+ // If you also set idleMinutes, whichever expires first wins.
260
+ mode: "daily",
261
+ atHour: 4,
262
+ idleMinutes: 120,
263
+ },
264
+ resetByType: {
265
+ thread: { mode: "daily", atHour: 4 },
266
+ direct: { mode: "idle", idleMinutes: 240 },
267
+ group: { mode: "idle", idleMinutes: 120 },
268
+ },
269
+ resetByChannel: {
270
+ discord: { mode: "idle", idleMinutes: 10080 },
271
+ },
272
+ resetTriggers: ["/new", "/reset"],
273
+ store: "~/.quantumclaw/agents/{agentId}/sessions/sessions.json",
274
+ mainKey: "main",
275
+ },
276
+ }
277
+ ```
278
+
279
+ ## Inspecting
280
+
281
+ - `quantumclaw status` — shows store path and recent sessions.
282
+ - `quantumclaw sessions --json` — dumps every entry (filter with `--active <minutes>`).
283
+ - `quantumclaw gateway call sessions.list --params '{}'` — fetch sessions from the running gateway (use `--url`/`--token` for remote gateway access).
284
+ - Send `/status` as a standalone message in chat to see whether the agent is reachable, how much of the session context is used, current thinking/fast/verbose toggles, and when your WhatsApp web creds were last refreshed (helps spot relink needs).
285
+ - Send `/context list` or `/context detail` to see what’s in the system prompt and injected workspace files (and the biggest context contributors).
286
+ - Send `/stop` (or standalone abort phrases like `stop`, `stop action`, `stop run`, `stop quantumclaw`) to abort the current run, clear queued followups for that session, and stop any sub-agent runs spawned from it (the reply includes the stopped count).
287
+ - Send `/compact` (optional instructions) as a standalone message to summarize older context and free up window space. See [/concepts/compaction](/concepts/compaction).
288
+ - JSONL transcripts can be opened directly to review full turns.
289
+
290
+ ## Tips
291
+
292
+ - Keep the primary key dedicated to 1:1 traffic; let groups keep their own keys.
293
+ - When automating cleanup, delete individual keys instead of the whole store to preserve context elsewhere.
294
+
295
+ ## Session origin metadata
296
+
297
+ Each session entry records where it came from (best-effort) in `origin`:
298
+
299
+ - `label`: human label (resolved from conversation label + group subject/channel)
300
+ - `provider`: normalized channel id (including extensions)
301
+ - `from`/`to`: raw routing ids from the inbound envelope
302
+ - `accountId`: provider account id (when multi-account)
303
+ - `threadId`: thread/topic id when the channel supports it
304
+ The origin fields are populated for direct messages, channels, and groups. If a
305
+ connector only updates delivery routing (for example, to keep a DM main session
306
+ fresh), it should still provide inbound context so the session keeps its
307
+ explainer metadata. Extensions can do this by sending `ConversationLabel`,
308
+ `GroupSubject`, `GroupChannel`, `GroupSpace`, and `SenderName` in the inbound
309
+ context and calling `recordSessionMetaFromInbound` (or passing the same context
310
+ to `updateLastRoute`).
@@ -0,0 +1,155 @@
1
+ ---
2
+ summary: "Streaming + chunking behavior (block replies, channel preview streaming, mode mapping)"
3
+ read_when:
4
+ - Explaining how streaming or chunking works on channels
5
+ - Changing block streaming or channel chunking behavior
6
+ - Debugging duplicate/early block replies or channel preview streaming
7
+ title: "Streaming and Chunking"
8
+ ---
9
+
10
+ # Streaming + chunking
11
+
12
+ QuantumClaw has two separate streaming layers:
13
+
14
+ - **Block streaming (channels):** emit completed **blocks** as the assistant writes. These are normal channel messages (not token deltas).
15
+ - **Preview streaming (Telegram/Discord/Slack):** update a temporary **preview message** while generating.
16
+
17
+ There is **no true token-delta streaming** to channel messages today. Preview streaming is message-based (send + edits/appends).
18
+
19
+ ## Block streaming (channel messages)
20
+
21
+ Block streaming sends assistant output in coarse chunks as it becomes available.
22
+
23
+ ```
24
+ Model output
25
+ └─ text_delta/events
26
+ ├─ (blockStreamingBreak=text_end)
27
+ │ └─ chunker emits blocks as buffer grows
28
+ └─ (blockStreamingBreak=message_end)
29
+ └─ chunker flushes at message_end
30
+ └─ channel send (block replies)
31
+ ```
32
+
33
+ Legend:
34
+
35
+ - `text_delta/events`: model stream events (may be sparse for non-streaming models).
36
+ - `chunker`: `EmbeddedBlockChunker` applying min/max bounds + break preference.
37
+ - `channel send`: actual outbound messages (block replies).
38
+
39
+ **Controls:**
40
+
41
+ - `agents.defaults.blockStreamingDefault`: `"on"`/`"off"` (default off).
42
+ - Channel overrides: `*.blockStreaming` (and per-account variants) to force `"on"`/`"off"` per channel.
43
+ - `agents.defaults.blockStreamingBreak`: `"text_end"` or `"message_end"`.
44
+ - `agents.defaults.blockStreamingChunk`: `{ minChars, maxChars, breakPreference? }`.
45
+ - `agents.defaults.blockStreamingCoalesce`: `{ minChars?, maxChars?, idleMs? }` (merge streamed blocks before send).
46
+ - Channel hard cap: `*.textChunkLimit` (e.g., `channels.whatsapp.textChunkLimit`).
47
+ - Channel chunk mode: `*.chunkMode` (`length` default, `newline` splits on blank lines (paragraph boundaries) before length chunking).
48
+ - Discord soft cap: `channels.discord.maxLinesPerMessage` (default 17) splits tall replies to avoid UI clipping.
49
+
50
+ **Boundary semantics:**
51
+
52
+ - `text_end`: stream blocks as soon as chunker emits; flush on each `text_end`.
53
+ - `message_end`: wait until assistant message finishes, then flush buffered output.
54
+
55
+ `message_end` still uses the chunker if the buffered text exceeds `maxChars`, so it can emit multiple chunks at the end.
56
+
57
+ ## Chunking algorithm (low/high bounds)
58
+
59
+ Block chunking is implemented by `EmbeddedBlockChunker`:
60
+
61
+ - **Low bound:** don’t emit until buffer >= `minChars` (unless forced).
62
+ - **High bound:** prefer splits before `maxChars`; if forced, split at `maxChars`.
63
+ - **Break preference:** `paragraph` → `newline` → `sentence` → `whitespace` → hard break.
64
+ - **Code fences:** never split inside fences; when forced at `maxChars`, close + reopen the fence to keep Markdown valid.
65
+
66
+ `maxChars` is clamped to the channel `textChunkLimit`, so you can’t exceed per-channel caps.
67
+
68
+ ## Coalescing (merge streamed blocks)
69
+
70
+ When block streaming is enabled, QuantumClaw can **merge consecutive block chunks**
71
+ before sending them out. This reduces “single-line spam” while still providing
72
+ progressive output.
73
+
74
+ - Coalescing waits for **idle gaps** (`idleMs`) before flushing.
75
+ - Buffers are capped by `maxChars` and will flush if they exceed it.
76
+ - `minChars` prevents tiny fragments from sending until enough text accumulates
77
+ (final flush always sends remaining text).
78
+ - Joiner is derived from `blockStreamingChunk.breakPreference`
79
+ (`paragraph` → `\n\n`, `newline` → `\n`, `sentence` → space).
80
+ - Channel overrides are available via `*.blockStreamingCoalesce` (including per-account configs).
81
+ - Default coalesce `minChars` is bumped to 1500 for Signal/Slack/Discord unless overridden.
82
+
83
+ ## Human-like pacing between blocks
84
+
85
+ When block streaming is enabled, you can add a **randomized pause** between
86
+ block replies (after the first block). This makes multi-bubble responses feel
87
+ more natural.
88
+
89
+ - Config: `agents.defaults.humanDelay` (override per agent via `agents.list[].humanDelay`).
90
+ - Modes: `off` (default), `natural` (800–2500ms), `custom` (`minMs`/`maxMs`).
91
+ - Applies only to **block replies**, not final replies or tool summaries.
92
+
93
+ ## "Stream chunks or everything"
94
+
95
+ This maps to:
96
+
97
+ - **Stream chunks:** `blockStreamingDefault: "on"` + `blockStreamingBreak: "text_end"` (emit as you go). Non-Telegram channels also need `*.blockStreaming: true`.
98
+ - **Stream everything at end:** `blockStreamingBreak: "message_end"` (flush once, possibly multiple chunks if very long).
99
+ - **No block streaming:** `blockStreamingDefault: "off"` (only final reply).
100
+
101
+ **Channel note:** Block streaming is **off unless**
102
+ `*.blockStreaming` is explicitly set to `true`. Channels can stream a live preview
103
+ (`channels.<channel>.streaming`) without block replies.
104
+
105
+ Config location reminder: the `blockStreaming*` defaults live under
106
+ `agents.defaults`, not the root config.
107
+
108
+ ## Preview streaming modes
109
+
110
+ Canonical key: `channels.<channel>.streaming`
111
+
112
+ Modes:
113
+
114
+ - `off`: disable preview streaming.
115
+ - `partial`: single preview that is replaced with latest text.
116
+ - `block`: preview updates in chunked/appended steps.
117
+ - `progress`: progress/status preview during generation, final answer at completion.
118
+
119
+ ### Channel mapping
120
+
121
+ | Channel | `off` | `partial` | `block` | `progress` |
122
+ | -------- | ----- | --------- | ------- | ----------------- |
123
+ | Telegram | ✅ | ✅ | ✅ | maps to `partial` |
124
+ | Discord | ✅ | ✅ | ✅ | maps to `partial` |
125
+ | Slack | ✅ | ✅ | ✅ | ✅ |
126
+
127
+ Slack-only:
128
+
129
+ - `channels.slack.nativeStreaming` toggles Slack native streaming API calls when `streaming=partial` (default: `true`).
130
+
131
+ Legacy key migration:
132
+
133
+ - Telegram: `streamMode` + boolean `streaming` auto-migrate to `streaming` enum.
134
+ - Discord: `streamMode` + boolean `streaming` auto-migrate to `streaming` enum.
135
+ - Slack: `streamMode` auto-migrates to `streaming` enum; boolean `streaming` auto-migrates to `nativeStreaming`.
136
+
137
+ ### Runtime behavior
138
+
139
+ Telegram:
140
+
141
+ - Uses `sendMessage` + `editMessageText` preview updates across DMs and group/topics.
142
+ - Preview streaming is skipped when Telegram block streaming is explicitly enabled (to avoid double-streaming).
143
+ - `/reasoning stream` can write reasoning to preview.
144
+
145
+ Discord:
146
+
147
+ - Uses send + edit preview messages.
148
+ - `block` mode uses draft chunking (`draftChunk`).
149
+ - Preview streaming is skipped when Discord block streaming is explicitly enabled.
150
+
151
+ Slack:
152
+
153
+ - `partial` can use Slack native streaming (`chat.startStream`/`append`/`stop`) when available.
154
+ - `block` uses append-style draft previews.
155
+ - `progress` uses status preview text, then final answer.
@@ -0,0 +1,132 @@
1
+ ---
2
+ summary: "What the QuantumClaw system prompt contains and how it is assembled"
3
+ read_when:
4
+ - Editing system prompt text, tools list, or time/heartbeat sections
5
+ - Changing workspace bootstrap or skills injection behavior
6
+ title: "System Prompt"
7
+ ---
8
+
9
+ # System Prompt
10
+
11
+ QuantumClaw builds a custom system prompt for every agent run. The prompt is **QuantumClaw-owned** and does not use the pi-coding-agent default prompt.
12
+
13
+ The prompt is assembled by QuantumClaw and injected into each agent run.
14
+
15
+ ## Structure
16
+
17
+ The prompt is intentionally compact and uses fixed sections:
18
+
19
+ - **Tooling**: current tool list + short descriptions.
20
+ - **Safety**: short guardrail reminder to avoid power-seeking behavior or bypassing oversight.
21
+ - **Skills** (when available): tells the model how to load skill instructions on demand.
22
+ - **QuantumClaw Self-Update**: how to run `config.apply` and `update.run`.
23
+ - **Workspace**: working directory (`agents.defaults.workspace`).
24
+ - **Documentation**: local path to QuantumClaw docs (repo or npm package) and when to read them.
25
+ - **Workspace Files (injected)**: indicates bootstrap files are included below.
26
+ - **Sandbox** (when enabled): indicates sandboxed runtime, sandbox paths, and whether elevated exec is available.
27
+ - **Current Date & Time**: user-local time, timezone, and time format.
28
+ - **Reply Tags**: optional reply tag syntax for supported providers.
29
+ - **Heartbeats**: heartbeat prompt and ack behavior.
30
+ - **Runtime**: host, OS, node, model, repo root (when detected), thinking level (one line).
31
+ - **Reasoning**: current visibility level + /reasoning toggle hint.
32
+
33
+ Safety guardrails in the system prompt are advisory. They guide model behavior but do not enforce policy. Use tool policy, exec approvals, sandboxing, and channel allowlists for hard enforcement; operators can disable these by design.
34
+
35
+ ## Prompt modes
36
+
37
+ QuantumClaw can render smaller system prompts for sub-agents. The runtime sets a
38
+ `promptMode` for each run (not a user-facing config):
39
+
40
+ - `full` (default): includes all sections above.
41
+ - `minimal`: used for sub-agents; omits **Skills**, **Memory Recall**, **QuantumClaw
42
+ Self-Update**, **Model Aliases**, **User Identity**, **Reply Tags**,
43
+ **Messaging**, **Silent Replies**, and **Heartbeats**. Tooling, **Safety**,
44
+ Workspace, Sandbox, Current Date & Time (when known), Runtime, and injected
45
+ context stay available.
46
+ - `none`: returns only the base identity line.
47
+
48
+ When `promptMode=minimal`, extra injected prompts are labeled **Subagent
49
+ Context** instead of **Group Chat Context**.
50
+
51
+ ## Workspace bootstrap injection
52
+
53
+ Bootstrap files are trimmed and appended under **Project Context** so the model sees identity and profile context without needing explicit reads:
54
+
55
+ - `AGENTS.md`
56
+ - `SOUL.md`
57
+ - `TOOLS.md`
58
+ - `IDENTITY.md`
59
+ - `USER.md`
60
+ - `HEARTBEAT.md`
61
+ - `BOOTSTRAP.md` (only on brand-new workspaces)
62
+ - `MEMORY.md` when present, otherwise `memory.md` as a lowercase fallback
63
+
64
+ All of these files are **injected into the context window** on every turn, which
65
+ means they consume tokens. Keep them concise — especially `MEMORY.md`, which can
66
+ grow over time and lead to unexpectedly high context usage and more frequent
67
+ compaction.
68
+
69
+ > **Note:** `memory/*.md` daily files are **not** injected automatically. They
70
+ > are accessed on demand via the `memory_search` and `memory_get` tools, so they
71
+ > do not count against the context window unless the model explicitly reads them.
72
+
73
+ Large files are truncated with a marker. The max per-file size is controlled by
74
+ `agents.defaults.bootstrapMaxChars` (default: 20000). Total injected bootstrap
75
+ content across files is capped by `agents.defaults.bootstrapTotalMaxChars`
76
+ (default: 150000). Missing files inject a short missing-file marker. When truncation
77
+ occurs, QuantumClaw can inject a warning block in Project Context; control this with
78
+ `agents.defaults.bootstrapPromptTruncationWarning` (`off`, `once`, `always`;
79
+ default: `once`).
80
+
81
+ Sub-agent sessions only inject `AGENTS.md` and `TOOLS.md` (other bootstrap files
82
+ are filtered out to keep the sub-agent context small).
83
+
84
+ Internal hooks can intercept this step via `agent:bootstrap` to mutate or replace
85
+ the injected bootstrap files (for example swapping `SOUL.md` for an alternate persona).
86
+
87
+ To inspect how much each injected file contributes (raw vs injected, truncation, plus tool schema overhead), use `/context list` or `/context detail`. See [Context](/concepts/context).
88
+
89
+ ## Time handling
90
+
91
+ The system prompt includes a dedicated **Current Date & Time** section when the
92
+ user timezone is known. To keep the prompt cache-stable, it now only includes
93
+ the **time zone** (no dynamic clock or time format).
94
+
95
+ Use `session_status` when the agent needs the current time; the status card
96
+ includes a timestamp line.
97
+
98
+ Configure with:
99
+
100
+ - `agents.defaults.userTimezone`
101
+ - `agents.defaults.timeFormat` (`auto` | `12` | `24`)
102
+
103
+ See [Date & Time](/date-time) for full behavior details.
104
+
105
+ ## Skills
106
+
107
+ When eligible skills exist, QuantumClaw injects a compact **available skills list**
108
+ (`formatSkillsForPrompt`) that includes the **file path** for each skill. The
109
+ prompt instructs the model to use `read` to load the SKILL.md at the listed
110
+ location (workspace, managed, or bundled). If no skills are eligible, the
111
+ Skills section is omitted.
112
+
113
+ ```
114
+ <available_skills>
115
+ <skill>
116
+ <name>...</name>
117
+ <description>...</description>
118
+ <location>...</location>
119
+ </skill>
120
+ </available_skills>
121
+ ```
122
+
123
+ This keeps the base prompt small while still enabling targeted skill usage.
124
+
125
+ ## Documentation
126
+
127
+ When available, the system prompt includes a **Documentation** section that points to the
128
+ local QuantumClaw docs directory (either `docs/` in the repo workspace or the bundled npm
129
+ package docs) and also notes the public mirror, source repo, community Discord, and
130
+ ClawHub ([https://clawhub.com](https://clawhub.com)) for skills discovery. The prompt instructs the model to consult local docs first
131
+ for QuantumClaw behavior, commands, configuration, or architecture, and to run
132
+ `quantumclaw status` itself when possible (asking the user only when it lacks access).
@@ -0,0 +1,91 @@
1
+ ---
2
+ summary: "Timezone handling for agents, envelopes, and prompts"
3
+ read_when:
4
+ - You need to understand how timestamps are normalized for the model
5
+ - Configuring the user timezone for system prompts
6
+ title: "Timezones"
7
+ ---
8
+
9
+ # Timezones
10
+
11
+ QuantumClaw standardizes timestamps so the model sees a **single reference time**.
12
+
13
+ ## Message envelopes (local by default)
14
+
15
+ Inbound messages are wrapped in an envelope like:
16
+
17
+ ```
18
+ [Provider ... 2026-01-05 16:26 PST] message text
19
+ ```
20
+
21
+ The timestamp in the envelope is **host-local by default**, with minutes precision.
22
+
23
+ You can override this with:
24
+
25
+ ```json5
26
+ {
27
+ agents: {
28
+ defaults: {
29
+ envelopeTimezone: "local", // "utc" | "local" | "user" | IANA timezone
30
+ envelopeTimestamp: "on", // "on" | "off"
31
+ envelopeElapsed: "on", // "on" | "off"
32
+ },
33
+ },
34
+ }
35
+ ```
36
+
37
+ - `envelopeTimezone: "utc"` uses UTC.
38
+ - `envelopeTimezone: "user"` uses `agents.defaults.userTimezone` (falls back to host timezone).
39
+ - Use an explicit IANA timezone (e.g., `"Europe/Vienna"`) for a fixed offset.
40
+ - `envelopeTimestamp: "off"` removes absolute timestamps from envelope headers.
41
+ - `envelopeElapsed: "off"` removes elapsed time suffixes (the `+2m` style).
42
+
43
+ ### Examples
44
+
45
+ **Local (default):**
46
+
47
+ ```
48
+ [Signal Alice +1555 2026-01-18 00:19 PST] hello
49
+ ```
50
+
51
+ **Fixed timezone:**
52
+
53
+ ```
54
+ [Signal Alice +1555 2026-01-18 06:19 GMT+1] hello
55
+ ```
56
+
57
+ **Elapsed time:**
58
+
59
+ ```
60
+ [Signal Alice +1555 +2m 2026-01-18T05:19Z] follow-up
61
+ ```
62
+
63
+ ## Tool payloads (raw provider data + normalized fields)
64
+
65
+ Tool calls (`channels.discord.readMessages`, `channels.slack.readMessages`, etc.) return **raw provider timestamps**.
66
+ We also attach normalized fields for consistency:
67
+
68
+ - `timestampMs` (UTC epoch milliseconds)
69
+ - `timestampUtc` (ISO 8601 UTC string)
70
+
71
+ Raw provider fields are preserved.
72
+
73
+ ## User timezone for the system prompt
74
+
75
+ Set `agents.defaults.userTimezone` to tell the model the user's local time zone. If it is
76
+ unset, QuantumClaw resolves the **host timezone at runtime** (no config write).
77
+
78
+ ```json5
79
+ {
80
+ agents: { defaults: { userTimezone: "America/Chicago" } },
81
+ }
82
+ ```
83
+
84
+ The system prompt includes:
85
+
86
+ - `Current Date & Time` section with local time and timezone
87
+ - `Time format: 12-hour` or `24-hour`
88
+
89
+ You can control the prompt format with `agents.defaults.timeFormat` (`auto` | `12` | `24`).
90
+
91
+ See [Date & Time](/date-time) for the full behavior and examples.