Claude-skill-registry bluebubbles
Build or update the BlueBubbles external channel plugin for Moltbot (extension package, REST send/probe, webhook inbound).
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/bluebubbles-youjjwal-clawdbot" ~/.claude/skills/majiayu000-claude-skill-registry-bluebubbles && rm -rf "$T"
manifest:
skills/data/bluebubbles-youjjwal-clawdbot/SKILL.mdsource content
BlueBubbles plugin
Use this skill when working on the BlueBubbles channel plugin.
Layout
- Extension package:
(entry:extensions/bluebubbles/
).index.ts - Channel implementation:
.extensions/bluebubbles/src/channel.ts - Webhook handling:
(register viaextensions/bluebubbles/src/monitor.ts
).api.registerHttpHandler - REST helpers:
+extensions/bluebubbles/src/send.ts
.extensions/bluebubbles/src/probe.ts - Runtime bridge:
(set viaextensions/bluebubbles/src/runtime.ts
).api.runtime - Catalog entry for onboarding:
.src/channels/plugins/catalog.ts
Internal helpers (use these, not raw API calls)
inprobeBlueBubbles
for health checks.extensions/bluebubbles/src/probe.ts
insendMessageBlueBubbles
for text delivery.extensions/bluebubbles/src/send.ts
inresolveChatGuidForTarget
for chat lookup.extensions/bluebubbles/src/send.ts
insendBlueBubblesReaction
for tapbacks.extensions/bluebubbles/src/reactions.ts
+sendBlueBubblesTyping
inmarkBlueBubblesChatRead
.extensions/bluebubbles/src/chat.ts
indownloadBlueBubblesAttachment
for inbound media.extensions/bluebubbles/src/attachments.ts
+buildBlueBubblesApiUrl
inblueBubblesFetchWithTimeout
for shared REST plumbing.extensions/bluebubbles/src/types.ts
Webhooks
- BlueBubbles posts JSON to the gateway HTTP server.
- Normalize sender/chat IDs defensively (payloads vary by version).
- Skip messages marked as from self.
- Route into core reply pipeline via the plugin runtime (
) andapi.runtime
helpers.clawdbot/plugin-sdk - For attachments/stickers, use
placeholders when text is empty and attach media paths via<media:...>
in the inbound context.MediaUrl(s)
Config (core)
(base URL),channels.bluebubbles.serverUrl
,channels.bluebubbles.password
.channels.bluebubbles.webhookPath- Action gating:
(default true).channels.bluebubbles.actions.reactions
Message tool notes
- Reactions: The
action requires areact
(phone number or chat identifier) in addition totarget
. Example:messageIdaction=react target=+15551234567 messageId=ABC123 emoji=❤️