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.
- package/CHANGELOG.md +115 -0
- package/LICENSE +21 -0
- package/README-header.png +0 -0
- package/README.md +297 -0
- package/dist/agents/agent-paths.js +17 -0
- package/dist/agents/bash-process-registry.js +126 -0
- package/dist/agents/bash-tools.js +837 -0
- package/dist/agents/clawdbot-tools.js +30 -0
- package/dist/agents/clawdis-tools.js +27 -0
- package/dist/agents/context.js +34 -0
- package/dist/agents/defaults.js +6 -0
- package/dist/agents/model-auth.js +112 -0
- package/dist/agents/model-catalog.js +55 -0
- package/dist/agents/model-fallback.js +191 -0
- package/dist/agents/model-scan.js +263 -0
- package/dist/agents/model-selection.js +116 -0
- package/dist/agents/models-config.js +49 -0
- package/dist/agents/pi-embedded-helpers.js +74 -0
- package/dist/agents/pi-embedded-runner.js +407 -0
- package/dist/agents/pi-embedded-subscribe.js +568 -0
- package/dist/agents/pi-embedded-utils.js +20 -0
- package/dist/agents/pi-embedded.js +1 -0
- package/dist/agents/pi-oauth.js +88 -0
- package/dist/agents/pi-tools.js +433 -0
- package/dist/agents/sandbox-paths.js +68 -0
- package/dist/agents/sandbox.js +644 -0
- package/dist/agents/shell-utils.js +53 -0
- package/dist/agents/skills-install.js +244 -0
- package/dist/agents/skills-status.js +157 -0
- package/dist/agents/skills.js +470 -0
- package/dist/agents/steerable-agent-loop.js +338 -0
- package/dist/agents/steerable-provider-transport.js +48 -0
- package/dist/agents/system-prompt.js +104 -0
- package/dist/agents/tool-display.js +162 -0
- package/dist/agents/tool-images.js +138 -0
- package/dist/agents/tools/browser-tool.js +339 -0
- package/dist/agents/tools/canvas-tool.js +193 -0
- package/dist/agents/tools/common.js +88 -0
- package/dist/agents/tools/cron-tool.js +124 -0
- package/dist/agents/tools/discord-actions-guild.js +186 -0
- package/dist/agents/tools/discord-actions-messaging.js +285 -0
- package/dist/agents/tools/discord-actions-moderation.js +70 -0
- package/dist/agents/tools/discord-actions.js +56 -0
- package/dist/agents/tools/discord-schema.js +199 -0
- package/dist/agents/tools/discord-tool.js +16 -0
- package/dist/agents/tools/gateway-tool.js +46 -0
- package/dist/agents/tools/gateway.js +27 -0
- package/dist/agents/tools/image-tool.js +132 -0
- package/dist/agents/tools/nodes-tool.js +413 -0
- package/dist/agents/tools/nodes-utils.js +92 -0
- package/dist/agents/tools/sessions-helpers.js +88 -0
- package/dist/agents/tools/sessions-history-tool.js +53 -0
- package/dist/agents/tools/sessions-list-tool.js +143 -0
- package/dist/agents/tools/sessions-send-helpers.js +100 -0
- package/dist/agents/tools/sessions-send-tool.js +347 -0
- package/dist/agents/tools/slack-actions.js +129 -0
- package/dist/agents/tools/slack-schema.js +59 -0
- package/dist/agents/tools/slack-tool.js +16 -0
- package/dist/agents/usage.js +39 -0
- package/dist/agents/workspace.js +241 -0
- package/dist/auto-reply/chunk.js +76 -0
- package/dist/auto-reply/envelope.js +38 -0
- package/dist/auto-reply/group-activation.js +20 -0
- package/dist/auto-reply/heartbeat.js +57 -0
- package/dist/auto-reply/model.js +14 -0
- package/dist/auto-reply/reply/abort.js +14 -0
- package/dist/auto-reply/reply/agent-runner.js +371 -0
- package/dist/auto-reply/reply/block-streaming.js +34 -0
- package/dist/auto-reply/reply/body.js +29 -0
- package/dist/auto-reply/reply/commands.js +207 -0
- package/dist/auto-reply/reply/directive-handling.js +361 -0
- package/dist/auto-reply/reply/directives.js +47 -0
- package/dist/auto-reply/reply/followup-runner.js +149 -0
- package/dist/auto-reply/reply/groups.js +91 -0
- package/dist/auto-reply/reply/mentions.js +38 -0
- package/dist/auto-reply/reply/model-selection.js +114 -0
- package/dist/auto-reply/reply/queue.js +399 -0
- package/dist/auto-reply/reply/reply-tags.js +26 -0
- package/dist/auto-reply/reply/session-updates.js +87 -0
- package/dist/auto-reply/reply/session.js +160 -0
- package/dist/auto-reply/reply/typing.js +75 -0
- package/dist/auto-reply/reply.js +535 -0
- package/dist/auto-reply/send-policy.js +28 -0
- package/dist/auto-reply/status.js +158 -0
- package/dist/auto-reply/templating.js +9 -0
- package/dist/auto-reply/thinking.js +49 -0
- package/dist/auto-reply/tokens.js +2 -0
- package/dist/auto-reply/tool-meta.js +74 -0
- package/dist/auto-reply/transcription.js +57 -0
- package/dist/auto-reply/types.js +1 -0
- package/dist/browser/bridge-server.js +37 -0
- package/dist/browser/cdp.js +382 -0
- package/dist/browser/chrome.js +432 -0
- package/dist/browser/client-actions-core.js +67 -0
- package/dist/browser/client-actions-observe.js +24 -0
- package/dist/browser/client-actions-types.js +1 -0
- package/dist/browser/client-actions.js +3 -0
- package/dist/browser/client-fetch.js +43 -0
- package/dist/browser/client.js +105 -0
- package/dist/browser/config.js +140 -0
- package/dist/browser/constants.js +4 -0
- package/dist/browser/profiles-service.js +122 -0
- package/dist/browser/profiles.js +85 -0
- package/dist/browser/pw-ai.js +2 -0
- package/dist/browser/pw-session.js +144 -0
- package/dist/browser/pw-tools-core.js +363 -0
- package/dist/browser/routes/agent.js +535 -0
- package/dist/browser/routes/basic.js +155 -0
- package/dist/browser/routes/index.js +8 -0
- package/dist/browser/routes/tabs.js +105 -0
- package/dist/browser/routes/utils.js +62 -0
- package/dist/browser/screenshot.js +40 -0
- package/dist/browser/server-context.js +377 -0
- package/dist/browser/server.js +81 -0
- package/dist/browser/target-id.js +18 -0
- package/dist/browser/trash.js +21 -0
- package/dist/canvas-host/a2ui/.bundle.hash +1 -0
- package/dist/canvas-host/a2ui/a2ui.bundle.js +17768 -0
- package/dist/canvas-host/a2ui/index.html +246 -0
- package/dist/canvas-host/a2ui.js +187 -0
- package/dist/canvas-host/server.js +382 -0
- package/dist/cli/browser-cli-actions-input.js +459 -0
- package/dist/cli/browser-cli-actions-observe.js +56 -0
- package/dist/cli/browser-cli-examples.js +31 -0
- package/dist/cli/browser-cli-inspect.js +97 -0
- package/dist/cli/browser-cli-manage.js +286 -0
- package/dist/cli/browser-cli-shared.js +1 -0
- package/dist/cli/browser-cli.js +26 -0
- package/dist/cli/canvas-cli.js +416 -0
- package/dist/cli/cron-cli.js +454 -0
- package/dist/cli/deps.js +17 -0
- package/dist/cli/dns-cli.js +180 -0
- package/dist/cli/gateway-cli.js +489 -0
- package/dist/cli/gateway-rpc.js +20 -0
- package/dist/cli/hooks-cli.js +135 -0
- package/dist/cli/models-cli.js +248 -0
- package/dist/cli/nodes-camera.js +57 -0
- package/dist/cli/nodes-canvas.js +26 -0
- package/dist/cli/nodes-cli.js +946 -0
- package/dist/cli/nodes-screen.js +37 -0
- package/dist/cli/parse-duration.js +20 -0
- package/dist/cli/ports.js +97 -0
- package/dist/cli/program.js +406 -0
- package/dist/cli/prompt.js +19 -0
- package/dist/cli/tui-cli.js +35 -0
- package/dist/cli/wait.js +8 -0
- package/dist/commands/agent.js +645 -0
- package/dist/commands/antigravity-oauth.js +327 -0
- package/dist/commands/configure.js +480 -0
- package/dist/commands/doctor.js +484 -0
- package/dist/commands/health.js +108 -0
- package/dist/commands/models/aliases.js +64 -0
- package/dist/commands/models/fallbacks.js +99 -0
- package/dist/commands/models/image-fallbacks.js +99 -0
- package/dist/commands/models/list.js +323 -0
- package/dist/commands/models/scan.js +266 -0
- package/dist/commands/models/set-image.js +23 -0
- package/dist/commands/models/set.js +23 -0
- package/dist/commands/models/shared.js +72 -0
- package/dist/commands/models.js +7 -0
- package/dist/commands/onboard-auth.js +70 -0
- package/dist/commands/onboard-helpers.js +295 -0
- package/dist/commands/onboard-interactive.js +17 -0
- package/dist/commands/onboard-non-interactive.js +202 -0
- package/dist/commands/onboard-providers.js +634 -0
- package/dist/commands/onboard-remote.js +120 -0
- package/dist/commands/onboard-skills.js +148 -0
- package/dist/commands/onboard-types.js +1 -0
- package/dist/commands/onboard.js +12 -0
- package/dist/commands/send.js +124 -0
- package/dist/commands/sessions.js +212 -0
- package/dist/commands/setup.js +58 -0
- package/dist/commands/signal-install.js +135 -0
- package/dist/commands/status.js +207 -0
- package/dist/commands/update.js +16 -0
- package/dist/config/config.js +6 -0
- package/dist/config/defaults.js +61 -0
- package/dist/config/io.js +147 -0
- package/dist/config/legacy-migrate.js +13 -0
- package/dist/config/legacy.js +159 -0
- package/dist/config/paths.js +71 -0
- package/dist/config/schema.js +150 -0
- package/dist/config/sessions.js +282 -0
- package/dist/config/talk.js +31 -0
- package/dist/config/types.js +1 -0
- package/dist/config/validation.js +29 -0
- package/dist/config/zod-schema.js +831 -0
- package/dist/cron/isolated-agent.js +499 -0
- package/dist/cron/run-log.js +72 -0
- package/dist/cron/schedule.js +24 -0
- package/dist/cron/service.js +471 -0
- package/dist/cron/store.js +43 -0
- package/dist/cron/types.js +1 -0
- package/dist/discord/index.js +2 -0
- package/dist/discord/monitor.js +1188 -0
- package/dist/discord/probe.js +54 -0
- package/dist/discord/send.js +577 -0
- package/dist/discord/token.js +8 -0
- package/dist/gateway/auth.js +121 -0
- package/dist/gateway/call.js +94 -0
- package/dist/gateway/chat-attachments.js +41 -0
- package/dist/gateway/client.js +180 -0
- package/dist/gateway/config-reload.js +274 -0
- package/dist/gateway/control-ui.js +184 -0
- package/dist/gateway/hooks-mapping.js +282 -0
- package/dist/gateway/hooks.js +168 -0
- package/dist/gateway/net.js +29 -0
- package/dist/gateway/protocol/index.js +61 -0
- package/dist/gateway/protocol/schema.js +560 -0
- package/dist/gateway/server-bridge-subscriptions.js +93 -0
- package/dist/gateway/server-bridge.js +1013 -0
- package/dist/gateway/server-browser.js +12 -0
- package/dist/gateway/server-chat.js +159 -0
- package/dist/gateway/server-constants.js +8 -0
- package/dist/gateway/server-discovery.js +62 -0
- package/dist/gateway/server-http.js +165 -0
- package/dist/gateway/server-methods/agent-job.js +125 -0
- package/dist/gateway/server-methods/agent.js +250 -0
- package/dist/gateway/server-methods/chat.js +200 -0
- package/dist/gateway/server-methods/config.js +50 -0
- package/dist/gateway/server-methods/connect.js +6 -0
- package/dist/gateway/server-methods/cron.js +83 -0
- package/dist/gateway/server-methods/health.js +28 -0
- package/dist/gateway/server-methods/models.js +16 -0
- package/dist/gateway/server-methods/nodes.js +294 -0
- package/dist/gateway/server-methods/providers.js +217 -0
- package/dist/gateway/server-methods/send.js +166 -0
- package/dist/gateway/server-methods/sessions.js +305 -0
- package/dist/gateway/server-methods/skills.js +83 -0
- package/dist/gateway/server-methods/system.js +118 -0
- package/dist/gateway/server-methods/talk.js +22 -0
- package/dist/gateway/server-methods/types.js +1 -0
- package/dist/gateway/server-methods/voicewake.js +30 -0
- package/dist/gateway/server-methods/web.js +58 -0
- package/dist/gateway/server-methods/wizard.js +100 -0
- package/dist/gateway/server-methods.js +53 -0
- package/dist/gateway/server-providers.js +644 -0
- package/dist/gateway/server-shared.js +1 -0
- package/dist/gateway/server-utils.js +35 -0
- package/dist/gateway/server.js +1437 -0
- package/dist/gateway/session-utils.js +216 -0
- package/dist/gateway/ws-log.js +349 -0
- package/dist/gateway/ws-logging.js +8 -0
- package/dist/globals.js +41 -0
- package/dist/hooks/gmail-ops.js +236 -0
- package/dist/hooks/gmail-setup-utils.js +278 -0
- package/dist/hooks/gmail-watcher.js +175 -0
- package/dist/hooks/gmail.js +177 -0
- package/dist/index.js +50 -0
- package/dist/infra/agent-events.js +46 -0
- package/dist/infra/binaries.js +9 -0
- package/dist/infra/bonjour-discovery.js +163 -0
- package/dist/infra/bonjour.js +200 -0
- package/dist/infra/bridge/server.js +562 -0
- package/dist/infra/canvas-host-url.js +54 -0
- package/dist/infra/env.js +8 -0
- package/dist/infra/errors.js +28 -0
- package/dist/infra/gateway-lock.js +8 -0
- package/dist/infra/heartbeat-events.js +21 -0
- package/dist/infra/heartbeat-runner.js +453 -0
- package/dist/infra/heartbeat-wake.js +61 -0
- package/dist/infra/is-main.js +37 -0
- package/dist/infra/machine-name.js +40 -0
- package/dist/infra/node-pairing.js +211 -0
- package/dist/infra/pam.js +42 -0
- package/dist/infra/path-env.js +92 -0
- package/dist/infra/ports.js +87 -0
- package/dist/infra/provider-summary.js +80 -0
- package/dist/infra/restart.js +29 -0
- package/dist/infra/retry.js +16 -0
- package/dist/infra/runtime-guard.js +59 -0
- package/dist/infra/system-events.js +44 -0
- package/dist/infra/system-presence.js +216 -0
- package/dist/infra/tailnet.js +46 -0
- package/dist/infra/tailscale.js +149 -0
- package/dist/infra/voicewake.js +77 -0
- package/dist/infra/widearea-dns.js +123 -0
- package/dist/infra/ws.js +13 -0
- package/dist/logger.js +52 -0
- package/dist/logging.js +490 -0
- package/dist/macos/gateway-daemon.js +141 -0
- package/dist/macos/relay.js +46 -0
- package/dist/media/constants.js +33 -0
- package/dist/media/host.js +42 -0
- package/dist/media/image-ops.js +121 -0
- package/dist/media/mime.js +115 -0
- package/dist/media/parse.js +81 -0
- package/dist/media/server.js +64 -0
- package/dist/media/store.js +139 -0
- package/dist/process/command-queue.js +97 -0
- package/dist/process/exec.js +75 -0
- package/dist/protocol.schema.json +2918 -0
- package/dist/provider-web.js +8 -0
- package/dist/providers/web/index.js +2 -0
- package/dist/runtime.js +8 -0
- package/dist/telegram/bot.js +394 -0
- package/dist/telegram/download.js +34 -0
- package/dist/telegram/index.js +4 -0
- package/dist/telegram/monitor.js +47 -0
- package/dist/telegram/probe.js +63 -0
- package/dist/telegram/proxy.js +9 -0
- package/dist/telegram/send.js +138 -0
- package/dist/telegram/token.js +30 -0
- package/dist/telegram/webhook-set.js +12 -0
- package/dist/telegram/webhook.js +56 -0
- package/dist/utils.js +133 -0
- package/dist/version.js +18 -0
- package/dist/web/active-listener.js +7 -0
- package/dist/web/auto-reply.js +1203 -0
- package/dist/web/inbound.js +481 -0
- package/dist/web/login-qr.js +204 -0
- package/dist/web/login.js +59 -0
- package/dist/web/media.js +148 -0
- package/dist/web/outbound.js +67 -0
- package/dist/web/qr-image.js +97 -0
- package/dist/web/reconnect.js +60 -0
- package/dist/web/reply-heartbeat-wake.js +61 -0
- package/dist/web/session.js +346 -0
- package/docs/AGENTS.default.md +116 -0
- package/docs/CNAME +1 -0
- package/docs/RELEASING.md +64 -0
- package/docs/_config.yml +51 -0
- package/docs/_layouts/default.html +145 -0
- package/docs/agent-send.md +21 -0
- package/docs/agent.md +104 -0
- package/docs/android/connect.md +131 -0
- package/docs/architecture.md +89 -0
- package/docs/assets/markdown.css +130 -0
- package/docs/assets/pixel-lobster.svg +60 -0
- package/docs/assets/terminal.css +497 -0
- package/docs/assets/theme.js +55 -0
- package/docs/audio.md +50 -0
- package/docs/background-process.md +74 -0
- package/docs/bash.md +32 -0
- package/docs/bonjour.md +159 -0
- package/docs/browser.md +289 -0
- package/docs/camera.md +152 -0
- package/docs/clawd.md +199 -0
- package/docs/clawdbot-mac.md +104 -0
- package/docs/configuration.md +1177 -0
- package/docs/control-api.md +49 -0
- package/docs/control-ui.md +83 -0
- package/docs/cron.md +374 -0
- package/docs/dashboard.md +17 -0
- package/docs/device-models.md +46 -0
- package/docs/discord.md +293 -0
- package/docs/discovery.md +112 -0
- package/docs/docker.md +251 -0
- package/docs/docs.json +86 -0
- package/docs/doctor.md +47 -0
- package/docs/elevated.md +31 -0
- package/docs/faq.md +640 -0
- package/docs/gateway/pairing.md +109 -0
- package/docs/gateway-lock.md +28 -0
- package/docs/gateway.md +174 -0
- package/docs/gmail-pubsub.md +191 -0
- package/docs/grammy.md +27 -0
- package/docs/group-messages.md +71 -0
- package/docs/groups.md +78 -0
- package/docs/health.md +28 -0
- package/docs/heartbeat.md +64 -0
- package/docs/images.md +52 -0
- package/docs/imessage.md +63 -0
- package/docs/index.md +182 -0
- package/docs/ios/connect.md +177 -0
- package/docs/ios/spec.md +236 -0
- package/docs/location-command.md +95 -0
- package/docs/logging.md +99 -0
- package/docs/lore.md +131 -0
- package/docs/mac/bun.md +133 -0
- package/docs/mac/canvas.md +161 -0
- package/docs/mac/child-process.md +72 -0
- package/docs/mac/dev-setup.md +81 -0
- package/docs/mac/health.md +28 -0
- package/docs/mac/icon.md +26 -0
- package/docs/mac/logging.md +51 -0
- package/docs/mac/menu-bar.md +69 -0
- package/docs/mac/peekaboo.md +170 -0
- package/docs/mac/permissions.md +40 -0
- package/docs/mac/release.md +76 -0
- package/docs/mac/remote.md +57 -0
- package/docs/mac/signing.md +41 -0
- package/docs/mac/skills.md +27 -0
- package/docs/mac/voice-overlay.md +52 -0
- package/docs/mac/voicewake.md +56 -0
- package/docs/mac/webchat.md +27 -0
- package/docs/mac/xpc.md +40 -0
- package/docs/models.md +90 -0
- package/docs/nix.md +49 -0
- package/docs/nodes.md +157 -0
- package/docs/onboarding-config-protocol.md +29 -0
- package/docs/onboarding.md +185 -0
- package/docs/presence.md +133 -0
- package/docs/queue.md +78 -0
- package/docs/refactor/browser-control-simplification.md +58 -0
- package/docs/refactor/canvas-a2ui.md +93 -0
- package/docs/refactor/cli-unification.md +64 -0
- package/docs/refactor/gateway-client.md +31 -0
- package/docs/refactor/gateway.md +99 -0
- package/docs/refactor/new-arch.md +171 -0
- package/docs/refactor/tui.md +26 -0
- package/docs/refactor/web-gateway-troubleshooting.md +37 -0
- package/docs/refactor/webagent-session.md +46 -0
- package/docs/remote-gateway-readme.md +148 -0
- package/docs/remote.md +66 -0
- package/docs/research/memory.md +227 -0
- package/docs/rpc.md +35 -0
- package/docs/security.md +168 -0
- package/docs/session-tool.md +119 -0
- package/docs/session.md +84 -0
- package/docs/sessions.md +8 -0
- package/docs/setup.md +118 -0
- package/docs/signal.md +113 -0
- package/docs/skills-config.md +58 -0
- package/docs/skills.md +149 -0
- package/docs/slack.md +158 -0
- package/docs/surface.md +20 -0
- package/docs/tailscale.md +71 -0
- package/docs/talk.md +79 -0
- package/docs/telegram.md +90 -0
- package/docs/templates/AGENTS.md +126 -0
- package/docs/templates/BOOTSTRAP.md +53 -0
- package/docs/templates/IDENTITY.md +17 -0
- package/docs/templates/SOUL.md +41 -0
- package/docs/templates/TOOLS.md +41 -0
- package/docs/templates/USER.md +22 -0
- package/docs/test.md +35 -0
- package/docs/thinking.md +46 -0
- package/docs/tools.md +248 -0
- package/docs/troubleshooting.md +227 -0
- package/docs/tui.md +69 -0
- package/docs/typebox.md +42 -0
- package/docs/voicewake.md +61 -0
- package/docs/web.md +115 -0
- package/docs/webchat.md +34 -0
- package/docs/webhook.md +132 -0
- package/docs/whatsapp-clawd.jpg +0 -0
- package/docs/whatsapp.md +142 -0
- package/docs/wizard.md +158 -0
- package/package.json +178 -0
- package/skills/apple-notes/SKILL.md +50 -0
- package/skills/apple-reminders/SKILL.md +67 -0
- package/skills/bear-notes/SKILL.md +79 -0
- package/skills/bird/SKILL.md +25 -0
- package/skills/blogwatcher/SKILL.md +46 -0
- package/skills/blucli/SKILL.md +27 -0
- package/skills/brave-search/SKILL.md +30 -0
- package/skills/brave-search/scripts/content.mjs +53 -0
- package/skills/brave-search/scripts/search.mjs +79 -0
- package/skills/camsnap/SKILL.md +25 -0
- package/skills/clawdhub/SKILL.md +53 -0
- package/skills/coding-agent/SKILL.md +275 -0
- package/skills/discord/SKILL.md +369 -0
- package/skills/eightctl/SKILL.md +29 -0
- package/skills/food-order/SKILL.md +41 -0
- package/skills/gemini/SKILL.md +23 -0
- package/skills/gifgrep/SKILL.md +47 -0
- package/skills/github/SKILL.md +47 -0
- package/skills/gog/SKILL.md +36 -0
- package/skills/goplaces/SKILL.md +30 -0
- package/skills/imsg/SKILL.md +25 -0
- package/skills/local-places/SERVER_README.md +101 -0
- package/skills/local-places/SKILL.md +91 -0
- package/skills/local-places/pyproject.toml +27 -0
- package/skills/local-places/src/local_places/__init__.py +2 -0
- package/skills/local-places/src/local_places/__pycache__/__init__.cpython-314.pyc +0 -0
- package/skills/local-places/src/local_places/__pycache__/google_places.cpython-314.pyc +0 -0
- package/skills/local-places/src/local_places/__pycache__/main.cpython-314.pyc +0 -0
- package/skills/local-places/src/local_places/__pycache__/schemas.cpython-314.pyc +0 -0
- package/skills/local-places/src/local_places/google_places.py +314 -0
- package/skills/local-places/src/local_places/main.py +65 -0
- package/skills/local-places/src/local_places/schemas.py +107 -0
- package/skills/mcporter/SKILL.md +38 -0
- package/skills/nano-banana-pro/SKILL.md +29 -0
- package/skills/nano-banana-pro/scripts/generate_image.py +167 -0
- package/skills/nano-pdf/SKILL.md +20 -0
- package/skills/notion/SKILL.md +156 -0
- package/skills/obsidian/SKILL.md +55 -0
- package/skills/openai-image-gen/SKILL.md +31 -0
- package/skills/openai-image-gen/scripts/gen.py +173 -0
- package/skills/openai-whisper/SKILL.md +19 -0
- package/skills/openai-whisper-api/SKILL.md +43 -0
- package/skills/openai-whisper-api/scripts/transcribe.sh +85 -0
- package/skills/openhue/SKILL.md +30 -0
- package/skills/oracle/SKILL.md +105 -0
- package/skills/ordercli/SKILL.md +47 -0
- package/skills/peekaboo/SKILL.md +153 -0
- package/skills/qmd/SKILL.md +26 -0
- package/skills/sag/SKILL.md +62 -0
- package/skills/slack/SKILL.md +143 -0
- package/skills/songsee/SKILL.md +29 -0
- package/skills/sonoscli/SKILL.md +26 -0
- package/skills/spotify-player/SKILL.md +34 -0
- package/skills/summarize/SKILL.md +49 -0
- package/skills/things-mac/SKILL.md +61 -0
- package/skills/tmux/SKILL.md +121 -0
- package/skills/tmux/scripts/find-sessions.sh +112 -0
- package/skills/tmux/scripts/wait-for-text.sh +83 -0
- package/skills/trello/SKILL.md +84 -0
- package/skills/video-frames/SKILL.md +29 -0
- package/skills/video-frames/scripts/frame.sh +81 -0
- package/skills/wacli/SKILL.md +42 -0
- 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
|
+
```
|