Bluebubbles
Build or update the BlueBubbles external channel plugin for Clawdbot (extension package, REST send/probe, webhook inbound).
MIT-0 · Free to use, modify, and redistribute. No attribution required.
⭐ 1 · 7.7k · 885 current installs · 904 all-time installs
MIT-0
Security Scan
OpenClaw
Benign
high confidencePurpose & Capability
The name/description (BlueBubbles channel plugin) matches the files, helpers, and runtime hooks the SKILL.md references. Required credentials/config are declared as core config keys (serverUrl/password/webhookPath), not unrelated services, so requested capabilities are proportional to the stated purpose.
Instruction Scope
SKILL.md only describes repository paths, helper functions, webhook behavior, and how to route messages into the core runtime. It does not instruct access to unrelated system files, credentials outside the plugin config, or external endpoints beyond the BlueBubbles gateway integration.
Install Mechanism
No install spec or code files are present (instruction-only). Nothing is downloaded or written to disk by the skill itself.
Credentials
The skill references core config keys (channels.bluebubbles.serverUrl, channels.bluebubbles.password, channels.bluebubbles.webhookPath) which are reasonable for a messaging plugin. The skill itself does not declare required env vars or credentials, but deployment will require those config values—ensure they are supplied securely by the host application.
Persistence & Privilege
The skill is not always-on and has default invocation settings. As an instruction-only skill it does not request persistent system presence or modify other skills' configs.
Assessment
This is a developer-facing instruction file for implementing a BlueBubbles channel plugin and appears coherent with that goal. There is no code bundled here, so the immediate security risk is low. Before installing or enabling a plugin implementation based on these instructions, confirm where the BlueBubbles server URL and password will be stored (use your application's secure config/secret storage), review any actual code added to the repo for network calls or credential handling, and only provide webhook endpoints and credentials to trusted code. If you want extra assurance, ask for the actual plugin code (not just the SKILL.md) and review it for unexpected network calls or filesystem access.Like a lobster shell, security has layers — review code before you run it.
Current versionv1.0.0
Download ziplatest
License
MIT-0
Free to use, modify, and redistribute. No attribution required.
SKILL.md
BlueBubbles plugin
Use this skill when working on the BlueBubbles channel plugin.
Layout
- Extension package:
extensions/bluebubbles/(entry:index.ts). - Channel implementation:
extensions/bluebubbles/src/channel.ts. - Webhook handling:
extensions/bluebubbles/src/monitor.ts(register viaapi.registerHttpHandler). - REST helpers:
extensions/bluebubbles/src/send.ts+extensions/bluebubbles/src/probe.ts. - Runtime bridge:
extensions/bluebubbles/src/runtime.ts(set viaapi.runtime). - Catalog entry for onboarding:
src/channels/plugins/catalog.ts.
Internal helpers (use these, not raw API calls)
probeBlueBubblesinextensions/bluebubbles/src/probe.tsfor health checks.sendMessageBlueBubblesinextensions/bluebubbles/src/send.tsfor text delivery.resolveChatGuidForTargetinextensions/bluebubbles/src/send.tsfor chat lookup.sendBlueBubblesReactioninextensions/bluebubbles/src/reactions.tsfor tapbacks.sendBlueBubblesTyping+markBlueBubblesChatReadinextensions/bluebubbles/src/chat.ts.downloadBlueBubblesAttachmentinextensions/bluebubbles/src/attachments.tsfor inbound media.buildBlueBubblesApiUrl+blueBubblesFetchWithTimeoutinextensions/bluebubbles/src/types.tsfor shared REST plumbing.
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 (
api.runtime) andclawdbot/plugin-sdkhelpers. - For attachments/stickers, use
<media:...>placeholders when text is empty and attach media paths viaMediaUrl(s)in the inbound context.
Config (core)
channels.bluebubbles.serverUrl(base URL),channels.bluebubbles.password,channels.bluebubbles.webhookPath.- Action gating:
channels.bluebubbles.actions.reactions(default true).
Message tool notes
- Reactions: The
reactaction requires atarget(phone number or chat identifier) in addition tomessageId. Example:action=react target=+15551234567 messageId=ABC123 emoji=❤️
Files
1 totalSelect a file
Select a file to preview.
Comments
Loading comments…
