vilvona 1.0.0

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 (812) hide show
  1. package/CHANGELOG.md +12331 -0
  2. package/LICENSE +24 -0
  3. package/README.md +314 -0
  4. package/THIRD_PARTY_NOTICES.md +37 -0
  5. package/docs/.i18n/README.md +81 -0
  6. package/docs/.i18n/ar-navigation.json +18 -0
  7. package/docs/.i18n/de-navigation.json +18 -0
  8. package/docs/.i18n/es-navigation.json +18 -0
  9. package/docs/.i18n/fr-navigation.json +18 -0
  10. package/docs/.i18n/glossary.ar.json +82 -0
  11. package/docs/.i18n/glossary.de.json +82 -0
  12. package/docs/.i18n/glossary.es.json +82 -0
  13. package/docs/.i18n/glossary.fa.json +82 -0
  14. package/docs/.i18n/glossary.fr.json +82 -0
  15. package/docs/.i18n/glossary.id.json +82 -0
  16. package/docs/.i18n/glossary.it.json +82 -0
  17. package/docs/.i18n/glossary.ja-JP.json +102 -0
  18. package/docs/.i18n/glossary.ko.json +82 -0
  19. package/docs/.i18n/glossary.nl.json +82 -0
  20. package/docs/.i18n/glossary.pl.json +82 -0
  21. package/docs/.i18n/glossary.pt-BR.json +82 -0
  22. package/docs/.i18n/glossary.th.json +82 -0
  23. package/docs/.i18n/glossary.tr.json +82 -0
  24. package/docs/.i18n/glossary.uk.json +82 -0
  25. package/docs/.i18n/glossary.vi.json +82 -0
  26. package/docs/.i18n/glossary.zh-CN.json +1182 -0
  27. package/docs/.i18n/glossary.zh-TW.json +162 -0
  28. package/docs/.i18n/id-navigation.json +18 -0
  29. package/docs/.i18n/it-navigation.json +18 -0
  30. package/docs/.i18n/ja-navigation.json +18 -0
  31. package/docs/.i18n/ko-navigation.json +18 -0
  32. package/docs/.i18n/pl-navigation.json +18 -0
  33. package/docs/.i18n/pt-BR-navigation.json +18 -0
  34. package/docs/.i18n/tr-navigation.json +18 -0
  35. package/docs/.i18n/translation-workflow.md +111 -0
  36. package/docs/.i18n/zh-Hans-navigation.json +552 -0
  37. package/docs/AGENTS.md +36 -0
  38. package/docs/agent-runtime-architecture.md +48 -0
  39. package/docs/announcements/bluebubbles-imessage.md +79 -0
  40. package/docs/auth-credential-semantics.md +124 -0
  41. package/docs/automation/auth-monitoring.md +11 -0
  42. package/docs/automation/clawflow.md +12 -0
  43. package/docs/automation/cron-jobs.md +569 -0
  44. package/docs/automation/cron-vs-heartbeat.md +11 -0
  45. package/docs/automation/gmail-pubsub.md +11 -0
  46. package/docs/automation/hooks.md +387 -0
  47. package/docs/automation/index.md +135 -0
  48. package/docs/automation/poll.md +12 -0
  49. package/docs/automation/standing-orders.md +250 -0
  50. package/docs/automation/taskflow.md +155 -0
  51. package/docs/automation/tasks.md +374 -0
  52. package/docs/automation/troubleshooting.md +12 -0
  53. package/docs/automation/webhook.md +12 -0
  54. package/docs/brave-search.md +11 -0
  55. package/docs/channels/access-groups.md +201 -0
  56. package/docs/channels/ambient-room-events.md +214 -0
  57. package/docs/channels/bot-loop-protection.md +131 -0
  58. package/docs/channels/broadcast-groups.md +472 -0
  59. package/docs/channels/channel-routing.md +162 -0
  60. package/docs/channels/clickclack.md +146 -0
  61. package/docs/channels/discord.md +1758 -0
  62. package/docs/channels/feishu.md +654 -0
  63. package/docs/channels/googlechat.md +286 -0
  64. package/docs/channels/group-messages.md +95 -0
  65. package/docs/channels/groups.md +610 -0
  66. package/docs/channels/imessage-from-bluebubbles.md +259 -0
  67. package/docs/channels/imessage.md +864 -0
  68. package/docs/channels/index.md +65 -0
  69. package/docs/channels/irc.md +253 -0
  70. package/docs/channels/line.md +243 -0
  71. package/docs/channels/location.md +71 -0
  72. package/docs/channels/matrix-migration.md +375 -0
  73. package/docs/channels/matrix-presentation.md +77 -0
  74. package/docs/channels/matrix-push-rules.md +150 -0
  75. package/docs/channels/matrix.md +935 -0
  76. package/docs/channels/mattermost.md +542 -0
  77. package/docs/channels/msteams.md +1097 -0
  78. package/docs/channels/nextcloud-talk.md +176 -0
  79. package/docs/channels/nostr.md +253 -0
  80. package/docs/channels/pairing.md +214 -0
  81. package/docs/channels/qqbot.md +317 -0
  82. package/docs/channels/signal.md +417 -0
  83. package/docs/channels/slack.md +1623 -0
  84. package/docs/channels/sms.md +380 -0
  85. package/docs/channels/synology-chat.md +187 -0
  86. package/docs/channels/telegram.md +1121 -0
  87. package/docs/channels/tlon.md +296 -0
  88. package/docs/channels/troubleshooting.md +162 -0
  89. package/docs/channels/twitch.md +431 -0
  90. package/docs/channels/wechat.md +171 -0
  91. package/docs/channels/whatsapp.md +796 -0
  92. package/docs/channels/yuanbao.md +416 -0
  93. package/docs/channels/zalo.md +253 -0
  94. package/docs/channels/zalouser.md +217 -0
  95. package/docs/ci.md +665 -0
  96. package/docs/clawhub/cli.md +82 -0
  97. package/docs/clawhub/publishing.md +96 -0
  98. package/docs/cli/acp.md +370 -0
  99. package/docs/cli/agent.md +109 -0
  100. package/docs/cli/agents.md +253 -0
  101. package/docs/cli/approvals.md +193 -0
  102. package/docs/cli/backup.md +98 -0
  103. package/docs/cli/browser.md +322 -0
  104. package/docs/cli/channels.md +154 -0
  105. package/docs/cli/clawbot.md +25 -0
  106. package/docs/cli/commitments.md +90 -0
  107. package/docs/cli/completion.md +39 -0
  108. package/docs/cli/config.md +504 -0
  109. package/docs/cli/configure.md +77 -0
  110. package/docs/cli/crestodian.md +337 -0
  111. package/docs/cli/cron.md +344 -0
  112. package/docs/cli/daemon.md +67 -0
  113. package/docs/cli/dashboard.md +33 -0
  114. package/docs/cli/devices.md +240 -0
  115. package/docs/cli/directory.md +68 -0
  116. package/docs/cli/dns.md +53 -0
  117. package/docs/cli/docs.md +63 -0
  118. package/docs/cli/doctor.md +254 -0
  119. package/docs/cli/flows.md +52 -0
  120. package/docs/cli/gateway.md +572 -0
  121. package/docs/cli/health.md +43 -0
  122. package/docs/cli/hooks.md +345 -0
  123. package/docs/cli/index.md +406 -0
  124. package/docs/cli/infer.md +364 -0
  125. package/docs/cli/logs.md +68 -0
  126. package/docs/cli/mcp.md +851 -0
  127. package/docs/cli/memory.md +183 -0
  128. package/docs/cli/message.md +317 -0
  129. package/docs/cli/migrate.md +334 -0
  130. package/docs/cli/models.md +239 -0
  131. package/docs/cli/node.md +178 -0
  132. package/docs/cli/nodes.md +76 -0
  133. package/docs/cli/onboard.md +251 -0
  134. package/docs/cli/pairing.md +77 -0
  135. package/docs/cli/path.md +511 -0
  136. package/docs/cli/plugins.md +480 -0
  137. package/docs/cli/policy.md +929 -0
  138. package/docs/cli/proxy.md +89 -0
  139. package/docs/cli/qr.md +56 -0
  140. package/docs/cli/reset.md +39 -0
  141. package/docs/cli/sandbox.md +208 -0
  142. package/docs/cli/secrets.md +202 -0
  143. package/docs/cli/security.md +135 -0
  144. package/docs/cli/sessions.md +178 -0
  145. package/docs/cli/setup.md +60 -0
  146. package/docs/cli/skills.md +156 -0
  147. package/docs/cli/status.md +45 -0
  148. package/docs/cli/system.md +89 -0
  149. package/docs/cli/tasks.md +111 -0
  150. package/docs/cli/transcripts.md +151 -0
  151. package/docs/cli/tui.md +92 -0
  152. package/docs/cli/uninstall.md +45 -0
  153. package/docs/cli/update.md +283 -0
  154. package/docs/cli/voicecall.md +204 -0
  155. package/docs/cli/webhooks.md +117 -0
  156. package/docs/cli/wiki.md +256 -0
  157. package/docs/cli/workboard.md +228 -0
  158. package/docs/concepts/active-memory.md +856 -0
  159. package/docs/concepts/agent-loop.md +185 -0
  160. package/docs/concepts/agent-runtimes.md +276 -0
  161. package/docs/concepts/agent-workspace.md +230 -0
  162. package/docs/concepts/agent.md +142 -0
  163. package/docs/concepts/architecture.md +154 -0
  164. package/docs/concepts/channel-docking.md +145 -0
  165. package/docs/concepts/commitments.md +150 -0
  166. package/docs/concepts/compaction.md +203 -0
  167. package/docs/concepts/context-engine.md +347 -0
  168. package/docs/concepts/context.md +199 -0
  169. package/docs/concepts/delegate-architecture.md +319 -0
  170. package/docs/concepts/dreaming.md +279 -0
  171. package/docs/concepts/experimental-features.md +111 -0
  172. package/docs/concepts/features.md +91 -0
  173. package/docs/concepts/mantis-slack-desktop-runbook.md +231 -0
  174. package/docs/concepts/mantis.md +744 -0
  175. package/docs/concepts/markdown-formatting.md +139 -0
  176. package/docs/concepts/memory-builtin.md +151 -0
  177. package/docs/concepts/memory-honcho.md +144 -0
  178. package/docs/concepts/memory-qmd.md +277 -0
  179. package/docs/concepts/memory-search.md +175 -0
  180. package/docs/concepts/memory.md +299 -0
  181. package/docs/concepts/message-lifecycle-refactor.md +1126 -0
  182. package/docs/concepts/messages.md +216 -0
  183. package/docs/concepts/model-failover.md +405 -0
  184. package/docs/concepts/model-providers.md +719 -0
  185. package/docs/concepts/models.md +371 -0
  186. package/docs/concepts/multi-agent.md +625 -0
  187. package/docs/concepts/oauth.md +218 -0
  188. package/docs/concepts/parallel-specialist-lanes.md +127 -0
  189. package/docs/concepts/personal-agent-benchmark-pack.md +74 -0
  190. package/docs/concepts/presence.md +117 -0
  191. package/docs/concepts/progress-drafts.md +406 -0
  192. package/docs/concepts/qa-e2e-automation.md +979 -0
  193. package/docs/concepts/qa-matrix.md +139 -0
  194. package/docs/concepts/queue-steering.md +90 -0
  195. package/docs/concepts/queue.md +136 -0
  196. package/docs/concepts/retry.md +86 -0
  197. package/docs/concepts/session-pruning.md +104 -0
  198. package/docs/concepts/session-tool.md +201 -0
  199. package/docs/concepts/session.md +164 -0
  200. package/docs/concepts/soul.md +116 -0
  201. package/docs/concepts/streaming.md +258 -0
  202. package/docs/concepts/system-prompt.md +330 -0
  203. package/docs/concepts/timezone.md +47 -0
  204. package/docs/concepts/typebox.md +309 -0
  205. package/docs/concepts/typing-indicators.md +88 -0
  206. package/docs/concepts/usage-tracking.md +72 -0
  207. package/docs/date-time.md +126 -0
  208. package/docs/debug/node-issue.md +90 -0
  209. package/docs/diagnostics/flags.md +182 -0
  210. package/docs/docs.json +1885 -0
  211. package/docs/gateway/authentication.md +286 -0
  212. package/docs/gateway/background-process.md +147 -0
  213. package/docs/gateway/bonjour.md +303 -0
  214. package/docs/gateway/bridge-protocol.md +97 -0
  215. package/docs/gateway/cli-backends.md +463 -0
  216. package/docs/gateway/config-agents.md +1525 -0
  217. package/docs/gateway/config-channels.md +942 -0
  218. package/docs/gateway/config-tools.md +806 -0
  219. package/docs/gateway/configuration-examples.md +706 -0
  220. package/docs/gateway/configuration-reference.md +1449 -0
  221. package/docs/gateway/configuration.md +748 -0
  222. package/docs/gateway/diagnostics.md +213 -0
  223. package/docs/gateway/discovery.md +154 -0
  224. package/docs/gateway/doctor.md +576 -0
  225. package/docs/gateway/external-apps.md +86 -0
  226. package/docs/gateway/gateway-lock.md +37 -0
  227. package/docs/gateway/health.md +73 -0
  228. package/docs/gateway/heartbeat.md +498 -0
  229. package/docs/gateway/index.md +385 -0
  230. package/docs/gateway/local-model-services.md +205 -0
  231. package/docs/gateway/local-models.md +355 -0
  232. package/docs/gateway/logging.md +149 -0
  233. package/docs/gateway/multiple-gateways.md +178 -0
  234. package/docs/gateway/network-model.md +15 -0
  235. package/docs/gateway/openai-http-api.md +379 -0
  236. package/docs/gateway/openresponses-http-api.md +349 -0
  237. package/docs/gateway/openshell.md +316 -0
  238. package/docs/gateway/opentelemetry.md +440 -0
  239. package/docs/gateway/operator-scopes.md +119 -0
  240. package/docs/gateway/pairing.md +207 -0
  241. package/docs/gateway/prometheus.md +249 -0
  242. package/docs/gateway/protocol.md +839 -0
  243. package/docs/gateway/remote-gateway-readme.md +169 -0
  244. package/docs/gateway/remote.md +280 -0
  245. package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +148 -0
  246. package/docs/gateway/sandboxing.md +546 -0
  247. package/docs/gateway/secrets-plan-contract.md +159 -0
  248. package/docs/gateway/secrets.md +805 -0
  249. package/docs/gateway/security/audit-checks.md +127 -0
  250. package/docs/gateway/security/exposure-runbook.md +212 -0
  251. package/docs/gateway/security/index.md +1344 -0
  252. package/docs/gateway/security/secure-file-operations.md +76 -0
  253. package/docs/gateway/security/shrinkwrap.md +111 -0
  254. package/docs/gateway/tailscale.md +180 -0
  255. package/docs/gateway/tools-invoke-http-api.md +175 -0
  256. package/docs/gateway/troubleshooting.md +881 -0
  257. package/docs/gateway/trusted-proxy-auth.md +483 -0
  258. package/docs/help/debugging.md +341 -0
  259. package/docs/help/environment.md +240 -0
  260. package/docs/help/faq-first-run.md +872 -0
  261. package/docs/help/faq-models.md +557 -0
  262. package/docs/help/faq.md +2115 -0
  263. package/docs/help/index.md +39 -0
  264. package/docs/help/scripts.md +56 -0
  265. package/docs/help/testing-live.md +592 -0
  266. package/docs/help/testing-updates-plugins.md +299 -0
  267. package/docs/help/testing.md +977 -0
  268. package/docs/help/troubleshooting.md +500 -0
  269. package/docs/index.md +196 -0
  270. package/docs/install/ansible.md +233 -0
  271. package/docs/install/azure.md +315 -0
  272. package/docs/install/bun.md +59 -0
  273. package/docs/install/clawdock.md +112 -0
  274. package/docs/install/development-channels.md +148 -0
  275. package/docs/install/digitalocean.md +174 -0
  276. package/docs/install/docker-vm-runtime.md +154 -0
  277. package/docs/install/docker.md +564 -0
  278. package/docs/install/exe-dev.md +201 -0
  279. package/docs/install/fly.md +524 -0
  280. package/docs/install/gcp.md +418 -0
  281. package/docs/install/hetzner.md +285 -0
  282. package/docs/install/hostinger.md +98 -0
  283. package/docs/install/index.md +236 -0
  284. package/docs/install/installer.md +447 -0
  285. package/docs/install/kubernetes.md +196 -0
  286. package/docs/install/macos-vm.md +281 -0
  287. package/docs/install/migrating-claude.md +165 -0
  288. package/docs/install/migrating-hermes.md +178 -0
  289. package/docs/install/migrating.md +137 -0
  290. package/docs/install/nix.md +112 -0
  291. package/docs/install/node.md +142 -0
  292. package/docs/install/northflank.mdx +44 -0
  293. package/docs/install/oracle.md +218 -0
  294. package/docs/install/podman.md +216 -0
  295. package/docs/install/railway.mdx +92 -0
  296. package/docs/install/raspberry-pi.md +234 -0
  297. package/docs/install/render.mdx +167 -0
  298. package/docs/install/uninstall.md +140 -0
  299. package/docs/install/updating.md +284 -0
  300. package/docs/install/upstash.md +96 -0
  301. package/docs/logging.md +322 -0
  302. package/docs/maturity-scores.yaml +5361 -0
  303. package/docs/nav-tabs-underline.js +104 -0
  304. package/docs/network.md +72 -0
  305. package/docs/nodes/audio.md +216 -0
  306. package/docs/nodes/camera.md +166 -0
  307. package/docs/nodes/images.md +77 -0
  308. package/docs/nodes/index.md +444 -0
  309. package/docs/nodes/location-command.md +102 -0
  310. package/docs/nodes/media-understanding.md +495 -0
  311. package/docs/nodes/talk.md +160 -0
  312. package/docs/nodes/troubleshooting.md +123 -0
  313. package/docs/nodes/voicewake.md +93 -0
  314. package/docs/openclaw-agent-runtime.md +82 -0
  315. package/docs/perplexity.md +11 -0
  316. package/docs/plan/codex-context-engine-harness.md +624 -0
  317. package/docs/plan/ui-channels.md +284 -0
  318. package/docs/platforms/android.md +286 -0
  319. package/docs/platforms/digitalocean.md +12 -0
  320. package/docs/platforms/easyrunner.md +109 -0
  321. package/docs/platforms/index.md +65 -0
  322. package/docs/platforms/ios.md +287 -0
  323. package/docs/platforms/linux.md +141 -0
  324. package/docs/platforms/mac/bundled-gateway.md +79 -0
  325. package/docs/platforms/mac/canvas.md +128 -0
  326. package/docs/platforms/mac/child-process.md +72 -0
  327. package/docs/platforms/mac/dev-setup.md +112 -0
  328. package/docs/platforms/mac/health.md +39 -0
  329. package/docs/platforms/mac/icon.md +36 -0
  330. package/docs/platforms/mac/logging.md +62 -0
  331. package/docs/platforms/mac/menu-bar.md +93 -0
  332. package/docs/platforms/mac/peekaboo.md +96 -0
  333. package/docs/platforms/mac/permissions.md +73 -0
  334. package/docs/platforms/mac/remote.md +123 -0
  335. package/docs/platforms/mac/signing.md +52 -0
  336. package/docs/platforms/mac/skills.md +45 -0
  337. package/docs/platforms/mac/voice-overlay.md +66 -0
  338. package/docs/platforms/mac/voicewake.md +79 -0
  339. package/docs/platforms/mac/webchat.md +54 -0
  340. package/docs/platforms/mac/xpc.md +66 -0
  341. package/docs/platforms/macos.md +228 -0
  342. package/docs/platforms/oracle.md +12 -0
  343. package/docs/platforms/raspberry-pi.md +13 -0
  344. package/docs/platforms/windows.md +304 -0
  345. package/docs/plugins/adding-capabilities.md +146 -0
  346. package/docs/plugins/admin-http-rpc.md +216 -0
  347. package/docs/plugins/agent-tools.md +13 -0
  348. package/docs/plugins/architecture-internals.md +1203 -0
  349. package/docs/plugins/architecture.md +483 -0
  350. package/docs/plugins/building-extensions.md +13 -0
  351. package/docs/plugins/building-plugins.md +343 -0
  352. package/docs/plugins/bundles.md +310 -0
  353. package/docs/plugins/cli-backend-plugins.md +328 -0
  354. package/docs/plugins/codex-computer-use.md +297 -0
  355. package/docs/plugins/codex-harness-reference.md +480 -0
  356. package/docs/plugins/codex-harness-runtime.md +268 -0
  357. package/docs/plugins/codex-harness.md +800 -0
  358. package/docs/plugins/codex-native-plugins.md +280 -0
  359. package/docs/plugins/community.md +77 -0
  360. package/docs/plugins/compatibility.md +198 -0
  361. package/docs/plugins/copilot.md +355 -0
  362. package/docs/plugins/dependency-resolution.md +176 -0
  363. package/docs/plugins/google-meet.md +1737 -0
  364. package/docs/plugins/hooks.md +525 -0
  365. package/docs/plugins/install-overrides.md +80 -0
  366. package/docs/plugins/llama-cpp.md +58 -0
  367. package/docs/plugins/manage-plugins.md +214 -0
  368. package/docs/plugins/manifest.md +1468 -0
  369. package/docs/plugins/memory-lancedb.md +385 -0
  370. package/docs/plugins/memory-wiki.md +529 -0
  371. package/docs/plugins/message-presentation.md +487 -0
  372. package/docs/plugins/oc-path.md +166 -0
  373. package/docs/plugins/plugin-inventory.md +318 -0
  374. package/docs/plugins/plugin-permission-requests.md +193 -0
  375. package/docs/plugins/reference/acpx.md +23 -0
  376. package/docs/plugins/reference/admin-http-rpc.md +23 -0
  377. package/docs/plugins/reference/alibaba.md +23 -0
  378. package/docs/plugins/reference/amazon-bedrock-mantle.md +23 -0
  379. package/docs/plugins/reference/amazon-bedrock.md +23 -0
  380. package/docs/plugins/reference/anthropic-vertex.md +29 -0
  381. package/docs/plugins/reference/anthropic.md +23 -0
  382. package/docs/plugins/reference/arcee.md +23 -0
  383. package/docs/plugins/reference/azure-speech.md +23 -0
  384. package/docs/plugins/reference/bonjour.md +19 -0
  385. package/docs/plugins/reference/brave.md +23 -0
  386. package/docs/plugins/reference/browser.md +23 -0
  387. package/docs/plugins/reference/byteplus.md +19 -0
  388. package/docs/plugins/reference/canvas.md +19 -0
  389. package/docs/plugins/reference/cerebras.md +23 -0
  390. package/docs/plugins/reference/chutes.md +23 -0
  391. package/docs/plugins/reference/clickclack.md +23 -0
  392. package/docs/plugins/reference/cloudflare-ai-gateway.md +23 -0
  393. package/docs/plugins/reference/codex-supervisor.md +27 -0
  394. package/docs/plugins/reference/codex.md +23 -0
  395. package/docs/plugins/reference/comfy.md +23 -0
  396. package/docs/plugins/reference/copilot-proxy.md +19 -0
  397. package/docs/plugins/reference/copilot.md +23 -0
  398. package/docs/plugins/reference/deepgram.md +23 -0
  399. package/docs/plugins/reference/deepinfra.md +23 -0
  400. package/docs/plugins/reference/deepseek.md +23 -0
  401. package/docs/plugins/reference/diagnostics-otel.md +19 -0
  402. package/docs/plugins/reference/diagnostics-prometheus.md +19 -0
  403. package/docs/plugins/reference/diffs-language-pack.md +31 -0
  404. package/docs/plugins/reference/diffs.md +19 -0
  405. package/docs/plugins/reference/discord.md +23 -0
  406. package/docs/plugins/reference/document-extract.md +23 -0
  407. package/docs/plugins/reference/duckduckgo.md +23 -0
  408. package/docs/plugins/reference/elevenlabs.md +23 -0
  409. package/docs/plugins/reference/exa.md +23 -0
  410. package/docs/plugins/reference/fal.md +23 -0
  411. package/docs/plugins/reference/feishu.md +23 -0
  412. package/docs/plugins/reference/file-transfer.md +19 -0
  413. package/docs/plugins/reference/firecrawl.md +23 -0
  414. package/docs/plugins/reference/fireworks.md +23 -0
  415. package/docs/plugins/reference/github-copilot.md +23 -0
  416. package/docs/plugins/reference/gmi.md +23 -0
  417. package/docs/plugins/reference/google-meet.md +23 -0
  418. package/docs/plugins/reference/google.md +23 -0
  419. package/docs/plugins/reference/googlechat.md +23 -0
  420. package/docs/plugins/reference/gradium.md +23 -0
  421. package/docs/plugins/reference/groq.md +23 -0
  422. package/docs/plugins/reference/huggingface.md +23 -0
  423. package/docs/plugins/reference/imessage.md +23 -0
  424. package/docs/plugins/reference/inworld.md +23 -0
  425. package/docs/plugins/reference/irc.md +23 -0
  426. package/docs/plugins/reference/kilocode.md +23 -0
  427. package/docs/plugins/reference/kimi.md +23 -0
  428. package/docs/plugins/reference/line.md +23 -0
  429. package/docs/plugins/reference/litellm.md +23 -0
  430. package/docs/plugins/reference/llama-cpp.md +23 -0
  431. package/docs/plugins/reference/llm-task.md +19 -0
  432. package/docs/plugins/reference/lmstudio.md +23 -0
  433. package/docs/plugins/reference/lobster.md +19 -0
  434. package/docs/plugins/reference/matrix.md +23 -0
  435. package/docs/plugins/reference/mattermost.md +23 -0
  436. package/docs/plugins/reference/memory-core.md +19 -0
  437. package/docs/plugins/reference/memory-lancedb.md +23 -0
  438. package/docs/plugins/reference/memory-wiki.md +23 -0
  439. package/docs/plugins/reference/microsoft-foundry.md +113 -0
  440. package/docs/plugins/reference/microsoft.md +19 -0
  441. package/docs/plugins/reference/migrate-claude.md +19 -0
  442. package/docs/plugins/reference/migrate-hermes.md +19 -0
  443. package/docs/plugins/reference/minimax.md +23 -0
  444. package/docs/plugins/reference/mistral.md +23 -0
  445. package/docs/plugins/reference/moonshot.md +23 -0
  446. package/docs/plugins/reference/msteams.md +23 -0
  447. package/docs/plugins/reference/nextcloud-talk.md +23 -0
  448. package/docs/plugins/reference/nostr.md +23 -0
  449. package/docs/plugins/reference/novita.md +23 -0
  450. package/docs/plugins/reference/nvidia.md +23 -0
  451. package/docs/plugins/reference/oc-path.md +23 -0
  452. package/docs/plugins/reference/ollama.md +24 -0
  453. package/docs/plugins/reference/open-prose.md +19 -0
  454. package/docs/plugins/reference/openai.md +23 -0
  455. package/docs/plugins/reference/opencode-go.md +23 -0
  456. package/docs/plugins/reference/opencode.md +23 -0
  457. package/docs/plugins/reference/openrouter.md +23 -0
  458. package/docs/plugins/reference/openshell.md +19 -0
  459. package/docs/plugins/reference/perplexity.md +23 -0
  460. package/docs/plugins/reference/pixverse.md +23 -0
  461. package/docs/plugins/reference/policy.md +79 -0
  462. package/docs/plugins/reference/qa-channel.md +23 -0
  463. package/docs/plugins/reference/qa-lab.md +19 -0
  464. package/docs/plugins/reference/qa-matrix.md +19 -0
  465. package/docs/plugins/reference/qianfan.md +23 -0
  466. package/docs/plugins/reference/qqbot.md +23 -0
  467. package/docs/plugins/reference/qwen.md +24 -0
  468. package/docs/plugins/reference/runway.md +23 -0
  469. package/docs/plugins/reference/searxng.md +19 -0
  470. package/docs/plugins/reference/senseaudio.md +23 -0
  471. package/docs/plugins/reference/sglang.md +23 -0
  472. package/docs/plugins/reference/signal.md +23 -0
  473. package/docs/plugins/reference/slack.md +23 -0
  474. package/docs/plugins/reference/sms.md +23 -0
  475. package/docs/plugins/reference/stepfun.md +23 -0
  476. package/docs/plugins/reference/synology-chat.md +23 -0
  477. package/docs/plugins/reference/synthetic.md +23 -0
  478. package/docs/plugins/reference/tavily.md +23 -0
  479. package/docs/plugins/reference/telegram.md +23 -0
  480. package/docs/plugins/reference/tencent.md +23 -0
  481. package/docs/plugins/reference/tlon.md +23 -0
  482. package/docs/plugins/reference/together.md +23 -0
  483. package/docs/plugins/reference/tokenjuice.md +23 -0
  484. package/docs/plugins/reference/tts-local-cli.md +19 -0
  485. package/docs/plugins/reference/twitch.md +23 -0
  486. package/docs/plugins/reference/venice.md +23 -0
  487. package/docs/plugins/reference/vercel-ai-gateway.md +23 -0
  488. package/docs/plugins/reference/vllm.md +23 -0
  489. package/docs/plugins/reference/voice-call.md +23 -0
  490. package/docs/plugins/reference/volcengine.md +23 -0
  491. package/docs/plugins/reference/voyage.md +19 -0
  492. package/docs/plugins/reference/vydra.md +23 -0
  493. package/docs/plugins/reference/web-readability.md +19 -0
  494. package/docs/plugins/reference/webhooks.md +23 -0
  495. package/docs/plugins/reference/whatsapp.md +23 -0
  496. package/docs/plugins/reference/workboard.md +23 -0
  497. package/docs/plugins/reference/xai.md +23 -0
  498. package/docs/plugins/reference/xiaomi.md +23 -0
  499. package/docs/plugins/reference/zai.md +23 -0
  500. package/docs/plugins/reference/zalo.md +23 -0
  501. package/docs/plugins/reference/zalouser.md +24 -0
  502. package/docs/plugins/reference.md +19 -0
  503. package/docs/plugins/sdk-agent-harness.md +339 -0
  504. package/docs/plugins/sdk-channel-inbound.md +70 -0
  505. package/docs/plugins/sdk-channel-ingress.md +137 -0
  506. package/docs/plugins/sdk-channel-message.md +18 -0
  507. package/docs/plugins/sdk-channel-outbound.md +113 -0
  508. package/docs/plugins/sdk-channel-plugins.md +770 -0
  509. package/docs/plugins/sdk-channel-turn.md +9 -0
  510. package/docs/plugins/sdk-entrypoints.md +344 -0
  511. package/docs/plugins/sdk-migration.md +1011 -0
  512. package/docs/plugins/sdk-overview.md +525 -0
  513. package/docs/plugins/sdk-provider-plugins.md +1019 -0
  514. package/docs/plugins/sdk-runtime.md +683 -0
  515. package/docs/plugins/sdk-setup.md +550 -0
  516. package/docs/plugins/sdk-subpaths.md +401 -0
  517. package/docs/plugins/sdk-testing.md +403 -0
  518. package/docs/plugins/tool-plugins.md +411 -0
  519. package/docs/plugins/voice-call.md +942 -0
  520. package/docs/plugins/webhooks.md +192 -0
  521. package/docs/plugins/workboard.md +402 -0
  522. package/docs/plugins/zalouser.md +86 -0
  523. package/docs/prose.md +191 -0
  524. package/docs/providers/alibaba.md +158 -0
  525. package/docs/providers/anthropic.md +386 -0
  526. package/docs/providers/arcee.md +144 -0
  527. package/docs/providers/azure-speech.md +119 -0
  528. package/docs/providers/bedrock-mantle.md +224 -0
  529. package/docs/providers/bedrock.md +433 -0
  530. package/docs/providers/cerebras.md +130 -0
  531. package/docs/providers/chutes.md +153 -0
  532. package/docs/providers/claude-max-api-proxy.md +191 -0
  533. package/docs/providers/cloudflare-ai-gateway.md +119 -0
  534. package/docs/providers/comfy.md +362 -0
  535. package/docs/providers/deepgram.md +184 -0
  536. package/docs/providers/deepinfra.md +92 -0
  537. package/docs/providers/deepseek.md +146 -0
  538. package/docs/providers/ds4.md +309 -0
  539. package/docs/providers/elevenlabs.md +130 -0
  540. package/docs/providers/fal.md +240 -0
  541. package/docs/providers/fireworks.md +144 -0
  542. package/docs/providers/github-copilot.md +257 -0
  543. package/docs/providers/gmi.md +92 -0
  544. package/docs/providers/google.md +472 -0
  545. package/docs/providers/gradium.md +123 -0
  546. package/docs/providers/groq.md +171 -0
  547. package/docs/providers/huggingface.md +235 -0
  548. package/docs/providers/index.md +105 -0
  549. package/docs/providers/inferrs.md +272 -0
  550. package/docs/providers/inworld.md +120 -0
  551. package/docs/providers/kilocode.md +135 -0
  552. package/docs/providers/litellm.md +234 -0
  553. package/docs/providers/lmstudio.md +224 -0
  554. package/docs/providers/minimax.md +518 -0
  555. package/docs/providers/mistral.md +235 -0
  556. package/docs/providers/models.md +64 -0
  557. package/docs/providers/moonshot.md +413 -0
  558. package/docs/providers/novita.md +92 -0
  559. package/docs/providers/nvidia.md +208 -0
  560. package/docs/providers/ollama-cloud.md +115 -0
  561. package/docs/providers/ollama.md +1225 -0
  562. package/docs/providers/openai.md +1091 -0
  563. package/docs/providers/opencode-go.md +123 -0
  564. package/docs/providers/opencode.md +149 -0
  565. package/docs/providers/openrouter.md +390 -0
  566. package/docs/providers/perplexity-provider.md +123 -0
  567. package/docs/providers/pixverse.md +165 -0
  568. package/docs/providers/qianfan.md +132 -0
  569. package/docs/providers/qwen-oauth.md +115 -0
  570. package/docs/providers/qwen.md +364 -0
  571. package/docs/providers/runway.md +103 -0
  572. package/docs/providers/senseaudio.md +68 -0
  573. package/docs/providers/sglang.md +161 -0
  574. package/docs/providers/stepfun.md +229 -0
  575. package/docs/providers/synthetic.md +154 -0
  576. package/docs/providers/tencent.md +130 -0
  577. package/docs/providers/together.md +140 -0
  578. package/docs/providers/venice.md +312 -0
  579. package/docs/providers/vercel-ai-gateway.md +128 -0
  580. package/docs/providers/vllm.md +407 -0
  581. package/docs/providers/volcengine.md +199 -0
  582. package/docs/providers/vydra.md +180 -0
  583. package/docs/providers/xai.md +571 -0
  584. package/docs/providers/xiaomi.md +286 -0
  585. package/docs/providers/zai.md +224 -0
  586. package/docs/refactor/access.md +9 -0
  587. package/docs/refactor/acp.md +298 -0
  588. package/docs/refactor/canvas.md +131 -0
  589. package/docs/refactor/database-first.md +2263 -0
  590. package/docs/refactor/ingress-core.md +341 -0
  591. package/docs/reference/AGENTS.default.md +131 -0
  592. package/docs/reference/RELEASING.md +844 -0
  593. package/docs/reference/api-usage-costs.md +208 -0
  594. package/docs/reference/application-modernization-plan.md +208 -0
  595. package/docs/reference/code-mode.md +1058 -0
  596. package/docs/reference/credits.md +33 -0
  597. package/docs/reference/device-models.md +50 -0
  598. package/docs/reference/full-release-validation.md +206 -0
  599. package/docs/reference/memory-config.md +630 -0
  600. package/docs/reference/prompt-caching.md +358 -0
  601. package/docs/reference/release-performance-sweep.md +347 -0
  602. package/docs/reference/rich-output-protocol.md +93 -0
  603. package/docs/reference/rpc.md +43 -0
  604. package/docs/reference/secret-placeholder-conventions.md +33 -0
  605. package/docs/reference/secretref-credential-surface.md +163 -0
  606. package/docs/reference/secretref-user-supplied-credentials-matrix.json +691 -0
  607. package/docs/reference/session-management-compaction.md +474 -0
  608. package/docs/reference/templates/AGENTS.dev.md +90 -0
  609. package/docs/reference/templates/AGENTS.md +227 -0
  610. package/docs/reference/templates/BOOT.md +16 -0
  611. package/docs/reference/templates/BOOTSTRAP.md +66 -0
  612. package/docs/reference/templates/HEARTBEAT.md +24 -0
  613. package/docs/reference/templates/IDENTITY.dev.md +52 -0
  614. package/docs/reference/templates/IDENTITY.md +34 -0
  615. package/docs/reference/templates/SOUL.dev.md +82 -0
  616. package/docs/reference/templates/SOUL.md +49 -0
  617. package/docs/reference/templates/TOOLS.dev.md +29 -0
  618. package/docs/reference/templates/TOOLS.md +51 -0
  619. package/docs/reference/templates/USER.dev.md +23 -0
  620. package/docs/reference/templates/USER.md +28 -0
  621. package/docs/reference/test.md +248 -0
  622. package/docs/reference/token-use.md +246 -0
  623. package/docs/reference/transcript-hygiene.md +226 -0
  624. package/docs/reference/wizard.md +252 -0
  625. package/docs/security/CONTRIBUTING-THREAT-MODEL.md +101 -0
  626. package/docs/security/THREAT-MODEL-ATLAS.md +611 -0
  627. package/docs/security/formal-verification.md +170 -0
  628. package/docs/security/incident-response.md +59 -0
  629. package/docs/security/network-proxy.md +268 -0
  630. package/docs/snippets/plugin-publish/minimal-openclaw.plugin.json +12 -0
  631. package/docs/snippets/plugin-publish/minimal-package.json +16 -0
  632. package/docs/specs/claw-supervisor.md +247 -0
  633. package/docs/start/bootstrapping.md +49 -0
  634. package/docs/start/docs-directory.md +69 -0
  635. package/docs/start/getting-started.md +152 -0
  636. package/docs/start/hubs.md +201 -0
  637. package/docs/start/lore.md +223 -0
  638. package/docs/start/onboarding-overview.md +72 -0
  639. package/docs/start/onboarding.md +98 -0
  640. package/docs/start/openclaw.md +246 -0
  641. package/docs/start/quickstart.md +25 -0
  642. package/docs/start/setup.md +178 -0
  643. package/docs/start/showcase.md +371 -0
  644. package/docs/start/wizard-cli-automation.md +232 -0
  645. package/docs/start/wizard-cli-reference.md +331 -0
  646. package/docs/start/wizard.md +142 -0
  647. package/docs/style.css +137 -0
  648. package/docs/tools/acp-agents-setup.md +356 -0
  649. package/docs/tools/acp-agents.md +865 -0
  650. package/docs/tools/agent-send.md +130 -0
  651. package/docs/tools/apply-patch.md +64 -0
  652. package/docs/tools/brave-search.md +139 -0
  653. package/docs/tools/browser-control.md +405 -0
  654. package/docs/tools/browser-linux-troubleshooting.md +173 -0
  655. package/docs/tools/browser-login.md +77 -0
  656. package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +219 -0
  657. package/docs/tools/browser.md +866 -0
  658. package/docs/tools/btw.md +159 -0
  659. package/docs/tools/capability-cookbook.md +12 -0
  660. package/docs/tools/clawhub.md +5 -0
  661. package/docs/tools/code-execution.md +173 -0
  662. package/docs/tools/creating-skills.md +271 -0
  663. package/docs/tools/diffs.md +527 -0
  664. package/docs/tools/duckduckgo-search.md +109 -0
  665. package/docs/tools/elevated.md +128 -0
  666. package/docs/tools/exa-search.md +152 -0
  667. package/docs/tools/exec-approvals-advanced.md +457 -0
  668. package/docs/tools/exec-approvals.md +520 -0
  669. package/docs/tools/exec.md +294 -0
  670. package/docs/tools/firecrawl.md +155 -0
  671. package/docs/tools/gemini-search.md +114 -0
  672. package/docs/tools/goal.md +217 -0
  673. package/docs/tools/grok-search.md +129 -0
  674. package/docs/tools/image-generation.md +538 -0
  675. package/docs/tools/index.md +176 -0
  676. package/docs/tools/kimi-search.md +105 -0
  677. package/docs/tools/llm-task.md +137 -0
  678. package/docs/tools/lobster.md +365 -0
  679. package/docs/tools/loop-detection.md +154 -0
  680. package/docs/tools/media-overview.md +161 -0
  681. package/docs/tools/minimax-search.md +102 -0
  682. package/docs/tools/multi-agent-sandbox-tools.md +409 -0
  683. package/docs/tools/music-generation.md +372 -0
  684. package/docs/tools/ollama-search.md +153 -0
  685. package/docs/tools/parallel-search.md +154 -0
  686. package/docs/tools/pdf.md +213 -0
  687. package/docs/tools/permission-modes.md +111 -0
  688. package/docs/tools/perplexity-search.md +220 -0
  689. package/docs/tools/plugin.md +378 -0
  690. package/docs/tools/reactions.md +100 -0
  691. package/docs/tools/searxng-search.md +141 -0
  692. package/docs/tools/skill-workshop.md +283 -0
  693. package/docs/tools/skills-config.md +457 -0
  694. package/docs/tools/skills.md +591 -0
  695. package/docs/tools/slash-commands.md +518 -0
  696. package/docs/tools/steer.md +77 -0
  697. package/docs/tools/subagents.md +652 -0
  698. package/docs/tools/tavily.md +162 -0
  699. package/docs/tools/thinking.md +142 -0
  700. package/docs/tools/tokenjuice.md +84 -0
  701. package/docs/tools/tool-search.md +269 -0
  702. package/docs/tools/trajectory.md +229 -0
  703. package/docs/tools/tts.md +1013 -0
  704. package/docs/tools/video-generation.md +555 -0
  705. package/docs/tools/web-fetch.md +210 -0
  706. package/docs/tools/web.md +476 -0
  707. package/docs/tts.md +11 -0
  708. package/docs/vps.md +139 -0
  709. package/docs/web/control-ui.md +530 -0
  710. package/docs/web/dashboard.md +107 -0
  711. package/docs/web/index.md +133 -0
  712. package/docs/web/tui.md +258 -0
  713. package/docs/web/webchat.md +102 -0
  714. package/npm-shrinkwrap.json +3485 -0
  715. package/openclaw.mjs +661 -0
  716. package/package.json +1971 -0
  717. package/patches/.gitkeep +0 -0
  718. package/patches/@agentclientprotocol__claude-agent-acp@0.39.0.patch +40 -0
  719. package/pnpm-workspace.yaml +124 -0
  720. package/scripts/crabbox-wrapper.mjs +2470 -0
  721. package/scripts/lib/official-external-channel-catalog.json +570 -0
  722. package/scripts/lib/official-external-plugin-catalog.json +284 -0
  723. package/scripts/lib/official-external-provider-catalog.json +158 -0
  724. package/scripts/lib/package-dist-imports.mjs +174 -0
  725. package/scripts/npm-runner.mjs +95 -0
  726. package/scripts/postinstall-bundled-plugins.mjs +978 -0
  727. package/scripts/preinstall-package-manager-warning.mjs +74 -0
  728. package/scripts/prepare-git-hooks.mjs +73 -0
  729. package/scripts/windows-cmd-helpers.mjs +29 -0
  730. package/skills/1password/SKILL.md +70 -0
  731. package/skills/1password/references/cli-examples.md +29 -0
  732. package/skills/1password/references/get-started.md +17 -0
  733. package/skills/apple-notes/SKILL.md +77 -0
  734. package/skills/apple-reminders/SKILL.md +118 -0
  735. package/skills/bear-notes/SKILL.md +107 -0
  736. package/skills/blogwatcher/SKILL.md +69 -0
  737. package/skills/blucli/SKILL.md +47 -0
  738. package/skills/camsnap/SKILL.md +45 -0
  739. package/skills/canvas/SKILL.md +78 -0
  740. package/skills/clawhub/SKILL.md +77 -0
  741. package/skills/coding-agent/SKILL.md +143 -0
  742. package/skills/diagram-maker/SKILL.md +53 -0
  743. package/skills/diagram-maker/references/excalidraw-patterns.md +85 -0
  744. package/skills/diagram-maker/references/svg-template.md +112 -0
  745. package/skills/discord/SKILL.md +136 -0
  746. package/skills/eightctl/SKILL.md +50 -0
  747. package/skills/gemini/SKILL.md +47 -0
  748. package/skills/gh-issues/SKILL.md +213 -0
  749. package/skills/gifgrep/SKILL.md +85 -0
  750. package/skills/github/SKILL.md +84 -0
  751. package/skills/gog/SKILL.md +116 -0
  752. package/skills/goplaces/SKILL.md +52 -0
  753. package/skills/healthcheck/SKILL.md +105 -0
  754. package/skills/himalaya/SKILL.md +80 -0
  755. package/skills/himalaya/references/configuration.md +184 -0
  756. package/skills/himalaya/references/message-composition.md +199 -0
  757. package/skills/imsg/SKILL.md +122 -0
  758. package/skills/mcporter/SKILL.md +61 -0
  759. package/skills/meme-maker/SKILL.md +42 -0
  760. package/skills/meme-maker/references/templates.json +358 -0
  761. package/skills/meme-maker/scripts/meme.mjs +398 -0
  762. package/skills/model-usage/SKILL.md +71 -0
  763. package/skills/model-usage/references/codexbar-cli.md +33 -0
  764. package/skills/model-usage/scripts/model_usage.py +319 -0
  765. package/skills/model-usage/scripts/test_model_usage.py +40 -0
  766. package/skills/nano-pdf/SKILL.md +38 -0
  767. package/skills/node-connect/SKILL.md +143 -0
  768. package/skills/node-inspect-debugger/SKILL.md +85 -0
  769. package/skills/notion/SKILL.md +150 -0
  770. package/skills/obsidian/SKILL.md +119 -0
  771. package/skills/openai-whisper/SKILL.md +38 -0
  772. package/skills/openai-whisper-api/SKILL.md +71 -0
  773. package/skills/openai-whisper-api/scripts/transcribe.sh +154 -0
  774. package/skills/openhue/SKILL.md +112 -0
  775. package/skills/oracle/SKILL.md +126 -0
  776. package/skills/ordercli/SKILL.md +78 -0
  777. package/skills/peekaboo/SKILL.md +198 -0
  778. package/skills/pyproject.toml +10 -0
  779. package/skills/python-debugpy/SKILL.md +73 -0
  780. package/skills/sag/SKILL.md +87 -0
  781. package/skills/session-logs/SKILL.md +151 -0
  782. package/skills/sherpa-onnx-tts/SKILL.md +109 -0
  783. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
  784. package/skills/skill-creator/SKILL.md +78 -0
  785. package/skills/skill-creator/license.txt +202 -0
  786. package/skills/skill-creator/scripts/init_skill.py +378 -0
  787. package/skills/skill-creator/scripts/package_skill.py +144 -0
  788. package/skills/skill-creator/scripts/quick_validate.py +169 -0
  789. package/skills/skill-creator/scripts/test_package_skill.py +199 -0
  790. package/skills/skill-creator/scripts/test_quick_validate.py +116 -0
  791. package/skills/slack/SKILL.md +78 -0
  792. package/skills/songsee/SKILL.md +49 -0
  793. package/skills/sonoscli/SKILL.md +65 -0
  794. package/skills/spike/SKILL.md +51 -0
  795. package/skills/spotify-player/SKILL.md +64 -0
  796. package/skills/summarize/SKILL.md +87 -0
  797. package/skills/taskflow/SKILL.md +149 -0
  798. package/skills/taskflow/examples/inbox-triage.lobster +33 -0
  799. package/skills/taskflow/examples/pr-intake.lobster +32 -0
  800. package/skills/taskflow-inbox-triage/SKILL.md +119 -0
  801. package/skills/things-mac/SKILL.md +86 -0
  802. package/skills/tmux/SKILL.md +91 -0
  803. package/skills/tmux/scripts/find-sessions.sh +112 -0
  804. package/skills/tmux/scripts/wait-for-text.sh +83 -0
  805. package/skills/trello/SKILL.md +108 -0
  806. package/skills/video-frames/SKILL.md +46 -0
  807. package/skills/video-frames/scripts/frame.sh +81 -0
  808. package/skills/voice-call/SKILL.md +45 -0
  809. package/skills/wacli/SKILL.md +72 -0
  810. package/skills/weather/SKILL.md +87 -0
  811. package/skills/xurl/SKILL.md +120 -0
  812. package/src/agents/templates/HEARTBEAT.md +5 -0
