@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,552 @@
1
+ ---
2
+ summary: "Multi-agent routing: isolated agents, channel accounts, and bindings"
3
+ title: Multi-Agent Routing
4
+ read_when: "You want multiple isolated agents (workspaces + auth) in one gateway process."
5
+ status: active
6
+ ---
7
+
8
+ # Multi-Agent Routing
9
+
10
+ Goal: multiple _isolated_ agents (separate workspace + `agentDir` + sessions), plus multiple channel accounts (e.g. two WhatsApps) in one running Gateway. Inbound is routed to an agent via bindings.
11
+
12
+ ## What is "one agent"?
13
+
14
+ An **agent** is a fully scoped brain with its own:
15
+
16
+ - **Workspace** (files, AGENTS.md/SOUL.md/USER.md, local notes, persona rules).
17
+ - **State directory** (`agentDir`) for auth profiles, model registry, and per-agent config.
18
+ - **Session store** (chat history + routing state) under `~/.quantumclaw/agents/<agentId>/sessions`.
19
+
20
+ Auth profiles are **per-agent**. Each agent reads from its own:
21
+
22
+ ```text
23
+ ~/.quantumclaw/agents/<agentId>/agent/auth-profiles.json
24
+ ```
25
+
26
+ Main agent credentials are **not** shared automatically. Never reuse `agentDir`
27
+ across agents (it causes auth/session collisions). If you want to share creds,
28
+ copy `auth-profiles.json` into the other agent's `agentDir`.
29
+
30
+ Skills are per-agent via each workspace’s `skills/` folder, with shared skills
31
+ available from `~/.quantumclaw/skills`. See [Skills: per-agent vs shared](/tools/skills#per-agent-vs-shared-skills).
32
+
33
+ The Gateway can host **one agent** (default) or **many agents** side-by-side.
34
+
35
+ **Workspace note:** each agent’s workspace is the **default cwd**, not a hard
36
+ sandbox. Relative paths resolve inside the workspace, but absolute paths can
37
+ reach other host locations unless sandboxing is enabled. See
38
+ [Sandboxing](/gateway/sandboxing).
39
+
40
+ ## Paths (quick map)
41
+
42
+ - Config: `~/.quantumclaw/quantumclaw.json` (or `QUANTUMCLAW_CONFIG_PATH`)
43
+ - State dir: `~/.quantumclaw` (or `QUANTUMCLAW_STATE_DIR`)
44
+ - Workspace: `~/.quantumclaw/workspace` (or `~/.quantumclaw/workspace-<agentId>`)
45
+ - Agent dir: `~/.quantumclaw/agents/<agentId>/agent` (or `agents.list[].agentDir`)
46
+ - Sessions: `~/.quantumclaw/agents/<agentId>/sessions`
47
+
48
+ ### Single-agent mode (default)
49
+
50
+ If you do nothing, QuantumClaw runs a single agent:
51
+
52
+ - `agentId` defaults to **`main`**.
53
+ - Sessions are keyed as `agent:main:<mainKey>`.
54
+ - Workspace defaults to `~/.quantumclaw/workspace` (or `~/.quantumclaw/workspace-<profile>` when `QUANTUMCLAW_PROFILE` is set).
55
+ - State defaults to `~/.quantumclaw/agents/main/agent`.
56
+
57
+ ## Agent helper
58
+
59
+ Use the agent wizard to add a new isolated agent:
60
+
61
+ ```bash
62
+ quantumclaw agents add work
63
+ ```
64
+
65
+ Then add `bindings` (or let the wizard do it) to route inbound messages.
66
+
67
+ Verify with:
68
+
69
+ ```bash
70
+ quantumclaw agents list --bindings
71
+ ```
72
+
73
+ ## Quick start
74
+
75
+ <Steps>
76
+ <Step title="Create each agent workspace">
77
+
78
+ Use the wizard or create workspaces manually:
79
+
80
+ ```bash
81
+ quantumclaw agents add coding
82
+ quantumclaw agents add social
83
+ ```
84
+
85
+ Each agent gets its own workspace with `SOUL.md`, `AGENTS.md`, and optional `USER.md`, plus a dedicated `agentDir` and session store under `~/.quantumclaw/agents/<agentId>`.
86
+
87
+ </Step>
88
+
89
+ <Step title="Create channel accounts">
90
+
91
+ Create one account per agent on your preferred channels:
92
+
93
+ - Discord: one bot per agent, enable Message Content Intent, copy each token.
94
+ - Telegram: one bot per agent via BotFather, copy each token.
95
+ - WhatsApp: link each phone number per account.
96
+
97
+ ```bash
98
+ quantumclaw channels login --channel whatsapp --account work
99
+ ```
100
+
101
+ See channel guides: [Discord](/channels/discord), [Telegram](/channels/telegram), [WhatsApp](/channels/whatsapp).
102
+
103
+ </Step>
104
+
105
+ <Step title="Add agents, accounts, and bindings">
106
+
107
+ Add agents under `agents.list`, channel accounts under `channels.<channel>.accounts`, and connect them with `bindings` (examples below).
108
+
109
+ </Step>
110
+
111
+ <Step title="Restart and verify">
112
+
113
+ ```bash
114
+ quantumclaw gateway restart
115
+ quantumclaw agents list --bindings
116
+ quantumclaw channels status --probe
117
+ ```
118
+
119
+ </Step>
120
+ </Steps>
121
+
122
+ ## Multiple agents = multiple people, multiple personalities
123
+
124
+ With **multiple agents**, each `agentId` becomes a **fully isolated persona**:
125
+
126
+ - **Different phone numbers/accounts** (per channel `accountId`).
127
+ - **Different personalities** (per-agent workspace files like `AGENTS.md` and `SOUL.md`).
128
+ - **Separate auth + sessions** (no cross-talk unless explicitly enabled).
129
+
130
+ This lets **multiple people** share one Gateway server while keeping their AI “brains” and data isolated.
131
+
132
+ ## One WhatsApp number, multiple people (DM split)
133
+
134
+ You can route **different WhatsApp DMs** to different agents while staying on **one WhatsApp account**. Match on sender E.164 (like `+15551234567`) with `peer.kind: "direct"`. Replies still come from the same WhatsApp number (no per‑agent sender identity).
135
+
136
+ Important detail: direct chats collapse to the agent’s **main session key**, so true isolation requires **one agent per person**.
137
+
138
+ Example:
139
+
140
+ ```json5
141
+ {
142
+ agents: {
143
+ list: [
144
+ { id: "alex", workspace: "~/.quantumclaw/workspace-alex" },
145
+ { id: "mia", workspace: "~/.quantumclaw/workspace-mia" },
146
+ ],
147
+ },
148
+ bindings: [
149
+ {
150
+ agentId: "alex",
151
+ match: { channel: "whatsapp", peer: { kind: "direct", id: "+15551230001" } },
152
+ },
153
+ {
154
+ agentId: "mia",
155
+ match: { channel: "whatsapp", peer: { kind: "direct", id: "+15551230002" } },
156
+ },
157
+ ],
158
+ channels: {
159
+ whatsapp: {
160
+ dmPolicy: "allowlist",
161
+ allowFrom: ["+15551230001", "+15551230002"],
162
+ },
163
+ },
164
+ }
165
+ ```
166
+
167
+ Notes:
168
+
169
+ - DM access control is **global per WhatsApp account** (pairing/allowlist), not per agent.
170
+ - For shared groups, bind the group to one agent or use [Broadcast groups](/channels/broadcast-groups).
171
+
172
+ ## Routing rules (how messages pick an agent)
173
+
174
+ Bindings are **deterministic** and **most-specific wins**:
175
+
176
+ 1. `peer` match (exact DM/group/channel id)
177
+ 2. `parentPeer` match (thread inheritance)
178
+ 3. `guildId + roles` (Discord role routing)
179
+ 4. `guildId` (Discord)
180
+ 5. `teamId` (Slack)
181
+ 6. `accountId` match for a channel
182
+ 7. channel-level match (`accountId: "*"`)
183
+ 8. fallback to default agent (`agents.list[].default`, else first list entry, default: `main`)
184
+
185
+ If multiple bindings match in the same tier, the first one in config order wins.
186
+ If a binding sets multiple match fields (for example `peer` + `guildId`), all specified fields are required (`AND` semantics).
187
+
188
+ Important account-scope detail:
189
+
190
+ - A binding that omits `accountId` matches the default account only.
191
+ - Use `accountId: "*"` for a channel-wide fallback across all accounts.
192
+ - If you later add the same binding for the same agent with an explicit account id, QuantumClaw upgrades the existing channel-only binding to account-scoped instead of duplicating it.
193
+
194
+ ## Multiple accounts / phone numbers
195
+
196
+ Channels that support **multiple accounts** (e.g. WhatsApp) use `accountId` to identify
197
+ each login. Each `accountId` can be routed to a different agent, so one server can host
198
+ multiple phone numbers without mixing sessions.
199
+
200
+ If you want a channel-wide default account when `accountId` is omitted, set
201
+ `channels.<channel>.defaultAccount` (optional). When unset, QuantumClaw falls back
202
+ to `default` if present, otherwise the first configured account id (sorted).
203
+
204
+ Common channels supporting this pattern include:
205
+
206
+ - `whatsapp`, `telegram`, `discord`, `slack`, `signal`, `imessage`
207
+ - `irc`, `line`, `googlechat`, `mattermost`, `matrix`, `nextcloud-talk`
208
+ - `bluebubbles`, `zalo`, `zalouser`, `nostr`, `feishu`
209
+
210
+ ## Concepts
211
+
212
+ - `agentId`: one “brain” (workspace, per-agent auth, per-agent session store).
213
+ - `accountId`: one channel account instance (e.g. WhatsApp account `"personal"` vs `"biz"`).
214
+ - `binding`: routes inbound messages to an `agentId` by `(channel, accountId, peer)` and optionally guild/team ids.
215
+ - Direct chats collapse to `agent:<agentId>:<mainKey>` (per-agent “main”; `session.mainKey`).
216
+
217
+ ## Platform examples
218
+
219
+ ### Discord bots per agent
220
+
221
+ Each Discord bot account maps to a unique `accountId`. Bind each account to an agent and keep allowlists per bot.
222
+
223
+ ```json5
224
+ {
225
+ agents: {
226
+ list: [
227
+ { id: "main", workspace: "~/.quantumclaw/workspace-main" },
228
+ { id: "coding", workspace: "~/.quantumclaw/workspace-coding" },
229
+ ],
230
+ },
231
+ bindings: [
232
+ { agentId: "main", match: { channel: "discord", accountId: "default" } },
233
+ { agentId: "coding", match: { channel: "discord", accountId: "coding" } },
234
+ ],
235
+ channels: {
236
+ discord: {
237
+ groupPolicy: "allowlist",
238
+ accounts: {
239
+ default: {
240
+ token: "DISCORD_BOT_TOKEN_MAIN",
241
+ guilds: {
242
+ "123456789012345678": {
243
+ channels: {
244
+ "222222222222222222": { allow: true, requireMention: false },
245
+ },
246
+ },
247
+ },
248
+ },
249
+ coding: {
250
+ token: "DISCORD_BOT_TOKEN_CODING",
251
+ guilds: {
252
+ "123456789012345678": {
253
+ channels: {
254
+ "333333333333333333": { allow: true, requireMention: false },
255
+ },
256
+ },
257
+ },
258
+ },
259
+ },
260
+ },
261
+ },
262
+ }
263
+ ```
264
+
265
+ Notes:
266
+
267
+ - Invite each bot to the guild and enable Message Content Intent.
268
+ - Tokens live in `channels.discord.accounts.<id>.token` (default account can use `DISCORD_BOT_TOKEN`).
269
+
270
+ ### Telegram bots per agent
271
+
272
+ ```json5
273
+ {
274
+ agents: {
275
+ list: [
276
+ { id: "main", workspace: "~/.quantumclaw/workspace-main" },
277
+ { id: "alerts", workspace: "~/.quantumclaw/workspace-alerts" },
278
+ ],
279
+ },
280
+ bindings: [
281
+ { agentId: "main", match: { channel: "telegram", accountId: "default" } },
282
+ { agentId: "alerts", match: { channel: "telegram", accountId: "alerts" } },
283
+ ],
284
+ channels: {
285
+ telegram: {
286
+ accounts: {
287
+ default: {
288
+ botToken: "123456:ABC...",
289
+ dmPolicy: "pairing",
290
+ },
291
+ alerts: {
292
+ botToken: "987654:XYZ...",
293
+ dmPolicy: "allowlist",
294
+ allowFrom: ["tg:123456789"],
295
+ },
296
+ },
297
+ },
298
+ },
299
+ }
300
+ ```
301
+
302
+ Notes:
303
+
304
+ - Create one bot per agent with BotFather and copy each token.
305
+ - Tokens live in `channels.telegram.accounts.<id>.botToken` (default account can use `TELEGRAM_BOT_TOKEN`).
306
+
307
+ ### WhatsApp numbers per agent
308
+
309
+ Link each account before starting the gateway:
310
+
311
+ ```bash
312
+ quantumclaw channels login --channel whatsapp --account personal
313
+ quantumclaw channels login --channel whatsapp --account biz
314
+ ```
315
+
316
+ `~/.quantumclaw/quantumclaw.json` (JSON5):
317
+
318
+ ```js
319
+ {
320
+ agents: {
321
+ list: [
322
+ {
323
+ id: "home",
324
+ default: true,
325
+ name: "Home",
326
+ workspace: "~/.quantumclaw/workspace-home",
327
+ agentDir: "~/.quantumclaw/agents/home/agent",
328
+ },
329
+ {
330
+ id: "work",
331
+ name: "Work",
332
+ workspace: "~/.quantumclaw/workspace-work",
333
+ agentDir: "~/.quantumclaw/agents/work/agent",
334
+ },
335
+ ],
336
+ },
337
+
338
+ // Deterministic routing: first match wins (most-specific first).
339
+ bindings: [
340
+ { agentId: "home", match: { channel: "whatsapp", accountId: "personal" } },
341
+ { agentId: "work", match: { channel: "whatsapp", accountId: "biz" } },
342
+
343
+ // Optional per-peer override (example: send a specific group to work agent).
344
+ {
345
+ agentId: "work",
346
+ match: {
347
+ channel: "whatsapp",
348
+ accountId: "personal",
349
+ peer: { kind: "group", id: "1203630...@g.us" },
350
+ },
351
+ },
352
+ ],
353
+
354
+ // Off by default: agent-to-agent messaging must be explicitly enabled + allowlisted.
355
+ tools: {
356
+ agentToAgent: {
357
+ enabled: false,
358
+ allow: ["home", "work"],
359
+ },
360
+ },
361
+
362
+ channels: {
363
+ whatsapp: {
364
+ accounts: {
365
+ personal: {
366
+ // Optional override. Default: ~/.quantumclaw/credentials/whatsapp/personal
367
+ // authDir: "~/.quantumclaw/credentials/whatsapp/personal",
368
+ },
369
+ biz: {
370
+ // Optional override. Default: ~/.quantumclaw/credentials/whatsapp/biz
371
+ // authDir: "~/.quantumclaw/credentials/whatsapp/biz",
372
+ },
373
+ },
374
+ },
375
+ },
376
+ }
377
+ ```
378
+
379
+ ## Example: WhatsApp daily chat + Telegram deep work
380
+
381
+ Split by channel: route WhatsApp to a fast everyday agent and Telegram to an Opus agent.
382
+
383
+ ```json5
384
+ {
385
+ agents: {
386
+ list: [
387
+ {
388
+ id: "chat",
389
+ name: "Everyday",
390
+ workspace: "~/.quantumclaw/workspace-chat",
391
+ model: "anthropic/claude-sonnet-4-6",
392
+ },
393
+ {
394
+ id: "opus",
395
+ name: "Deep Work",
396
+ workspace: "~/.quantumclaw/workspace-opus",
397
+ model: "anthropic/claude-opus-4-6",
398
+ },
399
+ ],
400
+ },
401
+ bindings: [
402
+ { agentId: "chat", match: { channel: "whatsapp" } },
403
+ { agentId: "opus", match: { channel: "telegram" } },
404
+ ],
405
+ }
406
+ ```
407
+
408
+ Notes:
409
+
410
+ - If you have multiple accounts for a channel, add `accountId` to the binding (for example `{ channel: "whatsapp", accountId: "personal" }`).
411
+ - To route a single DM/group to Opus while keeping the rest on chat, add a `match.peer` binding for that peer; peer matches always win over channel-wide rules.
412
+
413
+ ## Example: same channel, one peer to Opus
414
+
415
+ Keep WhatsApp on the fast agent, but route one DM to Opus:
416
+
417
+ ```json5
418
+ {
419
+ agents: {
420
+ list: [
421
+ {
422
+ id: "chat",
423
+ name: "Everyday",
424
+ workspace: "~/.quantumclaw/workspace-chat",
425
+ model: "anthropic/claude-sonnet-4-6",
426
+ },
427
+ {
428
+ id: "opus",
429
+ name: "Deep Work",
430
+ workspace: "~/.quantumclaw/workspace-opus",
431
+ model: "anthropic/claude-opus-4-6",
432
+ },
433
+ ],
434
+ },
435
+ bindings: [
436
+ {
437
+ agentId: "opus",
438
+ match: { channel: "whatsapp", peer: { kind: "direct", id: "+15551234567" } },
439
+ },
440
+ { agentId: "chat", match: { channel: "whatsapp" } },
441
+ ],
442
+ }
443
+ ```
444
+
445
+ Peer bindings always win, so keep them above the channel-wide rule.
446
+
447
+ ## Family agent bound to a WhatsApp group
448
+
449
+ Bind a dedicated family agent to a single WhatsApp group, with mention gating
450
+ and a tighter tool policy:
451
+
452
+ ```json5
453
+ {
454
+ agents: {
455
+ list: [
456
+ {
457
+ id: "family",
458
+ name: "Family",
459
+ workspace: "~/.quantumclaw/workspace-family",
460
+ identity: { name: "Family Bot" },
461
+ groupChat: {
462
+ mentionPatterns: ["@family", "@familybot", "@Family Bot"],
463
+ },
464
+ sandbox: {
465
+ mode: "all",
466
+ scope: "agent",
467
+ },
468
+ tools: {
469
+ allow: [
470
+ "exec",
471
+ "read",
472
+ "sessions_list",
473
+ "sessions_history",
474
+ "sessions_send",
475
+ "sessions_spawn",
476
+ "session_status",
477
+ ],
478
+ deny: ["write", "edit", "apply_patch", "browser", "canvas", "nodes", "cron"],
479
+ },
480
+ },
481
+ ],
482
+ },
483
+ bindings: [
484
+ {
485
+ agentId: "family",
486
+ match: {
487
+ channel: "whatsapp",
488
+ peer: { kind: "group", id: "120363999999999999@g.us" },
489
+ },
490
+ },
491
+ ],
492
+ }
493
+ ```
494
+
495
+ Notes:
496
+
497
+ - Tool allow/deny lists are **tools**, not skills. If a skill needs to run a
498
+ binary, ensure `exec` is allowed and the binary exists in the sandbox.
499
+ - For stricter gating, set `agents.list[].groupChat.mentionPatterns` and keep
500
+ group allowlists enabled for the channel.
501
+
502
+ ## Per-Agent Sandbox and Tool Configuration
503
+
504
+ Each agent can have its own sandbox and tool restrictions:
505
+
506
+ ```js
507
+ {
508
+ agents: {
509
+ list: [
510
+ {
511
+ id: "personal",
512
+ workspace: "~/.quantumclaw/workspace-personal",
513
+ sandbox: {
514
+ mode: "off", // No sandbox for personal agent
515
+ },
516
+ // No tool restrictions - all tools available
517
+ },
518
+ {
519
+ id: "family",
520
+ workspace: "~/.quantumclaw/workspace-family",
521
+ sandbox: {
522
+ mode: "all", // Always sandboxed
523
+ scope: "agent", // One container per agent
524
+ docker: {
525
+ // Optional one-time setup after container creation
526
+ setupCommand: "apt-get update && apt-get install -y git curl",
527
+ },
528
+ },
529
+ tools: {
530
+ allow: ["read"], // Only read tool
531
+ deny: ["exec", "write", "edit", "apply_patch"], // Deny others
532
+ },
533
+ },
534
+ ],
535
+ },
536
+ }
537
+ ```
538
+
539
+ Note: `setupCommand` lives under `sandbox.docker` and runs once on container creation.
540
+ Per-agent `sandbox.docker.*` overrides are ignored when the resolved scope is `"shared"`.
541
+
542
+ **Benefits:**
543
+
544
+ - **Security isolation**: Restrict tools for untrusted agents
545
+ - **Resource control**: Sandbox specific agents while keeping others on host
546
+ - **Flexible policies**: Different permissions per agent
547
+
548
+ Note: `tools.elevated` is **global** and sender-based; it is not configurable per agent.
549
+ If you need per-agent boundaries, use `agents.list[].tools` to deny `exec`.
550
+ For group targeting, use `agents.list[].groupChat.mentionPatterns` so @mentions map cleanly to the intended agent.
551
+
552
+ See [Multi-Agent Sandbox & Tools](/tools/multi-agent-sandbox-tools) for detailed examples.
@@ -0,0 +1,158 @@
1
+ ---
2
+ summary: "OAuth in QuantumClaw: token exchange, storage, and multi-account patterns"
3
+ read_when:
4
+ - You want to understand QuantumClaw OAuth end-to-end
5
+ - You hit token invalidation / logout issues
6
+ - You want setup-token or OAuth auth flows
7
+ - You want multiple accounts or profile routing
8
+ title: "OAuth"
9
+ ---
10
+
11
+ # OAuth
12
+
13
+ QuantumClaw supports “subscription auth” via OAuth for providers that offer it (notably **OpenAI Codex (ChatGPT OAuth)**). For Anthropic subscriptions, use the **setup-token** flow. Anthropic subscription use outside Claude Code has been restricted for some users in the past, so treat it as a user-choice risk and verify current Anthropic policy yourself. OpenAI Codex OAuth is explicitly supported for use in external tools like QuantumClaw. This page explains:
14
+
15
+ For Anthropic in production, API key auth is the safer recommended path over subscription setup-token auth.
16
+
17
+ - how the OAuth **token exchange** works (PKCE)
18
+ - where tokens are **stored** (and why)
19
+ - how to handle **multiple accounts** (profiles + per-session overrides)
20
+
21
+ QuantumClaw also supports **provider plugins** that ship their own OAuth or API‑key
22
+ flows. Run them via:
23
+
24
+ ```bash
25
+ quantumclaw models auth login --provider <id>
26
+ ```
27
+
28
+ ## The token sink (why it exists)
29
+
30
+ OAuth providers commonly mint a **new refresh token** during login/refresh flows. Some providers (or OAuth clients) can invalidate older refresh tokens when a new one is issued for the same user/app.
31
+
32
+ Practical symptom:
33
+
34
+ - you log in via QuantumClaw _and_ via Claude Code / Codex CLI → one of them randomly gets “logged out” later
35
+
36
+ To reduce that, QuantumClaw treats `auth-profiles.json` as a **token sink**:
37
+
38
+ - the runtime reads credentials from **one place**
39
+ - we can keep multiple profiles and route them deterministically
40
+
41
+ ## Storage (where tokens live)
42
+
43
+ Secrets are stored **per-agent**:
44
+
45
+ - Auth profiles (OAuth + API keys + optional value-level refs): `~/.quantumclaw/agents/<agentId>/agent/auth-profiles.json`
46
+ - Legacy compatibility file: `~/.quantumclaw/agents/<agentId>/agent/auth.json`
47
+ (static `api_key` entries are scrubbed when discovered)
48
+
49
+ Legacy import-only file (still supported, but not the main store):
50
+
51
+ - `~/.quantumclaw/credentials/oauth.json` (imported into `auth-profiles.json` on first use)
52
+
53
+ All of the above also respect `$QUANTUMCLAW_STATE_DIR` (state dir override). Full reference: [/gateway/configuration](/gateway/configuration-reference#auth-storage)
54
+
55
+ For static secret refs and runtime snapshot activation behavior, see [Secrets Management](/gateway/secrets).
56
+
57
+ ## Anthropic setup-token (subscription auth)
58
+
59
+ <Warning>
60
+ Anthropic setup-token support is technical compatibility, not a policy guarantee.
61
+ Anthropic has blocked some subscription usage outside Claude Code in the past.
62
+ Decide for yourself whether to use subscription auth, and verify Anthropic's current terms.
63
+ </Warning>
64
+
65
+ Run `claude setup-token` on any machine, then paste it into QuantumClaw:
66
+
67
+ ```bash
68
+ quantumclaw models auth setup-token --provider anthropic
69
+ ```
70
+
71
+ If you generated the token elsewhere, paste it manually:
72
+
73
+ ```bash
74
+ quantumclaw models auth paste-token --provider anthropic
75
+ ```
76
+
77
+ Verify:
78
+
79
+ ```bash
80
+ quantumclaw models status
81
+ ```
82
+
83
+ ## OAuth exchange (how login works)
84
+
85
+ QuantumClaw’s interactive login flows are implemented in `@mariozechner/pi-ai` and wired into the wizards/commands.
86
+
87
+ ### Anthropic setup-token
88
+
89
+ Flow shape:
90
+
91
+ 1. run `claude setup-token`
92
+ 2. paste the token into QuantumClaw
93
+ 3. store as a token auth profile (no refresh)
94
+
95
+ The wizard path is `quantumclaw onboard` → auth choice `setup-token` (Anthropic).
96
+
97
+ ### OpenAI Codex (ChatGPT OAuth)
98
+
99
+ OpenAI Codex OAuth is explicitly supported for use outside the Codex CLI, including QuantumClaw workflows.
100
+
101
+ Flow shape (PKCE):
102
+
103
+ 1. generate PKCE verifier/challenge + random `state`
104
+ 2. open `https://auth.openai.com/oauth/authorize?...`
105
+ 3. try to capture callback on `http://127.0.0.1:1455/auth/callback`
106
+ 4. if callback can’t bind (or you’re remote/headless), paste the redirect URL/code
107
+ 5. exchange at `https://auth.openai.com/oauth/token`
108
+ 6. extract `accountId` from the access token and store `{ access, refresh, expires, accountId }`
109
+
110
+ Wizard path is `quantumclaw onboard` → auth choice `openai-codex`.
111
+
112
+ ## Refresh + expiry
113
+
114
+ Profiles store an `expires` timestamp.
115
+
116
+ At runtime:
117
+
118
+ - if `expires` is in the future → use the stored access token
119
+ - if expired → refresh (under a file lock) and overwrite the stored credentials
120
+
121
+ The refresh flow is automatic; you generally don't need to manage tokens manually.
122
+
123
+ ## Multiple accounts (profiles) + routing
124
+
125
+ Two patterns:
126
+
127
+ ### 1) Preferred: separate agents
128
+
129
+ If you want “personal” and “work” to never interact, use isolated agents (separate sessions + credentials + workspace):
130
+
131
+ ```bash
132
+ quantumclaw agents add work
133
+ quantumclaw agents add personal
134
+ ```
135
+
136
+ Then configure auth per-agent (wizard) and route chats to the right agent.
137
+
138
+ ### 2) Advanced: multiple profiles in one agent
139
+
140
+ `auth-profiles.json` supports multiple profile IDs for the same provider.
141
+
142
+ Pick which profile is used:
143
+
144
+ - globally via config ordering (`auth.order`)
145
+ - per-session via `/model ...@<profileId>`
146
+
147
+ Example (session override):
148
+
149
+ - `/model Opus@anthropic:work`
150
+
151
+ How to see what profile IDs exist:
152
+
153
+ - `quantumclaw channels list --json` (shows `auth[]`)
154
+
155
+ Related docs:
156
+
157
+ - [/concepts/model-failover](/concepts/model-failover) (rotation + cooldown rules)
158
+ - [/tools/slash-commands](/tools/slash-commands) (command surface)