@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,430 @@
1
+ ---
2
+ summary: "Exec approvals, allowlists, and sandbox escape prompts"
3
+ read_when:
4
+ - Configuring exec approvals or allowlists
5
+ - Implementing exec approval UX in the macOS app
6
+ - Reviewing sandbox escape prompts and implications
7
+ title: "Exec Approvals"
8
+ ---
9
+
10
+ # Exec approvals
11
+
12
+ Exec approvals are the **companion app / node host guardrail** for letting a sandboxed agent run
13
+ commands on a real host (`gateway` or `node`). Think of it like a safety interlock:
14
+ commands are allowed only when policy + allowlist + (optional) user approval all agree.
15
+ Exec approvals are **in addition** to tool policy and elevated gating (unless elevated is set to `full`, which skips approvals).
16
+ Effective policy is the **stricter** of `tools.exec.*` and approvals defaults; if an approvals field is omitted, the `tools.exec` value is used.
17
+
18
+ If the companion app UI is **not available**, any request that requires a prompt is
19
+ resolved by the **ask fallback** (default: deny).
20
+
21
+ ## Where it applies
22
+
23
+ Exec approvals are enforced locally on the execution host:
24
+
25
+ - **gateway host** → `quantumclaw` process on the gateway machine
26
+ - **node host** → node runner (macOS companion app or headless node host)
27
+
28
+ Trust model note:
29
+
30
+ - Gateway-authenticated callers are trusted operators for that Gateway.
31
+ - Paired nodes extend that trusted operator capability onto the node host.
32
+ - Exec approvals reduce accidental execution risk, but are not a per-user auth boundary.
33
+ - Approved node-host runs bind canonical execution context: canonical cwd, exact argv, env
34
+ binding when present, and pinned executable path when applicable.
35
+ - For shell scripts and direct interpreter/runtime file invocations, QuantumClaw also tries to bind
36
+ one concrete local file operand. If that bound file changes after approval but before execution,
37
+ the run is denied instead of executing drifted content.
38
+ - This file binding is intentionally best-effort, not a complete semantic model of every
39
+ interpreter/runtime loader path. If approval mode cannot identify exactly one concrete local
40
+ file to bind, it refuses to mint an approval-backed run instead of pretending full coverage.
41
+
42
+ macOS split:
43
+
44
+ - **node host service** forwards `system.run` to the **macOS app** over local IPC.
45
+ - **macOS app** enforces approvals + executes the command in UI context.
46
+
47
+ ## Settings and storage
48
+
49
+ Approvals live in a local JSON file on the execution host:
50
+
51
+ `~/.quantumclaw/exec-approvals.json`
52
+
53
+ Example schema:
54
+
55
+ ```json
56
+ {
57
+ "version": 1,
58
+ "socket": {
59
+ "path": "~/.quantumclaw/exec-approvals.sock",
60
+ "token": "base64url-token"
61
+ },
62
+ "defaults": {
63
+ "security": "deny",
64
+ "ask": "on-miss",
65
+ "askFallback": "deny",
66
+ "autoAllowSkills": false
67
+ },
68
+ "agents": {
69
+ "main": {
70
+ "security": "allowlist",
71
+ "ask": "on-miss",
72
+ "askFallback": "deny",
73
+ "autoAllowSkills": true,
74
+ "allowlist": [
75
+ {
76
+ "id": "B0C8C0B3-2C2D-4F8A-9A3C-5A4B3C2D1E0F",
77
+ "pattern": "~/Projects/**/bin/rg",
78
+ "lastUsedAt": 1737150000000,
79
+ "lastUsedCommand": "rg -n TODO",
80
+ "lastResolvedPath": "/Users/user/Projects/.../bin/rg"
81
+ }
82
+ ]
83
+ }
84
+ }
85
+ }
86
+ ```
87
+
88
+ ## Policy knobs
89
+
90
+ ### Security (`exec.security`)
91
+
92
+ - **deny**: block all host exec requests.
93
+ - **allowlist**: allow only allowlisted commands.
94
+ - **full**: allow everything (equivalent to elevated).
95
+
96
+ ### Ask (`exec.ask`)
97
+
98
+ - **off**: never prompt.
99
+ - **on-miss**: prompt only when allowlist does not match.
100
+ - **always**: prompt on every command.
101
+
102
+ ### Ask fallback (`askFallback`)
103
+
104
+ If a prompt is required but no UI is reachable, fallback decides:
105
+
106
+ - **deny**: block.
107
+ - **allowlist**: allow only if allowlist matches.
108
+ - **full**: allow.
109
+
110
+ ### Inline interpreter eval hardening (`tools.exec.strictInlineEval`)
111
+
112
+ When `tools.exec.strictInlineEval=true`, QuantumClaw treats inline code-eval forms as approval-only even if the interpreter binary itself is allowlisted.
113
+
114
+ Examples:
115
+
116
+ - `python -c`
117
+ - `node -e`, `node --eval`, `node -p`
118
+ - `ruby -e`
119
+ - `perl -e`, `perl -E`
120
+ - `php -r`
121
+ - `lua -e`
122
+ - `osascript -e`
123
+
124
+ This is defense-in-depth for interpreter loaders that do not map cleanly to one stable file operand. In strict mode:
125
+
126
+ - these commands still need explicit approval;
127
+ - `allow-always` does not persist new allowlist entries for them automatically.
128
+
129
+ ## Allowlist (per agent)
130
+
131
+ Allowlists are **per agent**. If multiple agents exist, switch which agent you’re
132
+ editing in the macOS app. Patterns are **case-insensitive glob matches**.
133
+ Patterns should resolve to **binary paths** (basename-only entries are ignored).
134
+ Legacy `agents.default` entries are migrated to `agents.main` on load.
135
+
136
+ Examples:
137
+
138
+ - `~/Projects/**/bin/peekaboo`
139
+ - `~/.local/bin/*`
140
+ - `/opt/homebrew/bin/rg`
141
+
142
+ Each allowlist entry tracks:
143
+
144
+ - **id** stable UUID used for UI identity (optional)
145
+ - **last used** timestamp
146
+ - **last used command**
147
+ - **last resolved path**
148
+
149
+ ## Auto-allow skill CLIs
150
+
151
+ When **Auto-allow skill CLIs** is enabled, executables referenced by known skills
152
+ are treated as allowlisted on nodes (macOS node or headless node host). This uses
153
+ `skills.bins` over the Gateway RPC to fetch the skill bin list. Disable this if you want strict manual allowlists.
154
+
155
+ Important trust notes:
156
+
157
+ - This is an **implicit convenience allowlist**, separate from manual path allowlist entries.
158
+ - It is intended for trusted operator environments where Gateway and node are in the same trust boundary.
159
+ - If you require strict explicit trust, keep `autoAllowSkills: false` and use manual path allowlist entries only.
160
+
161
+ ## Safe bins (stdin-only)
162
+
163
+ `tools.exec.safeBins` defines a small list of **stdin-only** binaries (for example `cut`)
164
+ that can run in allowlist mode **without** explicit allowlist entries. Safe bins reject
165
+ positional file args and path-like tokens, so they can only operate on the incoming stream.
166
+ Treat this as a narrow fast-path for stream filters, not a general trust list.
167
+ Do **not** add interpreter or runtime binaries (for example `python3`, `node`, `ruby`, `bash`, `sh`, `zsh`) to `safeBins`.
168
+ If a command can evaluate code, execute subcommands, or read files by design, prefer explicit allowlist entries and keep approval prompts enabled.
169
+ Custom safe bins must define an explicit profile in `tools.exec.safeBinProfiles.<bin>`.
170
+ Validation is deterministic from argv shape only (no host filesystem existence checks), which
171
+ prevents file-existence oracle behavior from allow/deny differences.
172
+ File-oriented options are denied for default safe bins (for example `sort -o`, `sort --output`,
173
+ `sort --files0-from`, `sort --compress-program`, `sort --random-source`,
174
+ `sort --temporary-directory`/`-T`, `wc --files0-from`, `jq -f/--from-file`,
175
+ `grep -f/--file`).
176
+ Safe bins also enforce explicit per-binary flag policy for options that break stdin-only
177
+ behavior (for example `sort -o/--output/--compress-program` and grep recursive flags).
178
+ Long options are validated fail-closed in safe-bin mode: unknown flags and ambiguous
179
+ abbreviations are rejected.
180
+ Denied flags by safe-bin profile:
181
+
182
+ <!-- SAFE_BIN_DENIED_FLAGS:START -->
183
+
184
+ - `grep`: `--dereference-recursive`, `--directories`, `--exclude-from`, `--file`, `--recursive`, `-R`, `-d`, `-f`, `-r`
185
+ - `jq`: `--argfile`, `--from-file`, `--library-path`, `--rawfile`, `--slurpfile`, `-L`, `-f`
186
+ - `sort`: `--compress-program`, `--files0-from`, `--output`, `--random-source`, `--temporary-directory`, `-T`, `-o`
187
+ - `wc`: `--files0-from`
188
+
189
+ <!-- SAFE_BIN_DENIED_FLAGS:END -->
190
+
191
+ Safe bins also force argv tokens to be treated as **literal text** at execution time (no globbing
192
+ and no `$VARS` expansion) for stdin-only segments, so patterns like `*` or `$HOME/...` cannot be
193
+ used to smuggle file reads.
194
+ Safe bins must also resolve from trusted binary directories (system defaults plus optional
195
+ `tools.exec.safeBinTrustedDirs`). `PATH` entries are never auto-trusted.
196
+ Default trusted safe-bin directories are intentionally minimal: `/bin`, `/usr/bin`.
197
+ If your safe-bin executable lives in package-manager/user paths (for example
198
+ `/opt/homebrew/bin`, `/usr/local/bin`, `/opt/local/bin`, `/snap/bin`), add them explicitly
199
+ to `tools.exec.safeBinTrustedDirs`.
200
+ Shell chaining and redirections are not auto-allowed in allowlist mode.
201
+
202
+ Shell chaining (`&&`, `||`, `;`) is allowed when every top-level segment satisfies the allowlist
203
+ (including safe bins or skill auto-allow). Redirections remain unsupported in allowlist mode.
204
+ Command substitution (`$()` / backticks) is rejected during allowlist parsing, including inside
205
+ double quotes; use single quotes if you need literal `$()` text.
206
+ On macOS companion-app approvals, raw shell text containing shell control or expansion syntax
207
+ (`&&`, `||`, `;`, `|`, `` ` ``, `$`, `<`, `>`, `(`, `)`) is treated as an allowlist miss unless
208
+ the shell binary itself is allowlisted.
209
+ For shell wrappers (`bash|sh|zsh ... -c/-lc`), request-scoped env overrides are reduced to a
210
+ small explicit allowlist (`TERM`, `LANG`, `LC_*`, `COLORTERM`, `NO_COLOR`, `FORCE_COLOR`).
211
+ For allow-always decisions in allowlist mode, known dispatch wrappers
212
+ (`env`, `nice`, `nohup`, `stdbuf`, `timeout`) persist inner executable paths instead of wrapper
213
+ paths. Shell multiplexers (`busybox`, `toybox`) are also unwrapped for shell applets (`sh`, `ash`,
214
+ etc.) so inner executables are persisted instead of multiplexer binaries. If a wrapper or
215
+ multiplexer cannot be safely unwrapped, no allowlist entry is persisted automatically.
216
+ If you allowlist interpreters like `python3` or `node`, prefer `tools.exec.strictInlineEval=true` so inline eval still requires an explicit approval.
217
+
218
+ Default safe bins:
219
+
220
+ <!-- SAFE_BIN_DEFAULTS:START -->
221
+
222
+ `cut`, `uniq`, `head`, `tail`, `tr`, `wc`
223
+
224
+ <!-- SAFE_BIN_DEFAULTS:END -->
225
+
226
+ `grep` and `sort` are not in the default list. If you opt in, keep explicit allowlist entries for
227
+ their non-stdin workflows.
228
+ For `grep` in safe-bin mode, provide the pattern with `-e`/`--regexp`; positional pattern form is
229
+ rejected so file operands cannot be smuggled as ambiguous positionals.
230
+
231
+ ### Safe bins versus allowlist
232
+
233
+ | Topic | `tools.exec.safeBins` | Allowlist (`exec-approvals.json`) |
234
+ | ---------------- | ------------------------------------------------------ | ------------------------------------------------------------ |
235
+ | Goal | Auto-allow narrow stdin filters | Explicitly trust specific executables |
236
+ | Match type | Executable name + safe-bin argv policy | Resolved executable path glob pattern |
237
+ | Argument scope | Restricted by safe-bin profile and literal-token rules | Path match only; arguments are otherwise your responsibility |
238
+ | Typical examples | `head`, `tail`, `tr`, `wc` | `jq`, `python3`, `node`, `ffmpeg`, custom CLIs |
239
+ | Best use | Low-risk text transforms in pipelines | Any tool with broader behavior or side effects |
240
+
241
+ Configuration location:
242
+
243
+ - `safeBins` comes from config (`tools.exec.safeBins` or per-agent `agents.list[].tools.exec.safeBins`).
244
+ - `safeBinTrustedDirs` comes from config (`tools.exec.safeBinTrustedDirs` or per-agent `agents.list[].tools.exec.safeBinTrustedDirs`).
245
+ - `safeBinProfiles` comes from config (`tools.exec.safeBinProfiles` or per-agent `agents.list[].tools.exec.safeBinProfiles`). Per-agent profile keys override global keys.
246
+ - allowlist entries live in host-local `~/.quantumclaw/exec-approvals.json` under `agents.<id>.allowlist` (or via Control UI / `quantumclaw approvals allowlist ...`).
247
+ - `quantumclaw security audit` warns with `tools.exec.safe_bins_interpreter_unprofiled` when interpreter/runtime bins appear in `safeBins` without explicit profiles.
248
+ - `quantumclaw doctor --fix` can scaffold missing custom `safeBinProfiles.<bin>` entries as `{}` (review and tighten afterward). Interpreter/runtime bins are not auto-scaffolded.
249
+
250
+ Custom profile example:
251
+
252
+ ```json5
253
+ {
254
+ tools: {
255
+ exec: {
256
+ safeBins: ["jq", "myfilter"],
257
+ safeBinProfiles: {
258
+ myfilter: {
259
+ minPositional: 0,
260
+ maxPositional: 0,
261
+ allowedValueFlags: ["-n", "--limit"],
262
+ deniedFlags: ["-f", "--file", "-c", "--command"],
263
+ },
264
+ },
265
+ },
266
+ },
267
+ }
268
+ ```
269
+
270
+ If you explicitly opt `jq` into `safeBins`, QuantumClaw still rejects the `env` builtin in safe-bin
271
+ mode so `jq -n env` cannot dump the host process environment without an explicit allowlist path
272
+ or approval prompt.
273
+
274
+ ## Control UI editing
275
+
276
+ Use the **Control UI → Nodes → Exec approvals** card to edit defaults, per‑agent
277
+ overrides, and allowlists. Pick a scope (Defaults or an agent), tweak the policy,
278
+ add/remove allowlist patterns, then **Save**. The UI shows **last used** metadata
279
+ per pattern so you can keep the list tidy.
280
+
281
+ The target selector chooses **Gateway** (local approvals) or a **Node**. Nodes
282
+ must advertise `system.execApprovals.get/set` (macOS app or headless node host).
283
+ If a node does not advertise exec approvals yet, edit its local
284
+ `~/.quantumclaw/exec-approvals.json` directly.
285
+
286
+ CLI: `quantumclaw approvals` supports gateway or node editing (see [Approvals CLI](/cli/approvals)).
287
+
288
+ ## Approval flow
289
+
290
+ When a prompt is required, the gateway broadcasts `exec.approval.requested` to operator clients.
291
+ The Control UI and macOS app resolve it via `exec.approval.resolve`, then the gateway forwards the
292
+ approved request to the node host.
293
+
294
+ For `host=node`, approval requests include a canonical `systemRunPlan` payload. The gateway uses
295
+ that plan as the authoritative command/cwd/session context when forwarding approved `system.run`
296
+ requests.
297
+
298
+ ## Interpreter/runtime commands
299
+
300
+ Approval-backed interpreter/runtime runs are intentionally conservative:
301
+
302
+ - Exact argv/cwd/env context is always bound.
303
+ - Direct shell script and direct runtime file forms are best-effort bound to one concrete local
304
+ file snapshot.
305
+ - Common package-manager wrapper forms that still resolve to one direct local file (for example
306
+ `pnpm exec`, `pnpm node`, `npm exec`, `npx`) are unwrapped before binding.
307
+ - If QuantumClaw cannot identify exactly one concrete local file for an interpreter/runtime command
308
+ (for example package scripts, eval forms, runtime-specific loader chains, or ambiguous multi-file
309
+ forms), approval-backed execution is denied instead of claiming semantic coverage it does not
310
+ have.
311
+ - For those workflows, prefer sandboxing, a separate host boundary, or an explicit trusted
312
+ allowlist/full workflow where the operator accepts the broader runtime semantics.
313
+
314
+ When approvals are required, the exec tool returns immediately with an approval id. Use that id to
315
+ correlate later system events (`Exec finished` / `Exec denied`). If no decision arrives before the
316
+ timeout, the request is treated as an approval timeout and surfaced as a denial reason.
317
+
318
+ The confirmation dialog includes:
319
+
320
+ - command + args
321
+ - cwd
322
+ - agent id
323
+ - resolved executable path
324
+ - host + policy metadata
325
+
326
+ Actions:
327
+
328
+ - **Allow once** → run now
329
+ - **Always allow** → add to allowlist + run
330
+ - **Deny** → block
331
+
332
+ ## Approval forwarding to chat channels
333
+
334
+ You can forward exec approval prompts to any chat channel (including plugin channels) and approve
335
+ them with `/approve`. This uses the normal outbound delivery pipeline.
336
+
337
+ Config:
338
+
339
+ ```json5
340
+ {
341
+ approvals: {
342
+ exec: {
343
+ enabled: true,
344
+ mode: "session", // "session" | "targets" | "both"
345
+ agentFilter: ["main"],
346
+ sessionFilter: ["discord"], // substring or regex
347
+ targets: [
348
+ { channel: "slack", to: "U12345678" },
349
+ { channel: "telegram", to: "123456789" },
350
+ ],
351
+ },
352
+ },
353
+ }
354
+ ```
355
+
356
+ Reply in chat:
357
+
358
+ ```
359
+ /approve <id> allow-once
360
+ /approve <id> allow-always
361
+ /approve <id> deny
362
+ ```
363
+
364
+ ### Built-in chat approval clients
365
+
366
+ Discord and Telegram can also act as explicit exec approval clients with channel-specific config.
367
+
368
+ - Discord: `channels.discord.execApprovals.*`
369
+ - Telegram: `channels.telegram.execApprovals.*`
370
+
371
+ These clients are opt-in. If a channel does not have exec approvals enabled, QuantumClaw does not treat
372
+ that channel as an approval surface just because the conversation happened there.
373
+
374
+ Shared behavior:
375
+
376
+ - only configured approvers can approve or deny
377
+ - the requester does not need to be an approver
378
+ - when channel delivery is enabled, approval prompts include the command text
379
+ - if no operator UI or configured approval client can accept the request, the prompt falls back to `askFallback`
380
+
381
+ Telegram defaults to approver DMs (`target: "dm"`). You can switch to `channel` or `both` when you
382
+ want approval prompts to appear in the originating Telegram chat/topic as well. For Telegram forum
383
+ topics, QuantumClaw preserves the topic for the approval prompt and the post-approval follow-up.
384
+
385
+ See:
386
+
387
+ - [Discord](/channels/discord#exec-approvals-in-discord)
388
+ - [Telegram](/channels/telegram#exec-approvals-in-telegram)
389
+
390
+ ### macOS IPC flow
391
+
392
+ ```
393
+ Gateway -> Node Service (WS)
394
+ | IPC (UDS + token + HMAC + TTL)
395
+ v
396
+ Mac App (UI + approvals + system.run)
397
+ ```
398
+
399
+ Security notes:
400
+
401
+ - Unix socket mode `0600`, token stored in `exec-approvals.json`.
402
+ - Same-UID peer check.
403
+ - Challenge/response (nonce + HMAC token + request hash) + short TTL.
404
+
405
+ ## System events
406
+
407
+ Exec lifecycle is surfaced as system messages:
408
+
409
+ - `Exec running` (only if the command exceeds the running notice threshold)
410
+ - `Exec finished`
411
+ - `Exec denied`
412
+
413
+ These are posted to the agent’s session after the node reports the event.
414
+ Gateway-host exec approvals emit the same lifecycle events when the command finishes (and optionally when running longer than the threshold).
415
+ Approval-gated execs reuse the approval id as the `runId` in these messages for easy correlation.
416
+
417
+ ## Implications
418
+
419
+ - **full** is powerful; prefer allowlists when possible.
420
+ - **ask** keeps you in the loop while still allowing fast approvals.
421
+ - Per-agent allowlists prevent one agent’s approvals from leaking into others.
422
+ - Approvals only apply to host exec requests from **authorized senders**. Unauthorized senders cannot issue `/exec`.
423
+ - `/exec security=full` is a session-level convenience for authorized operators and skips approvals by design.
424
+ To hard-block host exec, set approvals security to `deny` or deny the `exec` tool via tool policy.
425
+
426
+ Related:
427
+
428
+ - [Exec tool](/tools/exec)
429
+ - [Elevated mode](/tools/elevated)
430
+ - [Skills](/tools/skills)
@@ -0,0 +1,207 @@
1
+ ---
2
+ summary: "Exec tool usage, stdin modes, and TTY support"
3
+ read_when:
4
+ - Using or modifying the exec tool
5
+ - Debugging stdin or TTY behavior
6
+ title: "Exec Tool"
7
+ ---
8
+
9
+ # Exec tool
10
+
11
+ Run shell commands in the workspace. Supports foreground + background execution via `process`.
12
+ If `process` is disallowed, `exec` runs synchronously and ignores `yieldMs`/`background`.
13
+ Background sessions are scoped per agent; `process` only sees sessions from the same agent.
14
+
15
+ ## Parameters
16
+
17
+ - `command` (required)
18
+ - `workdir` (defaults to cwd)
19
+ - `env` (key/value overrides)
20
+ - `yieldMs` (default 10000): auto-background after delay
21
+ - `background` (bool): background immediately
22
+ - `timeout` (seconds, default 1800): kill on expiry
23
+ - `pty` (bool): run in a pseudo-terminal when available (TTY-only CLIs, coding agents, terminal UIs)
24
+ - `host` (`sandbox | gateway | node`): where to execute
25
+ - `security` (`deny | allowlist | full`): enforcement mode for `gateway`/`node`
26
+ - `ask` (`off | on-miss | always`): approval prompts for `gateway`/`node`
27
+ - `node` (string): node id/name for `host=node`
28
+ - `elevated` (bool): request elevated mode (gateway host); `security=full` is only forced when elevated resolves to `full`
29
+
30
+ Notes:
31
+
32
+ - `host` defaults to `sandbox`.
33
+ - `elevated` is ignored when sandboxing is off (exec already runs on the host).
34
+ - `gateway`/`node` approvals are controlled by `~/.quantumclaw/exec-approvals.json`.
35
+ - `node` requires a paired node (companion app or headless node host).
36
+ - If multiple nodes are available, set `exec.node` or `tools.exec.node` to select one.
37
+ - On non-Windows hosts, exec uses `SHELL` when set; if `SHELL` is `fish`, it prefers `bash` (or `sh`)
38
+ from `PATH` to avoid fish-incompatible scripts, then falls back to `SHELL` if neither exists.
39
+ - On Windows hosts, exec prefers PowerShell 7 (`pwsh`) discovery (Program Files, ProgramW6432, then PATH),
40
+ then falls back to Windows PowerShell 5.1.
41
+ - Host execution (`gateway`/`node`) rejects `env.PATH` and loader overrides (`LD_*`/`DYLD_*`) to
42
+ prevent binary hijacking or injected code.
43
+ - QuantumClaw sets `QUANTUMCLAW_SHELL=exec` in the spawned command environment (including PTY and sandbox execution) so shell/profile rules can detect exec-tool context.
44
+ - Important: sandboxing is **off by default**. If sandboxing is off and `host=sandbox` is explicitly
45
+ configured/requested, exec now fails closed instead of silently running on the gateway host.
46
+ Enable sandboxing or use `host=gateway` with approvals.
47
+ - Script preflight checks (for common Python/Node shell-syntax mistakes) only inspect files inside the
48
+ effective `workdir` boundary. If a script path resolves outside `workdir`, preflight is skipped for
49
+ that file.
50
+
51
+ ## Config
52
+
53
+ - `tools.exec.notifyOnExit` (default: true): when true, backgrounded exec sessions enqueue a system event and request a heartbeat on exit.
54
+ - `tools.exec.approvalRunningNoticeMs` (default: 10000): emit a single “running” notice when an approval-gated exec runs longer than this (0 disables).
55
+ - `tools.exec.host` (default: `sandbox`)
56
+ - `tools.exec.security` (default: `deny` for sandbox, `allowlist` for gateway + node when unset)
57
+ - `tools.exec.ask` (default: `on-miss`)
58
+ - `tools.exec.node` (default: unset)
59
+ - `tools.exec.strictInlineEval` (default: false): when true, inline interpreter eval forms such as `python -c`, `node -e`, `ruby -e`, `perl -e`, `php -r`, `lua -e`, and `osascript -e` always require explicit approval and are never persisted by `allow-always`.
60
+ - `tools.exec.pathPrepend`: list of directories to prepend to `PATH` for exec runs (gateway + sandbox only).
61
+ - `tools.exec.safeBins`: stdin-only safe binaries that can run without explicit allowlist entries. For behavior details, see [Safe bins](/tools/exec-approvals#safe-bins-stdin-only).
62
+ - `tools.exec.safeBinTrustedDirs`: additional explicit directories trusted for `safeBins` path checks. `PATH` entries are never auto-trusted. Built-in defaults are `/bin` and `/usr/bin`.
63
+ - `tools.exec.safeBinProfiles`: optional custom argv policy per safe bin (`minPositional`, `maxPositional`, `allowedValueFlags`, `deniedFlags`).
64
+
65
+ Example:
66
+
67
+ ```json5
68
+ {
69
+ tools: {
70
+ exec: {
71
+ pathPrepend: ["~/bin", "/opt/oss/bin"],
72
+ },
73
+ },
74
+ }
75
+ ```
76
+
77
+ ### PATH handling
78
+
79
+ - `host=gateway`: merges your login-shell `PATH` into the exec environment. `env.PATH` overrides are
80
+ rejected for host execution. The daemon itself still runs with a minimal `PATH`:
81
+ - macOS: `/opt/homebrew/bin`, `/usr/local/bin`, `/usr/bin`, `/bin`
82
+ - Linux: `/usr/local/bin`, `/usr/bin`, `/bin`
83
+ - `host=sandbox`: runs `sh -lc` (login shell) inside the container, so `/etc/profile` may reset `PATH`.
84
+ QuantumClaw prepends `env.PATH` after profile sourcing via an internal env var (no shell interpolation);
85
+ `tools.exec.pathPrepend` applies here too.
86
+ - `host=node`: only non-blocked env overrides you pass are sent to the node. `env.PATH` overrides are
87
+ rejected for host execution and ignored by node hosts. If you need additional PATH entries on a node,
88
+ configure the node host service environment (systemd/launchd) or install tools in standard locations.
89
+
90
+ Per-agent node binding (use the agent list index in config):
91
+
92
+ ```bash
93
+ quantumclaw config get agents.list
94
+ quantumclaw config set agents.list[0].tools.exec.node "node-id-or-name"
95
+ ```
96
+
97
+ Control UI: the Nodes tab includes a small “Exec node binding” panel for the same settings.
98
+
99
+ ## Session overrides (`/exec`)
100
+
101
+ Use `/exec` to set **per-session** defaults for `host`, `security`, `ask`, and `node`.
102
+ Send `/exec` with no arguments to show the current values.
103
+
104
+ Example:
105
+
106
+ ```
107
+ /exec host=gateway security=allowlist ask=on-miss node=mac-1
108
+ ```
109
+
110
+ ## Authorization model
111
+
112
+ `/exec` is only honored for **authorized senders** (channel allowlists/pairing plus `commands.useAccessGroups`).
113
+ It updates **session state only** and does not write config. To hard-disable exec, deny it via tool
114
+ policy (`tools.deny: ["exec"]` or per-agent). Host approvals still apply unless you explicitly set
115
+ `security=full` and `ask=off`.
116
+
117
+ ## Exec approvals (companion app / node host)
118
+
119
+ Sandboxed agents can require per-request approval before `exec` runs on the gateway or node host.
120
+ See [Exec approvals](/tools/exec-approvals) for the policy, allowlist, and UI flow.
121
+
122
+ When approvals are required, the exec tool returns immediately with
123
+ `status: "approval-pending"` and an approval id. Once approved (or denied / timed out),
124
+ the Gateway emits system events (`Exec finished` / `Exec denied`). If the command is still
125
+ running after `tools.exec.approvalRunningNoticeMs`, a single `Exec running` notice is emitted.
126
+
127
+ ## Allowlist + safe bins
128
+
129
+ Manual allowlist enforcement matches **resolved binary paths only** (no basename matches). When
130
+ `security=allowlist`, shell commands are auto-allowed only if every pipeline segment is
131
+ allowlisted or a safe bin. Chaining (`;`, `&&`, `||`) and redirections are rejected in
132
+ allowlist mode unless every top-level segment satisfies the allowlist (including safe bins).
133
+ Redirections remain unsupported.
134
+
135
+ `autoAllowSkills` is a separate convenience path in exec approvals. It is not the same as
136
+ manual path allowlist entries. For strict explicit trust, keep `autoAllowSkills` disabled.
137
+
138
+ Use the two controls for different jobs:
139
+
140
+ - `tools.exec.safeBins`: small, stdin-only stream filters.
141
+ - `tools.exec.safeBinTrustedDirs`: explicit extra trusted directories for safe-bin executable paths.
142
+ - `tools.exec.safeBinProfiles`: explicit argv policy for custom safe bins.
143
+ - allowlist: explicit trust for executable paths.
144
+
145
+ Do not treat `safeBins` as a generic allowlist, and do not add interpreter/runtime binaries (for example `python3`, `node`, `ruby`, `bash`). If you need those, use explicit allowlist entries and keep approval prompts enabled.
146
+ `quantumclaw security audit` warns when interpreter/runtime `safeBins` entries are missing explicit profiles, and `quantumclaw doctor --fix` can scaffold missing custom `safeBinProfiles` entries.
147
+ `quantumclaw security audit` and `quantumclaw doctor` also warn when you explicitly add broad-behavior bins such as `jq` back into `safeBins`.
148
+ If you explicitly allowlist interpreters, enable `tools.exec.strictInlineEval` so inline code-eval forms still require a fresh approval.
149
+
150
+ For full policy details and examples, see [Exec approvals](/tools/exec-approvals#safe-bins-stdin-only) and [Safe bins versus allowlist](/tools/exec-approvals#safe-bins-versus-allowlist).
151
+
152
+ ## Examples
153
+
154
+ Foreground:
155
+
156
+ ```json
157
+ { "tool": "exec", "command": "ls -la" }
158
+ ```
159
+
160
+ Background + poll:
161
+
162
+ ```json
163
+ {"tool":"exec","command":"npm run build","yieldMs":1000}
164
+ {"tool":"process","action":"poll","sessionId":"<id>"}
165
+ ```
166
+
167
+ Send keys (tmux-style):
168
+
169
+ ```json
170
+ {"tool":"process","action":"send-keys","sessionId":"<id>","keys":["Enter"]}
171
+ {"tool":"process","action":"send-keys","sessionId":"<id>","keys":["C-c"]}
172
+ {"tool":"process","action":"send-keys","sessionId":"<id>","keys":["Up","Up","Enter"]}
173
+ ```
174
+
175
+ Submit (send CR only):
176
+
177
+ ```json
178
+ { "tool": "process", "action": "submit", "sessionId": "<id>" }
179
+ ```
180
+
181
+ Paste (bracketed by default):
182
+
183
+ ```json
184
+ { "tool": "process", "action": "paste", "sessionId": "<id>", "text": "line1\nline2\n" }
185
+ ```
186
+
187
+ ## apply_patch (experimental)
188
+
189
+ `apply_patch` is a subtool of `exec` for structured multi-file edits.
190
+ Enable it explicitly:
191
+
192
+ ```json5
193
+ {
194
+ tools: {
195
+ exec: {
196
+ applyPatch: { enabled: true, workspaceOnly: true, allowModels: ["gpt-5.2"] },
197
+ },
198
+ },
199
+ }
200
+ ```
201
+
202
+ Notes:
203
+
204
+ - Only available for OpenAI/OpenAI Codex models.
205
+ - Tool policy still applies; `allow: ["exec"]` implicitly allows `apply_patch`.
206
+ - Config lives under `tools.exec.applyPatch`.
207
+ - `tools.exec.applyPatch.workspaceOnly` defaults to `true` (workspace-contained). Set it to `false` only if you intentionally want `apply_patch` to write/delete outside the workspace directory.