@@ -0,0 +1,355 @@
1
+ ---
2
+ summary: "Run OpenClaw embedded agent turns through the external GitHub Copilot SDK harness"
3
+ title: "Copilot SDK harness"
4
+ read_when:
5
+ - You want to use the GitHub Copilot SDK harness for an agent
6
+ - You need configuration examples for the `copilot` runtime
7
+ - You are wiring an agent to subscription Copilot (github / openclaw / copilot) and want it to run through the Copilot CLI
8
+ ---
9
+
10
+ The external `@openclaw/copilot` plugin lets OpenClaw run embedded subscription
11
+ Copilot agent turns through the GitHub Copilot CLI (`@github/copilot-sdk`)
12
+ instead of the built-in PI harness.
13
+
14
+ Use the Copilot SDK harness when you want the Copilot CLI session to own the
15
+ low-level agent loop: native tool execution, native compaction
16
+ (`infiniteSessions`), and CLI-managed thread state under `copilotHome`.
17
+ OpenClaw still owns chat channels, session files, model selection, OpenClaw
18
+ dynamic tools (bridged), approvals, media delivery, the visible transcript
19
+ mirror, `/btw` side questions (handled by the in-tree PI fallback — see
20
+ [Side questions (`/btw`)](#side-questions-btw)), and `openclaw doctor`.
21
+
22
+ For the broader model/provider/runtime split, start with
23
+ [Agent runtimes](/concepts/agent-runtimes).
24
+
25
+ ## Requirements
26
+
27
+ - OpenClaw with the `@openclaw/copilot` plugin installed.
28
+ - If your config uses `plugins.allow`, include `copilot` (the manifest
29
+ id declared by the plugin). A restrictive
30
+ allowlist that uses the npm-style `@openclaw/copilot` package name
31
+ will leave the plugin blocked and the runtime will not load
32
+ even with `agentRuntime.id: "copilot"`.
33
+ - A GitHub Copilot subscription that can drive the Copilot CLI (or a
34
+ `gitHubToken` env / auth-profile entry for headless / cron runs).
35
+ - A writable `copilotHome` directory. The harness defaults to
36
+ `~/.openclaw/agents/<agentId>/copilot` for full per-agent isolation. The
37
+ platform default (`%APPDATA%\copilot` on Windows, `$XDG_CONFIG_HOME/copilot`
38
+ or `~/.config/copilot` elsewhere) is used as the doctor probe fallback when
39
+ no explicit home is set.
40
+
41
+ `openclaw doctor` runs the plugin
42
+ [doctor contract](#doctor-and-probes) for the extension; failures there are
43
+ the canonical way to confirm the environment is ready before opting an agent
44
+ in.
45
+
46
+ ## Plugin install
47
+
48
+ The Copilot runtime is an external plugin so the core `openclaw` package does
49
+ not carry the `@github/copilot-sdk` dependency or its platform-specific
50
+ `@github/copilot-<platform>-<arch>` CLI binary. Together they add roughly
51
+ 260 MB, so install them only for agents that opt into this runtime:
52
+
53
+ ```bash
54
+ openclaw plugins install @openclaw/copilot
55
+ ```
56
+
57
+ The wizard installs the plugin the first time you select a
58
+ `github-copilot/*` model **and** your config opts the model (or its
59
+ provider) into the Copilot agent runtime via
60
+ `agentRuntime: { id: "copilot" }` (see [Quickstart](#quickstart) below).
61
+ Without the opt-in, openclaw uses its built-in GitHub Copilot provider
62
+ and never installs the runtime plugin.
63
+
64
+ The runtime resolves the SDK in this order:
65
+
66
+ 1. `import("@github/copilot-sdk")` from the installed `@openclaw/copilot`
67
+ package.
68
+ 2. The well-known fallback dir `~/.openclaw/npm-runtime/copilot/` (the
69
+ legacy on-demand install target).
70
+
71
+ A missing SDK surfaces a single error with code `COPILOT_SDK_MISSING`
72
+ and the plugin reinstall command above.
73
+
74
+ ## Quickstart
75
+
76
+ Pin one model (or one provider) to the harness:
77
+
78
+ ```json5
79
+ {
80
+ agents: {
81
+ defaults: {
82
+ model: "github-copilot/gpt-5.5",
83
+ models: {
84
+ "github-copilot/gpt-5.5": {
85
+ agentRuntime: { id: "copilot" },
86
+ },
87
+ },
88
+ },
89
+ },
90
+ }
91
+ ```
92
+
93
+ Both routes are equivalent. Use `agentRuntime.id` on a single model entry
94
+ when only that model should be routed through the harness; set
95
+ `agentRuntime.id` on a provider when every model under that provider should
96
+ use it.
97
+
98
+ ## Supported providers
99
+
100
+ The harness advertises support for the canonical `github-copilot` provider
101
+ (the same id owned by `extensions/github-copilot`):
102
+
103
+ - `github-copilot`
104
+
105
+ Anything outside that set falls through `selection.ts`'s `auto_pi` branch back
106
+ to PI.
107
+
108
+ ## Auth
109
+
110
+ Per-agent precedence, applied during `runCopilotAttempt`:
111
+
112
+ 1. **Explicit `useLoggedInUser: true`** on the attempt input. Uses the Copilot
113
+ CLI's logged-in user resolved under the agent's `copilotHome`.
114
+ 2. **Explicit `gitHubToken`** on the attempt input (with `profileId` +
115
+ `profileVersion`). Useful for direct CLI invocations and tests where the
116
+ caller wants to bypass auth-profile resolution.
117
+ 3. **Contract-resolved `resolvedApiKey` + `authProfileId`** from the
118
+ `EmbeddedRunAttemptParams` shape. This is the **production main path**:
119
+ core resolves the agent's configured `github-copilot` auth profile
120
+ (via `src/infra/provider-usage.auth.ts:resolveProviderAuths`) before
121
+ invoking the harness, and the harness consumes both fields directly.
122
+ This makes a `github-copilot:<profile>` auth profile work end-to-end
123
+ for headless / cron / multi-profile setups without env vars.
124
+ 4. **Env-var fallback** for direct CLI / dogfood runs where no auth
125
+ profile is configured. The runtime checks the following vars in
126
+ precedence order, mirroring the shipped `github-copilot` provider
127
+ (`extensions/github-copilot/auth.ts`) and the documented Copilot SDK
128
+ setup:
129
+ 1. `OPENCLAW_GITHUB_TOKEN` -- harness-specific override; set this
130
+ to pin a token for the OpenClaw harness without disturbing
131
+ system-wide `gh` / Copilot CLI config.
132
+ 2. `COPILOT_GITHUB_TOKEN` -- standard Copilot SDK / CLI env var.
133
+ 3. `GH_TOKEN` -- standard `gh` CLI env var (matches the existing
134
+ `github-copilot` provider precedence).
135
+ 4. `GITHUB_TOKEN` -- generic GitHub token fallback.
136
+
137
+ The first non-empty value wins; empty strings are treated as
138
+ absent. The synthesised pool profile id is `env:<NAME>` and the
139
+ profileVersion is a non-reversible sha256 fingerprint of the
140
+ token, so rotating the env value cleanly busts the client pool.
141
+
142
+ 5. **Default `useLoggedInUser`** when no token signal is available.
143
+
144
+ Each agent gets a dedicated `copilotHome` so Copilot CLI tokens, sessions, and
145
+ config do not leak between agents on the same machine. The default is
146
+ `<agentDir>/copilot` when the host hands the harness an agent directory
147
+ (isolating SDK state from OpenClaw's `models.json` / `auth-profiles.json` in
148
+ the same directory), or `~/.openclaw/agents/<agentId>/copilot` otherwise.
149
+ Override with `copilotHome: <path>` on the attempt input when you need a
150
+ custom location (for example, a shared mount for migration).
151
+
152
+ `probeCopilotAuthShape` (see [Doctor and probes](#doctor-and-probes)) is the
153
+ pure shape check that validates which of the modes above will be used.
154
+ It does not perform a live SDK handshake.
155
+
156
+ ## Configuration surface
157
+
158
+ The harness reads its config from per-attempt input
159
+ (`runCopilotAttempt({...})`) plus a small set of env defaults inside
160
+ `extensions/copilot/src/`:
161
+
162
+ - `copilotHome` — per-agent CLI state directory (defaults documented above).
163
+ - `model` — string or `{ provider, id, api? }`. When omitted, OpenClaw uses
164
+ the agent's normal model selection and the harness verifies the resolved
165
+ provider is in the supported set.
166
+ - `reasoningEffort` — `"low" | "medium" | "high" | "xhigh"`. Maps from
167
+ OpenClaw's `ThinkLevel` / `ReasoningLevel` resolution in
168
+ `auto-reply/thinking.ts`.
169
+ - `infiniteSessionConfig` — optional override for the SDK
170
+ `infiniteSessions` block driven by `harness.compact`. Defaults are safe to
171
+ leave as-is.
172
+ - `hooksConfig` — optional bridge config exposing OpenClaw
173
+ before/after-message-write hooks to the SDK loop.
174
+ - `permissionPolicy` — optional override for the SDK's
175
+ `onPermissionRequest` handler used for built-in SDK tool kinds
176
+ (`shell`, `write`, `read`, `url`, `mcp`, `memory`, `hook`). Defaults
177
+ to `rejectAllPolicy` as a safety net; in practice the SDK never
178
+ invokes any of those kinds because every bridged OpenClaw tool is
179
+ registered with `overridesBuiltInTool: true` and
180
+ `skipPermission: true` so 100% of tool calls flow through OpenClaw's
181
+ wrapped `execute()`. See [Permissions and ask_user](#permissions-and-ask_user).
182
+ - `enableSessionTelemetry` — opt-in OpenTelemetry routing via
183
+ `telemetry-bridge.ts`.
184
+
185
+ Nothing in the rest of OpenClaw needs to know about these fields. Other
186
+ plugins, channels, and core code only see the standard
187
+ `AgentHarnessAttemptParams` / `AgentHarnessAttemptResult` shape.
188
+
189
+ ## Compaction
190
+
191
+ When `harness.compact` runs, the Copilot SDK harness:
192
+
193
+ 1. Resumes the tracked SDK session without continuing pending work.
194
+ 2. Calls the SDK's session-scoped history compaction RPC.
195
+ 3. Returns the SDK compaction outcome without writing compatibility marker
196
+ files under the workspace.
197
+
198
+ The OpenClaw side transcript mirror (see below) continues to receive the
199
+ post-compaction messages, so user-facing chat history stays consistent.
200
+
201
+ ## Transcript mirroring
202
+
203
+ `runCopilotAttempt` dual-writes each turn's mirrorable messages into the
204
+ OpenClaw audit transcript via
205
+ `extensions/copilot/src/dual-write-transcripts.ts`. The mirror is
206
+ per-session scoped (`copilot:${sessionId}`) and uses a per-message
207
+ identity (`${role}:${sha256_16(role,content)}`) so re-emits of prior-turn
208
+ entries collide with existing on-disk keys and do not duplicate.
209
+
210
+ The mirror is wrapped in two layers of failure containment so a transcript
211
+ write failure cannot fail the attempt: an internal best-effort wrapper and a
212
+ defense-in-depth `.catch(...)` at the attempt level. Failures are logged but
213
+ not surfaced.
214
+
215
+ ## Side questions (`/btw`)
216
+
217
+ `/btw` is **not** native on this harness. `createCopilotAgentHarness()`
218
+ deliberately leaves `harness.runSideQuestion` undefined, so OpenClaw's `/btw`
219
+ dispatcher (`src/agents/btw.ts`) falls through to the same in-tree PI fallback
220
+ path it uses for every non-Codex runtime: the configured model provider is
221
+ called directly with a short side-question prompt and streamed back via
222
+ `streamSimple` (no CLI session, no extra pool slot).
223
+
224
+ This keeps Copilot CLI sessions reserved for the agent's main turn loop, and
225
+ keeps `/btw` behavior identical to other PI-backed runtimes. The contract is
226
+ asserted in
227
+ [`extensions/copilot/harness.test.ts`](https://github.com/openclaw/openclaw/blob/main/extensions/copilot/harness.test.ts)
228
+ under `describe("runSideQuestion")`.
229
+
230
+ ## Doctor and probes
231
+
232
+ `extensions/copilot/doctor-contract-api.ts` is auto-loaded by
233
+ `src/plugins/doctor-contract-registry.ts`. It contributes:
234
+
235
+ - An empty `legacyConfigRules` (no retired fields at MVP).
236
+ - A no-op `normalizeCompatibilityConfig` (kept so future field retirements
237
+ have a stable in-tree home).
238
+ - One `sessionRouteStateOwners` entry claiming provider `github-copilot`;
239
+ runtime `copilot`; CLI session key `copilot`; auth profile
240
+ prefix `github-copilot:`.
241
+
242
+ `extensions/copilot/src/doctor-probes.ts` exports three imperative probes
243
+ that hosts (including `openclaw doctor`) can call to verify the environment:
244
+
245
+ | Probe | What it checks | Reasons it can fail |
246
+ | -------------------------- | --------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
247
+ | `probeCopilotCliVersion` | `copilot --version` exits 0 with a non-empty version string | `non-zero-exit`, `empty-version`, `spawn-failed`, `spawn-error`, `probe-timeout` |
248
+ | `probeCopilotHomeWritable` | `mkdir -p copilotHome` + write + rm a marker file | `copilothome-not-writable` (with the underlying fs error in `details.rawError`) |
249
+ | `probeCopilotAuthShape` | At least one of `useLoggedInUser`, `gitHubToken`, or `profileId`+`profileVersion` | `no-auth-source` |
250
+
251
+ Each probe accepts a DI seam (`spawnFn`, `fsApi`) so tests do not spawn the
252
+ real Copilot CLI or touch the host fs.
253
+
254
+ ## Limitations
255
+
256
+ - The harness only claims the canonical `github-copilot` provider at MVP.
257
+ Additional providers (BYOK or otherwise) should land in follow-up PRs that
258
+ ship the adapter alongside the wire-up.
259
+ - The harness does not deliver TUI; PI's TUI is unaffected and remains the
260
+ fallback for whatever runtimes do not have a peer surface.
261
+ - PI session state is not migrated when an agent switches to `copilot`.
262
+ Selection is per attempt; existing PI sessions remain valid.
263
+ - **Interactive `ask_user` is not yet wired.** The SDK's
264
+ `onUserInputRequest` handler is intentionally not registered, which
265
+ per the SDK contract hides the `ask_user` tool from the model
266
+ entirely. Agents running under this harness make best-judgment
267
+ decisions from the initial prompt rather than asking clarifying
268
+ questions mid-turn. A follow-up will port the codex pattern at
269
+ `extensions/codex/src/app-server/user-input-bridge.ts` to route SDK
270
+ `UserInputRequest`s through the OpenClaw channel/TUI prompt path; the
271
+ dormant scaffolding in `extensions/copilot/src/user-input-bridge.ts`
272
+ is the surface that follow-up will wire.
273
+
274
+ ## Permissions and ask_user
275
+
276
+ Permission enforcement for bridged OpenClaw tools happens **inside the
277
+ tool wrapper**, not via the SDK's `onPermissionRequest` callback. The
278
+ same `wrapToolWithBeforeToolCallHook` that PI uses
279
+ (`src/agents/pi-tools.before-tool-call.ts`) is applied by
280
+ `createOpenClawCodingTools` to every coding tool: loop detection,
281
+ trusted plugin policies, before-tool-call hooks, and two-phase plugin
282
+ approvals via the gateway (`plugin.approval.request`) all run with the
283
+ exact same code path as native PI attempts.
284
+
285
+ To let that wrapper own the decision, the SDK Tool returned by
286
+ `convertOpenClawToolToSdkTool` is marked with:
287
+
288
+ - `overridesBuiltInTool: true` — replaces the Copilot CLI's built-in
289
+ tool of the same name (edit, read, write, bash, …) so every tool
290
+ invocation routes back to OpenClaw.
291
+ - `skipPermission: true` — tells the SDK not to fire
292
+ `onPermissionRequest({kind: "custom-tool"})` before invoking the tool.
293
+ The wrapped `execute()` performs the richer OpenClaw policy check
294
+ internally; an SDK-level prompt would either short-circuit OpenClaw's
295
+ enforcement (if we allow-all) or block every tool call (if we
296
+ reject-all) — neither matches PI parity.
297
+
298
+ The in-tree codex harness uses the same split: bridged OpenClaw tools
299
+ are wrapped (`extensions/codex/src/app-server/dynamic-tools.ts`) and
300
+ the codex-app-server's _own_ native approval kinds
301
+ (`item/commandExecution/requestApproval`,
302
+ `item/fileChange/requestApproval`,
303
+ `item/permissions/requestApproval`) are routed through
304
+ `plugin.approval.request`
305
+ (`extensions/codex/src/app-server/approval-bridge.ts`). The Copilot SDK
306
+ equivalent — fail-closed `rejectAllPolicy` for any non-`custom-tool`
307
+ kind that ever reaches `onPermissionRequest` — is the same safety net,
308
+ and it does not fire in practice because `overridesBuiltInTool: true`
309
+ displaces every built-in.
310
+
311
+ For the wrapped-tool layer to make policy decisions equivalent to PI,
312
+ the harness forwards the full PI attempt-tool context to
313
+ `createOpenClawCodingTools` — identity (`senderIsOwner`,
314
+ `memberRoleIds`, `ownerOnlyToolAllowlist`, …), channel/routing
315
+ (`groupId`, `currentChannelId`, `replyToMode`, message-tool toggles),
316
+ auth (`authProfileStore`), run identity
317
+ (`sessionKey`/`runSessionKey` derived from `sandboxSessionKey`,
318
+ `runId`), model context (`modelApi`, `modelContextWindowTokens`,
319
+ `modelCompat`, `modelHasVision`), and run hooks (`onToolOutcome`,
320
+ `onYield`). Without those fields, owner-only allowlists silently
321
+ behave as deny-by-default, plugin-trust policies cannot resolve to the
322
+ right scope, and `session_status: "current"` resolves to a stale
323
+ sandbox key. The bridge builder is in
324
+ `extensions/copilot/src/tool-bridge.ts` and mirrors the PI
325
+ authoritative call at
326
+ `src/agents/pi-embedded-runner/run/attempt.ts:1029-1117`. Two PI fields
327
+ are intentionally **not** forwarded at MVP and tracked as follow-ups:
328
+ `sandbox` (the harness does not yet route through `resolveSandboxContext`)
329
+ and the PI tool-search/code-mode machinery
330
+ (`toolSearchCatalogRef`, `includeCoreTools`,
331
+ `includeToolSearchControls`, `toolSearchCatalogExecutor`,
332
+ `toolConstructionPlan`), which has no analog at the SDK boundary.
333
+
334
+ ### Session-level GitHub token
335
+
336
+ The Copilot SDK contract distinguishes the **client-level** GitHub
337
+ token (`CopilotClientOptions.gitHubToken`, used to authenticate the
338
+ CLI process itself) from the **session-level** token
339
+ (`SessionConfig.gitHubToken`, which determines content exclusion,
340
+ model routing, and quota for that session and is honored on both
341
+ `createSession` and `resumeSession`). The harness resolves auth once
342
+ via `resolveCopilotAuth` and sets both fields when the auth mode is
343
+ `gitHubToken` (an explicit `auth.gitHubToken` or a contract-resolved
344
+ `resolvedApiKey` from a configured `github-copilot` auth profile).
345
+ When the resolved mode is `useLoggedInUser`, the session-level field
346
+ is omitted so the SDK keeps deriving identity from the logged-in
347
+ identity.
348
+
349
+ `ask_user` is intentionally hidden — see Limitations above.
350
+
351
+ ## Related
352
+
353
+ - [Agent runtimes](/concepts/agent-runtimes)
354
+ - [Codex harness](/plugins/codex-harness)
355
+ - [Agent harness plugins (SDK reference)](/plugins/sdk-agent-harness)
@@ -0,0 +1,176 @@
1
+ ---
2
+ summary: "How OpenClaw installs plugin packages and resolves plugin dependencies"
3
+ read_when:
4
+ - You are debugging plugin package installs
5
+ - You are changing plugin startup, doctor, or package-manager install behavior
6
+ - You are maintaining packaged OpenClaw installs or bundled plugin manifests
7
+ title: "Plugin dependency resolution"
8
+ sidebarTitle: "Dependencies"
9
+ ---
10
+
11
+ OpenClaw keeps plugin dependency work at install/update time. Runtime loading
12
+ does not run package managers, repair dependency trees, or mutate the OpenClaw
13
+ package directory.
14
+
15
+ ## Responsibility split
16
+
17
+ Plugin packages own their dependency graph:
18
+
19
+ - runtime dependencies live in the plugin package `dependencies` or
20
+ `optionalDependencies`
21
+ - SDK/core imports are peer or supplied OpenClaw imports
22
+ - local development plugins bring their own already-installed dependencies
23
+ - npm and git plugins are installed into OpenClaw-owned package roots
24
+
25
+ OpenClaw owns only the plugin lifecycle:
26
+
27
+ - discover the plugin source
28
+ - install or update the package when explicitly requested
29
+ - record the install metadata
30
+ - load the plugin entrypoint
31
+ - fail with an actionable error when dependencies are missing
32
+
33
+ ## Install roots
34
+
35
+ OpenClaw uses stable per-source roots:
36
+
37
+ - npm packages install into per-plugin projects under
38
+ `~/.openclaw/npm/projects/<encoded-package>`
39
+ - git packages clone under `~/.openclaw/git`
40
+ - local/path/archive installs are copied or referenced without dependency repair
41
+
42
+ npm installs run in that per-plugin project root with:
43
+
44
+ ```bash
45
+ cd ~/.openclaw/npm/projects/<encoded-package>
46
+ npm install --omit=dev --omit=peer --legacy-peer-deps --ignore-scripts --no-audit --no-fund
47
+ ```
48
+
49
+ `openclaw plugins install npm-pack:<path.tgz>` uses that same per-plugin npm
50
+ project root for a local npm-pack tarball. OpenClaw reads the tarball's npm
51
+ metadata, adds it to the managed project as a copied `file:` dependency, runs
52
+ the normal npm install, and then verifies the installed lockfile metadata before
53
+ trusting the plugin.
54
+ This is intended for package-acceptance and release-candidate proof where a
55
+ local pack artifact should behave like the registry artifact it simulates.
56
+
57
+ npm may hoist transitive dependencies to the per-plugin project's
58
+ `node_modules` beside the plugin package. OpenClaw scans the managed project
59
+ root before trusting the install and removes that project during uninstall, so
60
+ hoisted runtime dependencies stay inside that plugin's cleanup boundary.
61
+
62
+ Published npm plugin packages can ship `npm-shrinkwrap.json`. npm uses that
63
+ publishable lockfile during install, and OpenClaw's managed npm project root
64
+ supports it through the normal npm install path. OpenClaw-owned publishable
65
+ plugin packages must include a package-local shrinkwrap generated from that
66
+ plugin package's published dependency graph:
67
+
68
+ ```bash
69
+ pnpm deps:shrinkwrap:generate
70
+ pnpm deps:shrinkwrap:check
71
+ ```
72
+
73
+ The generator strips plugin `devDependencies`, applies the workspace override
74
+ policy, and writes `extensions/<id>/npm-shrinkwrap.json` for each
75
+ `publishToNpm` plugin. Third-party plugin packages may also ship shrinkwrap;
76
+ OpenClaw does not require it for community packages, but npm will respect it
77
+ when present.
78
+
79
+ OpenClaw-owned npm plugin packages can also publish with explicit
80
+ `bundledDependencies`. The npm publish path overlays the runtime dependency
81
+ name list, removes dev-only workspace metadata from the published package
82
+ manifest, runs a script-free npm install for package-local runtime
83
+ dependencies, then packs or publishes the plugin tarball with those dependency
84
+ files included. Native-heavy packages, including Codex and ACP runtimes, opt out
85
+ with `openclaw.release.bundleRuntimeDependencies: false`; those packages still
86
+ ship their shrinkwrap, but npm resolves runtime dependencies during install
87
+ instead of embedding every platform binary in the plugin tarball. The root
88
+ `openclaw` package does not bundle its full dependency tree.
89
+
90
+ Plugins that import `openclaw/plugin-sdk/*` declare `openclaw` as a peer
91
+ dependency. OpenClaw does not let npm install a separate registry copy of the
92
+ host package into a managed project, because stale host packages can affect npm
93
+ peer resolution inside that plugin. Managed npm installs skip npm peer
94
+ resolution/materialization and OpenClaw reasserts plugin-local
95
+ `node_modules/openclaw` links for installed packages that declare the host peer
96
+ after install or update.
97
+
98
+ git installs clone or refresh the repository, then run:
99
+
100
+ ```bash
101
+ npm install --omit=dev --ignore-scripts --no-audit --no-fund
102
+ ```
103
+
104
+ The installed plugin then loads from that package directory, so package-local
105
+ and parent `node_modules` resolution works the same way it does for a normal
106
+ Node package.
107
+
108
+ ## Local plugins
109
+
110
+ Local plugins are treated as developer-controlled directories. OpenClaw does not
111
+ run `npm install`, `pnpm install`, or dependency repair for them. If a local
112
+ plugin has dependencies, install them in that plugin before loading it.
113
+
114
+ Third-party TypeScript local plugins can use the emergency Jiti path. Packaged
115
+ JavaScript plugins and bundled internal plugins load through native
116
+ import/require instead of Jiti.
117
+
118
+ ## Startup and reload
119
+
120
+ Gateway startup and config reload never install plugin dependencies. They read
121
+ the plugin install records, compute the entrypoint, and load it.
122
+
123
+ If a dependency is missing at runtime, the plugin fails to load and the error
124
+ should point the operator to an explicit fix:
125
+
126
+ ```bash
127
+ openclaw plugins update <id>
128
+ openclaw plugins install <source>
129
+ openclaw doctor --fix
130
+ ```
131
+
132
+ `doctor --fix` can clean legacy OpenClaw-generated dependency state and recover
133
+ downloadable plugins that are missing from the local install records when config
134
+ references them. Doctor does not repair dependencies for an already-installed
135
+ local plugin.
136
+
137
+ ## Bundled plugins
138
+
139
+ Lightweight and core-critical bundled plugins are shipped as part of OpenClaw.
140
+ They should either have no heavy runtime dependency tree or be moved out to a
141
+ downloadable package on ClawHub/npm.
142
+
143
+ For the current generated list of plugins that ship in the core package, install
144
+ externally, or stay source-only, see [Plugin inventory](/plugins/plugin-inventory).
145
+
146
+ Bundled plugin manifests must not request dependency staging. Large or optional
147
+ plugin functionality should be packaged as a normal plugin and installed through
148
+ the same npm/git/ClawHub path as third-party plugins.
149
+
150
+ In source checkouts, OpenClaw treats the repository as a pnpm monorepo. After
151
+ `pnpm install`, bundled plugins load from `extensions/<id>` so package-local
152
+ workspace dependencies are available and edits are picked up directly. Source
153
+ checkout development is pnpm-only; plain `npm install` at the repository root is
154
+ not a supported way to prepare bundled plugin dependencies.
155
+
156
+ | Install shape | Bundled plugin location | Dependency owner |
157
+ | -------------------------------- | ------------------------------------- | -------------------------------------------------------------------- |
158
+ | `npm install -g openclaw` | Built runtime tree inside the package | OpenClaw package and explicit plugin install/update/doctor flows |
159
+ | Git checkout plus `pnpm install` | `extensions/<id>` workspace packages | The pnpm workspace, including each plugin package's own dependencies |
160
+ | `openclaw plugins install ...` | Managed npm project/git/ClawHub root | The plugin install/update flow |
161
+
162
+ ## Legacy cleanup
163
+
164
+ Older OpenClaw versions generated bundled-plugin dependency roots at startup or
165
+ during doctor repair. Current doctor cleanup removes those stale directories and
166
+ symlinks when `--fix` is used, including old `plugin-runtime-deps` roots, global
167
+ Node-prefix package symlinks that point at pruned `plugin-runtime-deps` targets,
168
+ `.openclaw-runtime-deps*` manifests, generated plugin `node_modules`, install
169
+ stage directories, and package-local pnpm stores. Packaged postinstall also
170
+ removes those global symlinks before pruning the legacy target roots so upgrades
171
+ do not leave dangling ESM package imports.
172
+
173
+ Older npm installs also used a shared `~/.openclaw/npm/node_modules` root.
174
+ Current install, update, uninstall, and doctor flows still recognize that legacy
175
+ flat root only for recovery and cleanup. New npm installs should create
176
+ per-plugin project roots instead.