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
package/docs/clawd.md
ADDED
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "End-to-end guide for running Clawdbot as a personal assistant with safety cautions"
|
|
3
|
+
read_when:
|
|
4
|
+
- Onboarding a new assistant instance
|
|
5
|
+
- Reviewing safety/permission implications
|
|
6
|
+
---
|
|
7
|
+
<!-- {% raw %} -->
|
|
8
|
+
# Building a personal assistant with CLAWDBOT (Clawd-style)
|
|
9
|
+
|
|
10
|
+
CLAWDBOT is a WhatsApp + Telegram + Discord gateway for **Pi** agents. This guide is the “personal assistant” setup: one dedicated WhatsApp number that behaves like your always-on agent.
|
|
11
|
+
|
|
12
|
+
## ⚠️ Safety first
|
|
13
|
+
|
|
14
|
+
You’re putting an agent in a position to:
|
|
15
|
+
- run commands on your machine (depending on your Pi tool setup)
|
|
16
|
+
- read/write files in your workspace
|
|
17
|
+
- send messages back out via WhatsApp/Telegram/Discord
|
|
18
|
+
|
|
19
|
+
Start conservative:
|
|
20
|
+
- Always set `whatsapp.allowFrom` (never run open-to-the-world on your personal Mac).
|
|
21
|
+
- Use a dedicated WhatsApp number for the assistant.
|
|
22
|
+
- Keep heartbeats disabled until you trust the setup (omit `agent.heartbeat` or set `agent.heartbeat.every: "0m"`).
|
|
23
|
+
|
|
24
|
+
## Prerequisites
|
|
25
|
+
|
|
26
|
+
- Node **22+**
|
|
27
|
+
- CLAWDBOT available on PATH (recommended during development: from source + global link)
|
|
28
|
+
- A second phone number (SIM/eSIM/prepaid) for the assistant
|
|
29
|
+
|
|
30
|
+
From source (recommended while the npm package is still settling):
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
pnpm install
|
|
34
|
+
pnpm build
|
|
35
|
+
pnpm link --global
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## The two-phone setup (recommended)
|
|
39
|
+
|
|
40
|
+
You want this:
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
Your Phone (personal) Second Phone (assistant)
|
|
44
|
+
┌─────────────────┐ ┌─────────────────┐
|
|
45
|
+
│ Your WhatsApp │ ──────▶ │ Assistant WA │
|
|
46
|
+
│ +1-555-YOU │ message │ +1-555-CLAWD │
|
|
47
|
+
└─────────────────┘ └────────┬────────┘
|
|
48
|
+
│ linked via QR
|
|
49
|
+
▼
|
|
50
|
+
┌─────────────────┐
|
|
51
|
+
│ Your Mac │
|
|
52
|
+
│ (clawdbot) │
|
|
53
|
+
│ Pi agent │
|
|
54
|
+
└─────────────────┘
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
If you link your personal WhatsApp to CLAWDBOT, every message to you becomes “agent input”. That’s rarely what you want.
|
|
58
|
+
|
|
59
|
+
## 5-minute quick start
|
|
60
|
+
|
|
61
|
+
1) Pair WhatsApp Web (shows QR; scan with the assistant phone):
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
clawdbot login
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
2) Start the Gateway (leave it running):
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
clawdbot gateway --port 18789
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
3) Put a minimal config in `~/.clawdbot/clawdbot.json`:
|
|
74
|
+
|
|
75
|
+
```json5
|
|
76
|
+
{
|
|
77
|
+
whatsapp: {
|
|
78
|
+
allowFrom: ["+15555550123"]
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Now message the assistant number from your allowlisted phone.
|
|
84
|
+
|
|
85
|
+
## Give the agent a workspace (AGENTS.md)
|
|
86
|
+
|
|
87
|
+
Clawd reads operating instructions and “memory” from its workspace directory.
|
|
88
|
+
|
|
89
|
+
By default, Clawdbot uses `~/clawd` as the agent workspace, and will create it (plus starter `AGENTS.md`, `SOUL.md`, `TOOLS.md`) automatically on setup/first agent run.
|
|
90
|
+
|
|
91
|
+
Tip: treat this folder like Clawd’s “memory” and make it a git repo (ideally private) so your `AGENTS.md` + memory files are backed up.
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
clawdbot setup
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Optional: choose a different workspace with `agent.workspace` (supports `~`).
|
|
98
|
+
|
|
99
|
+
```json5
|
|
100
|
+
{
|
|
101
|
+
agent: {
|
|
102
|
+
workspace: "~/clawd"
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## The config that turns it into “an assistant”
|
|
108
|
+
|
|
109
|
+
CLAWDBOT defaults to a good assistant setup, but you’ll usually want to tune:
|
|
110
|
+
- persona/instructions in `SOUL.md`
|
|
111
|
+
- thinking defaults (if desired)
|
|
112
|
+
- heartbeats (once you trust it)
|
|
113
|
+
|
|
114
|
+
Example:
|
|
115
|
+
|
|
116
|
+
```json5
|
|
117
|
+
{
|
|
118
|
+
logging: { level: "info" },
|
|
119
|
+
agent: {
|
|
120
|
+
model: "anthropic/claude-opus-4-5",
|
|
121
|
+
workspace: "~/clawd",
|
|
122
|
+
thinkingDefault: "high",
|
|
123
|
+
timeoutSeconds: 1800,
|
|
124
|
+
// Start with 0; enable later.
|
|
125
|
+
heartbeat: { every: "0m" }
|
|
126
|
+
},
|
|
127
|
+
whatsapp: {
|
|
128
|
+
allowFrom: ["+15555550123"],
|
|
129
|
+
groups: {
|
|
130
|
+
"*": { requireMention: true }
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
routing: {
|
|
134
|
+
groupChat: {
|
|
135
|
+
mentionPatterns: ["@clawd", "clawd"]
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
session: {
|
|
139
|
+
scope: "per-sender",
|
|
140
|
+
resetTriggers: ["/new", "/reset"],
|
|
141
|
+
idleMinutes: 10080
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Sessions and memory
|
|
147
|
+
|
|
148
|
+
- Session files: `~/.clawdbot/sessions/{{SessionId}}.jsonl`
|
|
149
|
+
- Session metadata (token usage, last route, etc): `~/.clawdbot/sessions/sessions.json` (legacy: `~/.clawdbot/sessions.json`)
|
|
150
|
+
- `/new` or `/reset` starts a fresh session for that chat (configurable via `resetTriggers`). If sent alone, the agent replies with a short hello to confirm the reset.
|
|
151
|
+
|
|
152
|
+
## Heartbeats (proactive mode)
|
|
153
|
+
|
|
154
|
+
When `agent.heartbeat.every` is set to a positive interval, CLAWDBOT periodically runs a heartbeat prompt (default: `HEARTBEAT`).
|
|
155
|
+
|
|
156
|
+
- If the agent replies with `HEARTBEAT_OK` (exact token), CLAWDBOT suppresses outbound delivery for that heartbeat.
|
|
157
|
+
|
|
158
|
+
```json5
|
|
159
|
+
{
|
|
160
|
+
agent: {
|
|
161
|
+
heartbeat: { every: "30m" }
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
## Media in and out
|
|
167
|
+
|
|
168
|
+
Inbound attachments (images/audio/docs) can be surfaced to your command via templates:
|
|
169
|
+
- `{{MediaPath}}` (local temp file path)
|
|
170
|
+
- `{{MediaUrl}}` (pseudo-URL)
|
|
171
|
+
- `{{Transcript}}` (if audio transcription is enabled)
|
|
172
|
+
|
|
173
|
+
Outbound attachments from the agent: include `MEDIA:<path-or-url>` on its own line (no spaces). Example:
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
Here’s the screenshot.
|
|
177
|
+
MEDIA:/tmp/screenshot.png
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
CLAWDBOT extracts these and sends them as media alongside the text.
|
|
181
|
+
|
|
182
|
+
## Operations checklist
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
clawdbot status # local status (creds, sessions, queued events)
|
|
186
|
+
clawdbot status --deep # also probes the running Gateway (WA connect + Telegram)
|
|
187
|
+
clawdbot health --json # gateway health snapshot (WS)
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
Logs live under `/tmp/clawdbot/` (default: `clawdbot-YYYY-MM-DD.log`).
|
|
191
|
+
|
|
192
|
+
## Next steps
|
|
193
|
+
|
|
194
|
+
- WebChat: [WebChat](./webchat.md)
|
|
195
|
+
- Gateway ops: [Gateway runbook](./gateway.md)
|
|
196
|
+
- Cron + wakeups: [Cron + wakeups](./cron.md)
|
|
197
|
+
- macOS menu bar companion: [Clawdbot macOS app](./clawdbot-mac.md)
|
|
198
|
+
- Security: [Security](./security.md)
|
|
199
|
+
<!-- {% endraw %} -->
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Spec for the Clawdbot macOS companion menu bar app (gateway + node broker)"
|
|
3
|
+
read_when:
|
|
4
|
+
- Implementing macOS app features
|
|
5
|
+
- Changing gateway lifecycle or node bridging on macOS
|
|
6
|
+
---
|
|
7
|
+
# Clawdbot macOS Companion (menu bar + gateway broker)
|
|
8
|
+
|
|
9
|
+
Author: steipete · Status: draft spec · Date: 2025-12-20
|
|
10
|
+
|
|
11
|
+
## Purpose
|
|
12
|
+
- Single macOS menu-bar app named **Clawdbot** that:
|
|
13
|
+
- Shows native notifications for Clawdbot/clawdbot events.
|
|
14
|
+
- Owns TCC prompts (Notifications, Accessibility, Screen Recording, Automation/AppleScript, Microphone, Speech Recognition).
|
|
15
|
+
- Runs (or connects to) the **Gateway** and exposes itself as a **node** so agents can reach macOS‑only features.
|
|
16
|
+
- Hosts **PeekabooBridge** for UI automation (consumed by `peekaboo`; see `docs/mac/peekaboo.md`).
|
|
17
|
+
- Installs a single CLI (`clawdbot`) by symlinking the bundled binary.
|
|
18
|
+
|
|
19
|
+
## High-level design
|
|
20
|
+
- SwiftPM package in `apps/macos/` (macOS 15+, Swift 6).
|
|
21
|
+
- Targets:
|
|
22
|
+
- `ClawdbotIPC` (shared Codable types + helpers for app‑internal actions).
|
|
23
|
+
- `Clawdbot` (LSUIElement MenuBarExtra app; hosts Gateway + node bridge + PeekabooBridgeHost).
|
|
24
|
+
- Bundle ID: `com.clawdbot.mac`.
|
|
25
|
+
- Bundled runtime binaries live under `Contents/Resources/Relay/`:
|
|
26
|
+
- `clawdbot` (bun‑compiled relay: CLI + gateway-daemon)
|
|
27
|
+
- The app symlinks `clawdbot` into `/usr/local/bin` and `/opt/homebrew/bin`.
|
|
28
|
+
|
|
29
|
+
## Gateway + node bridge
|
|
30
|
+
- The mac app runs the Gateway in **local** mode (unless configured remote).
|
|
31
|
+
- The gateway port is configurable via `gateway.port` or `CLAWDBOT_GATEWAY_PORT` (default 18789). The mac app reads that value for launchd, probes, and remote SSH tunnels.
|
|
32
|
+
- The mac app connects to the bridge as a **node** and advertises capabilities/commands.
|
|
33
|
+
- Agent‑facing actions are exposed via `node.invoke` (no local control socket).
|
|
34
|
+
- The mac app watches `~/.clawdbot/clawdbot.json` and switches modes live when `gateway.mode` or `gateway.remote.url` changes.
|
|
35
|
+
- If `gateway.mode` is unset but `gateway.remote.url` is set, the mac app treats it as remote mode.
|
|
36
|
+
- Changing connection mode in the mac app writes `gateway.mode` (and `gateway.remote.url` in remote mode) back to the config file.
|
|
37
|
+
|
|
38
|
+
### Node commands (mac)
|
|
39
|
+
- Canvas: `canvas.present|navigate|eval|snapshot|a2ui.*`
|
|
40
|
+
- Camera: `camera.snap|camera.clip`
|
|
41
|
+
- Screen: `screen.record`
|
|
42
|
+
- System: `system.run` (shell) and `system.notify`
|
|
43
|
+
|
|
44
|
+
### Permission advertising
|
|
45
|
+
- Nodes include a `permissions` map in hello/pairing.
|
|
46
|
+
- The Gateway surfaces it via `node.list` / `node.describe` so agents can decide what to run.
|
|
47
|
+
|
|
48
|
+
## CLI (`clawdbot`)
|
|
49
|
+
- The **only** CLI is `clawdbot` (TS/bun). There is no `clawdbot-mac` helper.
|
|
50
|
+
- For mac‑specific actions, the CLI uses `node.invoke`:
|
|
51
|
+
- `clawdbot canvas present|navigate|eval|snapshot|a2ui push|a2ui reset`
|
|
52
|
+
- `clawdbot nodes run --node <id> -- <command...>`
|
|
53
|
+
- `clawdbot nodes notify --node <id> --title ...`
|
|
54
|
+
|
|
55
|
+
## Onboarding
|
|
56
|
+
- Install CLI (symlink) → Permissions checklist → Test notification → Done.
|
|
57
|
+
- Remote mode skips local gateway/CLI steps.
|
|
58
|
+
- Selecting Local auto-enables the bundled Gateway via launchd (unless “Attach only” debug mode is enabled).
|
|
59
|
+
|
|
60
|
+
## Deep links (URL scheme)
|
|
61
|
+
|
|
62
|
+
Clawdbot (the macOS app) registers a URL scheme for triggering local actions from anywhere (browser, Shortcuts, CLI, etc.).
|
|
63
|
+
|
|
64
|
+
Scheme:
|
|
65
|
+
- `clawdbot://…`
|
|
66
|
+
|
|
67
|
+
### `clawdbot://agent`
|
|
68
|
+
|
|
69
|
+
Triggers a Gateway `agent` request (same machinery as WebChat/agent runs).
|
|
70
|
+
|
|
71
|
+
Example:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
open 'clawdbot://agent?message=Hello%20from%20deep%20link'
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Query parameters:
|
|
78
|
+
- `message` (required): the agent prompt (URL-encoded).
|
|
79
|
+
- `sessionKey` (optional): explicit session key to use.
|
|
80
|
+
- `thinking` (optional): thinking hint (e.g. `low`; omit for default).
|
|
81
|
+
- `deliver` (optional): `true|false` (default: false).
|
|
82
|
+
- `to` / `channel` (optional): forwarded to the Gateway `agent` method (only meaningful with `deliver=true`).
|
|
83
|
+
- `timeoutSeconds` (optional): timeout hint forwarded to the Gateway.
|
|
84
|
+
- `key` (optional): unattended mode key (see below).
|
|
85
|
+
|
|
86
|
+
Safety/guardrails:
|
|
87
|
+
- Always enabled.
|
|
88
|
+
- Without a `key` query param, the app will prompt for confirmation before invoking the agent.
|
|
89
|
+
- With `key=<value>`, Clawdbot runs without prompting (intended for personal automations).
|
|
90
|
+
- The current key is shown in Debug Settings and stored locally in UserDefaults.
|
|
91
|
+
|
|
92
|
+
Notes:
|
|
93
|
+
- In local mode, Clawdbot will start the local Gateway if needed before issuing the request.
|
|
94
|
+
- In remote mode, Clawdbot will use the configured remote tunnel/endpoint.
|
|
95
|
+
|
|
96
|
+
## Build & dev workflow (native)
|
|
97
|
+
- `cd native && swift build` (debug) / `swift build -c release`.
|
|
98
|
+
- Run app for dev: `swift run Clawdbot` (or Xcode scheme).
|
|
99
|
+
- Package app + CLI: `scripts/package-mac-app.sh` (builds bun CLI + gateway).
|
|
100
|
+
- Tests: add Swift Testing suites under `apps/macos/Tests`.
|
|
101
|
+
|
|
102
|
+
## Open questions / decisions
|
|
103
|
+
- Should `system.run` support streaming stdout/stderr or keep buffered responses only?
|
|
104
|
+
- Should we allow node‑side permission prompts, or always require explicit app UI action?
|