clawdbot 2026.1.4-1

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 (550) hide show
  1. package/CHANGELOG.md +120 -0
  2. package/LICENSE +21 -0
  3. package/README-header.png +0 -0
  4. package/README.md +297 -0
  5. package/dist/agents/agent-paths.js +17 -0
  6. package/dist/agents/bash-process-registry.js +126 -0
  7. package/dist/agents/bash-tools.js +837 -0
  8. package/dist/agents/clawdbot-tools.js +30 -0
  9. package/dist/agents/clawdis-tools.js +27 -0
  10. package/dist/agents/context.js +34 -0
  11. package/dist/agents/defaults.js +6 -0
  12. package/dist/agents/model-auth.js +112 -0
  13. package/dist/agents/model-catalog.js +55 -0
  14. package/dist/agents/model-fallback.js +191 -0
  15. package/dist/agents/model-scan.js +263 -0
  16. package/dist/agents/model-selection.js +116 -0
  17. package/dist/agents/models-config.js +49 -0
  18. package/dist/agents/pi-embedded-helpers.js +74 -0
  19. package/dist/agents/pi-embedded-runner.js +407 -0
  20. package/dist/agents/pi-embedded-subscribe.js +568 -0
  21. package/dist/agents/pi-embedded-utils.js +20 -0
  22. package/dist/agents/pi-embedded.js +1 -0
  23. package/dist/agents/pi-oauth.js +88 -0
  24. package/dist/agents/pi-tools.js +433 -0
  25. package/dist/agents/sandbox-paths.js +68 -0
  26. package/dist/agents/sandbox.js +644 -0
  27. package/dist/agents/shell-utils.js +53 -0
  28. package/dist/agents/skills-install.js +244 -0
  29. package/dist/agents/skills-status.js +157 -0
  30. package/dist/agents/skills.js +470 -0
  31. package/dist/agents/steerable-agent-loop.js +338 -0
  32. package/dist/agents/steerable-provider-transport.js +48 -0
  33. package/dist/agents/system-prompt.js +104 -0
  34. package/dist/agents/tool-display.js +162 -0
  35. package/dist/agents/tool-images.js +138 -0
  36. package/dist/agents/tools/browser-tool.js +339 -0
  37. package/dist/agents/tools/canvas-tool.js +193 -0
  38. package/dist/agents/tools/common.js +88 -0
  39. package/dist/agents/tools/cron-tool.js +124 -0
  40. package/dist/agents/tools/discord-actions-guild.js +186 -0
  41. package/dist/agents/tools/discord-actions-messaging.js +285 -0
  42. package/dist/agents/tools/discord-actions-moderation.js +70 -0
  43. package/dist/agents/tools/discord-actions.js +56 -0
  44. package/dist/agents/tools/discord-schema.js +199 -0
  45. package/dist/agents/tools/discord-tool.js +16 -0
  46. package/dist/agents/tools/gateway-tool.js +46 -0
  47. package/dist/agents/tools/gateway.js +27 -0
  48. package/dist/agents/tools/image-tool.js +132 -0
  49. package/dist/agents/tools/nodes-tool.js +413 -0
  50. package/dist/agents/tools/nodes-utils.js +92 -0
  51. package/dist/agents/tools/sessions-helpers.js +88 -0
  52. package/dist/agents/tools/sessions-history-tool.js +53 -0
  53. package/dist/agents/tools/sessions-list-tool.js +143 -0
  54. package/dist/agents/tools/sessions-send-helpers.js +100 -0
  55. package/dist/agents/tools/sessions-send-tool.js +347 -0
  56. package/dist/agents/tools/slack-actions.js +129 -0
  57. package/dist/agents/tools/slack-schema.js +59 -0
  58. package/dist/agents/tools/slack-tool.js +16 -0
  59. package/dist/agents/usage.js +39 -0
  60. package/dist/agents/workspace.js +241 -0
  61. package/dist/auto-reply/chunk.js +76 -0
  62. package/dist/auto-reply/envelope.js +38 -0
  63. package/dist/auto-reply/group-activation.js +20 -0
  64. package/dist/auto-reply/heartbeat.js +57 -0
  65. package/dist/auto-reply/model.js +14 -0
  66. package/dist/auto-reply/reply/abort.js +14 -0
  67. package/dist/auto-reply/reply/agent-runner.js +371 -0
  68. package/dist/auto-reply/reply/block-streaming.js +34 -0
  69. package/dist/auto-reply/reply/body.js +29 -0
  70. package/dist/auto-reply/reply/commands.js +207 -0
  71. package/dist/auto-reply/reply/directive-handling.js +361 -0
  72. package/dist/auto-reply/reply/directives.js +47 -0
  73. package/dist/auto-reply/reply/followup-runner.js +149 -0
  74. package/dist/auto-reply/reply/groups.js +91 -0
  75. package/dist/auto-reply/reply/mentions.js +38 -0
  76. package/dist/auto-reply/reply/model-selection.js +114 -0
  77. package/dist/auto-reply/reply/queue.js +399 -0
  78. package/dist/auto-reply/reply/reply-tags.js +26 -0
  79. package/dist/auto-reply/reply/session-updates.js +87 -0
  80. package/dist/auto-reply/reply/session.js +160 -0
  81. package/dist/auto-reply/reply/typing.js +75 -0
  82. package/dist/auto-reply/reply.js +535 -0
  83. package/dist/auto-reply/send-policy.js +28 -0
  84. package/dist/auto-reply/status.js +158 -0
  85. package/dist/auto-reply/templating.js +9 -0
  86. package/dist/auto-reply/thinking.js +49 -0
  87. package/dist/auto-reply/tokens.js +2 -0
  88. package/dist/auto-reply/tool-meta.js +74 -0
  89. package/dist/auto-reply/transcription.js +57 -0
  90. package/dist/auto-reply/types.js +1 -0
  91. package/dist/browser/bridge-server.js +37 -0
  92. package/dist/browser/cdp.js +382 -0
  93. package/dist/browser/chrome.js +432 -0
  94. package/dist/browser/client-actions-core.js +67 -0
  95. package/dist/browser/client-actions-observe.js +24 -0
  96. package/dist/browser/client-actions-types.js +1 -0
  97. package/dist/browser/client-actions.js +3 -0
  98. package/dist/browser/client-fetch.js +43 -0
  99. package/dist/browser/client.js +105 -0
  100. package/dist/browser/config.js +140 -0
  101. package/dist/browser/constants.js +4 -0
  102. package/dist/browser/profiles-service.js +122 -0
  103. package/dist/browser/profiles.js +85 -0
  104. package/dist/browser/pw-ai.js +2 -0
  105. package/dist/browser/pw-session.js +144 -0
  106. package/dist/browser/pw-tools-core.js +363 -0
  107. package/dist/browser/routes/agent.js +535 -0
  108. package/dist/browser/routes/basic.js +155 -0
  109. package/dist/browser/routes/index.js +8 -0
  110. package/dist/browser/routes/tabs.js +105 -0
  111. package/dist/browser/routes/utils.js +62 -0
  112. package/dist/browser/screenshot.js +40 -0
  113. package/dist/browser/server-context.js +377 -0
  114. package/dist/browser/server.js +81 -0
  115. package/dist/browser/target-id.js +18 -0
  116. package/dist/browser/trash.js +21 -0
  117. package/dist/canvas-host/a2ui/.bundle.hash +1 -0
  118. package/dist/canvas-host/a2ui/a2ui.bundle.js +17768 -0
  119. package/dist/canvas-host/a2ui/index.html +246 -0
  120. package/dist/canvas-host/a2ui.js +187 -0
  121. package/dist/canvas-host/server.js +382 -0
  122. package/dist/cli/browser-cli-actions-input.js +459 -0
  123. package/dist/cli/browser-cli-actions-observe.js +56 -0
  124. package/dist/cli/browser-cli-examples.js +31 -0
  125. package/dist/cli/browser-cli-inspect.js +97 -0
  126. package/dist/cli/browser-cli-manage.js +286 -0
  127. package/dist/cli/browser-cli-shared.js +1 -0
  128. package/dist/cli/browser-cli.js +26 -0
  129. package/dist/cli/canvas-cli.js +416 -0
  130. package/dist/cli/cron-cli.js +454 -0
  131. package/dist/cli/deps.js +17 -0
  132. package/dist/cli/dns-cli.js +180 -0
  133. package/dist/cli/gateway-cli.js +489 -0
  134. package/dist/cli/gateway-rpc.js +20 -0
  135. package/dist/cli/hooks-cli.js +135 -0
  136. package/dist/cli/models-cli.js +248 -0
  137. package/dist/cli/nodes-camera.js +57 -0
  138. package/dist/cli/nodes-canvas.js +26 -0
  139. package/dist/cli/nodes-cli.js +946 -0
  140. package/dist/cli/nodes-screen.js +37 -0
  141. package/dist/cli/parse-duration.js +20 -0
  142. package/dist/cli/ports.js +97 -0
  143. package/dist/cli/program.js +406 -0
  144. package/dist/cli/prompt.js +19 -0
  145. package/dist/cli/tui-cli.js +35 -0
  146. package/dist/cli/wait.js +8 -0
  147. package/dist/commands/agent.js +645 -0
  148. package/dist/commands/antigravity-oauth.js +327 -0
  149. package/dist/commands/configure.js +480 -0
  150. package/dist/commands/doctor.js +484 -0
  151. package/dist/commands/health.js +108 -0
  152. package/dist/commands/models/aliases.js +64 -0
  153. package/dist/commands/models/fallbacks.js +99 -0
  154. package/dist/commands/models/image-fallbacks.js +99 -0
  155. package/dist/commands/models/list.js +323 -0
  156. package/dist/commands/models/scan.js +266 -0
  157. package/dist/commands/models/set-image.js +23 -0
  158. package/dist/commands/models/set.js +23 -0
  159. package/dist/commands/models/shared.js +72 -0
  160. package/dist/commands/models.js +7 -0
  161. package/dist/commands/onboard-auth.js +70 -0
  162. package/dist/commands/onboard-helpers.js +295 -0
  163. package/dist/commands/onboard-interactive.js +17 -0
  164. package/dist/commands/onboard-non-interactive.js +202 -0
  165. package/dist/commands/onboard-providers.js +634 -0
  166. package/dist/commands/onboard-remote.js +120 -0
  167. package/dist/commands/onboard-skills.js +148 -0
  168. package/dist/commands/onboard-types.js +1 -0
  169. package/dist/commands/onboard.js +12 -0
  170. package/dist/commands/send.js +124 -0
  171. package/dist/commands/sessions.js +212 -0
  172. package/dist/commands/setup.js +58 -0
  173. package/dist/commands/signal-install.js +135 -0
  174. package/dist/commands/status.js +207 -0
  175. package/dist/commands/update.js +16 -0
  176. package/dist/config/config.js +6 -0
  177. package/dist/config/defaults.js +61 -0
  178. package/dist/config/io.js +147 -0
  179. package/dist/config/legacy-migrate.js +13 -0
  180. package/dist/config/legacy.js +159 -0
  181. package/dist/config/paths.js +71 -0
  182. package/dist/config/schema.js +150 -0
  183. package/dist/config/sessions.js +282 -0
  184. package/dist/config/talk.js +31 -0
  185. package/dist/config/types.js +1 -0
  186. package/dist/config/validation.js +29 -0
  187. package/dist/config/zod-schema.js +831 -0
  188. package/dist/control-ui/assets/index-BFID3yAA.css +1 -0
  189. package/dist/control-ui/assets/index-CE_axlTS.js +2235 -0
  190. package/dist/control-ui/assets/index-CE_axlTS.js.map +1 -0
  191. package/dist/control-ui/index.html +15 -0
  192. package/dist/cron/isolated-agent.js +499 -0
  193. package/dist/cron/run-log.js +72 -0
  194. package/dist/cron/schedule.js +24 -0
  195. package/dist/cron/service.js +471 -0
  196. package/dist/cron/store.js +43 -0
  197. package/dist/cron/types.js +1 -0
  198. package/dist/daemon/constants.js +10 -0
  199. package/dist/daemon/launchd.js +276 -0
  200. package/dist/daemon/legacy.js +63 -0
  201. package/dist/daemon/program-args.js +76 -0
  202. package/dist/daemon/schtasks.js +257 -0
  203. package/dist/daemon/service.js +60 -0
  204. package/dist/daemon/systemd.js +266 -0
  205. package/dist/discord/index.js +2 -0
  206. package/dist/discord/monitor.js +1188 -0
  207. package/dist/discord/probe.js +54 -0
  208. package/dist/discord/send.js +577 -0
  209. package/dist/discord/token.js +8 -0
  210. package/dist/gateway/auth.js +121 -0
  211. package/dist/gateway/call.js +94 -0
  212. package/dist/gateway/chat-attachments.js +41 -0
  213. package/dist/gateway/client.js +180 -0
  214. package/dist/gateway/config-reload.js +274 -0
  215. package/dist/gateway/control-ui.js +184 -0
  216. package/dist/gateway/hooks-mapping.js +282 -0
  217. package/dist/gateway/hooks.js +168 -0
  218. package/dist/gateway/net.js +29 -0
  219. package/dist/gateway/protocol/index.js +61 -0
  220. package/dist/gateway/protocol/schema.js +560 -0
  221. package/dist/gateway/server-bridge-subscriptions.js +93 -0
  222. package/dist/gateway/server-bridge.js +1013 -0
  223. package/dist/gateway/server-browser.js +12 -0
  224. package/dist/gateway/server-chat.js +159 -0
  225. package/dist/gateway/server-constants.js +8 -0
  226. package/dist/gateway/server-discovery.js +62 -0
  227. package/dist/gateway/server-http.js +165 -0
  228. package/dist/gateway/server-methods/agent-job.js +125 -0
  229. package/dist/gateway/server-methods/agent.js +250 -0
  230. package/dist/gateway/server-methods/chat.js +200 -0
  231. package/dist/gateway/server-methods/config.js +50 -0
  232. package/dist/gateway/server-methods/connect.js +6 -0
  233. package/dist/gateway/server-methods/cron.js +83 -0
  234. package/dist/gateway/server-methods/health.js +28 -0
  235. package/dist/gateway/server-methods/models.js +16 -0
  236. package/dist/gateway/server-methods/nodes.js +294 -0
  237. package/dist/gateway/server-methods/providers.js +217 -0
  238. package/dist/gateway/server-methods/send.js +166 -0
  239. package/dist/gateway/server-methods/sessions.js +305 -0
  240. package/dist/gateway/server-methods/skills.js +83 -0
  241. package/dist/gateway/server-methods/system.js +118 -0
  242. package/dist/gateway/server-methods/talk.js +22 -0
  243. package/dist/gateway/server-methods/types.js +1 -0
  244. package/dist/gateway/server-methods/voicewake.js +30 -0
  245. package/dist/gateway/server-methods/web.js +58 -0
  246. package/dist/gateway/server-methods/wizard.js +100 -0
  247. package/dist/gateway/server-methods.js +53 -0
  248. package/dist/gateway/server-providers.js +644 -0
  249. package/dist/gateway/server-shared.js +1 -0
  250. package/dist/gateway/server-utils.js +35 -0
  251. package/dist/gateway/server.js +1437 -0
  252. package/dist/gateway/session-utils.js +216 -0
  253. package/dist/gateway/ws-log.js +349 -0
  254. package/dist/gateway/ws-logging.js +8 -0
  255. package/dist/globals.js +41 -0
  256. package/dist/hooks/gmail-ops.js +236 -0
  257. package/dist/hooks/gmail-setup-utils.js +278 -0
  258. package/dist/hooks/gmail-watcher.js +175 -0
  259. package/dist/hooks/gmail.js +177 -0
  260. package/dist/imessage/client.js +165 -0
  261. package/dist/imessage/index.js +3 -0
  262. package/dist/imessage/monitor.js +272 -0
  263. package/dist/imessage/probe.js +26 -0
  264. package/dist/imessage/send.js +83 -0
  265. package/dist/imessage/targets.js +176 -0
  266. package/dist/index.js +50 -0
  267. package/dist/infra/agent-events.js +46 -0
  268. package/dist/infra/binaries.js +9 -0
  269. package/dist/infra/bonjour-discovery.js +163 -0
  270. package/dist/infra/bonjour.js +200 -0
  271. package/dist/infra/bridge/server.js +562 -0
  272. package/dist/infra/canvas-host-url.js +54 -0
  273. package/dist/infra/env.js +8 -0
  274. package/dist/infra/errors.js +28 -0
  275. package/dist/infra/gateway-lock.js +8 -0
  276. package/dist/infra/heartbeat-events.js +21 -0
  277. package/dist/infra/heartbeat-runner.js +453 -0
  278. package/dist/infra/heartbeat-wake.js +61 -0
  279. package/dist/infra/is-main.js +37 -0
  280. package/dist/infra/machine-name.js +40 -0
  281. package/dist/infra/node-pairing.js +211 -0
  282. package/dist/infra/pam.js +42 -0
  283. package/dist/infra/path-env.js +92 -0
  284. package/dist/infra/ports.js +87 -0
  285. package/dist/infra/provider-summary.js +80 -0
  286. package/dist/infra/restart.js +29 -0
  287. package/dist/infra/retry.js +16 -0
  288. package/dist/infra/runtime-guard.js +59 -0
  289. package/dist/infra/system-events.js +44 -0
  290. package/dist/infra/system-presence.js +216 -0
  291. package/dist/infra/tailnet.js +46 -0
  292. package/dist/infra/tailscale.js +149 -0
  293. package/dist/infra/voicewake.js +77 -0
  294. package/dist/infra/widearea-dns.js +123 -0
  295. package/dist/infra/ws.js +13 -0
  296. package/dist/logger.js +52 -0
  297. package/dist/logging.js +490 -0
  298. package/dist/macos/gateway-daemon.js +141 -0
  299. package/dist/macos/relay.js +46 -0
  300. package/dist/media/constants.js +33 -0
  301. package/dist/media/host.js +42 -0
  302. package/dist/media/image-ops.js +121 -0
  303. package/dist/media/mime.js +115 -0
  304. package/dist/media/parse.js +81 -0
  305. package/dist/media/server.js +64 -0
  306. package/dist/media/store.js +139 -0
  307. package/dist/process/command-queue.js +97 -0
  308. package/dist/process/exec.js +75 -0
  309. package/dist/protocol.schema.json +2918 -0
  310. package/dist/provider-web.js +8 -0
  311. package/dist/providers/web/index.js +2 -0
  312. package/dist/runtime.js +8 -0
  313. package/dist/sessions/send-policy.js +68 -0
  314. package/dist/signal/client.js +134 -0
  315. package/dist/signal/daemon.js +69 -0
  316. package/dist/signal/index.js +3 -0
  317. package/dist/signal/monitor.js +336 -0
  318. package/dist/signal/probe.js +46 -0
  319. package/dist/signal/send.js +91 -0
  320. package/dist/slack/actions.js +97 -0
  321. package/dist/slack/index.js +5 -0
  322. package/dist/slack/monitor.js +1029 -0
  323. package/dist/slack/probe.js +47 -0
  324. package/dist/slack/send.js +131 -0
  325. package/dist/slack/token.js +10 -0
  326. package/dist/telegram/bot.js +394 -0
  327. package/dist/telegram/download.js +34 -0
  328. package/dist/telegram/index.js +4 -0
  329. package/dist/telegram/monitor.js +47 -0
  330. package/dist/telegram/probe.js +63 -0
  331. package/dist/telegram/proxy.js +9 -0
  332. package/dist/telegram/send.js +138 -0
  333. package/dist/telegram/token.js +30 -0
  334. package/dist/telegram/webhook-set.js +12 -0
  335. package/dist/telegram/webhook.js +56 -0
  336. package/dist/tui/commands.js +74 -0
  337. package/dist/tui/components/assistant-message.js +16 -0
  338. package/dist/tui/components/chat-log.js +92 -0
  339. package/dist/tui/components/custom-editor.js +53 -0
  340. package/dist/tui/components/selectors.js +8 -0
  341. package/dist/tui/components/tool-execution.js +111 -0
  342. package/dist/tui/components/user-message.js +17 -0
  343. package/dist/tui/gateway-chat.js +140 -0
  344. package/dist/tui/layout.js +41 -0
  345. package/dist/tui/message-list.js +57 -0
  346. package/dist/tui/theme/theme.js +80 -0
  347. package/dist/tui/theme.js +25 -0
  348. package/dist/tui/tui.js +708 -0
  349. package/dist/utils.js +133 -0
  350. package/dist/version.js +18 -0
  351. package/dist/web/active-listener.js +7 -0
  352. package/dist/web/auto-reply.js +1203 -0
  353. package/dist/web/inbound.js +481 -0
  354. package/dist/web/login-qr.js +204 -0
  355. package/dist/web/login.js +59 -0
  356. package/dist/web/media.js +148 -0
  357. package/dist/web/outbound.js +67 -0
  358. package/dist/web/qr-image.js +97 -0
  359. package/dist/web/reconnect.js +60 -0
  360. package/dist/web/reply-heartbeat-wake.js +61 -0
  361. package/dist/web/session.js +346 -0
  362. package/dist/wizard/clack-prompter.js +56 -0
  363. package/dist/wizard/onboarding.js +452 -0
  364. package/dist/wizard/prompts.js +6 -0
  365. package/dist/wizard/session.js +203 -0
  366. package/docs/AGENTS.default.md +116 -0
  367. package/docs/CNAME +1 -0
  368. package/docs/RELEASING.md +64 -0
  369. package/docs/_config.yml +51 -0
  370. package/docs/_layouts/default.html +145 -0
  371. package/docs/agent-send.md +21 -0
  372. package/docs/agent.md +104 -0
  373. package/docs/android/connect.md +131 -0
  374. package/docs/architecture.md +89 -0
  375. package/docs/assets/markdown.css +130 -0
  376. package/docs/assets/pixel-lobster.svg +60 -0
  377. package/docs/assets/terminal.css +497 -0
  378. package/docs/assets/theme.js +55 -0
  379. package/docs/audio.md +50 -0
  380. package/docs/background-process.md +74 -0
  381. package/docs/bash.md +32 -0
  382. package/docs/bonjour.md +159 -0
  383. package/docs/browser.md +289 -0
  384. package/docs/camera.md +152 -0
  385. package/docs/clawd.md +199 -0
  386. package/docs/clawdbot-mac.md +104 -0
  387. package/docs/configuration.md +1177 -0
  388. package/docs/control-api.md +49 -0
  389. package/docs/control-ui.md +83 -0
  390. package/docs/cron.md +374 -0
  391. package/docs/dashboard.md +17 -0
  392. package/docs/device-models.md +46 -0
  393. package/docs/discord.md +293 -0
  394. package/docs/discovery.md +112 -0
  395. package/docs/docker.md +251 -0
  396. package/docs/docs.json +86 -0
  397. package/docs/doctor.md +47 -0
  398. package/docs/elevated.md +31 -0
  399. package/docs/faq.md +640 -0
  400. package/docs/gateway/pairing.md +109 -0
  401. package/docs/gateway-lock.md +28 -0
  402. package/docs/gateway.md +174 -0
  403. package/docs/gmail-pubsub.md +191 -0
  404. package/docs/grammy.md +27 -0
  405. package/docs/group-messages.md +71 -0
  406. package/docs/groups.md +78 -0
  407. package/docs/health.md +28 -0
  408. package/docs/heartbeat.md +64 -0
  409. package/docs/images.md +52 -0
  410. package/docs/imessage.md +63 -0
  411. package/docs/index.md +182 -0
  412. package/docs/ios/connect.md +177 -0
  413. package/docs/ios/spec.md +236 -0
  414. package/docs/location-command.md +95 -0
  415. package/docs/logging.md +99 -0
  416. package/docs/lore.md +131 -0
  417. package/docs/mac/bun.md +133 -0
  418. package/docs/mac/canvas.md +161 -0
  419. package/docs/mac/child-process.md +72 -0
  420. package/docs/mac/dev-setup.md +81 -0
  421. package/docs/mac/health.md +28 -0
  422. package/docs/mac/icon.md +26 -0
  423. package/docs/mac/logging.md +51 -0
  424. package/docs/mac/menu-bar.md +69 -0
  425. package/docs/mac/peekaboo.md +170 -0
  426. package/docs/mac/permissions.md +40 -0
  427. package/docs/mac/release.md +76 -0
  428. package/docs/mac/remote.md +57 -0
  429. package/docs/mac/signing.md +41 -0
  430. package/docs/mac/skills.md +27 -0
  431. package/docs/mac/voice-overlay.md +52 -0
  432. package/docs/mac/voicewake.md +56 -0
  433. package/docs/mac/webchat.md +27 -0
  434. package/docs/mac/xpc.md +40 -0
  435. package/docs/models.md +90 -0
  436. package/docs/nix.md +49 -0
  437. package/docs/nodes.md +157 -0
  438. package/docs/onboarding-config-protocol.md +29 -0
  439. package/docs/onboarding.md +185 -0
  440. package/docs/presence.md +133 -0
  441. package/docs/queue.md +78 -0
  442. package/docs/refactor/browser-control-simplification.md +58 -0
  443. package/docs/refactor/canvas-a2ui.md +93 -0
  444. package/docs/refactor/cli-unification.md +64 -0
  445. package/docs/refactor/gateway-client.md +31 -0
  446. package/docs/refactor/gateway.md +99 -0
  447. package/docs/refactor/new-arch.md +171 -0
  448. package/docs/refactor/tui.md +26 -0
  449. package/docs/refactor/web-gateway-troubleshooting.md +37 -0
  450. package/docs/refactor/webagent-session.md +46 -0
  451. package/docs/remote-gateway-readme.md +148 -0
  452. package/docs/remote.md +66 -0
  453. package/docs/research/memory.md +227 -0
  454. package/docs/rpc.md +35 -0
  455. package/docs/security.md +168 -0
  456. package/docs/session-tool.md +119 -0
  457. package/docs/session.md +84 -0
  458. package/docs/sessions.md +8 -0
  459. package/docs/setup.md +118 -0
  460. package/docs/signal.md +113 -0
  461. package/docs/skills-config.md +58 -0
  462. package/docs/skills.md +149 -0
  463. package/docs/slack.md +158 -0
  464. package/docs/surface.md +20 -0
  465. package/docs/tailscale.md +71 -0
  466. package/docs/talk.md +79 -0
  467. package/docs/telegram.md +90 -0
  468. package/docs/templates/AGENTS.md +126 -0
  469. package/docs/templates/BOOTSTRAP.md +53 -0
  470. package/docs/templates/IDENTITY.md +17 -0
  471. package/docs/templates/SOUL.md +41 -0
  472. package/docs/templates/TOOLS.md +41 -0
  473. package/docs/templates/USER.md +22 -0
  474. package/docs/test.md +35 -0
  475. package/docs/thinking.md +46 -0
  476. package/docs/tools.md +248 -0
  477. package/docs/troubleshooting.md +227 -0
  478. package/docs/tui.md +69 -0
  479. package/docs/typebox.md +42 -0
  480. package/docs/voicewake.md +61 -0
  481. package/docs/web.md +115 -0
  482. package/docs/webchat.md +34 -0
  483. package/docs/webhook.md +132 -0
  484. package/docs/whatsapp-clawd.jpg +0 -0
  485. package/docs/whatsapp.md +142 -0
  486. package/docs/wizard.md +158 -0
  487. package/package.json +186 -0
  488. package/skills/apple-notes/SKILL.md +50 -0
  489. package/skills/apple-reminders/SKILL.md +67 -0
  490. package/skills/bear-notes/SKILL.md +79 -0
  491. package/skills/bird/SKILL.md +25 -0
  492. package/skills/blogwatcher/SKILL.md +46 -0
  493. package/skills/blucli/SKILL.md +27 -0
  494. package/skills/brave-search/SKILL.md +30 -0
  495. package/skills/brave-search/scripts/content.mjs +53 -0
  496. package/skills/brave-search/scripts/search.mjs +79 -0
  497. package/skills/camsnap/SKILL.md +25 -0
  498. package/skills/clawdhub/SKILL.md +53 -0
  499. package/skills/coding-agent/SKILL.md +275 -0
  500. package/skills/discord/SKILL.md +369 -0
  501. package/skills/eightctl/SKILL.md +29 -0
  502. package/skills/food-order/SKILL.md +41 -0
  503. package/skills/gemini/SKILL.md +23 -0
  504. package/skills/gifgrep/SKILL.md +47 -0
  505. package/skills/github/SKILL.md +47 -0
  506. package/skills/gog/SKILL.md +36 -0
  507. package/skills/goplaces/SKILL.md +30 -0
  508. package/skills/imsg/SKILL.md +25 -0
  509. package/skills/local-places/SERVER_README.md +101 -0
  510. package/skills/local-places/SKILL.md +91 -0
  511. package/skills/local-places/pyproject.toml +27 -0
  512. package/skills/local-places/src/local_places/__init__.py +2 -0
  513. package/skills/local-places/src/local_places/__pycache__/__init__.cpython-314.pyc +0 -0
  514. package/skills/local-places/src/local_places/__pycache__/google_places.cpython-314.pyc +0 -0
  515. package/skills/local-places/src/local_places/__pycache__/main.cpython-314.pyc +0 -0
  516. package/skills/local-places/src/local_places/__pycache__/schemas.cpython-314.pyc +0 -0
  517. package/skills/local-places/src/local_places/google_places.py +314 -0
  518. package/skills/local-places/src/local_places/main.py +65 -0
  519. package/skills/local-places/src/local_places/schemas.py +107 -0
  520. package/skills/mcporter/SKILL.md +38 -0
  521. package/skills/nano-banana-pro/SKILL.md +29 -0
  522. package/skills/nano-banana-pro/scripts/generate_image.py +167 -0
  523. package/skills/nano-pdf/SKILL.md +20 -0
  524. package/skills/notion/SKILL.md +156 -0
  525. package/skills/obsidian/SKILL.md +55 -0
  526. package/skills/openai-image-gen/SKILL.md +31 -0
  527. package/skills/openai-image-gen/scripts/gen.py +173 -0
  528. package/skills/openai-whisper/SKILL.md +19 -0
  529. package/skills/openai-whisper-api/SKILL.md +43 -0
  530. package/skills/openai-whisper-api/scripts/transcribe.sh +85 -0
  531. package/skills/openhue/SKILL.md +30 -0
  532. package/skills/oracle/SKILL.md +105 -0
  533. package/skills/ordercli/SKILL.md +47 -0
  534. package/skills/peekaboo/SKILL.md +153 -0
  535. package/skills/qmd/SKILL.md +26 -0
  536. package/skills/sag/SKILL.md +62 -0
  537. package/skills/slack/SKILL.md +143 -0
  538. package/skills/songsee/SKILL.md +29 -0
  539. package/skills/sonoscli/SKILL.md +26 -0
  540. package/skills/spotify-player/SKILL.md +34 -0
  541. package/skills/summarize/SKILL.md +49 -0
  542. package/skills/things-mac/SKILL.md +61 -0
  543. package/skills/tmux/SKILL.md +121 -0
  544. package/skills/tmux/scripts/find-sessions.sh +112 -0
  545. package/skills/tmux/scripts/wait-for-text.sh +83 -0
  546. package/skills/trello/SKILL.md +84 -0
  547. package/skills/video-frames/SKILL.md +29 -0
  548. package/skills/video-frames/scripts/frame.sh +81 -0
  549. package/skills/wacli/SKILL.md +42 -0
  550. package/skills/weather/SKILL.md +49 -0
