-
Notifications
You must be signed in to change notification settings - Fork 15.5k
feat: Complete BlueBubbles iMessage integration with advanced message actions, onboarding, and cross-platform support #1300
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…effects, and group management
…et normalization and typing indicator improvements
…hannel action descriptions
…iting, reply metadata, and improved effect handling
…roup management capabilities
… handling and normalize chat identifiers
… checks for message editing and improving server info caching
…ecific logging and improving typing signal conditions
…D and hex chat identifiers, improving normalization and parsing functions
…ncing message formatting and metadata resolution
…formatting and enhancing message ID extraction from responses
…media send function and optimizing message processing for media attachments
…context support and improving outbound message ID tracking
…ng compliance with channel limits and improving error handling for oversized media
…ply context, allowing users to reference previous messages in media attachments
…ng conditions for user-facing error messages and updating test descriptions for typing behavior
|
CI was failing on submodule checkout (Peekaboo gitlink without .gitmodules). Removed the stray submodule entry in 2b0dc79; new CI runs queued. |
|
Thanks for the huge BlueBubbles push! Landed on main via #1306 with a few integration tweaks. Highlights from the landing:
Extra integration details I carried over while landing:
Really appreciate the depth here — thanks @tyler6204! |
|
Closing as landed via #1306. Thanks again! |
Summary
This PR delivers a comprehensive BlueBubbles channel integration for iMessage on macOS, making it the recommended approach over the legacy imsg channel. BlueBubbles provides a richer API with full support for modern iMessage features.
BlueBubbles Extension — New Features
Core Messaging
replyToMessageGuidsupportsendReadReceipts)textChunkLimit(default 4000)Advanced Message Actions
react— Add/remove tapback reactions with emoji mappingedit— Edit sent messages (macOS 13+ only, broken on macOS 26 Tahoe)unsend— Retract/unsend messages (macOS 13+)reply— Reply to specific messages with threadingsendWithEffect— Send with iMessage effectsrenameGroup— Rename group chatssetGroupIcon— Set group chat icon/photo (flaky on macOS 26 Tahoe)addParticipant/removeParticipant— Manage group membersleaveGroup— Leave group chatssendAttachment— Send media/attachments with multipart uploadTarget Addressing
+15555550123,[email protected])chat_guid:iMessage;-;+15555550123)chat_id:123)chat_identifier:...)Access Control
pairing,allowlist,open,disabledopen,allowlist,disabledrequireMentionmacOS Version Awareness
New Files
BlueBubbles Extension (
extensions/bluebubbles/src/)chat.ts— Edit, unsend, rename, group icon, participant management, typing, read receiptsattachments.ts— Attachment download and multipart upload sendmedia-send.ts— Unified media delivery (URL, path, buffer)onboarding.ts— Interactive setup wizard adapterprobe.ts— Health check probes and server info cachingtargets.ts— Target parsing and normalization (chat_guid, chat_id, handles)Core Infrastructure
src/channels/plugins/status-issues/bluebubbles.ts— Status issue detection forclawdbot statussrc/channels/plugins/message-action-names.ts— Added new action namesTest Coverage (4,124 lines of new tests)
actions.test.ts— 511 linesattachments.test.ts— 240 lineschat.test.ts— 462 linesmonitor.test.ts— 1,644 linesreactions.test.ts— 393 linessend.test.ts— 690 linestargets.test.ts— 184 linesCore Infrastructure Enhancements
Message Action Runner (
src/infra/outbound/message-action-runner.ts)sendAttachmentaction hydration with base64/URL/path supportsetGroupIconaction hydration with media loadingMessage Tool (
src/agents/tools/message-tool.ts)Channel Capabilities (
src/channels/plugins/types.core.ts)edit,unsend,reply,effects,groupManagementcapability flagsConfig Schema
zod-schema.providers-core.tsUI Updates
macOS App
ChannelsSettings+ChannelState.swift)CronJobEditor.swift)GatewayAgentChannel.bluebubblesenum caseWeb UI
anyOf/oneOfschema handling for primitive unionsDocumentation
docs/channels/bluebubbles.md— Complete rewrite with:docs/channels/index.mdOther Changes
[Replying to sender id:msgId])name (id)or justidsrc/config/plugin-auto-enable.tsfor channel detectionsrc/channels/dock.tsBlueBubbles registrationsrc/media/image-ops.tsfor icon processingsrc/media/mime.tsextensionForMimehelperTest plan
pnpm lint && pnpm build— no errorspnpm test— all tests passclawdbot onboard🤖 Generated with Claude Code