@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,370 @@
1
+ ---
2
+ title: "Building Provider Plugins"
3
+ sidebarTitle: "Provider Plugins"
4
+ summary: "Step-by-step guide to building a model provider plugin for QuantumClaw"
5
+ read_when:
6
+ - You are building a new model provider plugin
7
+ - You want to add an OpenAI-compatible proxy or custom LLM to QuantumClaw
8
+ - You need to understand provider auth, catalogs, and runtime hooks
9
+ ---
10
+
11
+ # Building Provider Plugins
12
+
13
+ This guide walks through building a provider plugin that adds a model provider
14
+ (LLM) to QuantumClaw. By the end you will have a provider with a model catalog,
15
+ API key auth, and dynamic model resolution.
16
+
17
+ <Info>
18
+ If you have not built any QuantumClaw plugin before, read
19
+ [Getting Started](/plugins/building-plugins) first for the basic package
20
+ structure and manifest setup.
21
+ </Info>
22
+
23
+ ## Walkthrough
24
+
25
+ <Steps>
26
+ <Step title="Package and manifest">
27
+ <CodeGroup>
28
+ ```json package.json
29
+ {
30
+ "name": "@myorg/quantumclaw-acme-ai",
31
+ "version": "1.0.0",
32
+ "type": "module",
33
+ "quantumclaw": {
34
+ "extensions": ["./index.ts"],
35
+ "providers": ["acme-ai"]
36
+ }
37
+ }
38
+ ```
39
+
40
+ ```json quantumclaw.plugin.json
41
+ {
42
+ "id": "acme-ai",
43
+ "name": "Acme AI",
44
+ "description": "Acme AI model provider",
45
+ "providers": ["acme-ai"],
46
+ "providerAuthEnvVars": {
47
+ "acme-ai": ["ACME_AI_API_KEY"]
48
+ },
49
+ "providerAuthChoices": [
50
+ {
51
+ "provider": "acme-ai",
52
+ "method": "api-key",
53
+ "choiceId": "acme-ai-api-key",
54
+ "choiceLabel": "Acme AI API key",
55
+ "groupId": "acme-ai",
56
+ "groupLabel": "Acme AI",
57
+ "cliFlag": "--acme-ai-api-key",
58
+ "cliOption": "--acme-ai-api-key <key>",
59
+ "cliDescription": "Acme AI API key"
60
+ }
61
+ ],
62
+ "configSchema": {
63
+ "type": "object",
64
+ "additionalProperties": false
65
+ }
66
+ }
67
+ ```
68
+ </CodeGroup>
69
+
70
+ The manifest declares `providerAuthEnvVars` so QuantumClaw can detect
71
+ credentials without loading your plugin runtime.
72
+
73
+ </Step>
74
+
75
+ <Step title="Register the provider">
76
+ A minimal provider needs an `id`, `label`, `auth`, and `catalog`:
77
+
78
+ ```typescript index.ts
79
+ import { definePluginEntry } from "quantumclaw/plugin-sdk/plugin-entry";
80
+ import { createProviderApiKeyAuthMethod } from "quantumclaw/plugin-sdk/provider-auth";
81
+
82
+ export default definePluginEntry({
83
+ id: "acme-ai",
84
+ name: "Acme AI",
85
+ description: "Acme AI model provider",
86
+ register(api) {
87
+ api.registerProvider({
88
+ id: "acme-ai",
89
+ label: "Acme AI",
90
+ docsPath: "/providers/acme-ai",
91
+ envVars: ["ACME_AI_API_KEY"],
92
+
93
+ auth: [
94
+ createProviderApiKeyAuthMethod({
95
+ providerId: "acme-ai",
96
+ methodId: "api-key",
97
+ label: "Acme AI API key",
98
+ hint: "API key from your Acme AI dashboard",
99
+ optionKey: "acmeAiApiKey",
100
+ flagName: "--acme-ai-api-key",
101
+ envVar: "ACME_AI_API_KEY",
102
+ promptMessage: "Enter your Acme AI API key",
103
+ defaultModel: "acme-ai/acme-large",
104
+ }),
105
+ ],
106
+
107
+ catalog: {
108
+ order: "simple",
109
+ run: async (ctx) => {
110
+ const apiKey =
111
+ ctx.resolveProviderApiKey("acme-ai").apiKey;
112
+ if (!apiKey) return null;
113
+ return {
114
+ provider: {
115
+ baseUrl: "https://api.acme-ai.com/v1",
116
+ apiKey,
117
+ api: "openai-completions",
118
+ models: [
119
+ {
120
+ id: "acme-large",
121
+ name: "Acme Large",
122
+ reasoning: true,
123
+ input: ["text", "image"],
124
+ cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 },
125
+ contextWindow: 200000,
126
+ maxTokens: 32768,
127
+ },
128
+ {
129
+ id: "acme-small",
130
+ name: "Acme Small",
131
+ reasoning: false,
132
+ input: ["text"],
133
+ cost: { input: 1, output: 5, cacheRead: 0.1, cacheWrite: 1.25 },
134
+ contextWindow: 128000,
135
+ maxTokens: 8192,
136
+ },
137
+ ],
138
+ },
139
+ };
140
+ },
141
+ },
142
+ });
143
+ },
144
+ });
145
+ ```
146
+
147
+ That is a working provider. Users can now
148
+ `quantumclaw onboard --acme-ai-api-key <key>` and select
149
+ `acme-ai/acme-large` as their model.
150
+
151
+ </Step>
152
+
153
+ <Step title="Add dynamic model resolution">
154
+ If your provider accepts arbitrary model IDs (like a proxy or router),
155
+ add `resolveDynamicModel`:
156
+
157
+ ```typescript
158
+ api.registerProvider({
159
+ // ... id, label, auth, catalog from above
160
+
161
+ resolveDynamicModel: (ctx) => ({
162
+ id: ctx.modelId,
163
+ name: ctx.modelId,
164
+ provider: "acme-ai",
165
+ api: "openai-completions",
166
+ baseUrl: "https://api.acme-ai.com/v1",
167
+ reasoning: false,
168
+ input: ["text"],
169
+ cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
170
+ contextWindow: 128000,
171
+ maxTokens: 8192,
172
+ }),
173
+ });
174
+ ```
175
+
176
+ If resolving requires a network call, use `prepareDynamicModel` for async
177
+ warm-up — `resolveDynamicModel` runs again after it completes.
178
+
179
+ </Step>
180
+
181
+ <Step title="Add runtime hooks (as needed)">
182
+ Most providers only need `catalog` + `resolveDynamicModel`. Add hooks
183
+ incrementally as your provider requires them.
184
+
185
+ <Tabs>
186
+ <Tab title="Token exchange">
187
+ For providers that need a token exchange before each inference call:
188
+
189
+ ```typescript
190
+ prepareRuntimeAuth: async (ctx) => {
191
+ const exchanged = await exchangeToken(ctx.apiKey);
192
+ return {
193
+ apiKey: exchanged.token,
194
+ baseUrl: exchanged.baseUrl,
195
+ expiresAt: exchanged.expiresAt,
196
+ };
197
+ },
198
+ ```
199
+ </Tab>
200
+ <Tab title="Custom headers">
201
+ For providers that need custom request headers or body modifications:
202
+
203
+ ```typescript
204
+ // wrapStreamFn returns a StreamFn derived from ctx.streamFn
205
+ wrapStreamFn: (ctx) => {
206
+ if (!ctx.streamFn) return undefined;
207
+ const inner = ctx.streamFn;
208
+ return async (params) => {
209
+ params.headers = {
210
+ ...params.headers,
211
+ "X-Acme-Version": "2",
212
+ };
213
+ return inner(params);
214
+ };
215
+ },
216
+ ```
217
+ </Tab>
218
+ <Tab title="Usage and billing">
219
+ For providers that expose usage/billing data:
220
+
221
+ ```typescript
222
+ resolveUsageAuth: async (ctx) => {
223
+ const auth = await ctx.resolveOAuthToken();
224
+ return auth ? { token: auth.token } : null;
225
+ },
226
+ fetchUsageSnapshot: async (ctx) => {
227
+ return await fetchAcmeUsage(ctx.token, ctx.timeoutMs);
228
+ },
229
+ ```
230
+ </Tab>
231
+ </Tabs>
232
+
233
+ <Accordion title="All 21 available hooks">
234
+ QuantumClaw calls hooks in this order. Most providers only use 2-3:
235
+
236
+ | # | Hook | When to use |
237
+ | --- | --- | --- |
238
+ | 1 | `catalog` | Model catalog or base URL defaults |
239
+ | 2 | `resolveDynamicModel` | Accept arbitrary upstream model IDs |
240
+ | 3 | `prepareDynamicModel` | Async metadata fetch before resolving |
241
+ | 4 | `normalizeResolvedModel` | Transport rewrites before the runner |
242
+ | 5 | `capabilities` | Transcript/tooling metadata |
243
+ | 6 | `prepareExtraParams` | Default request params |
244
+ | 7 | `wrapStreamFn` | Custom headers/body wrappers |
245
+ | 8 | `formatApiKey` | Custom runtime token shape |
246
+ | 9 | `refreshOAuth` | Custom OAuth refresh |
247
+ | 10 | `buildAuthDoctorHint` | Auth repair guidance |
248
+ | 11 | `isCacheTtlEligible` | Prompt cache TTL gating |
249
+ | 12 | `buildMissingAuthMessage` | Custom missing-auth hint |
250
+ | 13 | `suppressBuiltInModel` | Hide stale upstream rows |
251
+ | 14 | `augmentModelCatalog` | Synthetic forward-compat rows |
252
+ | 15 | `isBinaryThinking` | Binary thinking on/off |
253
+ | 16 | `supportsXHighThinking` | `xhigh` reasoning support |
254
+ | 17 | `resolveDefaultThinkingLevel` | Default `/think` policy |
255
+ | 18 | `isModernModelRef` | Live/smoke model matching |
256
+ | 19 | `prepareRuntimeAuth` | Token exchange before inference |
257
+ | 20 | `resolveUsageAuth` | Custom usage credential parsing |
258
+ | 21 | `fetchUsageSnapshot` | Custom usage endpoint |
259
+
260
+ For detailed descriptions and real-world examples, see
261
+ [Internals: Provider Runtime Hooks](/plugins/architecture#provider-runtime-hooks).
262
+ </Accordion>
263
+
264
+ </Step>
265
+
266
+ <Step title="Add extra capabilities (optional)">
267
+ A provider plugin can register speech, media understanding, image
268
+ generation, and web search alongside text inference:
269
+
270
+ ```typescript
271
+ register(api) {
272
+ api.registerProvider({ id: "acme-ai", /* ... */ });
273
+
274
+ api.registerSpeechProvider({
275
+ id: "acme-ai",
276
+ label: "Acme Speech",
277
+ isConfigured: ({ config }) => Boolean(config.messages?.tts),
278
+ synthesize: async (req) => ({
279
+ audioBuffer: Buffer.from(/* PCM data */),
280
+ outputFormat: "mp3",
281
+ fileExtension: ".mp3",
282
+ voiceCompatible: false,
283
+ }),
284
+ });
285
+
286
+ api.registerMediaUnderstandingProvider({
287
+ id: "acme-ai",
288
+ capabilities: ["image", "audio"],
289
+ describeImage: async (req) => ({ text: "A photo of..." }),
290
+ transcribeAudio: async (req) => ({ text: "Transcript..." }),
291
+ });
292
+
293
+ api.registerImageGenerationProvider({
294
+ id: "acme-ai",
295
+ label: "Acme Images",
296
+ generate: async (req) => ({ /* image result */ }),
297
+ });
298
+ }
299
+ ```
300
+
301
+ QuantumClaw classifies this as a **hybrid-capability** plugin. This is the
302
+ recommended pattern for company plugins (one plugin per vendor). See
303
+ [Internals: Capability Ownership](/plugins/architecture#capability-ownership-model).
304
+
305
+ </Step>
306
+
307
+ <Step title="Test">
308
+ ```typescript src/provider.test.ts
309
+ import { describe, it, expect } from "vitest";
310
+ // Export your provider config object from index.ts or a dedicated file
311
+ import { acmeProvider } from "./provider.js";
312
+
313
+ describe("acme-ai provider", () => {
314
+ it("resolves dynamic models", () => {
315
+ const model = acmeProvider.resolveDynamicModel!({
316
+ modelId: "acme-beta-v3",
317
+ } as any);
318
+ expect(model.id).toBe("acme-beta-v3");
319
+ expect(model.provider).toBe("acme-ai");
320
+ });
321
+
322
+ it("returns catalog when key is available", async () => {
323
+ const result = await acmeProvider.catalog!.run({
324
+ resolveProviderApiKey: () => ({ apiKey: "test-key" }),
325
+ } as any);
326
+ expect(result?.provider?.models).toHaveLength(2);
327
+ });
328
+
329
+ it("returns null catalog when no key", async () => {
330
+ const result = await acmeProvider.catalog!.run({
331
+ resolveProviderApiKey: () => ({ apiKey: undefined }),
332
+ } as any);
333
+ expect(result).toBeNull();
334
+ });
335
+ });
336
+ ```
337
+
338
+ </Step>
339
+ </Steps>
340
+
341
+ ## File structure
342
+
343
+ ```
344
+ extensions/acme-ai/
345
+ ├── package.json # quantumclaw.providers metadata
346
+ ├── quantumclaw.plugin.json # Manifest with providerAuthEnvVars
347
+ ├── index.ts # definePluginEntry + registerProvider
348
+ └── src/
349
+ ├── provider.test.ts # Tests
350
+ └── usage.ts # Usage endpoint (optional)
351
+ ```
352
+
353
+ ## Catalog order reference
354
+
355
+ `catalog.order` controls when your catalog merges relative to built-in
356
+ providers:
357
+
358
+ | Order | When | Use case |
359
+ | --------- | ------------- | ----------------------------------------------- |
360
+ | `simple` | First pass | Plain API-key providers |
361
+ | `profile` | After simple | Providers gated on auth profiles |
362
+ | `paired` | After profile | Synthesize multiple related entries |
363
+ | `late` | Last pass | Override existing providers (wins on collision) |
364
+
365
+ ## Next steps
366
+
367
+ - [Channel Plugins](/plugins/sdk-channel-plugins) — if your plugin also provides a channel
368
+ - [SDK Runtime](/plugins/sdk-runtime) — `api.runtime` helpers (TTS, search, subagent)
369
+ - [SDK Overview](/plugins/sdk-overview) — full subpath import reference
370
+ - [Plugin Internals](/plugins/architecture#provider-runtime-hooks) — hook details and bundled examples
@@ -0,0 +1,345 @@
1
+ ---
2
+ title: "Plugin SDK Runtime"
3
+ sidebarTitle: "Runtime Helpers"
4
+ summary: "api.runtime -- the injected runtime helpers available to plugins"
5
+ read_when:
6
+ - You need to call core helpers from a plugin (TTS, STT, image gen, web search, subagent)
7
+ - You want to understand what api.runtime exposes
8
+ - You are accessing config, agent, or media helpers from plugin code
9
+ ---
10
+
11
+ # Plugin Runtime Helpers
12
+
13
+ Reference for the `api.runtime` object injected into every plugin during
14
+ registration. Use these helpers instead of importing host internals directly.
15
+
16
+ <Tip>
17
+ **Looking for a walkthrough?** See [Channel Plugins](/plugins/sdk-channel-plugins)
18
+ or [Provider Plugins](/plugins/sdk-provider-plugins) for step-by-step guides
19
+ that show these helpers in context.
20
+ </Tip>
21
+
22
+ ```typescript
23
+ register(api) {
24
+ const runtime = api.runtime;
25
+ }
26
+ ```
27
+
28
+ ## Runtime namespaces
29
+
30
+ ### `api.runtime.agent`
31
+
32
+ Agent identity, directories, and session management.
33
+
34
+ ```typescript
35
+ // Resolve the agent's working directory
36
+ const agentDir = api.runtime.agent.resolveAgentDir(cfg);
37
+
38
+ // Resolve agent workspace
39
+ const workspaceDir = api.runtime.agent.resolveAgentWorkspaceDir(cfg);
40
+
41
+ // Get agent identity
42
+ const identity = api.runtime.agent.resolveAgentIdentity(cfg);
43
+
44
+ // Get default thinking level
45
+ const thinking = api.runtime.agent.resolveThinkingDefault(cfg, provider, model);
46
+
47
+ // Get agent timeout
48
+ const timeoutMs = api.runtime.agent.resolveAgentTimeoutMs(cfg);
49
+
50
+ // Ensure workspace exists
51
+ await api.runtime.agent.ensureAgentWorkspace(cfg);
52
+
53
+ // Run an embedded Pi agent (requires sessionFile + workspaceDir at minimum)
54
+ const agentDir = api.runtime.agent.resolveAgentDir(cfg);
55
+ const result = await api.runtime.agent.runEmbeddedPiAgent({
56
+ sessionId: "my-plugin:task-1",
57
+ sessionFile: path.join(agentDir, "sessions", "my-plugin-task-1.jsonl"),
58
+ workspaceDir: api.runtime.agent.resolveAgentWorkspaceDir(cfg),
59
+ prompt: "Summarize the latest changes",
60
+ });
61
+ ```
62
+
63
+ **Session store helpers** are under `api.runtime.agent.session`:
64
+
65
+ ```typescript
66
+ const storePath = api.runtime.agent.session.resolveStorePath(cfg);
67
+ const store = api.runtime.agent.session.loadSessionStore(cfg);
68
+ await api.runtime.agent.session.saveSessionStore(cfg, store);
69
+ const filePath = api.runtime.agent.session.resolveSessionFilePath(cfg, sessionId);
70
+ ```
71
+
72
+ ### `api.runtime.agent.defaults`
73
+
74
+ Default model and provider constants:
75
+
76
+ ```typescript
77
+ const model = api.runtime.agent.defaults.model; // e.g. "anthropic/claude-sonnet-4-6"
78
+ const provider = api.runtime.agent.defaults.provider; // e.g. "anthropic"
79
+ ```
80
+
81
+ ### `api.runtime.subagent`
82
+
83
+ Launch and manage background subagent runs.
84
+
85
+ ```typescript
86
+ // Start a subagent run
87
+ const { runId } = await api.runtime.subagent.run({
88
+ sessionKey: "agent:main:subagent:search-helper",
89
+ message: "Expand this query into focused follow-up searches.",
90
+ provider: "openai", // optional override
91
+ model: "gpt-4.1-mini", // optional override
92
+ deliver: false,
93
+ });
94
+
95
+ // Wait for completion
96
+ const result = await api.runtime.subagent.waitForRun({ runId, timeoutMs: 30000 });
97
+
98
+ // Read session messages
99
+ const { messages } = await api.runtime.subagent.getSessionMessages({
100
+ sessionKey: "agent:main:subagent:search-helper",
101
+ limit: 10,
102
+ });
103
+
104
+ // Delete a session
105
+ await api.runtime.subagent.deleteSession({
106
+ sessionKey: "agent:main:subagent:search-helper",
107
+ });
108
+ ```
109
+
110
+ <Warning>
111
+ Model overrides (`provider`/`model`) require operator opt-in via
112
+ `plugins.entries.<id>.subagent.allowModelOverride: true` in config.
113
+ Untrusted plugins can still run subagents, but override requests are rejected.
114
+ </Warning>
115
+
116
+ ### `api.runtime.tts`
117
+
118
+ Text-to-speech synthesis.
119
+
120
+ ```typescript
121
+ // Standard TTS
122
+ const clip = await api.runtime.tts.textToSpeech({
123
+ text: "Hello from QuantumClaw",
124
+ cfg: api.config,
125
+ });
126
+
127
+ // Telephony-optimized TTS
128
+ const telephonyClip = await api.runtime.tts.textToSpeechTelephony({
129
+ text: "Hello from QuantumClaw",
130
+ cfg: api.config,
131
+ });
132
+
133
+ // List available voices
134
+ const voices = await api.runtime.tts.listVoices({
135
+ provider: "elevenlabs",
136
+ cfg: api.config,
137
+ });
138
+ ```
139
+
140
+ Uses core `messages.tts` configuration and provider selection. Returns PCM audio
141
+ buffer + sample rate.
142
+
143
+ ### `api.runtime.mediaUnderstanding`
144
+
145
+ Image, audio, and video analysis.
146
+
147
+ ```typescript
148
+ // Describe an image
149
+ const image = await api.runtime.mediaUnderstanding.describeImageFile({
150
+ filePath: "/tmp/inbound-photo.jpg",
151
+ cfg: api.config,
152
+ agentDir: "/tmp/agent",
153
+ });
154
+
155
+ // Transcribe audio
156
+ const { text } = await api.runtime.mediaUnderstanding.transcribeAudioFile({
157
+ filePath: "/tmp/inbound-audio.ogg",
158
+ cfg: api.config,
159
+ mime: "audio/ogg", // optional, for when MIME cannot be inferred
160
+ });
161
+
162
+ // Describe a video
163
+ const video = await api.runtime.mediaUnderstanding.describeVideoFile({
164
+ filePath: "/tmp/inbound-video.mp4",
165
+ cfg: api.config,
166
+ });
167
+
168
+ // Generic file analysis
169
+ const result = await api.runtime.mediaUnderstanding.runFile({
170
+ filePath: "/tmp/inbound-file.pdf",
171
+ cfg: api.config,
172
+ });
173
+ ```
174
+
175
+ Returns `{ text: undefined }` when no output is produced (e.g. skipped input).
176
+
177
+ <Info>
178
+ `api.runtime.stt.transcribeAudioFile(...)` remains as a compatibility alias
179
+ for `api.runtime.mediaUnderstanding.transcribeAudioFile(...)`.
180
+ </Info>
181
+
182
+ ### `api.runtime.imageGeneration`
183
+
184
+ Image generation.
185
+
186
+ ```typescript
187
+ const result = await api.runtime.imageGeneration.generate({
188
+ prompt: "A robot painting a sunset",
189
+ cfg: api.config,
190
+ });
191
+
192
+ const providers = api.runtime.imageGeneration.listProviders({ cfg: api.config });
193
+ ```
194
+
195
+ ### `api.runtime.webSearch`
196
+
197
+ Web search.
198
+
199
+ ```typescript
200
+ const providers = api.runtime.webSearch.listProviders({ config: api.config });
201
+
202
+ const result = await api.runtime.webSearch.search({
203
+ config: api.config,
204
+ args: { query: "QuantumClaw plugin SDK", count: 5 },
205
+ });
206
+ ```
207
+
208
+ ### `api.runtime.media`
209
+
210
+ Low-level media utilities.
211
+
212
+ ```typescript
213
+ const webMedia = await api.runtime.media.loadWebMedia(url);
214
+ const mime = await api.runtime.media.detectMime(buffer);
215
+ const kind = api.runtime.media.mediaKindFromMime("image/jpeg"); // "image"
216
+ const isVoice = api.runtime.media.isVoiceCompatibleAudio(filePath);
217
+ const metadata = await api.runtime.media.getImageMetadata(filePath);
218
+ const resized = await api.runtime.media.resizeToJpeg(buffer, { maxWidth: 800 });
219
+ ```
220
+
221
+ ### `api.runtime.config`
222
+
223
+ Config load and write.
224
+
225
+ ```typescript
226
+ const cfg = await api.runtime.config.loadConfig();
227
+ await api.runtime.config.writeConfigFile(cfg);
228
+ ```
229
+
230
+ ### `api.runtime.system`
231
+
232
+ System-level utilities.
233
+
234
+ ```typescript
235
+ await api.runtime.system.enqueueSystemEvent(event);
236
+ api.runtime.system.requestHeartbeatNow();
237
+ const output = await api.runtime.system.runCommandWithTimeout(cmd, args, opts);
238
+ const hint = api.runtime.system.formatNativeDependencyHint(pkg);
239
+ ```
240
+
241
+ ### `api.runtime.events`
242
+
243
+ Event subscriptions.
244
+
245
+ ```typescript
246
+ api.runtime.events.onAgentEvent((event) => {
247
+ /* ... */
248
+ });
249
+ api.runtime.events.onSessionTranscriptUpdate((update) => {
250
+ /* ... */
251
+ });
252
+ ```
253
+
254
+ ### `api.runtime.logging`
255
+
256
+ Logging.
257
+
258
+ ```typescript
259
+ const verbose = api.runtime.logging.shouldLogVerbose();
260
+ const childLogger = api.runtime.logging.getChildLogger({ plugin: "my-plugin" }, { level: "debug" });
261
+ ```
262
+
263
+ ### `api.runtime.modelAuth`
264
+
265
+ Model and provider auth resolution.
266
+
267
+ ```typescript
268
+ const auth = await api.runtime.modelAuth.getApiKeyForModel({ model, cfg });
269
+ const providerAuth = await api.runtime.modelAuth.resolveApiKeyForProvider({
270
+ provider: "openai",
271
+ cfg,
272
+ });
273
+ ```
274
+
275
+ ### `api.runtime.state`
276
+
277
+ State directory resolution.
278
+
279
+ ```typescript
280
+ const stateDir = api.runtime.state.resolveStateDir();
281
+ ```
282
+
283
+ ### `api.runtime.tools`
284
+
285
+ Memory tool factories and CLI.
286
+
287
+ ```typescript
288
+ const getTool = api.runtime.tools.createMemoryGetTool(/* ... */);
289
+ const searchTool = api.runtime.tools.createMemorySearchTool(/* ... */);
290
+ api.runtime.tools.registerMemoryCli(/* ... */);
291
+ ```
292
+
293
+ ### `api.runtime.channel`
294
+
295
+ Channel-specific runtime helpers (available when a channel plugin is loaded).
296
+
297
+ ## Storing runtime references
298
+
299
+ Use `createPluginRuntimeStore` to store the runtime reference for use outside
300
+ the `register` callback:
301
+
302
+ ```typescript
303
+ import { createPluginRuntimeStore } from "quantumclaw/plugin-sdk/runtime-store";
304
+ import type { PluginRuntime } from "quantumclaw/plugin-sdk/runtime-store";
305
+
306
+ const store = createPluginRuntimeStore<PluginRuntime>("my-plugin runtime not initialized");
307
+
308
+ // In your entry point
309
+ export default defineChannelPluginEntry({
310
+ id: "my-plugin",
311
+ name: "My Plugin",
312
+ description: "Example",
313
+ plugin: myPlugin,
314
+ setRuntime: store.setRuntime,
315
+ });
316
+
317
+ // In other files
318
+ export function getRuntime() {
319
+ return store.getRuntime(); // throws if not initialized
320
+ }
321
+
322
+ export function tryGetRuntime() {
323
+ return store.tryGetRuntime(); // returns null if not initialized
324
+ }
325
+ ```
326
+
327
+ ## Other top-level `api` fields
328
+
329
+ Beyond `api.runtime`, the API object also provides:
330
+
331
+ | Field | Type | Description |
332
+ | ------------------------ | ------------------------- | --------------------------------------------------------- |
333
+ | `api.id` | `string` | Plugin id |
334
+ | `api.name` | `string` | Plugin display name |
335
+ | `api.config` | `QuantumClawConfig` | Current config snapshot |
336
+ | `api.pluginConfig` | `Record<string, unknown>` | Plugin-specific config from `plugins.entries.<id>.config` |
337
+ | `api.logger` | `PluginLogger` | Scoped logger (`debug`, `info`, `warn`, `error`) |
338
+ | `api.registrationMode` | `PluginRegistrationMode` | `"full"`, `"setup-only"`, or `"setup-runtime"` |
339
+ | `api.resolvePath(input)` | `(string) => string` | Resolve a path relative to the plugin root |
340
+
341
+ ## Related
342
+
343
+ - [SDK Overview](/plugins/sdk-overview) -- subpath reference
344
+ - [SDK Entry Points](/plugins/sdk-entrypoints) -- `definePluginEntry` options
345
+ - [Plugin Internals](/plugins/architecture) -- capability model and registry