package/docs/faq.md ADDED
@@ -0,0 +1,640 @@
1
+ ---
2
+ summary: "Frequently asked questions about Clawdbot setup, configuration, and usage"
3
+ ---
4
+ # FAQ 🦞
5
+
6
+ Common questions from the community. For detailed configuration, see [configuration.md](./configuration.md).
7
+
8
+ ## Installation & Setup
9
+
10
+ ### Where does Clawdbot store its data?
11
+
12
+ Everything lives under `~/.clawdbot/`:
13
+
14
+ | Path | Purpose |
15
+ |------|---------|
16
+ | `~/.clawdbot/clawdbot.json` | Main config (JSON5) |
17
+ | `~/.clawdbot/credentials/` | WhatsApp/Telegram auth tokens |
18
+ | `~/.clawdbot/sessions/` | Conversation history & state |
19
+ | `~/.clawdbot/sessions/sessions.json` | Session metadata |
20
+
21
+ Your **workspace** (AGENTS.md, memory files, skills) is separate — configured via `agent.workspace` in your config (default: `~/clawd`).
22
+
23
+ ### What platforms does Clawdbot run on?
24
+
25
+ **macOS and Linux** are the primary targets. Anywhere Node.js 22+ runs should work in theory.
26
+
27
+ - **macOS** — Fully supported, most tested
28
+ - **Linux** — Works great, common for VPS/server deployments
29
+ - **Windows** — Should work but largely untested! You're in pioneer territory 🤠
30
+
31
+ Some features are platform-specific:
32
+ - **iMessage** — macOS only (uses `imsg` CLI)
33
+ - **Clawdbot.app** — macOS native app (optional, gateway works without it)
34
+
35
+ ### What are the minimum system requirements?
36
+
37
+ **Basically nothing!** The gateway is very lightweight — all heavy compute happens on Anthropic's servers.
38
+
39
+ - **RAM:** 512MB-1GB is enough (community member runs on 1GB VPS!)
40
+ - **CPU:** 1 core is fine for personal use
41
+ - **Disk:** ~500MB for Clawdbot + deps, plus space for logs/media
42
+
43
+ The gateway is just shuffling messages around. A Raspberry Pi 4 can run it. You can also use **Bun** instead of Node for even lower memory footprint:
44
+
45
+ ```bash
46
+ bun clawdbot gateway
47
+ ```
48
+
49
+ ### How do I install on Linux without Homebrew?
50
+
51
+ Build CLIs from source! Example for `gogcli`:
52
+
53
+ ```bash
54
+ git clone https://github.com/steipete/gogcli.git
55
+ cd gogcli
56
+ make
57
+ sudo mv bin/gog /usr/local/bin/
58
+ ```
59
+
60
+ Most of Peter's tools are Go binaries — clone, build, move to PATH. No brew needed.
61
+
62
+ ### I'm getting "unauthorized" errors on health check
63
+
64
+ You need a config file. Run the onboarding wizard:
65
+
66
+ ```bash
67
+ pnpm clawdbot onboard
68
+ ```
69
+
70
+ This creates `~/.clawdbot/clawdbot.json` with your API keys, workspace path, and owner phone number.
71
+
72
+ ### How do I start fresh?
73
+
74
+ ```bash
75
+ # Backup first (optional)
76
+ cp -r ~/.clawdbot ~/.clawdbot-backup
77
+
78
+ # Remove config and credentials
79
+ rm -rf ~/.clawdbot
80
+
81
+ # Re-run onboarding
82
+ pnpm clawdbot onboard
83
+ pnpm clawdbot login
84
+ ```
85
+
86
+ ### Something's broken — how do I diagnose?
87
+
88
+ Run the doctor:
89
+
90
+ ```bash
91
+ pnpm clawdbot doctor
92
+ ```
93
+
94
+ It checks your config, skills status, and gateway health. It can also restart the gateway daemon if needed.
95
+
96
+ ### Terminal onboarding vs macOS app?
97
+
98
+ **Use terminal onboarding** (`pnpm clawdbot onboard`) — it's more stable right now.
99
+
100
+ The macOS app onboarding is still being polished and can have quirks (e.g., WhatsApp 515 errors, OAuth issues).
101
+
102
+ ---
103
+
104
+ ## Authentication
105
+
106
+ ### OAuth vs API key — what's the difference?
107
+
108
+ - **OAuth** — Uses your Claude Pro/Max subscription ($20-100/mo flat). No per-token charges. ✅ Recommended!
109
+ - **API key** — Pay-per-token via console.anthropic.com. Can get expensive fast.
110
+
111
+ They're **separate billing**! An API key does NOT use your subscription.
112
+
113
+ **For OAuth:** During onboarding, pick "Anthropic OAuth", log in to your Claude account, paste the code back. Or just run:
114
+
115
+ ```bash
116
+ pnpm clawdbot login
117
+ ```
118
+
119
+ **If OAuth fails** (headless/container): Do OAuth on a normal machine, then copy `~/.clawdbot/` to your server. The auth is just a JSON file.
120
+
121
+ ### Does enterprise OAuth work?
122
+
123
+ **Not currently.** Enterprise accounts use SSO which requires a different auth flow that pi-coding-agent doesn't support yet.
124
+
125
+ **Workaround:** Ask your enterprise admin to provision an API key via the Anthropic console, then use that with `ANTHROPIC_API_KEY`.
126
+
127
+ ### OAuth callback not working (containers/headless)?
128
+
129
+ OAuth needs the callback to reach the machine running the CLI. Options:
130
+
131
+ 1. **Copy auth manually** — Run OAuth on your laptop, copy `~/.clawdbot/credentials/` to the container.
132
+ 2. **SSH tunnel** — `ssh -L 18789:localhost:18789 user@server`
133
+ 3. **Tailscale** — Put both machines on your tailnet.
134
+
135
+ ---
136
+
137
+ ## Migration & Deployment
138
+
139
+ ### How do I migrate Clawdbot to a new machine (or VPS)?
140
+
141
+ 1. **Backup on old machine:**
142
+ ```bash
143
+ # Config + credentials + sessions
144
+ tar -czvf clawdbot-backup.tar.gz ~/.clawdbot
145
+
146
+ # Your workspace (memories, AGENTS.md, etc.)
147
+ tar -czvf workspace-backup.tar.gz ~/path/to/workspace
148
+ ```
149
+
150
+ 2. **Copy to new machine:**
151
+ ```bash
152
+ scp clawdbot-backup.tar.gz workspace-backup.tar.gz user@new-machine:~/
153
+ ```
154
+
155
+ 3. **Restore on new machine:**
156
+ ```bash
157
+ cd ~
158
+ tar -xzvf clawdbot-backup.tar.gz
159
+ tar -xzvf workspace-backup.tar.gz
160
+ ```
161
+
162
+ 4. **Install Clawdbot** (Node 22+, pnpm, clone repo, `pnpm install && pnpm build`)
163
+
164
+ 5. **Start gateway:**
165
+ ```bash
166
+ pnpm clawdbot gateway
167
+ ```
168
+
169
+ **Note:** WhatsApp may notice the IP change and require re-authentication. If so, run `pnpm clawdbot login` again. Stop the old instance before starting the new one to avoid conflicts.
170
+
171
+ ### Can I run Clawdbot in Docker?
172
+
173
+ There's no official Docker setup yet, but it works. Key considerations:
174
+
175
+ - **WhatsApp login:** QR code works in terminal — no display needed.
176
+ - **Persistence:** Mount `~/.clawdbot/` and your workspace as volumes.
177
+ - **pnpm doesn't persist:** Global npm installs don't survive container restarts. Install pnpm in your startup script.
178
+ - **Browser automation:** Optional. If needed, install headless Chrome + Playwright deps, or connect to a remote browser via `--remote-debugging-port`.
179
+
180
+ **Volume mappings (e.g., Unraid):**
181
+ ```
182
+ /mnt/user/appdata/clawdbot/config → /root/.clawdbot
183
+ /mnt/user/appdata/clawdbot/workspace → /root/clawd
184
+ /mnt/user/appdata/clawdbot/app → /app
185
+ ```
186
+
187
+ **Startup script (`start.sh`):**
188
+ ```bash
189
+ #!/bin/bash
190
+ npm install -g pnpm
191
+ cd /app
192
+ pnpm clawdbot gateway
193
+ ```
194
+
195
+ **Container command:**
196
+ ```
197
+ bash /app/start.sh
198
+ ```
199
+
200
+ Docker support is on the roadmap — PRs welcome!
201
+
202
+ ### Can I run Clawdbot headless on a VPS?
203
+
204
+ Yes! The terminal QR code login works fine over SSH. For long-running operation:
205
+
206
+ - Use `pm2`, `systemd`, or a `launchd` plist to keep the gateway running.
207
+ - Consider Tailscale for secure remote access.
208
+
209
+ ### bun binary vs Node runtime?
210
+
211
+ Clawdbot can run as:
212
+ - **bun binary** — Single executable, easy distribution, auto-restarts via launchd
213
+ - **Node runtime** (`pnpm clawdbot gateway`) — More stable for WhatsApp
214
+
215
+ If you see WebSocket errors like `ws.WebSocket 'upgrade' event is not implemented`, use Node instead of the bun binary. Bun's WebSocket implementation has edge cases that can break WhatsApp (Baileys).
216
+
217
+ **For stability:** Use launchd (macOS) or the Clawdbot.app — they handle process supervision (auto-restart on crash).
218
+
219
+ **For debugging:** Use `pnpm gateway:watch` for live reload during development.
220
+
221
+ ### WhatsApp keeps disconnecting / crashing (macOS app)
222
+
223
+ This is often the bun WebSocket issue. Workaround:
224
+
225
+ 1. Run gateway with Node instead:
226
+ ```bash
227
+ pnpm gateway:watch
228
+ ```
229
+ 2. In **Clawdbot.app → Settings → Debug**, check **"External gateway"**
230
+ 3. The app now connects to your Node gateway instead of spawning bun
231
+
232
+ This is the most stable setup until bun's WebSocket handling improves.
233
+
234
+ ---
235
+
236
+ ## Multi-Instance & Contexts
237
+
238
+ ### Can I run multiple Clawds (separate instances)?
239
+
240
+ The intended design is **one Clawd, one identity**. Rather than running separate instances:
241
+
242
+ - **Add skills** — Give your Clawd multiple capabilities (business + fitness + personal).
243
+ - **Use context switching** — "Hey Clawd, let's talk about fitness" within the same conversation.
244
+ - **Use groups for separation** — Create Telegram/Discord groups for different contexts; each group gets its own session.
245
+
246
+ Why? A unified assistant knows your whole context. Your fitness coach knows when you've had a stressful work week.
247
+
248
+ If you truly need full separation (different users, privacy boundaries), you'd need:
249
+ - Separate config + state directories (`CLAWDBOT_CONFIG_PATH`, `CLAWDBOT_STATE_DIR`)
250
+ - Separate agent workspaces (`agent.workspace`)
251
+ - Separate gateway ports (`gateway.port` / `--port`)
252
+ - Separate phone numbers for WhatsApp (one number = one account)
253
+
254
+ ### Can I have separate "threads" for different topics?
255
+
256
+ Currently, sessions are per-chat:
257
+ - Each WhatsApp/Telegram DM = one session
258
+ - Each group = separate session
259
+
260
+ **Workaround:** Create multiple groups (even just you + the bot) for different contexts. Each group maintains its own session.
261
+
262
+ Feature request? Open a [GitHub discussion](https://github.com/clawdbot/clawdbot/discussions)!
263
+
264
+ ### How do groups work?
265
+
266
+ Groups get separate sessions automatically. By default, the bot requires a **mention** to respond in groups.
267
+
268
+ Per-group activation can be changed by the owner:
269
+ - `/activation mention` — respond only when mentioned (default)
270
+ - `/activation always` — respond to all messages
271
+
272
+ See [groups.md](./groups.md) for details.
273
+
274
+ ---
275
+
276
+ ## Context & Memory
277
+
278
+ ### How much context can Clawdbot handle?
279
+
280
+ Claude Opus has a 200k token context window, and Clawdbot uses **autocompaction** — older conversation gets summarized to stay under the limit.
281
+
282
+ Practical tips:
283
+ - Keep `AGENTS.md` focused, not bloated.
284
+ - Use `/new` to reset the session when context gets stale.
285
+ - For large memory/notes collections, use search tools like `qmd` rather than loading everything.
286
+
287
+ ### Where are my memory files?
288
+
289
+ In your workspace directory (configured in `agent.workspace`, default `~/clawd`). Look for:
290
+ - `memory/` — daily memory files
291
+ - `AGENTS.md` — agent instructions
292
+ - `TOOLS.md` — tool-specific notes
293
+
294
+ Check your config:
295
+ ```bash
296
+ cat ~/.clawdbot/clawdbot.json | grep workspace
297
+ ```
298
+
299
+ ---
300
+
301
+ ## Platforms
302
+
303
+ ### Which platforms does Clawdbot support?
304
+
305
+ - **WhatsApp** — Primary. Uses WhatsApp Web protocol.
306
+ - **Telegram** — Via Bot API (grammY).
307
+ - **Discord** — Bot integration.
308
+ - **iMessage** — Via `imsg` CLI (macOS only).
309
+ - **Signal** — Via `signal-cli` (see [signal.md](./signal.md)).
310
+ - **WebChat** — Browser-based chat UI.
311
+
312
+ ### Discord: Bot works in channels but not DMs?
313
+
314
+ Discord has **separate allowlists** for channels vs DMs:
315
+
316
+ - `discord.guilds.*.users` — controls who can talk in server channels
317
+ - `discord.dm.allowFrom` — controls who can DM the bot
318
+
319
+ If channels work but DMs don't, add `discord.dm.allowFrom` to your config:
320
+
321
+ ```json
322
+ {
323
+ "discord": {
324
+ "dm": {
325
+ "enabled": true,
326
+ "allowFrom": ["YOUR_DISCORD_USER_ID"]
327
+ },
328
+ "guilds": {
329
+ "your-server": {
330
+ "users": ["YOUR_DISCORD_USER_ID"]
331
+ }
332
+ }
333
+ }
334
+ }
335
+ ```
336
+
337
+ Find your user ID: Discord Settings → Advanced → Developer Mode → right-click yourself → Copy User ID.
338
+
339
+ ### Images/media not being understood by the agent?
340
+
341
+ If you send an image but your Clawd doesn't "see" it, check these:
342
+
343
+ **1. Is your model vision-capable?**
344
+
345
+ Not all models support images! Check `agent.model` in your config:
346
+
347
+ - ✅ Vision: `claude-opus-4-5`, `claude-sonnet-4-5`, `claude-haiku-4-5`, `gpt-5.2`, `gpt-4o`, `gemini-pro`
348
+ - ❌ No vision: Most local LLMs (Llama, Mistral), older models, text-only configs
349
+
350
+ **2. Is media being downloaded?**
351
+
352
+ ```bash
353
+ ls -la ~/.clawdbot/media/inbound/
354
+ grep -i "media\|download" /tmp/clawdbot/clawdbot-*.log | tail -20
355
+ ```
356
+
357
+ **3. Is `agent.mediaMaxMb` too low?**
358
+
359
+ Default is 5MB. Large images get resized, but if the limit is set very low, media might be skipped.
360
+
361
+ **4. Does the agent see `[media attached: ...]`?**
362
+
363
+ If this line isn't in the agent's input, the gateway didn't pass the media. Check logs for errors.
364
+
365
+ **5. For PDFs, audio, video, and exotic files:**
366
+
367
+ Use the [summarize](https://summarize.sh) skill to extract and condense content from files that can't be passed directly to vision.
368
+
369
+ ### Can I use multiple platforms at once?
370
+
371
+ Yes! One Clawdbot gateway can connect to WhatsApp, Telegram, Discord, and more simultaneously. Each platform maintains its own sessions.
372
+
373
+ ### WhatsApp: Can I use two numbers?
374
+
375
+ One WhatsApp account = one phone number = one gateway connection. For a second number, you'd need a second gateway instance with a separate config directory.
376
+
377
+ ---
378
+
379
+ ## Skills & Tools
380
+
381
+ ### How do I add new skills?
382
+
383
+ Skills are auto-discovered from your workspace's `skills/` folder. After adding new skills:
384
+
385
+ 1. Send `/reset` (or `/new`) in chat to start a new session
386
+ 2. The new skills will be available
387
+
388
+ No gateway restart needed!
389
+
390
+ ### How do I run commands on other machines?
391
+
392
+ Use **[Tailscale](https://tailscale.com/)** to create a secure network between your machines:
393
+
394
+ 1. Install Tailscale on all machines (it's separate from Clawdbot — set it up yourself)
395
+ 2. Each gets a stable IP (like `100.x.x.x`)
396
+ 3. SSH just works: `ssh user@100.x.x.x "command"`
397
+
398
+ Clawdbot can use Tailscale when you set `bridge.bind: "tailnet"` in your config — it auto-detects your Tailscale IP.
399
+
400
+ For deeper integration, look into **Clawdbot nodes** — pair remote machines with your gateway for camera/screen/automation access.
401
+
402
+ ---
403
+
404
+ ## Troubleshooting
405
+
406
+ ### Build errors (TypeScript)
407
+
408
+ If you hit build errors on `main`:
409
+
410
+ 1. Pull latest: `git pull origin main && pnpm install`
411
+ 2. Try `pnpm clawdbot doctor`
412
+ 3. Check [GitHub issues](https://github.com/clawdbot/clawdbot/issues) or Discord
413
+ 4. Temporary workaround: checkout an older commit
414
+
415
+ ### WhatsApp logged me out
416
+
417
+ WhatsApp sometimes disconnects on IP changes or after updates. Re-authenticate:
418
+
419
+ ```bash
420
+ pnpm clawdbot login
421
+ ```
422
+
423
+ Scan the QR code and you're back.
424
+
425
+ ### Gateway won't start
426
+
427
+ Check logs:
428
+ ```bash
429
+ cat /tmp/clawdbot/clawdbot-$(date +%Y-%m-%d).log
430
+ ```
431
+
432
+ Common issues:
433
+ - Port already in use (change with `--port`)
434
+ - Missing API keys in config
435
+ - Invalid config syntax (remember it's JSON5, but still check for errors)
436
+ - **Tailscale serve + bind conflict:** If using `tailscale.mode: "serve"`, you must set `gateway.bind: "loopback"` (not `"lan"`). Tailscale serve proxies traffic itself.
437
+
438
+ **Debug mode** — use watch for live reload:
439
+ ```bash
440
+ pnpm gateway:watch
441
+ ```
442
+
443
+ **Pro tip:** Use Codex to debug:
444
+ ```bash
445
+ cd ~/path/to/clawdbot
446
+ codex --full-auto "debug why clawdbot gateway won't start"
447
+ ```
448
+
449
+ ### Processes keep restarting after I kill them
450
+
451
+ The gateway runs under a supervisor that auto-restarts it. You need to stop the supervisor, not just kill the process.
452
+
453
+ **macOS (launchd)**
454
+
455
+ ```bash
456
+ # Check if running
457
+ launchctl list | grep clawdbot
458
+
459
+ # Stop and disable
460
+ launchctl disable gui/$UID/com.clawdbot.gateway
461
+ launchctl bootout gui/$UID/com.clawdbot.gateway
462
+
463
+ # Re-enable later
464
+ launchctl enable gui/$UID/com.clawdbot.gateway
465
+ launchctl bootstrap gui/$UID ~/Library/LaunchAgents/com.clawdbot.gateway.plist
466
+ ```
467
+
468
+ **Linux (systemd)**
469
+
470
+ ```bash
471
+ # Check if running
472
+ systemctl list-units | grep -i clawdbot
473
+
474
+ # Stop and disable
475
+ sudo systemctl disable --now clawdbot
476
+ ```
477
+
478
+ **pm2 (if used)**
479
+
480
+ ```bash
481
+ pm2 list
482
+ pm2 delete clawdbot
483
+ ```
484
+
485
+ ### Clean uninstall (start fresh)
486
+
487
+ ```bash
488
+ # macOS: stop launchd service
489
+ launchctl disable gui/$UID/com.clawdbot.gateway
490
+ launchctl bootout gui/$UID/com.clawdbot.gateway 2>/dev/null
491
+
492
+ # Linux: stop systemd service
493
+ sudo systemctl disable --now clawdbot
494
+
495
+ # Kill any remaining processes
496
+ pkill -f "clawdbot"
497
+
498
+ # Remove data
499
+ rm -rf ~/.clawdbot
500
+
501
+ # Remove repo and re-clone
502
+ rm -rf ~/clawdbot
503
+ git clone https://github.com/clawdbot/clawdbot.git
504
+ cd clawdbot && pnpm install && pnpm build
505
+ pnpm clawdbot onboard
506
+ ```
507
+
508
+ ---
509
+
510
+ ## Chat Commands
511
+
512
+ Quick reference (send these in chat):
513
+
514
+ | Command | Action |
515
+ |---------|--------|
516
+ | `/status` | Health + session info |
517
+ | `/new` or `/reset` | Reset the session |
518
+ | `/think <level>` | Set thinking level (off\|minimal\|low\|medium\|high) |
519
+ | `/verbose on\|off` | Toggle verbose mode |
520
+ | `/elevated on\|off` | Toggle elevated bash mode (approved senders only) |
521
+ | `/activation mention\|always` | Group activation (owner-only) |
522
+ | `/model <name>` | Switch AI model (see below) |
523
+ | `/queue instant\|batch\|serial` | Message queuing mode |
524
+
525
+ ### How do I switch models on the fly?
526
+
527
+ Use `/model` to switch without restarting:
528
+
529
+ ```
530
+ /model sonnet
531
+ /model haiku
532
+ /model opus
533
+ ```
534
+
535
+ **Setup:** Configure allowed models and aliases in `clawdbot.json`:
536
+
537
+ ```json
538
+ {
539
+ "agent": {
540
+ "model": "anthropic/claude-opus-4-5-20251022",
541
+ "allowedModels": [
542
+ "anthropic/claude-opus-4-5-20251022",
543
+ "anthropic/claude-sonnet-4-5-20251022",
544
+ "anthropic/claude-haiku-4-5-20251001"
545
+ ],
546
+ "modelAliases": {
547
+ "opus": "anthropic/claude-opus-4-5-20251022",
548
+ "sonnet": "anthropic/claude-sonnet-4-5-20251022",
549
+ "haiku": "anthropic/claude-haiku-4-5-20251001"
550
+ }
551
+ }
552
+ }
553
+ ```
554
+
555
+ **Tip:** `/model` is processed at the gateway level — it works even if you're rate-limited (429) on the current model!
556
+
557
+ ### Alternative providers (OpenRouter, Z.AI)?
558
+
559
+ If you don't want to use Anthropic directly, you can use alternative providers:
560
+
561
+ **OpenRouter** (pay-per-token, many models):
562
+ ```json5
563
+ {
564
+ agent: {
565
+ model: "openrouter/anthropic/claude-sonnet-4",
566
+ env: { OPENROUTER_API_KEY: "sk-or-..." }
567
+ }
568
+ }
569
+ ```
570
+
571
+ **Z.AI** (flat-rate plans, GLM models):
572
+ ```json5
573
+ {
574
+ agent: {
575
+ model: "zai/glm-4.7",
576
+ env: { ZAI_API_KEY: "..." }
577
+ }
578
+ }
579
+ ```
580
+
581
+ **Important:** Always use the latest Claude models (4.5 series). Don't use older 3.x models — they're deprecated and less capable. Check [OpenRouter models](https://openrouter.ai/models?q=claude) for exact IDs.
582
+
583
+ ### Model + thinking mode issues?
584
+
585
+ Some models don't support extended thinking well:
586
+
587
+ - **Gemini Flash + thinking:** Can cause "Corrupted thought signature" errors. Fix: `/think off`
588
+ - **Claude Opus + thinking off:** Opus may "think out loud" anyway. Better to use `/think low` than `off`.
589
+ - **Local LLMs:** Most don't support the thinking/reasoning separation. Set `reasoning: false` in your model config.
590
+
591
+ If you get weird errors after switching models, try `/think off` and `/new` to reset.
592
+
593
+ ### How do I stop/cancel a running task?
594
+
595
+ Send `/stop` to immediately abort the current agent run. Other stop words also work:
596
+ - `/stop`
597
+ - `/abort`
598
+ - `/esc`
599
+ - `/exit`
600
+
601
+ For background processes (like Codex), use:
602
+ ```
603
+ process action:kill sessionId:XXX
604
+ ```
605
+
606
+ You can also configure `routing.queue.mode` to control how new messages interact with running tasks:
607
+ - `steer` — New messages redirect the current task
608
+ - `interrupt` — Kills current run, starts fresh
609
+ - `collect` — Queues messages for after
610
+
611
+ ### Does Codex CLI use my ChatGPT Pro subscription or API credits?
612
+
613
+ **Both are supported!** Codex CLI can auth via:
614
+
615
+ 1. **Browser/Device OAuth** → Uses your ChatGPT Pro/Plus subscription (no per-token cost)
616
+ ```bash
617
+ codex login --device-auth
618
+ # Opens browser, log in with your ChatGPT account
619
+ ```
620
+
621
+ 2. **API key** → Pay-per-token via OpenAI API billing
622
+ ```bash
623
+ export OPENAI_API_KEY="sk-..."
624
+ ```
625
+
626
+ If you have a ChatGPT subscription, use browser auth to avoid API charges!
627
+
628
+ ### How do rapid-fire messages work?
629
+
630
+ Use `/queue` to control how messages sent in quick succession are handled:
631
+
632
+ - **`/queue instant`** — New messages interrupt/steer the current response
633
+ - **`/queue batch`** — Messages queue up, processed after current turn
634
+ - **`/queue serial`** — One at a time, in order
635
+
636
+ If you tend to send multiple short messages, `/queue instant` feels most natural.
637
+
638
+ ---
639
+
640
+ *Still stuck? Ask in [Discord](https://discord.gg/qkhbAGHRBT) or open a [GitHub discussion](https://github.com/clawdbot/clawdbot/discussions).* 🦞