clawdbot 2026.1.4

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 (503) hide show
  1. package/CHANGELOG.md +115 -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/cron/isolated-agent.js +499 -0
  189. package/dist/cron/run-log.js +72 -0
  190. package/dist/cron/schedule.js +24 -0
  191. package/dist/cron/service.js +471 -0
  192. package/dist/cron/store.js +43 -0
  193. package/dist/cron/types.js +1 -0
  194. package/dist/discord/index.js +2 -0
  195. package/dist/discord/monitor.js +1188 -0
  196. package/dist/discord/probe.js +54 -0
  197. package/dist/discord/send.js +577 -0
  198. package/dist/discord/token.js +8 -0
  199. package/dist/gateway/auth.js +121 -0
  200. package/dist/gateway/call.js +94 -0
  201. package/dist/gateway/chat-attachments.js +41 -0
  202. package/dist/gateway/client.js +180 -0
  203. package/dist/gateway/config-reload.js +274 -0
  204. package/dist/gateway/control-ui.js +184 -0
  205. package/dist/gateway/hooks-mapping.js +282 -0
  206. package/dist/gateway/hooks.js +168 -0
  207. package/dist/gateway/net.js +29 -0
  208. package/dist/gateway/protocol/index.js +61 -0
  209. package/dist/gateway/protocol/schema.js +560 -0
  210. package/dist/gateway/server-bridge-subscriptions.js +93 -0
  211. package/dist/gateway/server-bridge.js +1013 -0
  212. package/dist/gateway/server-browser.js +12 -0
  213. package/dist/gateway/server-chat.js +159 -0
  214. package/dist/gateway/server-constants.js +8 -0
  215. package/dist/gateway/server-discovery.js +62 -0
  216. package/dist/gateway/server-http.js +165 -0
  217. package/dist/gateway/server-methods/agent-job.js +125 -0
  218. package/dist/gateway/server-methods/agent.js +250 -0
  219. package/dist/gateway/server-methods/chat.js +200 -0
  220. package/dist/gateway/server-methods/config.js +50 -0
  221. package/dist/gateway/server-methods/connect.js +6 -0
  222. package/dist/gateway/server-methods/cron.js +83 -0
  223. package/dist/gateway/server-methods/health.js +28 -0
  224. package/dist/gateway/server-methods/models.js +16 -0
  225. package/dist/gateway/server-methods/nodes.js +294 -0
  226. package/dist/gateway/server-methods/providers.js +217 -0
  227. package/dist/gateway/server-methods/send.js +166 -0
  228. package/dist/gateway/server-methods/sessions.js +305 -0
  229. package/dist/gateway/server-methods/skills.js +83 -0
  230. package/dist/gateway/server-methods/system.js +118 -0
  231. package/dist/gateway/server-methods/talk.js +22 -0
  232. package/dist/gateway/server-methods/types.js +1 -0
  233. package/dist/gateway/server-methods/voicewake.js +30 -0
  234. package/dist/gateway/server-methods/web.js +58 -0
  235. package/dist/gateway/server-methods/wizard.js +100 -0
  236. package/dist/gateway/server-methods.js +53 -0
  237. package/dist/gateway/server-providers.js +644 -0
  238. package/dist/gateway/server-shared.js +1 -0
  239. package/dist/gateway/server-utils.js +35 -0
  240. package/dist/gateway/server.js +1437 -0
  241. package/dist/gateway/session-utils.js +216 -0
  242. package/dist/gateway/ws-log.js +349 -0
  243. package/dist/gateway/ws-logging.js +8 -0
  244. package/dist/globals.js +41 -0
  245. package/dist/hooks/gmail-ops.js +236 -0
  246. package/dist/hooks/gmail-setup-utils.js +278 -0
  247. package/dist/hooks/gmail-watcher.js +175 -0
  248. package/dist/hooks/gmail.js +177 -0
  249. package/dist/index.js +50 -0
  250. package/dist/infra/agent-events.js +46 -0
  251. package/dist/infra/binaries.js +9 -0
  252. package/dist/infra/bonjour-discovery.js +163 -0
  253. package/dist/infra/bonjour.js +200 -0
  254. package/dist/infra/bridge/server.js +562 -0
  255. package/dist/infra/canvas-host-url.js +54 -0
  256. package/dist/infra/env.js +8 -0
  257. package/dist/infra/errors.js +28 -0
  258. package/dist/infra/gateway-lock.js +8 -0
  259. package/dist/infra/heartbeat-events.js +21 -0
  260. package/dist/infra/heartbeat-runner.js +453 -0
  261. package/dist/infra/heartbeat-wake.js +61 -0
  262. package/dist/infra/is-main.js +37 -0
  263. package/dist/infra/machine-name.js +40 -0
  264. package/dist/infra/node-pairing.js +211 -0
  265. package/dist/infra/pam.js +42 -0
  266. package/dist/infra/path-env.js +92 -0
  267. package/dist/infra/ports.js +87 -0
  268. package/dist/infra/provider-summary.js +80 -0
  269. package/dist/infra/restart.js +29 -0
  270. package/dist/infra/retry.js +16 -0
  271. package/dist/infra/runtime-guard.js +59 -0
  272. package/dist/infra/system-events.js +44 -0
  273. package/dist/infra/system-presence.js +216 -0
  274. package/dist/infra/tailnet.js +46 -0
  275. package/dist/infra/tailscale.js +149 -0
  276. package/dist/infra/voicewake.js +77 -0
  277. package/dist/infra/widearea-dns.js +123 -0
  278. package/dist/infra/ws.js +13 -0
  279. package/dist/logger.js +52 -0
  280. package/dist/logging.js +490 -0
  281. package/dist/macos/gateway-daemon.js +141 -0
  282. package/dist/macos/relay.js +46 -0
  283. package/dist/media/constants.js +33 -0
  284. package/dist/media/host.js +42 -0
  285. package/dist/media/image-ops.js +121 -0
  286. package/dist/media/mime.js +115 -0
  287. package/dist/media/parse.js +81 -0
  288. package/dist/media/server.js +64 -0
  289. package/dist/media/store.js +139 -0
  290. package/dist/process/command-queue.js +97 -0
  291. package/dist/process/exec.js +75 -0
  292. package/dist/protocol.schema.json +2918 -0
  293. package/dist/provider-web.js +8 -0
  294. package/dist/providers/web/index.js +2 -0
  295. package/dist/runtime.js +8 -0
  296. package/dist/telegram/bot.js +394 -0
  297. package/dist/telegram/download.js +34 -0
  298. package/dist/telegram/index.js +4 -0
  299. package/dist/telegram/monitor.js +47 -0
  300. package/dist/telegram/probe.js +63 -0
  301. package/dist/telegram/proxy.js +9 -0
  302. package/dist/telegram/send.js +138 -0
  303. package/dist/telegram/token.js +30 -0
  304. package/dist/telegram/webhook-set.js +12 -0
  305. package/dist/telegram/webhook.js +56 -0
  306. package/dist/utils.js +133 -0
  307. package/dist/version.js +18 -0
  308. package/dist/web/active-listener.js +7 -0
  309. package/dist/web/auto-reply.js +1203 -0
  310. package/dist/web/inbound.js +481 -0
  311. package/dist/web/login-qr.js +204 -0
  312. package/dist/web/login.js +59 -0
  313. package/dist/web/media.js +148 -0
  314. package/dist/web/outbound.js +67 -0
  315. package/dist/web/qr-image.js +97 -0
  316. package/dist/web/reconnect.js +60 -0
  317. package/dist/web/reply-heartbeat-wake.js +61 -0
  318. package/dist/web/session.js +346 -0
  319. package/docs/AGENTS.default.md +116 -0
  320. package/docs/CNAME +1 -0
  321. package/docs/RELEASING.md +64 -0
  322. package/docs/_config.yml +51 -0
  323. package/docs/_layouts/default.html +145 -0
  324. package/docs/agent-send.md +21 -0
  325. package/docs/agent.md +104 -0
  326. package/docs/android/connect.md +131 -0
  327. package/docs/architecture.md +89 -0
  328. package/docs/assets/markdown.css +130 -0
  329. package/docs/assets/pixel-lobster.svg +60 -0
  330. package/docs/assets/terminal.css +497 -0
  331. package/docs/assets/theme.js +55 -0
  332. package/docs/audio.md +50 -0
  333. package/docs/background-process.md +74 -0
  334. package/docs/bash.md +32 -0
  335. package/docs/bonjour.md +159 -0
  336. package/docs/browser.md +289 -0
  337. package/docs/camera.md +152 -0
  338. package/docs/clawd.md +199 -0
  339. package/docs/clawdbot-mac.md +104 -0
  340. package/docs/configuration.md +1177 -0
  341. package/docs/control-api.md +49 -0
  342. package/docs/control-ui.md +83 -0
  343. package/docs/cron.md +374 -0
  344. package/docs/dashboard.md +17 -0
  345. package/docs/device-models.md +46 -0
  346. package/docs/discord.md +293 -0
  347. package/docs/discovery.md +112 -0
  348. package/docs/docker.md +251 -0
  349. package/docs/docs.json +86 -0
  350. package/docs/doctor.md +47 -0
  351. package/docs/elevated.md +31 -0
  352. package/docs/faq.md +640 -0
  353. package/docs/gateway/pairing.md +109 -0
  354. package/docs/gateway-lock.md +28 -0
  355. package/docs/gateway.md +174 -0
  356. package/docs/gmail-pubsub.md +191 -0
  357. package/docs/grammy.md +27 -0
  358. package/docs/group-messages.md +71 -0
  359. package/docs/groups.md +78 -0
  360. package/docs/health.md +28 -0
  361. package/docs/heartbeat.md +64 -0
  362. package/docs/images.md +52 -0
  363. package/docs/imessage.md +63 -0
  364. package/docs/index.md +182 -0
  365. package/docs/ios/connect.md +177 -0
  366. package/docs/ios/spec.md +236 -0
  367. package/docs/location-command.md +95 -0
  368. package/docs/logging.md +99 -0
  369. package/docs/lore.md +131 -0
  370. package/docs/mac/bun.md +133 -0
  371. package/docs/mac/canvas.md +161 -0
  372. package/docs/mac/child-process.md +72 -0
  373. package/docs/mac/dev-setup.md +81 -0
  374. package/docs/mac/health.md +28 -0
  375. package/docs/mac/icon.md +26 -0
  376. package/docs/mac/logging.md +51 -0
  377. package/docs/mac/menu-bar.md +69 -0
  378. package/docs/mac/peekaboo.md +170 -0
  379. package/docs/mac/permissions.md +40 -0
  380. package/docs/mac/release.md +76 -0
  381. package/docs/mac/remote.md +57 -0
  382. package/docs/mac/signing.md +41 -0
  383. package/docs/mac/skills.md +27 -0
  384. package/docs/mac/voice-overlay.md +52 -0
  385. package/docs/mac/voicewake.md +56 -0
  386. package/docs/mac/webchat.md +27 -0
  387. package/docs/mac/xpc.md +40 -0
  388. package/docs/models.md +90 -0
  389. package/docs/nix.md +49 -0
  390. package/docs/nodes.md +157 -0
  391. package/docs/onboarding-config-protocol.md +29 -0
  392. package/docs/onboarding.md +185 -0
  393. package/docs/presence.md +133 -0
  394. package/docs/queue.md +78 -0
  395. package/docs/refactor/browser-control-simplification.md +58 -0
  396. package/docs/refactor/canvas-a2ui.md +93 -0
  397. package/docs/refactor/cli-unification.md +64 -0
  398. package/docs/refactor/gateway-client.md +31 -0
  399. package/docs/refactor/gateway.md +99 -0
  400. package/docs/refactor/new-arch.md +171 -0
  401. package/docs/refactor/tui.md +26 -0
  402. package/docs/refactor/web-gateway-troubleshooting.md +37 -0
  403. package/docs/refactor/webagent-session.md +46 -0
  404. package/docs/remote-gateway-readme.md +148 -0
  405. package/docs/remote.md +66 -0
  406. package/docs/research/memory.md +227 -0
  407. package/docs/rpc.md +35 -0
  408. package/docs/security.md +168 -0
  409. package/docs/session-tool.md +119 -0
  410. package/docs/session.md +84 -0
  411. package/docs/sessions.md +8 -0
  412. package/docs/setup.md +118 -0
  413. package/docs/signal.md +113 -0
  414. package/docs/skills-config.md +58 -0
  415. package/docs/skills.md +149 -0
  416. package/docs/slack.md +158 -0
  417. package/docs/surface.md +20 -0
  418. package/docs/tailscale.md +71 -0
  419. package/docs/talk.md +79 -0
  420. package/docs/telegram.md +90 -0
  421. package/docs/templates/AGENTS.md +126 -0
  422. package/docs/templates/BOOTSTRAP.md +53 -0
  423. package/docs/templates/IDENTITY.md +17 -0
  424. package/docs/templates/SOUL.md +41 -0
  425. package/docs/templates/TOOLS.md +41 -0
  426. package/docs/templates/USER.md +22 -0
  427. package/docs/test.md +35 -0
  428. package/docs/thinking.md +46 -0
  429. package/docs/tools.md +248 -0
  430. package/docs/troubleshooting.md +227 -0
  431. package/docs/tui.md +69 -0
  432. package/docs/typebox.md +42 -0
  433. package/docs/voicewake.md +61 -0
  434. package/docs/web.md +115 -0
  435. package/docs/webchat.md +34 -0
  436. package/docs/webhook.md +132 -0
  437. package/docs/whatsapp-clawd.jpg +0 -0
  438. package/docs/whatsapp.md +142 -0
  439. package/docs/wizard.md +158 -0
  440. package/package.json +178 -0
  441. package/skills/apple-notes/SKILL.md +50 -0
  442. package/skills/apple-reminders/SKILL.md +67 -0
  443. package/skills/bear-notes/SKILL.md +79 -0
  444. package/skills/bird/SKILL.md +25 -0
  445. package/skills/blogwatcher/SKILL.md +46 -0
  446. package/skills/blucli/SKILL.md +27 -0
  447. package/skills/brave-search/SKILL.md +30 -0
  448. package/skills/brave-search/scripts/content.mjs +53 -0
  449. package/skills/brave-search/scripts/search.mjs +79 -0
  450. package/skills/camsnap/SKILL.md +25 -0
  451. package/skills/clawdhub/SKILL.md +53 -0
  452. package/skills/coding-agent/SKILL.md +275 -0
  453. package/skills/discord/SKILL.md +369 -0
  454. package/skills/eightctl/SKILL.md +29 -0
  455. package/skills/food-order/SKILL.md +41 -0
  456. package/skills/gemini/SKILL.md +23 -0
  457. package/skills/gifgrep/SKILL.md +47 -0
  458. package/skills/github/SKILL.md +47 -0
  459. package/skills/gog/SKILL.md +36 -0
  460. package/skills/goplaces/SKILL.md +30 -0
  461. package/skills/imsg/SKILL.md +25 -0
  462. package/skills/local-places/SERVER_README.md +101 -0
  463. package/skills/local-places/SKILL.md +91 -0
  464. package/skills/local-places/pyproject.toml +27 -0
  465. package/skills/local-places/src/local_places/__init__.py +2 -0
  466. package/skills/local-places/src/local_places/__pycache__/__init__.cpython-314.pyc +0 -0
  467. package/skills/local-places/src/local_places/__pycache__/google_places.cpython-314.pyc +0 -0
  468. package/skills/local-places/src/local_places/__pycache__/main.cpython-314.pyc +0 -0
  469. package/skills/local-places/src/local_places/__pycache__/schemas.cpython-314.pyc +0 -0
  470. package/skills/local-places/src/local_places/google_places.py +314 -0
  471. package/skills/local-places/src/local_places/main.py +65 -0
  472. package/skills/local-places/src/local_places/schemas.py +107 -0
  473. package/skills/mcporter/SKILL.md +38 -0
  474. package/skills/nano-banana-pro/SKILL.md +29 -0
  475. package/skills/nano-banana-pro/scripts/generate_image.py +167 -0
  476. package/skills/nano-pdf/SKILL.md +20 -0
  477. package/skills/notion/SKILL.md +156 -0
  478. package/skills/obsidian/SKILL.md +55 -0
  479. package/skills/openai-image-gen/SKILL.md +31 -0
  480. package/skills/openai-image-gen/scripts/gen.py +173 -0
  481. package/skills/openai-whisper/SKILL.md +19 -0
  482. package/skills/openai-whisper-api/SKILL.md +43 -0
  483. package/skills/openai-whisper-api/scripts/transcribe.sh +85 -0
  484. package/skills/openhue/SKILL.md +30 -0
  485. package/skills/oracle/SKILL.md +105 -0
  486. package/skills/ordercli/SKILL.md +47 -0
  487. package/skills/peekaboo/SKILL.md +153 -0
  488. package/skills/qmd/SKILL.md +26 -0
  489. package/skills/sag/SKILL.md +62 -0
  490. package/skills/slack/SKILL.md +143 -0
  491. package/skills/songsee/SKILL.md +29 -0
  492. package/skills/sonoscli/SKILL.md +26 -0
  493. package/skills/spotify-player/SKILL.md +34 -0
  494. package/skills/summarize/SKILL.md +49 -0
  495. package/skills/things-mac/SKILL.md +61 -0
  496. package/skills/tmux/SKILL.md +121 -0
  497. package/skills/tmux/scripts/find-sessions.sh +112 -0
  498. package/skills/tmux/scripts/wait-for-text.sh +83 -0
  499. package/skills/trello/SKILL.md +84 -0
  500. package/skills/video-frames/SKILL.md +29 -0
  501. package/skills/video-frames/scripts/frame.sh +81 -0
  502. package/skills/wacli/SKILL.md +42 -0
  503. package/skills/weather/SKILL.md +49 -0
