@termix-it/cryptoclaw 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.
- package/CHANGELOG.md +1615 -0
- package/LICENSE +21 -0
- package/README-header.png +0 -0
- package/README.md +331 -0
- package/assets/avatar-placeholder.svg +19 -0
- package/assets/chrome-extension/README.md +22 -0
- package/assets/chrome-extension/background.js +438 -0
- package/assets/chrome-extension/icons/icon128.png +0 -0
- package/assets/chrome-extension/icons/icon16.png +0 -0
- package/assets/chrome-extension/icons/icon32.png +0 -0
- package/assets/chrome-extension/icons/icon48.png +0 -0
- package/assets/chrome-extension/manifest.json +25 -0
- package/assets/chrome-extension/options.html +196 -0
- package/assets/chrome-extension/options.js +59 -0
- package/assets/dmg-background-small.png +0 -0
- package/assets/dmg-background.png +0 -0
- package/cryptoclaw.mjs +14 -0
- package/dist/accounts-BPjR5SyC.js +251 -0
- package/dist/accounts-CIGHxE7R.js +251 -0
- package/dist/acp-cli-DBWmJpUJ.js +924 -0
- package/dist/acp-cli-DG9nygBk.js +926 -0
- package/dist/agent-3MZVCC-N.js +702 -0
- package/dist/agent-IDE9krld.js +702 -0
- package/dist/agent-scope-DBl1We79.js +370 -0
- package/dist/agent-scope-DLfFOxP6.js +370 -0
- package/dist/agent-scope-e_oNRhGi.js +606 -0
- package/dist/archive-Dy3Ezb-5.js +85 -0
- package/dist/archive-iT9wNsml.js +85 -0
- package/dist/audit-Bj_dxNaD.js +1853 -0
- package/dist/audit-jaTyyQX1.js +1853 -0
- package/dist/auth-RTEHx2eI.js +192 -0
- package/dist/auth-health-BlspzqyF.js +149 -0
- package/dist/auth-health-CCM6Z3vK.js +149 -0
- package/dist/auth-phxCaFNX.js +192 -0
- package/dist/auth-profiles-DoD7YxsD.js +2939 -0
- package/dist/boolean-BsqeuxE6.js +30 -0
- package/dist/brew-CAcErcKz.js +46 -0
- package/dist/brew-CqnNFIkD.js +46 -0
- package/dist/build-info.json +5 -0
- package/dist/call-D2DXG0AC.js +278 -0
- package/dist/call-DqxlETxE.js +278 -0
- package/dist/canvas-host/a2ui/.bundle.hash +1 -0
- package/dist/canvas-host/a2ui/a2ui.bundle.js +17765 -0
- package/dist/canvas-host/a2ui/index.html +307 -0
- package/dist/channel-options-BHpXOBuP.js +32 -0
- package/dist/channel-options-DUkxROTo.js +62 -0
- package/dist/channel-selection-BdigfMZZ.js +51 -0
- package/dist/channel-selection-D7jFTFec.js +51 -0
- package/dist/channel-summary-CobMoKN6.js +1120 -0
- package/dist/channel-summary-DS0kcHm2.js +1120 -0
- package/dist/channels-cli-D7ZNRrq7.js +1414 -0
- package/dist/channels-cli-DBwffwqw.js +1413 -0
- package/dist/channels-status-issues-C2UGSPvH.js +18 -0
- package/dist/channels-status-issues-Dxmd7zYk.js +18 -0
- package/dist/chrome-CwbWzmh4.js +1973 -0
- package/dist/chrome-SVqOMFxA.js +1953 -0
- package/dist/clack-prompter-k_egRADS.js +92 -0
- package/dist/clack-prompter-nSmn5cZ2.js +92 -0
- package/dist/cli/daemon-cli.js +2 -0
- package/dist/cli-C9xiWnx9.js +86 -0
- package/dist/cli-D6C9z94O.js +88 -0
- package/dist/cli-utils-B7iQwCY5.js +43 -0
- package/dist/cli-utils-CgOu3WAB.js +43 -0
- package/dist/client-BaTYzXOU.js +1617 -0
- package/dist/client-N6zH1neq.js +1617 -0
- package/dist/command-format-9IsYy-9N.js +52 -0
- package/dist/command-format-B0bnyrEA.js +38 -0
- package/dist/command-format-n_udBm8l.js +52 -0
- package/dist/command-options-DL1PhuUF.js +33 -0
- package/dist/commands-Dpeoos11.js +230 -0
- package/dist/completion-cli-B5nR7jt8.js +434 -0
- package/dist/completion-cli-CZ8zPqPs.js +773 -0
- package/dist/config-DSpb2aMV.js +4916 -0
- package/dist/config-IwiWafT3.js +5657 -0
- package/dist/config-dQK4rbfx.js +4916 -0
- package/dist/config-guard-DwIb5Y-v.js +5719 -0
- package/dist/configure-7M9mLC4o.js +896 -0
- package/dist/configure-CivCcvkA.js +896 -0
- package/dist/constants-C2T4hQIk.js +65 -0
- package/dist/constants-DBvu3LzZ.js +65 -0
- package/dist/control-service-BXC31sNw.js +61 -0
- package/dist/control-service-lVzEzp9f.js +61 -0
- package/dist/control-ui/apple-touch-icon.png +0 -0
- package/dist/control-ui/assets/index-DQ-7PWhX.js +7553 -0
- package/dist/control-ui/assets/index-DQ-7PWhX.js.map +1 -0
- package/dist/control-ui/assets/index-nlpH70Eh.css +1 -0
- package/dist/control-ui/favicon-32.png +0 -0
- package/dist/control-ui/favicon.ico +0 -0
- package/dist/control-ui/favicon.svg +22 -0
- package/dist/control-ui/index.html +17 -0
- package/dist/cron-cli-DS8ytfYQ.js +455 -0
- package/dist/cron-cli-Djb3HUdz.js +457 -0
- package/dist/daemon-cli-KoaJ2nJX.js +758 -0
- package/dist/daemon-cli-ZQIKLvAO.js +758 -0
- package/dist/daemon-runtime-CHWbAfKs.js +517 -0
- package/dist/daemon-runtime-DEjUQVjL.js +517 -0
- package/dist/deliver-DVRzRmNN.js +2557 -0
- package/dist/deliver-OfX6bSYR.js +2587 -0
- package/dist/deliver-sPBfRlXT.js +2587 -0
- package/dist/deps-BSdWD2wF.js +27 -0
- package/dist/deps-CZOfeWEp.js +27 -0
- package/dist/devices-cli-DHSpDnCS.js +207 -0
- package/dist/devices-cli-b9iF_uOi.js +205 -0
- package/dist/directory-cli-D0dTuAem.js +247 -0
- package/dist/directory-cli-qniSxsHo.js +245 -0
- package/dist/dispatcher-DA3u3CwV.js +160 -0
- package/dist/dns-cli-C0JUNb9O.js +201 -0
- package/dist/dns-cli-DwwMpMuN.js +199 -0
- package/dist/docs-cli-BlFHCHDz.js +161 -0
- package/dist/docs-cli-BpSPrY3Y.js +160 -0
- package/dist/doctor-Da1XgFcW.js +2584 -0
- package/dist/doctor-qrtookj-.js +2585 -0
- package/dist/entry.js +1156 -0
- package/dist/env-B2Cd_6IS.js +32 -0
- package/dist/errors--S5IAxQx.js +1952 -0
- package/dist/exec-CLQSz0CI.js +246 -0
- package/dist/exec-CW_QjkBi.js +246 -0
- package/dist/exec-D7I5LU33.js +1099 -0
- package/dist/exec-approvals-CuXem6Li.js +1043 -0
- package/dist/exec-approvals-P7vwSw4O.js +1043 -0
- package/dist/exec-approvals-cli-Csgqkksl.js +386 -0
- package/dist/exec-approvals-cli-Dk4yHE2L.js +388 -0
- package/dist/extensionAPI.js +64497 -0
- package/dist/format-B7OjpGnt.js +34 -0
- package/dist/format-Dv1wz41T.js +34 -0
- package/dist/gateway-cli-CJ7H2DgV.js +17352 -0
- package/dist/gateway-cli-CrKl-bIH.js +17352 -0
- package/dist/gateway-rpc--CH0NWWR.js +28 -0
- package/dist/gateway-rpc-BPfCU2Vi.js +28 -0
- package/dist/github-copilot-auth-CcPEEb3Q.js +1190 -0
- package/dist/github-copilot-auth-h3beCc_l.js +1190 -0
- package/dist/github-copilot-token-C1sArkX4.js +103 -0
- package/dist/github-copilot-token-DL6Pou2p.js +103 -0
- package/dist/github-copilot-token-hMl1wyZp.js +103 -0
- package/dist/gmail-setup-utils-CnVYPhaQ.js +428 -0
- package/dist/gmail-setup-utils-pZ9NnOvB.js +428 -0
- package/dist/health-format-BcsR5dtU.js +1211 -0
- package/dist/health-format-Pl8qK65t.js +1212 -0
- package/dist/help-format-BzWwbeSF.js +17 -0
- package/dist/help-format-CUnac_bT.js +17 -0
- package/dist/helpers-5yebzF4C.js +25 -0
- package/dist/helpers-CQI-5xS9.js +25 -0
- package/dist/helpers-CzQjTUbz.js +10 -0
- package/dist/helpers-OUt4hxkS.js +10 -0
- package/dist/hooks/bundled/boot-md/HOOK.md +19 -0
- package/dist/hooks/bundled/command-logger/HOOK.md +122 -0
- package/dist/hooks/bundled/session-memory/HOOK.md +109 -0
- package/dist/hooks/bundled/soul-evil/HOOK.md +71 -0
- package/dist/hooks-cli-BKHTdsn4.js +1058 -0
- package/dist/hooks-cli-zkLY25DX.js +1060 -0
- package/dist/hooks-status-BETsyuUR.js +443 -0
- package/dist/hooks-status-nPgxLL-x.js +443 -0
- package/dist/image-BFNcQzKp.js +629 -0
- package/dist/image-CC_YKDB-.js +1421 -0
- package/dist/image-DAsWVn7Q.js +629 -0
- package/dist/index.js +5900 -0
- package/dist/installs-Byb3s_8P.js +425 -0
- package/dist/installs-CELeuogN.js +425 -0
- package/dist/is-main-B6kCyqsv.js +25 -0
- package/dist/is-main-CBExsRNQ.js +25 -0
- package/dist/links-Brcj2Oc-.js +15 -0
- package/dist/links-cf9h8BXu.js +15 -0
- package/dist/loader-CU4bkeKe.js +61131 -0
- package/dist/logging-5MtSkLpb.js +1 -0
- package/dist/logging-BJRQDTME.js +15 -0
- package/dist/logging-CD55MXc7.js +15 -0
- package/dist/logging-kuFzZMsG.js +1 -0
- package/dist/login-qr-BCr2GKX6.js +475 -0
- package/dist/login-qr-BMbekoZW.js +478 -0
- package/dist/login-qr-HIPJAnbT.js +478 -0
- package/dist/logs-cli-CM7-XOcZ.js +230 -0
- package/dist/logs-cli-aqjT7oHu.js +228 -0
- package/dist/manager-C5m5qpB0.js +2871 -0
- package/dist/manager-CtGvmGvM.js +2872 -0
- package/dist/manager-DpZlm3gk.js +2870 -0
- package/dist/manifest-registry-BdTzIlta.js +669 -0
- package/dist/manifest-registry-DVQHMj0y.js +669 -0
- package/dist/message-channel-CfYBy4y3.js +110 -0
- package/dist/message-channel-CvHWS3C2.js +110 -0
- package/dist/model-selection-Av0fLq51.js +2940 -0
- package/dist/model-selection-DuI_Ue9Q.js +2691 -0
- package/dist/models-cli-C0JOZ5oP.js +2541 -0
- package/dist/models-cli-gmkzOpbq.js +2543 -0
- package/dist/net-D4G66Xui.js +137 -0
- package/dist/net-YrbuVTd2.js +137 -0
- package/dist/node-cli-BND9LLkM.js +1457 -0
- package/dist/node-cli-DNRB94ib.js +1459 -0
- package/dist/node-service-DTgDFo7M.js +67 -0
- package/dist/node-service-JEBcPQat.js +67 -0
- package/dist/nodes-cli-BCWlqHyR.js +1208 -0
- package/dist/nodes-cli-DWSo5dX7.js +1210 -0
- package/dist/nodes-screen-CMvShBEB.js +157 -0
- package/dist/nodes-screen-Cok3-EJw.js +157 -0
- package/dist/note-C5M2AQOP.js +73 -0
- package/dist/note-DEz9ZK7G.js +73 -0
- package/dist/onboard-channels-B75LjjVZ.js +671 -0
- package/dist/onboard-channels-DJz2TusQ.js +671 -0
- package/dist/onboard-skills-ByHkU9nx.js +3615 -0
- package/dist/onboard-skills-Wknr7pxR.js +3615 -0
- package/dist/onboarding-BejDjkx5.js +3455 -0
- package/dist/openclaw-root-YSGWCNem.js +84 -0
- package/dist/openclaw-root-_zPXSqgo.js +84 -0
- package/dist/pairing-cli-CFqD3IdI.js +122 -0
- package/dist/pairing-cli-Cn5vt4oI.js +120 -0
- package/dist/pairing-store-BHzy16_t.js +391 -0
- package/dist/pairing-store-BOhO49Bi.js +391 -0
- package/dist/parse-BZz5lHzQ.js +23 -0
- package/dist/parse-Bw0oH-rT.js +23 -0
- package/dist/parse-log-line-BxDgv4Uo.js +44 -0
- package/dist/parse-log-line-CUrpqe1w.js +44 -0
- package/dist/parse-timeout-D1XX_zN_.js +16 -0
- package/dist/parse-timeout-Du-wHHNi.js +16 -0
- package/dist/path-env-DQ-mM2ya.js +77 -0
- package/dist/path-env-eQ-HoQtS.js +77 -0
- package/dist/paths-C3yk0MGu.js +43 -0
- package/dist/paths-C90k-Dud.js +166 -0
- package/dist/paths-CGrNQEMk.js +201 -0
- package/dist/paths-D2ytuv-2.js +201 -0
- package/dist/paths-Dlp4VNXa.js +40 -0
- package/dist/paths-KUslkJRs.js +43 -0
- package/dist/pi-embedded-helpers-B7ARjDEK.js +1298 -0
- package/dist/pi-embedded-helpers-CQ9sq3Uu.js +8475 -0
- package/dist/pi-embedded-helpers-FPVRDeKf.js +1298 -0
- package/dist/pi-model-discovery-DWTTaAgY.js +20 -0
- package/dist/pi-model-discovery-EhM2JAQo.js +20 -0
- package/dist/pi-model-discovery-EwKVHlZB.js +20 -0
- package/dist/pi-tools.policy-Du4RZy9R.js +230 -0
- package/dist/plugin-auto-enable-EBxTHjFJ.js +461 -0
- package/dist/plugin-auto-enable-RwRwIUKC.js +461 -0
- package/dist/plugin-sdk/index.d.ts +8453 -0
- package/dist/plugin-sdk/index.js +23445 -0
- package/dist/plugin-sdk/pi-model-discovery-Dw3A6oXH.js +37 -0
- package/dist/plugins-BI-p2ba9.js +495 -0
- package/dist/plugins-Dk4UBZwz.js +496 -0
- package/dist/plugins-cli-CMg0G56J.js +441 -0
- package/dist/plugins-cli-CX7QeUjq.js +443 -0
- package/dist/ports-nXmd4Efh.js +96 -0
- package/dist/program-EAMJAB_2.js +191 -0
- package/dist/progress-D-Oc-KAH.js +133 -0
- package/dist/progress-DTEUicRP.js +133 -0
- package/dist/prompt-style-BBlJlXtd.js +9 -0
- package/dist/prompt-style-BntC_Eoo.js +9 -0
- package/dist/prompts-C2D9_VZC.js +10 -0
- package/dist/prompts-FbZThK8w.js +10 -0
- package/dist/pw-ai-D2jD_dho.js +1651 -0
- package/dist/pw-ai-D6JUaD41.js +1650 -0
- package/dist/pw-ai-ba2bHPGA.js +1649 -0
- package/dist/qmd-manager-B-ijyM7o.js +615 -0
- package/dist/qmd-manager-C_Jah5eo.js +618 -0
- package/dist/qmd-manager-xo4abL0u.js +618 -0
- package/dist/redact-1PNP01B_.js +97 -0
- package/dist/redact-BIMJ3ntQ.js +94 -0
- package/dist/redact-CVRUv382.js +97 -0
- package/dist/register.subclis-CJGimm3-.js +348 -0
- package/dist/reply-DfepuqG0.js +61133 -0
- package/dist/rolldown-runtime-Cbj13DAv.js +20 -0
- package/dist/routes-DkckwrRx.js +2410 -0
- package/dist/routes-Q42qtNl1.js +2410 -0
- package/dist/rpc-B4lvrGrD.js +95 -0
- package/dist/rpc-CbWcXAQK.js +95 -0
- package/dist/run-main-JFY3X4Xh.js +194 -0
- package/dist/sandbox-BGqDfFaH.js +2945 -0
- package/dist/sandbox-D_Tt3WRq.js +2945 -0
- package/dist/sandbox-cli-CaxqKiTq.js +461 -0
- package/dist/sandbox-cli-DA0Cbrzl.js +463 -0
- package/dist/security-cli-BZjA_GAD.js +508 -0
- package/dist/security-cli-Ct-pfF2h.js +506 -0
- package/dist/server-context-B9ez46MY.js +740 -0
- package/dist/server-context-C53lhEx_.js +740 -0
- package/dist/server-node-events-Cb6QOeDH.js +218 -0
- package/dist/server-node-events-DONmQvJg.js +216 -0
- package/dist/service-C0ccl5rU.js +680 -0
- package/dist/service-audit-AsnhO40e.js +542 -0
- package/dist/service-audit-BM-iyLL7.js +542 -0
- package/dist/service-mrQPgOXl.js +680 -0
- package/dist/session-cost-usage-B3HzifR9.js +692 -0
- package/dist/session-cost-usage-DH3c4xJA.js +692 -0
- package/dist/session-key-C-ig2pxJ.js +177 -0
- package/dist/session-key-CYpWeuht.js +177 -0
- package/dist/shared-CBcCIWC0.js +74 -0
- package/dist/shared-CtNMbLRE.js +150 -0
- package/dist/shared-DCh7fkR2.js +150 -0
- package/dist/shared-Na5zjEUc.js +74 -0
- package/dist/skill-scanner-AfOudYI1.js +255 -0
- package/dist/skill-scanner-BoGjHXUZ.js +255 -0
- package/dist/skills-7V483a6m.js +693 -0
- package/dist/skills-CsZRBUj0.js +694 -0
- package/dist/skills-cli-DQaq5LBX.js +290 -0
- package/dist/skills-cli-dVugbaAb.js +288 -0
- package/dist/skills-status-4_4zVBvV.js +187 -0
- package/dist/skills-status-cD4rfMR9.js +187 -0
- package/dist/sqlite-C4DljFNL.js +215 -0
- package/dist/sqlite-CvQzxS7q.js +197 -0
- package/dist/sqlite-Dnmf3LS7.js +215 -0
- package/dist/status-BakhDLuG.js +27 -0
- package/dist/status-BqtiImKF.js +21 -0
- package/dist/status-DHPz4Mg_.js +3364 -0
- package/dist/status-DSoYX3Ep.js +27 -0
- package/dist/status-Drziap9H.js +21 -0
- package/dist/subsystem-Btuh5yZj.js +834 -0
- package/dist/system-cli-CUQswQPX.js +83 -0
- package/dist/system-cli-Cz7in_Xr.js +81 -0
- package/dist/systemd-CFHiVC1D.js +438 -0
- package/dist/systemd-hints-CgQqk98i.js +19 -0
- package/dist/systemd-hints-DKVCFZS3.js +19 -0
- package/dist/systemd-kY3NnWdi.js +438 -0
- package/dist/systemd-linger-CFK5jDdq.js +75 -0
- package/dist/systemd-linger-CxBBzOjC.js +75 -0
- package/dist/table-DAOPkdc_.js +279 -0
- package/dist/table-DDQGlZSe.js +279 -0
- package/dist/tailnet-CZq_ZSNX.js +42 -0
- package/dist/tailnet-D5wOWpOX.js +42 -0
- package/dist/tailscale-BY0igR48.js +252 -0
- package/dist/tailscale-CCLcQalf.js +225 -0
- package/dist/tool-display-B2rS2o6B.js +795 -0
- package/dist/tool-display-Zbh1CRw5.js +795 -0
- package/dist/transcript-events-BOK6eOU8.js +17 -0
- package/dist/transcript-events-D2kT5WSz.js +17 -0
- package/dist/transcript-events-JLH5W4He.js +17 -0
- package/dist/tui-DFVs6pRO.js +2672 -0
- package/dist/tui-cli-CBKZVd1C.js +58 -0
- package/dist/tui-cli-DexeJOgZ.js +56 -0
- package/dist/tui-qPHLsB-x.js +2672 -0
- package/dist/update-B2q3duJD.js +317 -0
- package/dist/update-DNnej3C6.js +317 -0
- package/dist/update-cli-BPUtZjbl.js +1031 -0
- package/dist/update-cli-ehTYbpaU.js +1032 -0
- package/dist/update-runner-BfncKnU6.js +1375 -0
- package/dist/update-runner-DAeygRSU.js +1375 -0
- package/dist/usage-format-C4JfTbSp.js +36 -0
- package/dist/usage-format-DvowRSs-.js +36 -0
- package/dist/utils-7IMqr8vR.js +189 -0
- package/dist/utils-D7jskKIf.js +192 -0
- package/dist/wallet-manager-7KHKMCbT.js +264 -0
- package/dist/wallet-manager-CT1ykq2O.js +264 -0
- package/dist/webhooks-cli-C0CV-1jG.js +310 -0
- package/dist/webhooks-cli-DT16BygW.js +312 -0
- package/dist/widearea-dns-BJZTAyT3.js +127 -0
- package/dist/widearea-dns-Dk82I4Xa.js +127 -0
- package/dist/ws-6_dFpKWQ.js +13 -0
- package/dist/ws-D64QKPe6.js +13 -0
- package/dist/ws-log-BhQmGM0R.js +267 -0
- package/dist/ws-log-DsyLcTqD.js +267 -0
- package/dist/wsl-C24YfxH9.js +160 -0
- package/docs/.i18n/README.md +31 -0
- package/docs/.i18n/glossary.zh-CN.json +210 -0
- package/docs/.i18n/zh-CN.tm.jsonl +1329 -0
- package/docs/CNAME +1 -0
- package/docs/assets/macos-onboarding/01-macos-warning.jpeg +0 -0
- package/docs/assets/macos-onboarding/02-local-networks.jpeg +0 -0
- package/docs/assets/macos-onboarding/03-security-notice.png +0 -0
- package/docs/assets/macos-onboarding/04-choose-gateway.png +0 -0
- package/docs/assets/macos-onboarding/05-permissions.png +0 -0
- package/docs/assets/openclaw-logo-text-dark.png +0 -0
- package/docs/assets/openclaw-logo-text.png +0 -0
- package/docs/assets/pixel-lobster.svg +60 -0
- package/docs/assets/showcase/agents-ui.jpg +0 -0
- package/docs/assets/showcase/bambu-cli.png +0 -0
- package/docs/assets/showcase/codexmonitor.png +0 -0
- package/docs/assets/showcase/gohome-grafana.png +0 -0
- package/docs/assets/showcase/ios-testflight.jpg +0 -0
- package/docs/assets/showcase/oura-health.png +0 -0
- package/docs/assets/showcase/padel-cli.svg +11 -0
- package/docs/assets/showcase/padel-screenshot.jpg +0 -0
- package/docs/assets/showcase/papla-tts.jpg +0 -0
- package/docs/assets/showcase/pr-review-telegram.jpg +0 -0
- package/docs/assets/showcase/roborock-screenshot.jpg +0 -0
- package/docs/assets/showcase/roborock-status.svg +13 -0
- package/docs/assets/showcase/roof-camera-sky.jpg +0 -0
- package/docs/assets/showcase/snag.png +0 -0
- package/docs/assets/showcase/tesco-shop.jpg +0 -0
- package/docs/assets/showcase/wienerlinien.png +0 -0
- package/docs/assets/showcase/wine-cellar-skill.jpg +0 -0
- package/docs/assets/showcase/winix-air-purifier.jpg +0 -0
- package/docs/assets/showcase/xuezh-pronunciation.jpeg +0 -0
- package/docs/automation/auth-monitoring.md +44 -0
- package/docs/automation/cron-jobs.md +468 -0
- package/docs/automation/cron-vs-heartbeat.md +282 -0
- package/docs/automation/gmail-pubsub.md +256 -0
- package/docs/automation/poll.md +69 -0
- package/docs/automation/webhook.md +163 -0
- package/docs/bedrock.md +176 -0
- package/docs/brave-search.md +41 -0
- package/docs/broadcast-groups.md +442 -0
- package/docs/channels/bluebubbles.md +338 -0
- package/docs/channels/discord.md +476 -0
- package/docs/channels/feishu.md +577 -0
- package/docs/channels/googlechat.md +250 -0
- package/docs/channels/grammy.md +31 -0
- package/docs/channels/imessage.md +299 -0
- package/docs/channels/index.md +46 -0
- package/docs/channels/line.md +186 -0
- package/docs/channels/location.md +56 -0
- package/docs/channels/matrix.md +233 -0
- package/docs/channels/mattermost.md +138 -0
- package/docs/channels/msteams.md +768 -0
- package/docs/channels/nextcloud-talk.md +136 -0
- package/docs/channels/nostr.md +233 -0
- package/docs/channels/signal.md +202 -0
- package/docs/channels/slack.md +548 -0
- package/docs/channels/telegram.md +769 -0
- package/docs/channels/tlon.md +132 -0
- package/docs/channels/troubleshooting.md +29 -0
- package/docs/channels/twitch.md +379 -0
- package/docs/channels/whatsapp.md +404 -0
- package/docs/channels/zalo.md +189 -0
- package/docs/channels/zalouser.md +140 -0
- package/docs/cli/acp.md +170 -0
- package/docs/cli/agent.md +24 -0
- package/docs/cli/agents.md +75 -0
- package/docs/cli/approvals.md +50 -0
- package/docs/cli/browser.md +107 -0
- package/docs/cli/channels.md +79 -0
- package/docs/cli/config.md +50 -0
- package/docs/cli/configure.md +33 -0
- package/docs/cli/cron.md +42 -0
- package/docs/cli/dashboard.md +16 -0
- package/docs/cli/devices.md +70 -0
- package/docs/cli/directory.md +63 -0
- package/docs/cli/dns.md +23 -0
- package/docs/cli/docs.md +15 -0
- package/docs/cli/doctor.md +41 -0
- package/docs/cli/gateway.md +202 -0
- package/docs/cli/health.md +21 -0
- package/docs/cli/hooks.md +304 -0
- package/docs/cli/index.md +1031 -0
- package/docs/cli/logs.md +24 -0
- package/docs/cli/memory.md +45 -0
- package/docs/cli/message.md +239 -0
- package/docs/cli/models.md +79 -0
- package/docs/cli/node.md +112 -0
- package/docs/cli/nodes.md +73 -0
- package/docs/cli/onboard.md +43 -0
- package/docs/cli/pairing.md +21 -0
- package/docs/cli/plugins.md +62 -0
- package/docs/cli/reset.md +17 -0
- package/docs/cli/sandbox.md +152 -0
- package/docs/cli/security.md +26 -0
- package/docs/cli/sessions.md +16 -0
- package/docs/cli/setup.md +29 -0
- package/docs/cli/skills.md +26 -0
- package/docs/cli/status.md +26 -0
- package/docs/cli/system.md +60 -0
- package/docs/cli/tui.md +23 -0
- package/docs/cli/uninstall.md +17 -0
- package/docs/cli/update.md +98 -0
- package/docs/cli/voicecall.md +34 -0
- package/docs/cli/webhooks.md +25 -0
- package/docs/concepts/agent-loop.md +146 -0
- package/docs/concepts/agent-workspace.md +233 -0
- package/docs/concepts/agent.md +123 -0
- package/docs/concepts/architecture.md +129 -0
- package/docs/concepts/channel-routing.md +114 -0
- package/docs/concepts/compaction.md +61 -0
- package/docs/concepts/context.md +161 -0
- package/docs/concepts/features.md +53 -0
- package/docs/concepts/group-messages.md +84 -0
- package/docs/concepts/groups.md +373 -0
- package/docs/concepts/markdown-formatting.md +130 -0
- package/docs/concepts/memory.md +546 -0
- package/docs/concepts/messages.md +154 -0
- package/docs/concepts/model-failover.md +149 -0
- package/docs/concepts/model-providers.md +316 -0
- package/docs/concepts/models.md +208 -0
- package/docs/concepts/multi-agent.md +376 -0
- package/docs/concepts/oauth.md +145 -0
- package/docs/concepts/presence.md +102 -0
- package/docs/concepts/queue.md +89 -0
- package/docs/concepts/retry.md +69 -0
- package/docs/concepts/session-pruning.md +122 -0
- package/docs/concepts/session-tool.md +193 -0
- package/docs/concepts/session.md +204 -0
- package/docs/concepts/sessions.md +10 -0
- package/docs/concepts/streaming.md +135 -0
- package/docs/concepts/system-prompt.md +115 -0
- package/docs/concepts/timezone.md +91 -0
- package/docs/concepts/typebox.md +289 -0
- package/docs/concepts/typing-indicators.md +68 -0
- package/docs/concepts/usage-tracking.md +35 -0
- package/docs/date-time.md +128 -0
- package/docs/debug/node-issue.md +83 -0
- package/docs/debugging.md +162 -0
- package/docs/diagnostics/flags.md +91 -0
- package/docs/docs.json +1736 -0
- package/docs/environment.md +81 -0
- package/docs/experiments/onboarding-config-protocol.md +40 -0
- package/docs/experiments/plans/cron-add-hardening.md +63 -0
- package/docs/experiments/plans/group-policy-hardening.md +40 -0
- package/docs/experiments/plans/openresponses-gateway.md +123 -0
- package/docs/experiments/proposals/model-config.md +36 -0
- package/docs/experiments/research/memory.md +228 -0
- package/docs/gateway/authentication.md +145 -0
- package/docs/gateway/background-process.md +93 -0
- package/docs/gateway/bonjour.md +167 -0
- package/docs/gateway/bridge-protocol.md +89 -0
- package/docs/gateway/cli-backends.md +225 -0
- package/docs/gateway/configuration-examples.md +606 -0
- package/docs/gateway/configuration.md +3411 -0
- package/docs/gateway/discovery.md +116 -0
- package/docs/gateway/doctor.md +282 -0
- package/docs/gateway/gateway-lock.md +34 -0
- package/docs/gateway/health.md +35 -0
- package/docs/gateway/heartbeat.md +362 -0
- package/docs/gateway/index.md +328 -0
- package/docs/gateway/local-models.md +150 -0
- package/docs/gateway/logging.md +113 -0
- package/docs/gateway/multiple-gateways.md +112 -0
- package/docs/gateway/network-model.md +17 -0
- package/docs/gateway/openai-http-api.md +118 -0
- package/docs/gateway/openresponses-http-api.md +317 -0
- package/docs/gateway/pairing.md +99 -0
- package/docs/gateway/protocol.md +221 -0
- package/docs/gateway/remote-gateway-readme.md +157 -0
- package/docs/gateway/remote.md +129 -0
- package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +128 -0
- package/docs/gateway/sandboxing.md +193 -0
- package/docs/gateway/security/formal-verification.md +164 -0
- package/docs/gateway/security/index.md +825 -0
- package/docs/gateway/tailscale.md +127 -0
- package/docs/gateway/tools-invoke-http-api.md +85 -0
- package/docs/gateway/troubleshooting.md +767 -0
- package/docs/help/faq.md +2829 -0
- package/docs/help/index.md +21 -0
- package/docs/help/troubleshooting.md +98 -0
- package/docs/hooks/soul-evil.md +69 -0
- package/docs/hooks.md +913 -0
- package/docs/images/feishu-step2-create-app.png +0 -0
- package/docs/images/feishu-step3-credentials.png +0 -0
- package/docs/images/feishu-step4-permissions.png +0 -0
- package/docs/images/feishu-step5-bot-capability.png +0 -0
- package/docs/images/feishu-step6-event-subscription.png +0 -0
- package/docs/images/groups-flow.svg +52 -0
- package/docs/images/mobile-ui-screenshot.png +0 -0
- package/docs/index.md +192 -0
- package/docs/install/ansible.md +208 -0
- package/docs/install/bun.md +59 -0
- package/docs/install/development-channels.md +75 -0
- package/docs/install/docker.md +567 -0
- package/docs/install/exe-dev.md +126 -0
- package/docs/install/fly.md +486 -0
- package/docs/install/gcp.md +503 -0
- package/docs/install/hetzner.md +330 -0
- package/docs/install/index.md +187 -0
- package/docs/install/installer.md +123 -0
- package/docs/install/macos-vm.md +281 -0
- package/docs/install/migrating.md +192 -0
- package/docs/install/nix.md +96 -0
- package/docs/install/node.md +78 -0
- package/docs/install/northflank.mdx +53 -0
- package/docs/install/railway.mdx +99 -0
- package/docs/install/render.mdx +165 -0
- package/docs/install/uninstall.md +128 -0
- package/docs/install/updating.md +228 -0
- package/docs/logging.md +350 -0
- package/docs/multi-agent-sandbox-tools.md +395 -0
- package/docs/network.md +54 -0
- package/docs/nodes/audio.md +114 -0
- package/docs/nodes/camera.md +156 -0
- package/docs/nodes/images.md +72 -0
- package/docs/nodes/index.md +341 -0
- package/docs/nodes/location-command.md +113 -0
- package/docs/nodes/media-understanding.md +379 -0
- package/docs/nodes/talk.md +90 -0
- package/docs/nodes/voicewake.md +65 -0
- package/docs/perplexity.md +80 -0
- package/docs/pi-dev.md +70 -0
- package/docs/pi.md +612 -0
- package/docs/platforms/android.md +148 -0
- package/docs/platforms/digitalocean.md +262 -0
- package/docs/platforms/index.md +53 -0
- package/docs/platforms/ios.md +107 -0
- package/docs/platforms/linux.md +94 -0
- package/docs/platforms/mac/bundled-gateway.md +73 -0
- package/docs/platforms/mac/canvas.md +125 -0
- package/docs/platforms/mac/child-process.md +69 -0
- package/docs/platforms/mac/dev-setup.md +102 -0
- package/docs/platforms/mac/health.md +34 -0
- package/docs/platforms/mac/icon.md +31 -0
- package/docs/platforms/mac/logging.md +57 -0
- package/docs/platforms/mac/menu-bar.md +81 -0
- package/docs/platforms/mac/peekaboo.md +65 -0
- package/docs/platforms/mac/permissions.md +44 -0
- package/docs/platforms/mac/release.md +85 -0
- package/docs/platforms/mac/remote.md +83 -0
- package/docs/platforms/mac/signing.md +47 -0
- package/docs/platforms/mac/skills.md +33 -0
- package/docs/platforms/mac/voice-overlay.md +60 -0
- package/docs/platforms/mac/voicewake.md +67 -0
- package/docs/platforms/mac/webchat.md +41 -0
- package/docs/platforms/mac/xpc.md +61 -0
- package/docs/platforms/macos.md +203 -0
- package/docs/platforms/oracle.md +303 -0
- package/docs/platforms/raspberry-pi.md +358 -0
- package/docs/platforms/windows.md +159 -0
- package/docs/plugin.md +664 -0
- package/docs/plugins/agent-tools.md +99 -0
- package/docs/plugins/manifest.md +71 -0
- package/docs/plugins/voice-call.md +284 -0
- package/docs/plugins/zalouser.md +81 -0
- package/docs/prose.md +134 -0
- package/docs/providers/anthropic.md +152 -0
- package/docs/providers/claude-max-api-proxy.md +148 -0
- package/docs/providers/cloudflare-ai-gateway.md +71 -0
- package/docs/providers/deepgram.md +93 -0
- package/docs/providers/github-copilot.md +72 -0
- package/docs/providers/glm.md +33 -0
- package/docs/providers/index.md +63 -0
- package/docs/providers/minimax.md +208 -0
- package/docs/providers/models.md +51 -0
- package/docs/providers/moonshot.md +142 -0
- package/docs/providers/ollama.md +277 -0
- package/docs/providers/openai.md +62 -0
- package/docs/providers/opencode.md +36 -0
- package/docs/providers/openrouter.md +37 -0
- package/docs/providers/qwen.md +53 -0
- package/docs/providers/synthetic.md +99 -0
- package/docs/providers/venice.md +267 -0
- package/docs/providers/vercel-ai-gateway.md +50 -0
- package/docs/providers/xiaomi.md +64 -0
- package/docs/providers/zai.md +36 -0
- package/docs/refactor/clawnet.md +417 -0
- package/docs/refactor/exec-host.md +316 -0
- package/docs/refactor/outbound-session-mirroring.md +85 -0
- package/docs/refactor/plugin-sdk.md +214 -0
- package/docs/refactor/strict-config.md +93 -0
- package/docs/reference/AGENTS.default.md +124 -0
- package/docs/reference/RELEASING.md +120 -0
- package/docs/reference/api-usage-costs.md +137 -0
- package/docs/reference/credits.md +27 -0
- package/docs/reference/device-models.md +47 -0
- package/docs/reference/rpc.md +43 -0
- package/docs/reference/session-management-compaction.md +285 -0
- package/docs/reference/templates/AGENTS.dev.md +83 -0
- package/docs/reference/templates/AGENTS.md +218 -0
- package/docs/reference/templates/BOOT.md +10 -0
- package/docs/reference/templates/BOOTSTRAP.md +61 -0
- package/docs/reference/templates/HEARTBEAT.md +11 -0
- package/docs/reference/templates/IDENTITY.dev.md +47 -0
- package/docs/reference/templates/IDENTITY.md +27 -0
- package/docs/reference/templates/SOUL.dev.md +76 -0
- package/docs/reference/templates/SOUL.md +42 -0
- package/docs/reference/templates/TOOLS.dev.md +24 -0
- package/docs/reference/templates/TOOLS.md +46 -0
- package/docs/reference/templates/USER.dev.md +18 -0
- package/docs/reference/templates/USER.md +22 -0
- package/docs/reference/test.md +50 -0
- package/docs/reference/transcript-hygiene.md +129 -0
- package/docs/reference/wizard.md +268 -0
- package/docs/scripts.md +28 -0
- package/docs/security/formal-verification.md +164 -0
- package/docs/start/bootstrapping.md +41 -0
- package/docs/start/docs-directory.md +64 -0
- package/docs/start/getting-started.md +120 -0
- package/docs/start/hubs.md +197 -0
- package/docs/start/lore.md +219 -0
- package/docs/start/onboarding.md +80 -0
- package/docs/start/openclaw.md +224 -0
- package/docs/start/pairing.md +86 -0
- package/docs/start/quickstart.md +22 -0
- package/docs/start/setup.md +162 -0
- package/docs/start/showcase.md +416 -0
- package/docs/start/wizard-cli-automation.md +141 -0
- package/docs/start/wizard-cli-reference.md +244 -0
- package/docs/start/wizard.md +108 -0
- package/docs/style.css +3 -0
- package/docs/testing.md +368 -0
- package/docs/token-use.md +112 -0
- package/docs/tools/agent-send.md +53 -0
- package/docs/tools/apply-patch.md +50 -0
- package/docs/tools/browser-linux-troubleshooting.md +139 -0
- package/docs/tools/browser-login.md +68 -0
- package/docs/tools/browser.md +576 -0
- package/docs/tools/chrome-extension.md +178 -0
- package/docs/tools/clawhub.md +257 -0
- package/docs/tools/creating-skills.md +54 -0
- package/docs/tools/elevated.md +57 -0
- package/docs/tools/exec-approvals.md +246 -0
- package/docs/tools/exec.md +179 -0
- package/docs/tools/firecrawl.md +61 -0
- package/docs/tools/index.md +512 -0
- package/docs/tools/llm-task.md +115 -0
- package/docs/tools/lobster.md +342 -0
- package/docs/tools/reactions.md +22 -0
- package/docs/tools/skills-config.md +76 -0
- package/docs/tools/skills.md +300 -0
- package/docs/tools/slash-commands.md +198 -0
- package/docs/tools/subagents.md +151 -0
- package/docs/tools/thinking.md +74 -0
- package/docs/tools/web.md +261 -0
- package/docs/tts.md +396 -0
- package/docs/tui.md +162 -0
- package/docs/vps.md +43 -0
- package/docs/web/control-ui.md +223 -0
- package/docs/web/dashboard.md +46 -0
- package/docs/web/index.md +116 -0
- package/docs/web/webchat.md +49 -0
- package/docs/whatsapp-openclaw-ai-zh.jpg +0 -0
- package/docs/whatsapp-openclaw.jpg +0 -0
- package/docs/zh-CN/AGENTS.md +59 -0
- package/docs/zh-CN/automation/auth-monitoring.md +47 -0
- package/docs/zh-CN/automation/cron-jobs.md +424 -0
- package/docs/zh-CN/automation/cron-vs-heartbeat.md +286 -0
- package/docs/zh-CN/automation/gmail-pubsub.md +249 -0
- package/docs/zh-CN/automation/poll.md +76 -0
- package/docs/zh-CN/automation/webhook.md +163 -0
- package/docs/zh-CN/bedrock.md +170 -0
- package/docs/zh-CN/brave-search.md +48 -0
- package/docs/zh-CN/broadcast-groups.md +449 -0
- package/docs/zh-CN/channels/bluebubbles.md +271 -0
- package/docs/zh-CN/channels/discord.md +468 -0
- package/docs/zh-CN/channels/feishu.md +629 -0
- package/docs/zh-CN/channels/googlechat.md +257 -0
- package/docs/zh-CN/channels/grammy.md +38 -0
- package/docs/zh-CN/channels/imessage.md +302 -0
- package/docs/zh-CN/channels/index.md +53 -0
- package/docs/zh-CN/channels/line.md +180 -0
- package/docs/zh-CN/channels/location.md +63 -0
- package/docs/zh-CN/channels/matrix.md +221 -0
- package/docs/zh-CN/channels/mattermost.md +144 -0
- package/docs/zh-CN/channels/msteams.md +775 -0
- package/docs/zh-CN/channels/nextcloud-talk.md +142 -0
- package/docs/zh-CN/channels/nostr.md +240 -0
- package/docs/zh-CN/channels/signal.md +209 -0
- package/docs/zh-CN/channels/slack.md +531 -0
- package/docs/zh-CN/channels/telegram.md +751 -0
- package/docs/zh-CN/channels/tlon.md +136 -0
- package/docs/zh-CN/channels/troubleshooting.md +36 -0
- package/docs/zh-CN/channels/twitch.md +385 -0
- package/docs/zh-CN/channels/whatsapp.md +411 -0
- package/docs/zh-CN/channels/zalo.md +196 -0
- package/docs/zh-CN/channels/zalouser.md +147 -0
- package/docs/zh-CN/cli/acp.md +173 -0
- package/docs/zh-CN/cli/agent.md +30 -0
- package/docs/zh-CN/cli/agents.md +82 -0
- package/docs/zh-CN/cli/approvals.md +57 -0
- package/docs/zh-CN/cli/browser.md +114 -0
- package/docs/zh-CN/cli/channels.md +86 -0
- package/docs/zh-CN/cli/config.md +57 -0
- package/docs/zh-CN/cli/configure.md +38 -0
- package/docs/zh-CN/cli/cron.md +43 -0
- package/docs/zh-CN/cli/dashboard.md +23 -0
- package/docs/zh-CN/cli/devices.md +74 -0
- package/docs/zh-CN/cli/directory.md +70 -0
- package/docs/zh-CN/cli/dns.md +30 -0
- package/docs/zh-CN/cli/docs.md +22 -0
- package/docs/zh-CN/cli/doctor.md +48 -0
- package/docs/zh-CN/cli/gateway.md +206 -0
- package/docs/zh-CN/cli/health.md +28 -0
- package/docs/zh-CN/cli/hooks.md +311 -0
- package/docs/zh-CN/cli/index.md +1032 -0
- package/docs/zh-CN/cli/logs.md +31 -0
- package/docs/zh-CN/cli/memory.md +52 -0
- package/docs/zh-CN/cli/message.md +246 -0
- package/docs/zh-CN/cli/models.md +85 -0
- package/docs/zh-CN/cli/node.md +115 -0
- package/docs/zh-CN/cli/nodes.md +80 -0
- package/docs/zh-CN/cli/onboard.md +36 -0
- package/docs/zh-CN/cli/pairing.md +28 -0
- package/docs/zh-CN/cli/plugins.md +66 -0
- package/docs/zh-CN/cli/reset.md +24 -0
- package/docs/zh-CN/cli/sandbox.md +158 -0
- package/docs/zh-CN/cli/security.md +33 -0
- package/docs/zh-CN/cli/sessions.md +23 -0
- package/docs/zh-CN/cli/setup.md +36 -0
- package/docs/zh-CN/cli/skills.md +33 -0
- package/docs/zh-CN/cli/status.md +33 -0
- package/docs/zh-CN/cli/system.md +63 -0
- package/docs/zh-CN/cli/tui.md +30 -0
- package/docs/zh-CN/cli/uninstall.md +24 -0
- package/docs/zh-CN/cli/update.md +101 -0
- package/docs/zh-CN/cli/voicecall.md +41 -0
- package/docs/zh-CN/cli/webhooks.md +32 -0
- package/docs/zh-CN/concepts/agent-loop.md +146 -0
- package/docs/zh-CN/concepts/agent-workspace.md +219 -0
- package/docs/zh-CN/concepts/agent.md +115 -0
- package/docs/zh-CN/concepts/architecture.md +123 -0
- package/docs/zh-CN/concepts/channel-routing.md +117 -0
- package/docs/zh-CN/concepts/compaction.md +67 -0
- package/docs/zh-CN/concepts/context.md +168 -0
- package/docs/zh-CN/concepts/features.md +59 -0
- package/docs/zh-CN/concepts/group-messages.md +91 -0
- package/docs/zh-CN/concepts/groups.md +379 -0
- package/docs/zh-CN/concepts/markdown-formatting.md +117 -0
- package/docs/zh-CN/concepts/memory.md +412 -0
- package/docs/zh-CN/concepts/messages.md +141 -0
- package/docs/zh-CN/concepts/model-failover.md +145 -0
- package/docs/zh-CN/concepts/model-providers.md +320 -0
- package/docs/zh-CN/concepts/models.md +196 -0
- package/docs/zh-CN/concepts/multi-agent.md +372 -0
- package/docs/zh-CN/concepts/oauth.md +151 -0
- package/docs/zh-CN/concepts/presence.md +99 -0
- package/docs/zh-CN/concepts/queue.md +94 -0
- package/docs/zh-CN/concepts/retry.md +76 -0
- package/docs/zh-CN/concepts/session-pruning.md +129 -0
- package/docs/zh-CN/concepts/session-tool.md +200 -0
- package/docs/zh-CN/concepts/session.md +166 -0
- package/docs/zh-CN/concepts/sessions.md +17 -0
- package/docs/zh-CN/concepts/streaming.md +133 -0
- package/docs/zh-CN/concepts/system-prompt.md +101 -0
- package/docs/zh-CN/concepts/timezone.md +96 -0
- package/docs/zh-CN/concepts/typebox.md +284 -0
- package/docs/zh-CN/concepts/typing-indicators.md +74 -0
- package/docs/zh-CN/concepts/usage-tracking.md +42 -0
- package/docs/zh-CN/date-time.md +129 -0
- package/docs/zh-CN/debug/node-issue.md +90 -0
- package/docs/zh-CN/debugging.md +160 -0
- package/docs/zh-CN/diagnostics/flags.md +98 -0
- package/docs/zh-CN/environment.md +88 -0
- package/docs/zh-CN/experiments/onboarding-config-protocol.md +47 -0
- package/docs/zh-CN/experiments/plans/cron-add-hardening.md +70 -0
- package/docs/zh-CN/experiments/plans/group-policy-hardening.md +45 -0
- package/docs/zh-CN/experiments/plans/openresponses-gateway.md +121 -0
- package/docs/zh-CN/experiments/proposals/model-config.md +42 -0
- package/docs/zh-CN/experiments/research/memory.md +235 -0
- package/docs/zh-CN/gateway/authentication.md +142 -0
- package/docs/zh-CN/gateway/background-process.md +100 -0
- package/docs/zh-CN/gateway/bonjour.md +174 -0
- package/docs/zh-CN/gateway/bridge-protocol.md +86 -0
- package/docs/zh-CN/gateway/cli-backends.md +213 -0
- package/docs/zh-CN/gateway/configuration-examples.md +587 -0
- package/docs/zh-CN/gateway/configuration.md +3332 -0
- package/docs/zh-CN/gateway/discovery.md +123 -0
- package/docs/zh-CN/gateway/doctor.md +238 -0
- package/docs/zh-CN/gateway/gateway-lock.md +41 -0
- package/docs/zh-CN/gateway/health.md +42 -0
- package/docs/zh-CN/gateway/heartbeat.md +274 -0
- package/docs/zh-CN/gateway/index.md +335 -0
- package/docs/zh-CN/gateway/local-models.md +157 -0
- package/docs/zh-CN/gateway/logging.md +114 -0
- package/docs/zh-CN/gateway/multiple-gateways.md +119 -0
- package/docs/zh-CN/gateway/network-model.md +23 -0
- package/docs/zh-CN/gateway/openai-http-api.md +125 -0
- package/docs/zh-CN/gateway/openresponses-http-api.md +317 -0
- package/docs/zh-CN/gateway/pairing.md +99 -0
- package/docs/zh-CN/gateway/protocol.md +220 -0
- package/docs/zh-CN/gateway/remote-gateway-readme.md +164 -0
- package/docs/zh-CN/gateway/remote.md +133 -0
- package/docs/zh-CN/gateway/sandbox-vs-tool-policy-vs-elevated.md +135 -0
- package/docs/zh-CN/gateway/sandboxing.md +188 -0
- package/docs/zh-CN/gateway/security/formal-verification.md +169 -0
- package/docs/zh-CN/gateway/security/index.md +777 -0
- package/docs/zh-CN/gateway/tailscale.md +124 -0
- package/docs/zh-CN/gateway/tools-invoke-http-api.md +92 -0
- package/docs/zh-CN/gateway/troubleshooting.md +771 -0
- package/docs/zh-CN/help/faq.md +2628 -0
- package/docs/zh-CN/help/index.md +28 -0
- package/docs/zh-CN/help/troubleshooting.md +104 -0
- package/docs/zh-CN/hooks/soul-evil.md +72 -0
- package/docs/zh-CN/hooks.md +919 -0
- package/docs/zh-CN/index.md +186 -0
- package/docs/zh-CN/install/ansible.md +215 -0
- package/docs/zh-CN/install/bun.md +65 -0
- package/docs/zh-CN/install/development-channels.md +81 -0
- package/docs/zh-CN/install/docker.md +532 -0
- package/docs/zh-CN/install/exe-dev.md +127 -0
- package/docs/zh-CN/install/fly.md +490 -0
- package/docs/zh-CN/install/gcp.md +510 -0
- package/docs/zh-CN/install/hetzner.md +337 -0
- package/docs/zh-CN/install/index.md +193 -0
- package/docs/zh-CN/install/installer.md +128 -0
- package/docs/zh-CN/install/macos-vm.md +288 -0
- package/docs/zh-CN/install/migrating.md +199 -0
- package/docs/zh-CN/install/nix.md +99 -0
- package/docs/zh-CN/install/node.md +85 -0
- package/docs/zh-CN/install/northflank.mdx +60 -0
- package/docs/zh-CN/install/railway.mdx +106 -0
- package/docs/zh-CN/install/render.mdx +169 -0
- package/docs/zh-CN/install/uninstall.md +135 -0
- package/docs/zh-CN/install/updating.md +233 -0
- package/docs/zh-CN/logging.md +329 -0
- package/docs/zh-CN/multi-agent-sandbox-tools.md +401 -0
- package/docs/zh-CN/network.md +59 -0
- package/docs/zh-CN/nodes/audio.md +120 -0
- package/docs/zh-CN/nodes/camera.md +162 -0
- package/docs/zh-CN/nodes/images.md +79 -0
- package/docs/zh-CN/nodes/index.md +348 -0
- package/docs/zh-CN/nodes/location-command.md +120 -0
- package/docs/zh-CN/nodes/media-understanding.md +380 -0
- package/docs/zh-CN/nodes/talk.md +97 -0
- package/docs/zh-CN/nodes/voicewake.md +72 -0
- package/docs/zh-CN/perplexity.md +84 -0
- package/docs/zh-CN/pi-dev.md +77 -0
- package/docs/zh-CN/pi.md +619 -0
- package/docs/zh-CN/platforms/android.md +155 -0
- package/docs/zh-CN/platforms/digitalocean.md +269 -0
- package/docs/zh-CN/platforms/index.md +60 -0
- package/docs/zh-CN/platforms/ios.md +114 -0
- package/docs/zh-CN/platforms/linux.md +101 -0
- package/docs/zh-CN/platforms/mac/bundled-gateway.md +75 -0
- package/docs/zh-CN/platforms/mac/canvas.md +128 -0
- package/docs/zh-CN/platforms/mac/child-process.md +73 -0
- package/docs/zh-CN/platforms/mac/dev-setup.md +109 -0
- package/docs/zh-CN/platforms/mac/health.md +41 -0
- package/docs/zh-CN/platforms/mac/icon.md +38 -0
- package/docs/zh-CN/platforms/mac/logging.md +64 -0
- package/docs/zh-CN/platforms/mac/menu-bar.md +88 -0
- package/docs/zh-CN/platforms/mac/peekaboo.md +62 -0
- package/docs/zh-CN/platforms/mac/permissions.md +46 -0
- package/docs/zh-CN/platforms/mac/release.md +92 -0
- package/docs/zh-CN/platforms/mac/remote.md +90 -0
- package/docs/zh-CN/platforms/mac/signing.md +54 -0
- package/docs/zh-CN/platforms/mac/skills.md +40 -0
- package/docs/zh-CN/platforms/mac/voice-overlay.md +67 -0
- package/docs/zh-CN/platforms/mac/voicewake.md +74 -0
- package/docs/zh-CN/platforms/mac/webchat.md +43 -0
- package/docs/zh-CN/platforms/mac/xpc.md +68 -0
- package/docs/zh-CN/platforms/macos.md +193 -0
- package/docs/zh-CN/platforms/oracle.md +310 -0
- package/docs/zh-CN/platforms/raspberry-pi.md +365 -0
- package/docs/zh-CN/platforms/windows.md +156 -0
- package/docs/zh-CN/plugin.md +639 -0
- package/docs/zh-CN/plugins/agent-tools.md +99 -0
- package/docs/zh-CN/plugins/manifest.md +68 -0
- package/docs/zh-CN/plugins/voice-call.md +250 -0
- package/docs/zh-CN/plugins/zalouser.md +88 -0
- package/docs/zh-CN/prose.md +141 -0
- package/docs/zh-CN/providers/anthropic.md +159 -0
- package/docs/zh-CN/providers/claude-max-api-proxy.md +155 -0
- package/docs/zh-CN/providers/deepgram.md +97 -0
- package/docs/zh-CN/providers/github-copilot.md +67 -0
- package/docs/zh-CN/providers/glm.md +39 -0
- package/docs/zh-CN/providers/index.md +68 -0
- package/docs/zh-CN/providers/minimax.md +206 -0
- package/docs/zh-CN/providers/models.md +55 -0
- package/docs/zh-CN/providers/moonshot.md +145 -0
- package/docs/zh-CN/providers/ollama.md +230 -0
- package/docs/zh-CN/providers/openai.md +68 -0
- package/docs/zh-CN/providers/opencode.md +41 -0
- package/docs/zh-CN/providers/openrouter.md +43 -0
- package/docs/zh-CN/providers/qwen.md +55 -0
- package/docs/zh-CN/providers/synthetic.md +102 -0
- package/docs/zh-CN/providers/venice.md +274 -0
- package/docs/zh-CN/providers/vercel-ai-gateway.md +57 -0
- package/docs/zh-CN/providers/xiaomi.md +68 -0
- package/docs/zh-CN/providers/zai.md +41 -0
- package/docs/zh-CN/refactor/clawnet.md +424 -0
- package/docs/zh-CN/refactor/exec-host.md +323 -0
- package/docs/zh-CN/refactor/outbound-session-mirroring.md +92 -0
- package/docs/zh-CN/refactor/plugin-sdk.md +221 -0
- package/docs/zh-CN/refactor/strict-config.md +100 -0
- package/docs/zh-CN/reference/AGENTS.default.md +131 -0
- package/docs/zh-CN/reference/RELEASING.md +123 -0
- package/docs/zh-CN/reference/api-usage-costs.md +136 -0
- package/docs/zh-CN/reference/credits.md +34 -0
- package/docs/zh-CN/reference/device-models.md +54 -0
- package/docs/zh-CN/reference/rpc.md +48 -0
- package/docs/zh-CN/reference/session-management-compaction.md +287 -0
- package/docs/zh-CN/reference/templates/AGENTS.dev.md +89 -0
- package/docs/zh-CN/reference/templates/AGENTS.md +225 -0
- package/docs/zh-CN/reference/templates/BOOT.md +17 -0
- package/docs/zh-CN/reference/templates/BOOTSTRAP.md +68 -0
- package/docs/zh-CN/reference/templates/HEARTBEAT.md +18 -0
- package/docs/zh-CN/reference/templates/IDENTITY.dev.md +54 -0
- package/docs/zh-CN/reference/templates/IDENTITY.md +35 -0
- package/docs/zh-CN/reference/templates/SOUL.dev.md +83 -0
- package/docs/zh-CN/reference/templates/SOUL.md +49 -0
- package/docs/zh-CN/reference/templates/TOOLS.dev.md +31 -0
- package/docs/zh-CN/reference/templates/TOOLS.md +53 -0
- package/docs/zh-CN/reference/templates/USER.dev.md +25 -0
- package/docs/zh-CN/reference/templates/USER.md +30 -0
- package/docs/zh-CN/reference/test.md +57 -0
- package/docs/zh-CN/reference/transcript-hygiene.md +109 -0
- package/docs/zh-CN/scripts.md +35 -0
- package/docs/zh-CN/security/formal-verification.md +171 -0
- package/docs/zh-CN/start/docs-directory.md +70 -0
- package/docs/zh-CN/start/getting-started.md +206 -0
- package/docs/zh-CN/start/hubs.md +200 -0
- package/docs/zh-CN/start/lore.md +226 -0
- package/docs/zh-CN/start/onboarding.md +105 -0
- package/docs/zh-CN/start/openclaw.md +248 -0
- package/docs/zh-CN/start/pairing.md +89 -0
- package/docs/zh-CN/start/quickstart.md +88 -0
- package/docs/zh-CN/start/setup.md +153 -0
- package/docs/zh-CN/start/showcase.md +423 -0
- package/docs/zh-CN/start/wizard.md +331 -0
- package/docs/zh-CN/testing.md +375 -0
- package/docs/zh-CN/token-use.md +119 -0
- package/docs/zh-CN/tools/agent-send.md +59 -0
- package/docs/zh-CN/tools/apply-patch.md +57 -0
- package/docs/zh-CN/tools/browser-linux-troubleshooting.md +144 -0
- package/docs/zh-CN/tools/browser-login.md +75 -0
- package/docs/zh-CN/tools/browser.md +553 -0
- package/docs/zh-CN/tools/chrome-extension.md +183 -0
- package/docs/zh-CN/tools/clawhub.md +209 -0
- package/docs/zh-CN/tools/creating-skills.md +61 -0
- package/docs/zh-CN/tools/elevated.md +64 -0
- package/docs/zh-CN/tools/exec-approvals.md +234 -0
- package/docs/zh-CN/tools/exec.md +169 -0
- package/docs/zh-CN/tools/firecrawl.md +68 -0
- package/docs/zh-CN/tools/index.md +515 -0
- package/docs/zh-CN/tools/llm-task.md +117 -0
- package/docs/zh-CN/tools/lobster.md +349 -0
- package/docs/zh-CN/tools/reactions.md +29 -0
- package/docs/zh-CN/tools/skills-config.md +78 -0
- package/docs/zh-CN/tools/skills.md +279 -0
- package/docs/zh-CN/tools/slash-commands.md +205 -0
- package/docs/zh-CN/tools/subagents.md +156 -0
- package/docs/zh-CN/tools/thinking.md +80 -0
- package/docs/zh-CN/tools/web.md +257 -0
- package/docs/zh-CN/tts.md +375 -0
- package/docs/zh-CN/tui.md +166 -0
- package/docs/zh-CN/vps.md +47 -0
- package/docs/zh-CN/web/control-ui.md +191 -0
- package/docs/zh-CN/web/dashboard.md +53 -0
- package/docs/zh-CN/web/index.md +118 -0
- package/docs/zh-CN/web/webchat.md +56 -0
- package/extensions/blockchain/cryptoclaw.plugin.json +17 -0
- package/extensions/blockchain/index.ts +284 -0
- package/extensions/blockchain/node_modules/.bin/cryptoclaw +21 -0
- package/extensions/blockchain/node_modules/.bin/tsc +21 -0
- package/extensions/blockchain/node_modules/.bin/tsserver +21 -0
- package/extensions/blockchain/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/extensions/blockchain/package.json +16 -0
- package/extensions/blockchain/src/evm/chains.ts +150 -0
- package/extensions/blockchain/src/evm/services/abi/erc1155.ts +128 -0
- package/extensions/blockchain/src/evm/services/abi/erc20.ts +96 -0
- package/extensions/blockchain/src/evm/services/abi/erc721.ts +130 -0
- package/extensions/blockchain/src/evm/services/abi/erc8004-identity.ts +158 -0
- package/extensions/blockchain/src/evm/services/abi/erc8004-reputation.ts +120 -0
- package/extensions/blockchain/src/evm/services/abi/router-v2.ts +115 -0
- package/extensions/blockchain/src/evm/services/abi/router-v3.ts +81 -0
- package/extensions/blockchain/src/evm/services/agent-identity-config.test.ts +117 -0
- package/extensions/blockchain/src/evm/services/agent-identity-config.ts +75 -0
- package/extensions/blockchain/src/evm/services/agent-identity-store.ts +37 -0
- package/extensions/blockchain/src/evm/services/agent-identity.ts +262 -0
- package/extensions/blockchain/src/evm/services/balance.ts +76 -0
- package/extensions/blockchain/src/evm/services/blocks.ts +25 -0
- package/extensions/blockchain/src/evm/services/clients.ts +48 -0
- package/extensions/blockchain/src/evm/services/contracts.ts +52 -0
- package/extensions/blockchain/src/evm/services/dex-config.test.ts +145 -0
- package/extensions/blockchain/src/evm/services/dex-config.ts +164 -0
- package/extensions/blockchain/src/evm/services/ens.ts +27 -0
- package/extensions/blockchain/src/evm/services/security.test.ts +127 -0
- package/extensions/blockchain/src/evm/services/security.ts +110 -0
- package/extensions/blockchain/src/evm/services/swap.test.ts +204 -0
- package/extensions/blockchain/src/evm/services/swap.ts +534 -0
- package/extensions/blockchain/src/evm/services/tokens.ts +118 -0
- package/extensions/blockchain/src/evm/services/transactions.ts +54 -0
- package/extensions/blockchain/src/evm/services/transfer.ts +174 -0
- package/extensions/blockchain/src/evm/services/utils.ts +18 -0
- package/extensions/blockchain/src/evm/tools/block-tools.ts +34 -0
- package/extensions/blockchain/src/evm/tools/contract-tools.ts +138 -0
- package/extensions/blockchain/src/evm/tools/identity-tools.ts +305 -0
- package/extensions/blockchain/src/evm/tools/network-tools.ts +58 -0
- package/extensions/blockchain/src/evm/tools/nft-tools.ts +103 -0
- package/extensions/blockchain/src/evm/tools/security-tools.ts +38 -0
- package/extensions/blockchain/src/evm/tools/swap-tools.ts +314 -0
- package/extensions/blockchain/src/evm/tools/token-tools.ts +167 -0
- package/extensions/blockchain/src/evm/tools/tx-tools.ts +73 -0
- package/extensions/blockchain/src/evm/tools/wallet-tools.ts +196 -0
- package/extensions/blockchain/src/tx-gate/confirmation.ts +55 -0
- package/extensions/blockchain/src/tx-gate/spending-limits.ts +94 -0
- package/extensions/blockchain/src/wallet/active-wallet.ts +27 -0
- package/extensions/blockchain/src/wallet/key-guard.test.ts +156 -0
- package/extensions/blockchain/src/wallet/key-guard.ts +80 -0
- package/extensions/blockchain/src/wallet/keystore.ts +88 -0
- package/extensions/blockchain/src/wallet/wallet-manager.test.ts +215 -0
- package/extensions/blockchain/src/wallet/wallet-manager.ts +212 -0
- package/extensions/copilot-proxy/README.md +24 -0
- package/extensions/copilot-proxy/index.ts +149 -0
- package/extensions/copilot-proxy/node_modules/.bin/cryptoclaw +21 -0
- package/extensions/copilot-proxy/openclaw.plugin.json +9 -0
- package/extensions/copilot-proxy/package.json +14 -0
- package/extensions/diagnostics-otel/index.ts +15 -0
- package/extensions/diagnostics-otel/node_modules/.bin/acorn +21 -0
- package/extensions/diagnostics-otel/node_modules/.bin/cryptoclaw +21 -0
- package/extensions/diagnostics-otel/openclaw.plugin.json +8 -0
- package/extensions/diagnostics-otel/package.json +27 -0
- package/extensions/diagnostics-otel/src/service.test.ts +227 -0
- package/extensions/diagnostics-otel/src/service.ts +635 -0
- package/extensions/discord/index.ts +17 -0
- package/extensions/discord/node_modules/.bin/cryptoclaw +21 -0
- package/extensions/discord/openclaw.plugin.json +9 -0
- package/extensions/discord/package.json +14 -0
- package/extensions/discord/src/channel.ts +422 -0
- package/extensions/discord/src/runtime.ts +14 -0
- package/extensions/imessage/index.ts +17 -0
- package/extensions/imessage/node_modules/.bin/cryptoclaw +21 -0
- package/extensions/imessage/openclaw.plugin.json +9 -0
- package/extensions/imessage/package.json +14 -0
- package/extensions/imessage/src/channel.ts +294 -0
- package/extensions/imessage/src/runtime.ts +14 -0
- package/extensions/memory-core/index.ts +38 -0
- package/extensions/memory-core/node_modules/.bin/cryptoclaw +21 -0
- package/extensions/memory-core/openclaw.plugin.json +9 -0
- package/extensions/memory-core/package.json +17 -0
- package/extensions/memory-lancedb/config.ts +139 -0
- package/extensions/memory-lancedb/index.test.ts +295 -0
- package/extensions/memory-lancedb/index.ts +608 -0
- package/extensions/memory-lancedb/node_modules/.bin/arrow2csv +21 -0
- package/extensions/memory-lancedb/node_modules/.bin/cryptoclaw +21 -0
- package/extensions/memory-lancedb/node_modules/.bin/openai +21 -0
- package/extensions/memory-lancedb/openclaw.plugin.json +60 -0
- package/extensions/memory-lancedb/package.json +19 -0
- package/extensions/nostr/CHANGELOG.md +80 -0
- package/extensions/nostr/README.md +136 -0
- package/extensions/nostr/index.ts +68 -0
- package/extensions/nostr/node_modules/.bin/cryptoclaw +21 -0
- package/extensions/nostr/node_modules/.bin/tsc +21 -0
- package/extensions/nostr/node_modules/.bin/tsserver +21 -0
- package/extensions/nostr/openclaw.plugin.json +9 -0
- package/extensions/nostr/package.json +34 -0
- package/extensions/nostr/src/channel.test.ts +151 -0
- package/extensions/nostr/src/channel.ts +353 -0
- package/extensions/nostr/src/config-schema.ts +90 -0
- package/extensions/nostr/src/metrics.ts +478 -0
- package/extensions/nostr/src/nostr-bus.fuzz.test.ts +533 -0
- package/extensions/nostr/src/nostr-bus.integration.test.ts +448 -0
- package/extensions/nostr/src/nostr-bus.test.ts +199 -0
- package/extensions/nostr/src/nostr-bus.ts +715 -0
- package/extensions/nostr/src/nostr-profile-http.test.ts +378 -0
- package/extensions/nostr/src/nostr-profile-http.ts +519 -0
- package/extensions/nostr/src/nostr-profile-import.test.ts +119 -0
- package/extensions/nostr/src/nostr-profile-import.ts +262 -0
- package/extensions/nostr/src/nostr-profile.fuzz.test.ts +477 -0
- package/extensions/nostr/src/nostr-profile.test.ts +410 -0
- package/extensions/nostr/src/nostr-profile.ts +277 -0
- package/extensions/nostr/src/nostr-state-store.test.ts +131 -0
- package/extensions/nostr/src/nostr-state-store.ts +226 -0
- package/extensions/nostr/src/runtime.ts +14 -0
- package/extensions/nostr/src/seen-tracker.ts +303 -0
- package/extensions/nostr/src/types.test.ts +157 -0
- package/extensions/nostr/src/types.ts +101 -0
- package/extensions/nostr/test/setup.ts +5 -0
- package/extensions/signal/index.ts +17 -0
- package/extensions/signal/node_modules/.bin/cryptoclaw +21 -0
- package/extensions/signal/openclaw.plugin.json +9 -0
- package/extensions/signal/package.json +14 -0
- package/extensions/signal/src/channel.ts +315 -0
- package/extensions/signal/src/runtime.ts +14 -0
- package/extensions/slack/index.ts +17 -0
- package/extensions/slack/node_modules/.bin/cryptoclaw +21 -0
- package/extensions/slack/openclaw.plugin.json +9 -0
- package/extensions/slack/package.json +14 -0
- package/extensions/slack/src/channel.ts +604 -0
- package/extensions/slack/src/runtime.ts +14 -0
- package/extensions/telegram/index.ts +17 -0
- package/extensions/telegram/node_modules/.bin/cryptoclaw +21 -0
- package/extensions/telegram/openclaw.plugin.json +9 -0
- package/extensions/telegram/package.json +14 -0
- package/extensions/telegram/src/channel.ts +482 -0
- package/extensions/telegram/src/runtime.ts +14 -0
- package/extensions/voice-call/CHANGELOG.md +115 -0
- package/extensions/voice-call/README.md +139 -0
- package/extensions/voice-call/index.ts +493 -0
- package/extensions/voice-call/node_modules/.bin/cryptoclaw +21 -0
- package/extensions/voice-call/openclaw.plugin.json +559 -0
- package/extensions/voice-call/package.json +19 -0
- package/extensions/voice-call/src/allowlist.ts +19 -0
- package/extensions/voice-call/src/cli.ts +279 -0
- package/extensions/voice-call/src/config.test.ts +234 -0
- package/extensions/voice-call/src/config.ts +523 -0
- package/extensions/voice-call/src/core-bridge.ts +159 -0
- package/extensions/voice-call/src/manager/context.ts +21 -0
- package/extensions/voice-call/src/manager/events.ts +188 -0
- package/extensions/voice-call/src/manager/lookup.ts +35 -0
- package/extensions/voice-call/src/manager/outbound.ts +275 -0
- package/extensions/voice-call/src/manager/state.ts +48 -0
- package/extensions/voice-call/src/manager/store.ts +91 -0
- package/extensions/voice-call/src/manager/timers.ts +89 -0
- package/extensions/voice-call/src/manager/twiml.ts +9 -0
- package/extensions/voice-call/src/manager.test.ts +224 -0
- package/extensions/voice-call/src/manager.ts +887 -0
- package/extensions/voice-call/src/media-stream.test.ts +96 -0
- package/extensions/voice-call/src/media-stream.ts +411 -0
- package/extensions/voice-call/src/providers/base.ts +67 -0
- package/extensions/voice-call/src/providers/index.ts +10 -0
- package/extensions/voice-call/src/providers/mock.ts +165 -0
- package/extensions/voice-call/src/providers/plivo.test.ts +27 -0
- package/extensions/voice-call/src/providers/plivo.ts +515 -0
- package/extensions/voice-call/src/providers/stt-openai-realtime.ts +311 -0
- package/extensions/voice-call/src/providers/telnyx.ts +371 -0
- package/extensions/voice-call/src/providers/tts-openai.ts +259 -0
- package/extensions/voice-call/src/providers/twilio/api.ts +42 -0
- package/extensions/voice-call/src/providers/twilio/webhook.ts +32 -0
- package/extensions/voice-call/src/providers/twilio.test.ts +60 -0
- package/extensions/voice-call/src/providers/twilio.ts +626 -0
- package/extensions/voice-call/src/response-generator.ts +158 -0
- package/extensions/voice-call/src/runtime.ts +212 -0
- package/extensions/voice-call/src/telephony-audio.ts +90 -0
- package/extensions/voice-call/src/telephony-tts.ts +104 -0
- package/extensions/voice-call/src/tunnel.ts +314 -0
- package/extensions/voice-call/src/types.ts +272 -0
- package/extensions/voice-call/src/utils.ts +14 -0
- package/extensions/voice-call/src/voice-mapping.ts +67 -0
- package/extensions/voice-call/src/webhook-security.test.ts +377 -0
- package/extensions/voice-call/src/webhook-security.ts +689 -0
- package/extensions/voice-call/src/webhook.ts +491 -0
- package/extensions/whatsapp/index.ts +17 -0
- package/extensions/whatsapp/node_modules/.bin/cryptoclaw +21 -0
- package/extensions/whatsapp/openclaw.plugin.json +9 -0
- package/extensions/whatsapp/package.json +14 -0
- package/extensions/whatsapp/src/channel.ts +508 -0
- package/extensions/whatsapp/src/runtime.ts +14 -0
- package/package.json +242 -0
- package/skills/aave-bsc/SKILL.md +55 -0
- package/skills/agent-identity/SKILL.md +48 -0
- package/skills/bird/SKILL.md +224 -0
- package/skills/canvas/SKILL.md +204 -0
- package/skills/coding-agent/SKILL.md +285 -0
- package/skills/coingecko/SKILL.md +114 -0
- package/skills/contract-deployer/SKILL.md +42 -0
- package/skills/debank/SKILL.md +143 -0
- package/skills/defi-dashboard/SKILL.md +49 -0
- package/skills/defillama/SKILL.md +117 -0
- package/skills/discord/SKILL.md +578 -0
- package/skills/dune/SKILL.md +178 -0
- package/skills/etherscan/SKILL.md +117 -0
- package/skills/four-meme/SKILL.md +80 -0
- package/skills/gas-tracker/SKILL.md +43 -0
- package/skills/github/SKILL.md +77 -0
- package/skills/macro-calendar/SKILL.md +132 -0
- package/skills/market-data/SKILL.md +44 -0
- package/skills/nft-manager/SKILL.md +46 -0
- package/skills/portfolio-tracker/SKILL.md +55 -0
- package/skills/security-check/SKILL.md +153 -0
- package/skills/tmux/SKILL.md +135 -0
- package/skills/tmux/scripts/find-sessions.sh +112 -0
- package/skills/tmux/scripts/wait-for-text.sh +83 -0
- package/skills/token-swap/SKILL.md +71 -0
- package/skills/wallet-manager/SKILL.md +65 -0
- package/skills/whale-watcher/SKILL.md +43 -0
package/docs/plugin.md
ADDED
|
@@ -0,0 +1,664 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "OpenClaw plugins/extensions: discovery, config, and safety"
|
|
3
|
+
read_when:
|
|
4
|
+
- Adding or modifying plugins/extensions
|
|
5
|
+
- Documenting plugin install or load rules
|
|
6
|
+
title: "Plugins"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Plugins (Extensions)
|
|
10
|
+
|
|
11
|
+
## Quick start (new to plugins?)
|
|
12
|
+
|
|
13
|
+
A plugin is just a **small code module** that extends OpenClaw with extra
|
|
14
|
+
features (commands, tools, and Gateway RPC).
|
|
15
|
+
|
|
16
|
+
Most of the time, you’ll use plugins when you want a feature that’s not built
|
|
17
|
+
into core OpenClaw yet (or you want to keep optional features out of your main
|
|
18
|
+
install).
|
|
19
|
+
|
|
20
|
+
Fast path:
|
|
21
|
+
|
|
22
|
+
1. See what’s already loaded:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
openclaw plugins list
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
2. Install an official plugin (example: Voice Call):
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
openclaw plugins install @openclaw/voice-call
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
3. Restart the Gateway, then configure under `plugins.entries.<id>.config`.
|
|
35
|
+
|
|
36
|
+
See [Voice Call](/plugins/voice-call) for a concrete example plugin.
|
|
37
|
+
|
|
38
|
+
## Available plugins (official)
|
|
39
|
+
|
|
40
|
+
- Microsoft Teams is plugin-only as of 2026.1.15; install `@openclaw/msteams` if you use Teams.
|
|
41
|
+
- Memory (Core) — bundled memory search plugin (enabled by default via `plugins.slots.memory`)
|
|
42
|
+
- Memory (LanceDB) — bundled long-term memory plugin (auto-recall/capture; set `plugins.slots.memory = "memory-lancedb"`)
|
|
43
|
+
- [Voice Call](/plugins/voice-call) — `@openclaw/voice-call`
|
|
44
|
+
- [Zalo Personal](/plugins/zalouser) — `@openclaw/zalouser`
|
|
45
|
+
- [Matrix](/channels/matrix) — `@openclaw/matrix`
|
|
46
|
+
- [Nostr](/channels/nostr) — `@openclaw/nostr`
|
|
47
|
+
- [Zalo](/channels/zalo) — `@openclaw/zalo`
|
|
48
|
+
- [Microsoft Teams](/channels/msteams) — `@openclaw/msteams`
|
|
49
|
+
- Google Antigravity OAuth (provider auth) — bundled as `google-antigravity-auth` (disabled by default)
|
|
50
|
+
- Gemini CLI OAuth (provider auth) — bundled as `google-gemini-cli-auth` (disabled by default)
|
|
51
|
+
- Qwen OAuth (provider auth) — bundled as `qwen-portal-auth` (disabled by default)
|
|
52
|
+
- Copilot Proxy (provider auth) — local VS Code Copilot Proxy bridge; distinct from built-in `github-copilot` device login (bundled, disabled by default)
|
|
53
|
+
|
|
54
|
+
OpenClaw plugins are **TypeScript modules** loaded at runtime via jiti. **Config
|
|
55
|
+
validation does not execute plugin code**; it uses the plugin manifest and JSON
|
|
56
|
+
Schema instead. See [Plugin manifest](/plugins/manifest).
|
|
57
|
+
|
|
58
|
+
Plugins can register:
|
|
59
|
+
|
|
60
|
+
- Gateway RPC methods
|
|
61
|
+
- Gateway HTTP handlers
|
|
62
|
+
- Agent tools
|
|
63
|
+
- CLI commands
|
|
64
|
+
- Background services
|
|
65
|
+
- Optional config validation
|
|
66
|
+
- **Skills** (by listing `skills` directories in the plugin manifest)
|
|
67
|
+
- **Auto-reply commands** (execute without invoking the AI agent)
|
|
68
|
+
|
|
69
|
+
Plugins run **in‑process** with the Gateway, so treat them as trusted code.
|
|
70
|
+
Tool authoring guide: [Plugin agent tools](/plugins/agent-tools).
|
|
71
|
+
|
|
72
|
+
## Runtime helpers
|
|
73
|
+
|
|
74
|
+
Plugins can access selected core helpers via `api.runtime`. For telephony TTS:
|
|
75
|
+
|
|
76
|
+
```ts
|
|
77
|
+
const result = await api.runtime.tts.textToSpeechTelephony({
|
|
78
|
+
text: "Hello from OpenClaw",
|
|
79
|
+
cfg: api.config,
|
|
80
|
+
});
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Notes:
|
|
84
|
+
|
|
85
|
+
- Uses core `messages.tts` configuration (OpenAI or ElevenLabs).
|
|
86
|
+
- Returns PCM audio buffer + sample rate. Plugins must resample/encode for providers.
|
|
87
|
+
- Edge TTS is not supported for telephony.
|
|
88
|
+
|
|
89
|
+
## Discovery & precedence
|
|
90
|
+
|
|
91
|
+
OpenClaw scans, in order:
|
|
92
|
+
|
|
93
|
+
1. Config paths
|
|
94
|
+
|
|
95
|
+
- `plugins.load.paths` (file or directory)
|
|
96
|
+
|
|
97
|
+
2. Workspace extensions
|
|
98
|
+
|
|
99
|
+
- `<workspace>/.openclaw/extensions/*.ts`
|
|
100
|
+
- `<workspace>/.openclaw/extensions/*/index.ts`
|
|
101
|
+
|
|
102
|
+
3. Global extensions
|
|
103
|
+
|
|
104
|
+
- `~/.openclaw/extensions/*.ts`
|
|
105
|
+
- `~/.openclaw/extensions/*/index.ts`
|
|
106
|
+
|
|
107
|
+
4. Bundled extensions (shipped with OpenClaw, **disabled by default**)
|
|
108
|
+
|
|
109
|
+
- `<openclaw>/extensions/*`
|
|
110
|
+
|
|
111
|
+
Bundled plugins must be enabled explicitly via `plugins.entries.<id>.enabled`
|
|
112
|
+
or `openclaw plugins enable <id>`. Installed plugins are enabled by default,
|
|
113
|
+
but can be disabled the same way.
|
|
114
|
+
|
|
115
|
+
Each plugin must include a `openclaw.plugin.json` file in its root. If a path
|
|
116
|
+
points at a file, the plugin root is the file's directory and must contain the
|
|
117
|
+
manifest.
|
|
118
|
+
|
|
119
|
+
If multiple plugins resolve to the same id, the first match in the order above
|
|
120
|
+
wins and lower-precedence copies are ignored.
|
|
121
|
+
|
|
122
|
+
### Package packs
|
|
123
|
+
|
|
124
|
+
A plugin directory may include a `package.json` with `openclaw.extensions`:
|
|
125
|
+
|
|
126
|
+
```json
|
|
127
|
+
{
|
|
128
|
+
"name": "my-pack",
|
|
129
|
+
"openclaw": {
|
|
130
|
+
"extensions": ["./src/safety.ts", "./src/tools.ts"]
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Each entry becomes a plugin. If the pack lists multiple extensions, the plugin id
|
|
136
|
+
becomes `name/<fileBase>`.
|
|
137
|
+
|
|
138
|
+
If your plugin imports npm deps, install them in that directory so
|
|
139
|
+
`node_modules` is available (`npm install` / `pnpm install`).
|
|
140
|
+
|
|
141
|
+
### Channel catalog metadata
|
|
142
|
+
|
|
143
|
+
Channel plugins can advertise onboarding metadata via `openclaw.channel` and
|
|
144
|
+
install hints via `openclaw.install`. This keeps the core catalog data-free.
|
|
145
|
+
|
|
146
|
+
Example:
|
|
147
|
+
|
|
148
|
+
```json
|
|
149
|
+
{
|
|
150
|
+
"name": "@openclaw/nextcloud-talk",
|
|
151
|
+
"openclaw": {
|
|
152
|
+
"extensions": ["./index.ts"],
|
|
153
|
+
"channel": {
|
|
154
|
+
"id": "nextcloud-talk",
|
|
155
|
+
"label": "Nextcloud Talk",
|
|
156
|
+
"selectionLabel": "Nextcloud Talk (self-hosted)",
|
|
157
|
+
"docsPath": "/channels/nextcloud-talk",
|
|
158
|
+
"docsLabel": "nextcloud-talk",
|
|
159
|
+
"blurb": "Self-hosted chat via Nextcloud Talk webhook bots.",
|
|
160
|
+
"order": 65,
|
|
161
|
+
"aliases": ["nc-talk", "nc"]
|
|
162
|
+
},
|
|
163
|
+
"install": {
|
|
164
|
+
"npmSpec": "@openclaw/nextcloud-talk",
|
|
165
|
+
"localPath": "extensions/nextcloud-talk",
|
|
166
|
+
"defaultChoice": "npm"
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
OpenClaw can also merge **external channel catalogs** (for example, an MPM
|
|
173
|
+
registry export). Drop a JSON file at one of:
|
|
174
|
+
|
|
175
|
+
- `~/.openclaw/mpm/plugins.json`
|
|
176
|
+
- `~/.openclaw/mpm/catalog.json`
|
|
177
|
+
- `~/.openclaw/plugins/catalog.json`
|
|
178
|
+
|
|
179
|
+
Or point `OPENCLAW_PLUGIN_CATALOG_PATHS` (or `OPENCLAW_MPM_CATALOG_PATHS`) at
|
|
180
|
+
one or more JSON files (comma/semicolon/`PATH`-delimited). Each file should
|
|
181
|
+
contain `{ "entries": [ { "name": "@scope/pkg", "openclaw": { "channel": {...}, "install": {...} } } ] }`.
|
|
182
|
+
|
|
183
|
+
## Plugin IDs
|
|
184
|
+
|
|
185
|
+
Default plugin ids:
|
|
186
|
+
|
|
187
|
+
- Package packs: `package.json` `name`
|
|
188
|
+
- Standalone file: file base name (`~/.../voice-call.ts` → `voice-call`)
|
|
189
|
+
|
|
190
|
+
If a plugin exports `id`, OpenClaw uses it but warns when it doesn’t match the
|
|
191
|
+
configured id.
|
|
192
|
+
|
|
193
|
+
## Config
|
|
194
|
+
|
|
195
|
+
```json5
|
|
196
|
+
{
|
|
197
|
+
plugins: {
|
|
198
|
+
enabled: true,
|
|
199
|
+
allow: ["voice-call"],
|
|
200
|
+
deny: ["untrusted-plugin"],
|
|
201
|
+
load: { paths: ["~/Projects/oss/voice-call-extension"] },
|
|
202
|
+
entries: {
|
|
203
|
+
"voice-call": { enabled: true, config: { provider: "twilio" } },
|
|
204
|
+
},
|
|
205
|
+
},
|
|
206
|
+
}
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
Fields:
|
|
210
|
+
|
|
211
|
+
- `enabled`: master toggle (default: true)
|
|
212
|
+
- `allow`: allowlist (optional)
|
|
213
|
+
- `deny`: denylist (optional; deny wins)
|
|
214
|
+
- `load.paths`: extra plugin files/dirs
|
|
215
|
+
- `entries.<id>`: per‑plugin toggles + config
|
|
216
|
+
|
|
217
|
+
Config changes **require a gateway restart**.
|
|
218
|
+
|
|
219
|
+
Validation rules (strict):
|
|
220
|
+
|
|
221
|
+
- Unknown plugin ids in `entries`, `allow`, `deny`, or `slots` are **errors**.
|
|
222
|
+
- Unknown `channels.<id>` keys are **errors** unless a plugin manifest declares
|
|
223
|
+
the channel id.
|
|
224
|
+
- Plugin config is validated using the JSON Schema embedded in
|
|
225
|
+
`openclaw.plugin.json` (`configSchema`).
|
|
226
|
+
- If a plugin is disabled, its config is preserved and a **warning** is emitted.
|
|
227
|
+
|
|
228
|
+
## Plugin slots (exclusive categories)
|
|
229
|
+
|
|
230
|
+
Some plugin categories are **exclusive** (only one active at a time). Use
|
|
231
|
+
`plugins.slots` to select which plugin owns the slot:
|
|
232
|
+
|
|
233
|
+
```json5
|
|
234
|
+
{
|
|
235
|
+
plugins: {
|
|
236
|
+
slots: {
|
|
237
|
+
memory: "memory-core", // or "none" to disable memory plugins
|
|
238
|
+
},
|
|
239
|
+
},
|
|
240
|
+
}
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
If multiple plugins declare `kind: "memory"`, only the selected one loads. Others
|
|
244
|
+
are disabled with diagnostics.
|
|
245
|
+
|
|
246
|
+
## Control UI (schema + labels)
|
|
247
|
+
|
|
248
|
+
The Control UI uses `config.schema` (JSON Schema + `uiHints`) to render better forms.
|
|
249
|
+
|
|
250
|
+
OpenClaw augments `uiHints` at runtime based on discovered plugins:
|
|
251
|
+
|
|
252
|
+
- Adds per-plugin labels for `plugins.entries.<id>` / `.enabled` / `.config`
|
|
253
|
+
- Merges optional plugin-provided config field hints under:
|
|
254
|
+
`plugins.entries.<id>.config.<field>`
|
|
255
|
+
|
|
256
|
+
If you want your plugin config fields to show good labels/placeholders (and mark secrets as sensitive),
|
|
257
|
+
provide `uiHints` alongside your JSON Schema in the plugin manifest.
|
|
258
|
+
|
|
259
|
+
Example:
|
|
260
|
+
|
|
261
|
+
```json
|
|
262
|
+
{
|
|
263
|
+
"id": "my-plugin",
|
|
264
|
+
"configSchema": {
|
|
265
|
+
"type": "object",
|
|
266
|
+
"additionalProperties": false,
|
|
267
|
+
"properties": {
|
|
268
|
+
"apiKey": { "type": "string" },
|
|
269
|
+
"region": { "type": "string" }
|
|
270
|
+
}
|
|
271
|
+
},
|
|
272
|
+
"uiHints": {
|
|
273
|
+
"apiKey": { "label": "API Key", "sensitive": true },
|
|
274
|
+
"region": { "label": "Region", "placeholder": "us-east-1" }
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
## CLI
|
|
280
|
+
|
|
281
|
+
```bash
|
|
282
|
+
openclaw plugins list
|
|
283
|
+
openclaw plugins info <id>
|
|
284
|
+
openclaw plugins install <path> # copy a local file/dir into ~/.openclaw/extensions/<id>
|
|
285
|
+
openclaw plugins install ./extensions/voice-call # relative path ok
|
|
286
|
+
openclaw plugins install ./plugin.tgz # install from a local tarball
|
|
287
|
+
openclaw plugins install ./plugin.zip # install from a local zip
|
|
288
|
+
openclaw plugins install -l ./extensions/voice-call # link (no copy) for dev
|
|
289
|
+
openclaw plugins install @openclaw/voice-call # install from npm
|
|
290
|
+
openclaw plugins update <id>
|
|
291
|
+
openclaw plugins update --all
|
|
292
|
+
openclaw plugins enable <id>
|
|
293
|
+
openclaw plugins disable <id>
|
|
294
|
+
openclaw plugins doctor
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
`plugins update` only works for npm installs tracked under `plugins.installs`.
|
|
298
|
+
|
|
299
|
+
Plugins may also register their own top‑level commands (example: `openclaw voicecall`).
|
|
300
|
+
|
|
301
|
+
## Plugin API (overview)
|
|
302
|
+
|
|
303
|
+
Plugins export either:
|
|
304
|
+
|
|
305
|
+
- A function: `(api) => { ... }`
|
|
306
|
+
- An object: `{ id, name, configSchema, register(api) { ... } }`
|
|
307
|
+
|
|
308
|
+
## Plugin hooks
|
|
309
|
+
|
|
310
|
+
Plugins can ship hooks and register them at runtime. This lets a plugin bundle
|
|
311
|
+
event-driven automation without a separate hook pack install.
|
|
312
|
+
|
|
313
|
+
### Example
|
|
314
|
+
|
|
315
|
+
```
|
|
316
|
+
import { registerPluginHooksFromDir } from "openclaw/plugin-sdk";
|
|
317
|
+
|
|
318
|
+
export default function register(api) {
|
|
319
|
+
registerPluginHooksFromDir(api, "./hooks");
|
|
320
|
+
}
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
Notes:
|
|
324
|
+
|
|
325
|
+
- Hook directories follow the normal hook structure (`HOOK.md` + `handler.ts`).
|
|
326
|
+
- Hook eligibility rules still apply (OS/bins/env/config requirements).
|
|
327
|
+
- Plugin-managed hooks show up in `openclaw hooks list` with `plugin:<id>`.
|
|
328
|
+
- You cannot enable/disable plugin-managed hooks via `openclaw hooks`; enable/disable the plugin instead.
|
|
329
|
+
|
|
330
|
+
## Provider plugins (model auth)
|
|
331
|
+
|
|
332
|
+
Plugins can register **model provider auth** flows so users can run OAuth or
|
|
333
|
+
API-key setup inside OpenClaw (no external scripts needed).
|
|
334
|
+
|
|
335
|
+
Register a provider via `api.registerProvider(...)`. Each provider exposes one
|
|
336
|
+
or more auth methods (OAuth, API key, device code, etc.). These methods power:
|
|
337
|
+
|
|
338
|
+
- `openclaw models auth login --provider <id> [--method <id>]`
|
|
339
|
+
|
|
340
|
+
Example:
|
|
341
|
+
|
|
342
|
+
```ts
|
|
343
|
+
api.registerProvider({
|
|
344
|
+
id: "acme",
|
|
345
|
+
label: "AcmeAI",
|
|
346
|
+
auth: [
|
|
347
|
+
{
|
|
348
|
+
id: "oauth",
|
|
349
|
+
label: "OAuth",
|
|
350
|
+
kind: "oauth",
|
|
351
|
+
run: async (ctx) => {
|
|
352
|
+
// Run OAuth flow and return auth profiles.
|
|
353
|
+
return {
|
|
354
|
+
profiles: [
|
|
355
|
+
{
|
|
356
|
+
profileId: "acme:default",
|
|
357
|
+
credential: {
|
|
358
|
+
type: "oauth",
|
|
359
|
+
provider: "acme",
|
|
360
|
+
access: "...",
|
|
361
|
+
refresh: "...",
|
|
362
|
+
expires: Date.now() + 3600 * 1000,
|
|
363
|
+
},
|
|
364
|
+
},
|
|
365
|
+
],
|
|
366
|
+
defaultModel: "acme/opus-1",
|
|
367
|
+
};
|
|
368
|
+
},
|
|
369
|
+
},
|
|
370
|
+
],
|
|
371
|
+
});
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
Notes:
|
|
375
|
+
|
|
376
|
+
- `run` receives a `ProviderAuthContext` with `prompter`, `runtime`,
|
|
377
|
+
`openUrl`, and `oauth.createVpsAwareHandlers` helpers.
|
|
378
|
+
- Return `configPatch` when you need to add default models or provider config.
|
|
379
|
+
- Return `defaultModel` so `--set-default` can update agent defaults.
|
|
380
|
+
|
|
381
|
+
### Register a messaging channel
|
|
382
|
+
|
|
383
|
+
Plugins can register **channel plugins** that behave like built‑in channels
|
|
384
|
+
(WhatsApp, Telegram, etc.). Channel config lives under `channels.<id>` and is
|
|
385
|
+
validated by your channel plugin code.
|
|
386
|
+
|
|
387
|
+
```ts
|
|
388
|
+
const myChannel = {
|
|
389
|
+
id: "acmechat",
|
|
390
|
+
meta: {
|
|
391
|
+
id: "acmechat",
|
|
392
|
+
label: "AcmeChat",
|
|
393
|
+
selectionLabel: "AcmeChat (API)",
|
|
394
|
+
docsPath: "/channels/acmechat",
|
|
395
|
+
blurb: "demo channel plugin.",
|
|
396
|
+
aliases: ["acme"],
|
|
397
|
+
},
|
|
398
|
+
capabilities: { chatTypes: ["direct"] },
|
|
399
|
+
config: {
|
|
400
|
+
listAccountIds: (cfg) => Object.keys(cfg.channels?.acmechat?.accounts ?? {}),
|
|
401
|
+
resolveAccount: (cfg, accountId) =>
|
|
402
|
+
cfg.channels?.acmechat?.accounts?.[accountId ?? "default"] ?? {
|
|
403
|
+
accountId,
|
|
404
|
+
},
|
|
405
|
+
},
|
|
406
|
+
outbound: {
|
|
407
|
+
deliveryMode: "direct",
|
|
408
|
+
sendText: async () => ({ ok: true }),
|
|
409
|
+
},
|
|
410
|
+
};
|
|
411
|
+
|
|
412
|
+
export default function (api) {
|
|
413
|
+
api.registerChannel({ plugin: myChannel });
|
|
414
|
+
}
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
Notes:
|
|
418
|
+
|
|
419
|
+
- Put config under `channels.<id>` (not `plugins.entries`).
|
|
420
|
+
- `meta.label` is used for labels in CLI/UI lists.
|
|
421
|
+
- `meta.aliases` adds alternate ids for normalization and CLI inputs.
|
|
422
|
+
- `meta.preferOver` lists channel ids to skip auto-enable when both are configured.
|
|
423
|
+
- `meta.detailLabel` and `meta.systemImage` let UIs show richer channel labels/icons.
|
|
424
|
+
|
|
425
|
+
### Write a new messaging channel (step‑by‑step)
|
|
426
|
+
|
|
427
|
+
Use this when you want a **new chat surface** (a “messaging channel”), not a model provider.
|
|
428
|
+
Model provider docs live under `/providers/*`.
|
|
429
|
+
|
|
430
|
+
1. Pick an id + config shape
|
|
431
|
+
|
|
432
|
+
- All channel config lives under `channels.<id>`.
|
|
433
|
+
- Prefer `channels.<id>.accounts.<accountId>` for multi‑account setups.
|
|
434
|
+
|
|
435
|
+
2. Define the channel metadata
|
|
436
|
+
|
|
437
|
+
- `meta.label`, `meta.selectionLabel`, `meta.docsPath`, `meta.blurb` control CLI/UI lists.
|
|
438
|
+
- `meta.docsPath` should point at a docs page like `/channels/<id>`.
|
|
439
|
+
- `meta.preferOver` lets a plugin replace another channel (auto-enable prefers it).
|
|
440
|
+
- `meta.detailLabel` and `meta.systemImage` are used by UIs for detail text/icons.
|
|
441
|
+
|
|
442
|
+
3. Implement the required adapters
|
|
443
|
+
|
|
444
|
+
- `config.listAccountIds` + `config.resolveAccount`
|
|
445
|
+
- `capabilities` (chat types, media, threads, etc.)
|
|
446
|
+
- `outbound.deliveryMode` + `outbound.sendText` (for basic send)
|
|
447
|
+
|
|
448
|
+
4. Add optional adapters as needed
|
|
449
|
+
|
|
450
|
+
- `setup` (wizard), `security` (DM policy), `status` (health/diagnostics)
|
|
451
|
+
- `gateway` (start/stop/login), `mentions`, `threading`, `streaming`
|
|
452
|
+
- `actions` (message actions), `commands` (native command behavior)
|
|
453
|
+
|
|
454
|
+
5. Register the channel in your plugin
|
|
455
|
+
|
|
456
|
+
- `api.registerChannel({ plugin })`
|
|
457
|
+
|
|
458
|
+
Minimal config example:
|
|
459
|
+
|
|
460
|
+
```json5
|
|
461
|
+
{
|
|
462
|
+
channels: {
|
|
463
|
+
acmechat: {
|
|
464
|
+
accounts: {
|
|
465
|
+
default: { token: "ACME_TOKEN", enabled: true },
|
|
466
|
+
},
|
|
467
|
+
},
|
|
468
|
+
},
|
|
469
|
+
}
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
Minimal channel plugin (outbound‑only):
|
|
473
|
+
|
|
474
|
+
```ts
|
|
475
|
+
const plugin = {
|
|
476
|
+
id: "acmechat",
|
|
477
|
+
meta: {
|
|
478
|
+
id: "acmechat",
|
|
479
|
+
label: "AcmeChat",
|
|
480
|
+
selectionLabel: "AcmeChat (API)",
|
|
481
|
+
docsPath: "/channels/acmechat",
|
|
482
|
+
blurb: "AcmeChat messaging channel.",
|
|
483
|
+
aliases: ["acme"],
|
|
484
|
+
},
|
|
485
|
+
capabilities: { chatTypes: ["direct"] },
|
|
486
|
+
config: {
|
|
487
|
+
listAccountIds: (cfg) => Object.keys(cfg.channels?.acmechat?.accounts ?? {}),
|
|
488
|
+
resolveAccount: (cfg, accountId) =>
|
|
489
|
+
cfg.channels?.acmechat?.accounts?.[accountId ?? "default"] ?? {
|
|
490
|
+
accountId,
|
|
491
|
+
},
|
|
492
|
+
},
|
|
493
|
+
outbound: {
|
|
494
|
+
deliveryMode: "direct",
|
|
495
|
+
sendText: async ({ text }) => {
|
|
496
|
+
// deliver `text` to your channel here
|
|
497
|
+
return { ok: true };
|
|
498
|
+
},
|
|
499
|
+
},
|
|
500
|
+
};
|
|
501
|
+
|
|
502
|
+
export default function (api) {
|
|
503
|
+
api.registerChannel({ plugin });
|
|
504
|
+
}
|
|
505
|
+
```
|
|
506
|
+
|
|
507
|
+
Load the plugin (extensions dir or `plugins.load.paths`), restart the gateway,
|
|
508
|
+
then configure `channels.<id>` in your config.
|
|
509
|
+
|
|
510
|
+
### Agent tools
|
|
511
|
+
|
|
512
|
+
See the dedicated guide: [Plugin agent tools](/plugins/agent-tools).
|
|
513
|
+
|
|
514
|
+
### Register a gateway RPC method
|
|
515
|
+
|
|
516
|
+
```ts
|
|
517
|
+
export default function (api) {
|
|
518
|
+
api.registerGatewayMethod("myplugin.status", ({ respond }) => {
|
|
519
|
+
respond(true, { ok: true });
|
|
520
|
+
});
|
|
521
|
+
}
|
|
522
|
+
```
|
|
523
|
+
|
|
524
|
+
### Register CLI commands
|
|
525
|
+
|
|
526
|
+
```ts
|
|
527
|
+
export default function (api) {
|
|
528
|
+
api.registerCli(
|
|
529
|
+
({ program }) => {
|
|
530
|
+
program.command("mycmd").action(() => {
|
|
531
|
+
console.log("Hello");
|
|
532
|
+
});
|
|
533
|
+
},
|
|
534
|
+
{ commands: ["mycmd"] },
|
|
535
|
+
);
|
|
536
|
+
}
|
|
537
|
+
```
|
|
538
|
+
|
|
539
|
+
### Register auto-reply commands
|
|
540
|
+
|
|
541
|
+
Plugins can register custom slash commands that execute **without invoking the
|
|
542
|
+
AI agent**. This is useful for toggle commands, status checks, or quick actions
|
|
543
|
+
that don't need LLM processing.
|
|
544
|
+
|
|
545
|
+
```ts
|
|
546
|
+
export default function (api) {
|
|
547
|
+
api.registerCommand({
|
|
548
|
+
name: "mystatus",
|
|
549
|
+
description: "Show plugin status",
|
|
550
|
+
handler: (ctx) => ({
|
|
551
|
+
text: `Plugin is running! Channel: ${ctx.channel}`,
|
|
552
|
+
}),
|
|
553
|
+
});
|
|
554
|
+
}
|
|
555
|
+
```
|
|
556
|
+
|
|
557
|
+
Command handler context:
|
|
558
|
+
|
|
559
|
+
- `senderId`: The sender's ID (if available)
|
|
560
|
+
- `channel`: The channel where the command was sent
|
|
561
|
+
- `isAuthorizedSender`: Whether the sender is an authorized user
|
|
562
|
+
- `args`: Arguments passed after the command (if `acceptsArgs: true`)
|
|
563
|
+
- `commandBody`: The full command text
|
|
564
|
+
- `config`: The current OpenClaw config
|
|
565
|
+
|
|
566
|
+
Command options:
|
|
567
|
+
|
|
568
|
+
- `name`: Command name (without the leading `/`)
|
|
569
|
+
- `description`: Help text shown in command lists
|
|
570
|
+
- `acceptsArgs`: Whether the command accepts arguments (default: false). If false and arguments are provided, the command won't match and the message falls through to other handlers
|
|
571
|
+
- `requireAuth`: Whether to require authorized sender (default: true)
|
|
572
|
+
- `handler`: Function that returns `{ text: string }` (can be async)
|
|
573
|
+
|
|
574
|
+
Example with authorization and arguments:
|
|
575
|
+
|
|
576
|
+
```ts
|
|
577
|
+
api.registerCommand({
|
|
578
|
+
name: "setmode",
|
|
579
|
+
description: "Set plugin mode",
|
|
580
|
+
acceptsArgs: true,
|
|
581
|
+
requireAuth: true,
|
|
582
|
+
handler: async (ctx) => {
|
|
583
|
+
const mode = ctx.args?.trim() || "default";
|
|
584
|
+
await saveMode(mode);
|
|
585
|
+
return { text: `Mode set to: ${mode}` };
|
|
586
|
+
},
|
|
587
|
+
});
|
|
588
|
+
```
|
|
589
|
+
|
|
590
|
+
Notes:
|
|
591
|
+
|
|
592
|
+
- Plugin commands are processed **before** built-in commands and the AI agent
|
|
593
|
+
- Commands are registered globally and work across all channels
|
|
594
|
+
- Command names are case-insensitive (`/MyStatus` matches `/mystatus`)
|
|
595
|
+
- Command names must start with a letter and contain only letters, numbers, hyphens, and underscores
|
|
596
|
+
- Reserved command names (like `help`, `status`, `reset`, etc.) cannot be overridden by plugins
|
|
597
|
+
- Duplicate command registration across plugins will fail with a diagnostic error
|
|
598
|
+
|
|
599
|
+
### Register background services
|
|
600
|
+
|
|
601
|
+
```ts
|
|
602
|
+
export default function (api) {
|
|
603
|
+
api.registerService({
|
|
604
|
+
id: "my-service",
|
|
605
|
+
start: () => api.logger.info("ready"),
|
|
606
|
+
stop: () => api.logger.info("bye"),
|
|
607
|
+
});
|
|
608
|
+
}
|
|
609
|
+
```
|
|
610
|
+
|
|
611
|
+
## Naming conventions
|
|
612
|
+
|
|
613
|
+
- Gateway methods: `pluginId.action` (example: `voicecall.status`)
|
|
614
|
+
- Tools: `snake_case` (example: `voice_call`)
|
|
615
|
+
- CLI commands: kebab or camel, but avoid clashing with core commands
|
|
616
|
+
|
|
617
|
+
## Skills
|
|
618
|
+
|
|
619
|
+
Plugins can ship a skill in the repo (`skills/<name>/SKILL.md`).
|
|
620
|
+
Enable it with `plugins.entries.<id>.enabled` (or other config gates) and ensure
|
|
621
|
+
it’s present in your workspace/managed skills locations.
|
|
622
|
+
|
|
623
|
+
## Distribution (npm)
|
|
624
|
+
|
|
625
|
+
Recommended packaging:
|
|
626
|
+
|
|
627
|
+
- Main package: `openclaw` (this repo)
|
|
628
|
+
- Plugins: separate npm packages under `@openclaw/*` (example: `@openclaw/voice-call`)
|
|
629
|
+
|
|
630
|
+
Publishing contract:
|
|
631
|
+
|
|
632
|
+
- Plugin `package.json` must include `openclaw.extensions` with one or more entry files.
|
|
633
|
+
- Entry files can be `.js` or `.ts` (jiti loads TS at runtime).
|
|
634
|
+
- `openclaw plugins install <npm-spec>` uses `npm pack`, extracts into `~/.openclaw/extensions/<id>/`, and enables it in config.
|
|
635
|
+
- Config key stability: scoped packages are normalized to the **unscoped** id for `plugins.entries.*`.
|
|
636
|
+
|
|
637
|
+
## Example plugin: Voice Call
|
|
638
|
+
|
|
639
|
+
This repo includes a voice‑call plugin (Twilio or log fallback):
|
|
640
|
+
|
|
641
|
+
- Source: `extensions/voice-call`
|
|
642
|
+
- Skill: `skills/voice-call`
|
|
643
|
+
- CLI: `openclaw voicecall start|status`
|
|
644
|
+
- Tool: `voice_call`
|
|
645
|
+
- RPC: `voicecall.start`, `voicecall.status`
|
|
646
|
+
- Config (twilio): `provider: "twilio"` + `twilio.accountSid/authToken/from` (optional `statusCallbackUrl`, `twimlUrl`)
|
|
647
|
+
- Config (dev): `provider: "log"` (no network)
|
|
648
|
+
|
|
649
|
+
See [Voice Call](/plugins/voice-call) and `extensions/voice-call/README.md` for setup and usage.
|
|
650
|
+
|
|
651
|
+
## Safety notes
|
|
652
|
+
|
|
653
|
+
Plugins run in-process with the Gateway. Treat them as trusted code:
|
|
654
|
+
|
|
655
|
+
- Only install plugins you trust.
|
|
656
|
+
- Prefer `plugins.allow` allowlists.
|
|
657
|
+
- Restart the Gateway after changes.
|
|
658
|
+
|
|
659
|
+
## Testing plugins
|
|
660
|
+
|
|
661
|
+
Plugins can (and should) ship tests:
|
|
662
|
+
|
|
663
|
+
- In-repo plugins can keep Vitest tests under `src/**` (example: `src/plugins/voice-call.plugin.test.ts`).
|
|
664
|
+
- Separately published plugins should run their own CI (lint/build/test) and validate `openclaw.extensions` points at the built entrypoint (`dist/index.js`).
|