From sundial-org-awesome-openclaw-skills-4
Builds or updates BlueBubbles channel plugin for Clawdbot, implementing REST send/probe, webhook inbound, reactions, attachments, typing, and chat helpers in TypeScript.
npx claudepluginhub joshuarweaver/cascade-ai-ml-agents-misc-2 --plugin sundial-org-awesome-openclaw-skills-4This skill uses the workspace's default tool permissions.
Use this skill when working on the BlueBubbles channel plugin.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Use this skill when working on the BlueBubbles channel plugin.
extensions/bluebubbles/ (entry: index.ts).extensions/bluebubbles/src/channel.ts.extensions/bluebubbles/src/monitor.ts (register via api.registerHttpHandler).extensions/bluebubbles/src/send.ts + extensions/bluebubbles/src/probe.ts.extensions/bluebubbles/src/runtime.ts (set via api.runtime).src/channels/plugins/catalog.ts.probeBlueBubbles in extensions/bluebubbles/src/probe.ts for health checks.sendMessageBlueBubbles in extensions/bluebubbles/src/send.ts for text delivery.resolveChatGuidForTarget in extensions/bluebubbles/src/send.ts for chat lookup.sendBlueBubblesReaction in extensions/bluebubbles/src/reactions.ts for tapbacks.sendBlueBubblesTyping + markBlueBubblesChatRead in extensions/bluebubbles/src/chat.ts.downloadBlueBubblesAttachment in extensions/bluebubbles/src/attachments.ts for inbound media.buildBlueBubblesApiUrl + blueBubblesFetchWithTimeout in extensions/bluebubbles/src/types.ts for shared REST plumbing.api.runtime) and clawdbot/plugin-sdk helpers.<media:...> placeholders when text is empty and attach media paths via MediaUrl(s) in the inbound context.channels.bluebubbles.serverUrl (base URL), channels.bluebubbles.password, channels.bluebubbles.webhookPath.channels.bluebubbles.actions.reactions (default true).react action requires a target (phone number or chat identifier) in addition to messageId. Example: action=react target=+15551234567 messageId=ABC123 emoji=❤️