@@ -0,0 +1,53 @@
1
+ ---
2
+ name: clawdhub
3
+ description: Use the ClawdHub CLI to search, install, update, and publish agent skills from clawdhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawdhub CLI.
4
+ metadata: {"clawdbot":{"requires":{"bins":["clawdhub"]},"install":[{"id":"node","kind":"node","package":"clawdhub","bins":["clawdhub"],"label":"Install ClawdHub CLI (npm)"}]}}
5
+ ---
6
+
7
+ # ClawdHub CLI
8
+
9
+ Install
10
+ ```bash
11
+ npm i -g clawdhub
12
+ ```
13
+
14
+ Auth (publish)
15
+ ```bash
16
+ clawdhub login
17
+ clawdhub whoami
18
+ ```
19
+
20
+ Search
21
+ ```bash
22
+ clawdhub search "postgres backups"
23
+ ```
24
+
25
+ Install
26
+ ```bash
27
+ clawdhub install my-skill
28
+ clawdhub install my-skill --version 1.2.3
29
+ ```
30
+
31
+ Update (hash-based match + upgrade)
32
+ ```bash
33
+ clawdhub update my-skill
34
+ clawdhub update my-skill --version 1.2.3
35
+ clawdhub update --all
36
+ clawdhub update my-skill --force
37
+ clawdhub update --all --no-input --force
38
+ ```
39
+
40
+ List
41
+ ```bash
42
+ clawdhub list
43
+ ```
44
+
45
+ Publish
46
+ ```bash
47
+ clawdhub publish ./my-skill --slug my-skill --name "My Skill" --version 1.2.0 --changelog "Fixes + docs"
48
+ ```
49
+
50
+ Notes
51
+ - Default registry: https://clawdhub.com (override with CLAWDHUB_REGISTRY or --registry)
52
+ - Default workdir: cwd; install dir: ./skills (override with --workdir / --dir)
53
+ - Update command hashes local files, resolves matching version, and upgrades to latest unless --version is set
@@ -0,0 +1,275 @@
1
+ ---
2
+ name: coding-agent
3
+ description: Run Codex CLI, Claude Code, OpenCode, or Pi Coding Agent via background process for programmatic control.
4
+ metadata: {"clawdbot":{"emoji":"🧩","requires":{"anyBins":["claude","codex","opencode","pi"]}}}
5
+ ---
6
+
7
+ # Coding Agent (background-first)
8
+
9
+ Use **bash background mode** for non-interactive coding work. For interactive coding sessions, use the **tmux** skill (always, except very simple one-shot prompts).
10
+
11
+ ## The Pattern: workdir + background
12
+
13
+ ```bash
14
+ # Create temp space for chats/scratch work
15
+ SCRATCH=$(mktemp -d)
16
+
17
+ # Start agent in target directory ("little box" - only sees relevant files)
18
+ bash workdir:$SCRATCH background:true command:"<agent command>"
19
+ # Or for project work:
20
+ bash workdir:~/project/folder background:true command:"<agent command>"
21
+ # Returns sessionId for tracking
22
+
23
+ # Monitor progress
24
+ process action:log sessionId:XXX
25
+
26
+ # Check if done
27
+ process action:poll sessionId:XXX
28
+
29
+ # Send input (if agent asks a question)
30
+ process action:write sessionId:XXX data:"y"
31
+
32
+ # Kill if needed
33
+ process action:kill sessionId:XXX
34
+ ```
35
+
36
+ **Why workdir matters:** Agent wakes up in a focused directory, doesn't wander off reading unrelated files (like your soul.md 😅).
37
+
38
+ ---
39
+
40
+ ## Codex CLI
41
+
42
+ **Model:** `gpt-5.2-codex` is the default (set in ~/.codex/config.toml)
43
+
44
+ ### Building/Creating (use --full-auto or --yolo)
45
+ ```bash
46
+ # --full-auto: sandboxed but auto-approves in workspace
47
+ bash workdir:~/project background:true command:"codex exec --full-auto \"Build a snake game with dark theme\""
48
+
49
+ # --yolo: NO sandbox, NO approvals (fastest, most dangerous)
50
+ bash workdir:~/project background:true command:"codex --yolo \"Build a snake game with dark theme\""
51
+
52
+ # Note: --yolo is a shortcut for --dangerously-bypass-approvals-and-sandbox
53
+ ```
54
+
55
+ ### Reviewing PRs (vanilla, no flags)
56
+
57
+ **⚠️ CRITICAL: Never review PRs in Clawdbot's own project folder!**
58
+ - Either use the project where the PR is submitted (if it's NOT ~/Projects/clawdbot)
59
+ - Or clone to a temp folder first
60
+
61
+ ```bash
62
+ # Option 1: Review in the actual project (if NOT clawdbot)
63
+ bash workdir:~/Projects/some-other-repo background:true command:"codex review --base main"
64
+
65
+ # Option 2: Clone to temp folder for safe review (REQUIRED for clawdbot PRs!)
66
+ REVIEW_DIR=$(mktemp -d)
67
+ git clone https://github.com/clawdbot/clawdbot.git $REVIEW_DIR
68
+ cd $REVIEW_DIR && gh pr checkout 130
69
+ bash workdir:$REVIEW_DIR background:true command:"codex review --base origin/main"
70
+ # Clean up after: rm -rf $REVIEW_DIR
71
+
72
+ # Option 3: Use git worktree (keeps main intact)
73
+ git worktree add /tmp/pr-130-review pr-130-branch
74
+ bash workdir:/tmp/pr-130-review background:true command:"codex review --base main"
75
+ ```
76
+
77
+ **Why?** Checking out branches in the running Clawdbot repo can break the live instance!
78
+
79
+ ### Batch PR Reviews (parallel army!)
80
+ ```bash
81
+ # Fetch all PR refs first
82
+ git fetch origin '+refs/pull/*/head:refs/remotes/origin/pr/*'
83
+
84
+ # Deploy the army - one Codex per PR!
85
+ bash workdir:~/project background:true command:"codex exec \"Review PR #86. git diff origin/main...origin/pr/86\""
86
+ bash workdir:~/project background:true command:"codex exec \"Review PR #87. git diff origin/main...origin/pr/87\""
87
+ bash workdir:~/project background:true command:"codex exec \"Review PR #95. git diff origin/main...origin/pr/95\""
88
+ # ... repeat for all PRs
89
+
90
+ # Monitor all
91
+ process action:list
92
+
93
+ # Get results and post to GitHub
94
+ process action:log sessionId:XXX
95
+ gh pr comment <PR#> --body "<review content>"
96
+ ```
97
+
98
+ ### Tips for PR Reviews
99
+ - **Fetch refs first:** `git fetch origin '+refs/pull/*/head:refs/remotes/origin/pr/*'`
100
+ - **Use git diff:** Tell Codex to use `git diff origin/main...origin/pr/XX`
101
+ - **Don't checkout:** Multiple parallel reviews = don't let them change branches
102
+ - **Post results:** Use `gh pr comment` to post reviews to GitHub
103
+
104
+ ---
105
+
106
+ ## Claude Code
107
+
108
+ ```bash
109
+ bash workdir:~/project background:true command:"claude \"Your task\""
110
+ ```
111
+
112
+ ---
113
+
114
+ ## OpenCode
115
+
116
+ ```bash
117
+ bash workdir:~/project background:true command:"opencode run \"Your task\""
118
+ ```
119
+
120
+ ---
121
+
122
+ ## Pi Coding Agent
123
+
124
+ ```bash
125
+ # Install: npm install -g @mariozechner/pi-coding-agent
126
+ bash workdir:~/project background:true command:"pi \"Your task\""
127
+ ```
128
+
129
+ ---
130
+
131
+ ## Pi flags (common)
132
+
133
+ - `--print` / `-p`: non-interactive; runs prompt and exits.
134
+ - `--provider <name>`: pick provider (default: google).
135
+ - `--model <id>`: pick model (default: gemini-2.5-flash).
136
+ - `--api-key <key>`: override API key (defaults to env vars).
137
+
138
+ Examples:
139
+
140
+ ```bash
141
+ # Set provider + model, non-interactive
142
+ bash workdir:~/project background:true command:"pi --provider openai --model gpt-4o-mini -p \"Summarize src/\""
143
+ ```
144
+
145
+ ---
146
+
147
+ ## tmux (interactive sessions)
148
+
149
+ Use the tmux skill for interactive coding sessions (always, except very simple one-shot prompts). Prefer bash background mode for non-interactive runs.
150
+
151
+ ---
152
+
153
+ ## Parallel Issue Fixing with git worktrees + tmux
154
+
155
+ For fixing multiple issues in parallel, use git worktrees (isolated branches) + tmux sessions:
156
+
157
+ ```bash
158
+ # 1. Clone repo to temp location
159
+ cd /tmp && git clone git@github.com:user/repo.git repo-worktrees
160
+ cd repo-worktrees
161
+
162
+ # 2. Create worktrees for each issue (isolated branches!)
163
+ git worktree add -b fix/issue-78 /tmp/issue-78 main
164
+ git worktree add -b fix/issue-99 /tmp/issue-99 main
165
+
166
+ # 3. Set up tmux sessions
167
+ SOCKET="${TMPDIR:-/tmp}/codex-fixes.sock"
168
+ tmux -S "$SOCKET" new-session -d -s fix-78
169
+ tmux -S "$SOCKET" new-session -d -s fix-99
170
+
171
+ # 4. Launch Codex in each (after pnpm install!)
172
+ tmux -S "$SOCKET" send-keys -t fix-78 "cd /tmp/issue-78 && pnpm install && codex --yolo 'Fix issue #78: <description>. Commit and push.'" Enter
173
+ tmux -S "$SOCKET" send-keys -t fix-99 "cd /tmp/issue-99 && pnpm install && codex --yolo 'Fix issue #99: <description>. Commit and push.'" Enter
174
+
175
+ # 5. Monitor progress
176
+ tmux -S "$SOCKET" capture-pane -p -t fix-78 -S -30
177
+ tmux -S "$SOCKET" capture-pane -p -t fix-99 -S -30
178
+
179
+ # 6. Check if done (prompt returned)
180
+ tmux -S "$SOCKET" capture-pane -p -t fix-78 -S -3 | grep -q "❯" && echo "Done!"
181
+
182
+ # 7. Create PRs after fixes
183
+ cd /tmp/issue-78 && git push -u origin fix/issue-78
184
+ gh pr create --repo user/repo --head fix/issue-78 --title "fix: ..." --body "..."
185
+
186
+ # 8. Cleanup
187
+ tmux -S "$SOCKET" kill-server
188
+ git worktree remove /tmp/issue-78
189
+ git worktree remove /tmp/issue-99
190
+ ```
191
+
192
+ **Why worktrees?** Each Codex works in isolated branch, no conflicts. Can run 5+ parallel fixes!
193
+
194
+ **Why tmux over bash background?** Codex is interactive — needs TTY for proper output. tmux provides persistent sessions with full history capture.
195
+
196
+ ---
197
+
198
+ ## ⚠️ Rules
199
+
200
+ 1. **Respect tool choice** — if user asks for Codex, use Codex. NEVER offer to build it yourself!
201
+ 2. **Be patient** — don't kill sessions because they're "slow"
202
+ 3. **Monitor with process:log** — check progress without interfering
203
+ 4. **--full-auto for building** — auto-approves changes
204
+ 5. **vanilla for reviewing** — no special flags needed
205
+ 6. **Parallel is OK** — run many Codex processes at once for batch work
206
+ 7. **NEVER start Codex in ~/clawd/** — it'll read your soul docs and get weird ideas about the org chart! Use the target project dir or /tmp for blank slate chats
207
+ 8. **NEVER checkout branches in ~/Projects/clawdbot/** — that's the LIVE Clawdbot instance! Clone to /tmp or use git worktree for PR reviews
208
+
209
+ ---
210
+
211
+ ## PR Template (The Razor Standard)
212
+
213
+ When submitting PRs to external repos, use this format for quality & maintainer-friendliness:
214
+
215
+ ````markdown
216
+ ## Original Prompt
217
+ [Exact request/problem statement]
218
+
219
+ ## What this does
220
+ [High-level description]
221
+
222
+ **Features:**
223
+ - [Key feature 1]
224
+ - [Key feature 2]
225
+
226
+ **Example usage:**
227
+ ```bash
228
+ # Example
229
+ command example
230
+ ```
231
+ ````
232
+
233
+ ## Feature intent (maintainer-friendly)
234
+ [Why useful, how it fits, workflows it enables]
235
+
236
+ ## Prompt history (timestamped)
237
+ - YYYY-MM-DD HH:MM UTC: [Step 1]
238
+ - YYYY-MM-DD HH:MM UTC: [Step 2]
239
+
240
+ ## How I tested
241
+ **Manual verification:**
242
+ 1. [Test step] - Output: `[result]`
243
+ 2. [Test step] - Result: [result]
244
+
245
+ **Files tested:**
246
+ - [Detail]
247
+ - [Edge cases]
248
+
249
+ ## Session logs (implementation)
250
+ - [What was researched]
251
+ - [What was discovered]
252
+ - [Time spent]
253
+
254
+ ## Implementation details
255
+ **New files:**
256
+ - `path/file.ts` - [description]
257
+
258
+ **Modified files:**
259
+ - `path/file.ts` - [change]
260
+
261
+ **Technical notes:**
262
+ - [Detail 1]
263
+ - [Detail 2]
264
+
265
+ ---
266
+ *Submitted by Razor 🥷 - Mariano's AI agent*
267
+ ```
268
+
269
+ **Key principles:**
270
+ 1. Human-written description (no AI slop)
271
+ 2. Feature intent for maintainers
272
+ 3. Timestamped prompt history
273
+ 4. Session logs if using Codex/agent
274
+
275
+ **Example:** https://github.com/steipete/bird/pull/22
@@ -0,0 +1,369 @@
1
+ ---
2
+ name: discord
3
+ description: Use when you need to control Discord from Clawdbot via the discord tool: send messages, react, post or upload stickers, upload emojis, run polls, manage threads/pins/search, fetch permissions or member/role/channel info, or handle moderation actions in Discord DMs or channels.
4
+ ---
5
+
6
+ # Discord Actions
7
+
8
+ ## Overview
9
+
10
+ Use `discord` to manage messages, reactions, threads, polls, and moderation. You can disable groups via `discord.actions.*` (defaults to enabled, except roles/moderation). The tool uses the bot token configured for Clawdbot.
11
+
12
+ ## Inputs to collect
13
+
14
+ - For reactions: `channelId`, `messageId`, and an `emoji`.
15
+ - For stickers/polls/sendMessage: a `to` target (`channel:<id>` or `user:<id>`). Optional `content` text.
16
+ - Polls also need a `question` plus 2–10 `answers`.
17
+ - For media: `mediaUrl` with `file:///path` for local files or `https://...` for remote.
18
+ - For emoji uploads: `guildId`, `name`, `mediaUrl`, optional `roleIds` (limit 256KB, PNG/JPG/GIF).
19
+ - For sticker uploads: `guildId`, `name`, `description`, `tags`, `mediaUrl` (limit 512KB, PNG/APNG/Lottie JSON).
20
+
21
+ Message context lines include `discord message id` and `channel` fields you can reuse directly.
22
+
23
+ **Note:** `sendMessage` uses `to: "channel:<id>"` format, not `channelId`. Other actions like `react`, `readMessages`, `editMessage` use `channelId` directly.
24
+
25
+ ## Actions
26
+
27
+ ### React to a message
28
+
29
+ ```json
30
+ {
31
+ "action": "react",
32
+ "channelId": "123",
33
+ "messageId": "456",
34
+ "emoji": "✅"
35
+ }
36
+ ```
37
+
38
+ ### List reactions + users
39
+
40
+ ```json
41
+ {
42
+ "action": "reactions",
43
+ "channelId": "123",
44
+ "messageId": "456",
45
+ "limit": 100
46
+ }
47
+ ```
48
+
49
+ ### Send a sticker
50
+
51
+ ```json
52
+ {
53
+ "action": "sticker",
54
+ "to": "channel:123",
55
+ "stickerIds": ["9876543210"],
56
+ "content": "Nice work!"
57
+ }
58
+ ```
59
+
60
+ - Up to 3 sticker IDs per message.
61
+ - `to` can be `user:<id>` for DMs.
62
+
63
+ ### Upload a custom emoji
64
+
65
+ ```json
66
+ {
67
+ "action": "emojiUpload",
68
+ "guildId": "999",
69
+ "name": "party_blob",
70
+ "mediaUrl": "file:///tmp/party.png",
71
+ "roleIds": ["222"]
72
+ }
73
+ ```
74
+
75
+ - Emoji images must be PNG/JPG/GIF and <= 256KB.
76
+ - `roleIds` is optional; omit to make the emoji available to everyone.
77
+
78
+ ### Upload a sticker
79
+
80
+ ```json
81
+ {
82
+ "action": "stickerUpload",
83
+ "guildId": "999",
84
+ "name": "clawdbot_wave",
85
+ "description": "Clawdbot waving hello",
86
+ "tags": "👋",
87
+ "mediaUrl": "file:///tmp/wave.png"
88
+ }
89
+ ```
90
+
91
+ - Stickers require `name`, `description`, and `tags`.
92
+ - Uploads must be PNG/APNG/Lottie JSON and <= 512KB.
93
+
94
+ ### Create a poll
95
+
96
+ ```json
97
+ {
98
+ "action": "poll",
99
+ "to": "channel:123",
100
+ "question": "Lunch?",
101
+ "answers": ["Pizza", "Sushi", "Salad"],
102
+ "allowMultiselect": false,
103
+ "durationHours": 24,
104
+ "content": "Vote now"
105
+ }
106
+ ```
107
+
108
+ - `durationHours` defaults to 24; max 32 days (768 hours).
109
+
110
+ ### Check bot permissions for a channel
111
+
112
+ ```json
113
+ {
114
+ "action": "permissions",
115
+ "channelId": "123"
116
+ }
117
+ ```
118
+
119
+ ## Ideas to try
120
+
121
+ - React with ✅/⚠️ to mark status updates.
122
+ - Post a quick poll for release decisions or meeting times.
123
+ - Send celebratory stickers after successful deploys.
124
+ - Upload new emojis/stickers for release moments.
125
+ - Run weekly “priority check” polls in team channels.
126
+ - DM stickers as acknowledgements when a user’s request is completed.
127
+
128
+ ## Action gating
129
+
130
+ Use `discord.actions.*` to disable action groups:
131
+ - `reactions` (react + reactions list + emojiList)
132
+ - `stickers`, `polls`, `permissions`, `messages`, `threads`, `pins`, `search`
133
+ - `emojiUploads`, `stickerUploads`
134
+ - `memberInfo`, `roleInfo`, `channelInfo`, `voiceStatus`, `events`
135
+ - `roles` (role add/remove, default `false`)
136
+ - `moderation` (timeout/kick/ban, default `false`)
137
+ ### Read recent messages
138
+
139
+ ```json
140
+ {
141
+ "action": "readMessages",
142
+ "channelId": "123",
143
+ "limit": 20
144
+ }
145
+ ```
146
+
147
+ ### Send/edit/delete a message
148
+
149
+ ```json
150
+ {
151
+ "action": "sendMessage",
152
+ "to": "channel:123",
153
+ "content": "Hello from Clawdbot"
154
+ }
155
+ ```
156
+
157
+ **With media attachment:**
158
+
159
+ ```json
160
+ {
161
+ "action": "sendMessage",
162
+ "to": "channel:123",
163
+ "content": "Check out this audio!",
164
+ "mediaUrl": "file:///tmp/audio.mp3"
165
+ }
166
+ ```
167
+
168
+ - `to` uses format `channel:<id>` or `user:<id>` for DMs (not `channelId`!)
169
+ - `mediaUrl` supports local files (`file:///path/to/file`) and remote URLs (`https://...`)
170
+ - Optional `replyTo` with a message ID to reply to a specific message
171
+
172
+ ```json
173
+ {
174
+ "action": "editMessage",
175
+ "channelId": "123",
176
+ "messageId": "456",
177
+ "content": "Fixed typo"
178
+ }
179
+ ```
180
+
181
+ ```json
182
+ {
183
+ "action": "deleteMessage",
184
+ "channelId": "123",
185
+ "messageId": "456"
186
+ }
187
+ ```
188
+
189
+ ### Threads
190
+
191
+ ```json
192
+ {
193
+ "action": "threadCreate",
194
+ "channelId": "123",
195
+ "name": "Bug triage",
196
+ "messageId": "456"
197
+ }
198
+ ```
199
+
200
+ ```json
201
+ {
202
+ "action": "threadList",
203
+ "guildId": "999"
204
+ }
205
+ ```
206
+
207
+ ```json
208
+ {
209
+ "action": "threadReply",
210
+ "channelId": "777",
211
+ "content": "Replying in thread"
212
+ }
213
+ ```
214
+
215
+ ### Pins
216
+
217
+ ```json
218
+ {
219
+ "action": "pinMessage",
220
+ "channelId": "123",
221
+ "messageId": "456"
222
+ }
223
+ ```
224
+
225
+ ```json
226
+ {
227
+ "action": "listPins",
228
+ "channelId": "123"
229
+ }
230
+ ```
231
+
232
+ ### Search messages
233
+
234
+ ```json
235
+ {
236
+ "action": "searchMessages",
237
+ "guildId": "999",
238
+ "content": "release notes",
239
+ "channelIds": ["123", "456"],
240
+ "limit": 10
241
+ }
242
+ ```
243
+
244
+ ### Member + role info
245
+
246
+ ```json
247
+ {
248
+ "action": "memberInfo",
249
+ "guildId": "999",
250
+ "userId": "111"
251
+ }
252
+ ```
253
+
254
+ ```json
255
+ {
256
+ "action": "roleInfo",
257
+ "guildId": "999"
258
+ }
259
+ ```
260
+
261
+ ### List available custom emojis
262
+
263
+ ```json
264
+ {
265
+ "action": "emojiList",
266
+ "guildId": "999"
267
+ }
268
+ ```
269
+
270
+ ### Role changes (disabled by default)
271
+
272
+ ```json
273
+ {
274
+ "action": "roleAdd",
275
+ "guildId": "999",
276
+ "userId": "111",
277
+ "roleId": "222"
278
+ }
279
+ ```
280
+
281
+ ### Channel info
282
+
283
+ ```json
284
+ {
285
+ "action": "channelInfo",
286
+ "channelId": "123"
287
+ }
288
+ ```
289
+
290
+ ```json
291
+ {
292
+ "action": "channelList",
293
+ "guildId": "999"
294
+ }
295
+ ```
296
+
297
+ ### Voice status
298
+
299
+ ```json
300
+ {
301
+ "action": "voiceStatus",
302
+ "guildId": "999",
303
+ "userId": "111"
304
+ }
305
+ ```
306
+
307
+ ### Scheduled events
308
+
309
+ ```json
310
+ {
311
+ "action": "eventList",
312
+ "guildId": "999"
313
+ }
314
+ ```
315
+
316
+ ### Moderation (disabled by default)
317
+
318
+ ```json
319
+ {
320
+ "action": "timeout",
321
+ "guildId": "999",
322
+ "userId": "111",
323
+ "durationMinutes": 10
324
+ }
325
+ ```
326
+
327
+ ## Discord Writing Style Guide
328
+
329
+ **Keep it conversational!** Discord is a chat platform, not documentation.
330
+
331
+ ### Do
332
+ - Short, punchy messages (1-3 sentences ideal)
333
+ - Multiple quick replies > one wall of text
334
+ - Use emoji for tone/emphasis 🦞
335
+ - Lowercase casual style is fine
336
+ - Break up info into digestible chunks
337
+ - Match the energy of the conversation
338
+
339
+ ### Don't
340
+ - No markdown tables (Discord renders them as ugly raw `| text |`)
341
+ - No `## Headers` for casual chat (use **bold** or CAPS for emphasis)
342
+ - Avoid multi-paragraph essays
343
+ - Don't over-explain simple things
344
+ - Skip the "I'd be happy to help!" fluff
345
+
346
+ ### Formatting that works
347
+ - **bold** for emphasis
348
+ - `code` for technical terms
349
+ - Lists for multiple items
350
+ - > quotes for referencing
351
+ - Wrap multiple links in `<>` to suppress embeds
352
+
353
+ ### Example transformations
354
+
355
+ ❌ Bad:
356
+ ```
357
+ I'd be happy to help with that! Here's a comprehensive overview of the versioning strategies available:
358
+
359
+ ## Semantic Versioning
360
+ Semver uses MAJOR.MINOR.PATCH format where...
361
+
362
+ ## Calendar Versioning
363
+ CalVer uses date-based versions like...
364
+ ```
365
+
366
+ ✅ Good:
367
+ ```
368
+ versioning options: semver (1.2.3), calver (2026.01.04), or yolo (`latest` forever). what fits your release cadence?
369
+ ```