Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Send native iMessage voice bubbles with ElevenLabs TTS via BlueBubbles. Use when: user asks to send a voice message, wants something spoken aloud, storytelli...
Send native iMessage voice bubbles with ElevenLabs TTS via BlueBubbles. Use when: user asks to send a voice message, wants something spoken aloud, storytelli...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
Send native iMessage voice bubbles (not file attachments) using ElevenLabs TTS and BlueBubbles.
Run the script with text and recipient: scripts/send-voice-memo.sh "Your message here" +14169060839 This will: Generate TTS audio via ElevenLabs (Rachel voice by default) Convert to Opus CAF @ 24kHz (iMessage native format) Send as native voice bubble via BlueBubbles
BlueBubbles running locally with Private API enabled ElevenLabs API key (for TTS) macOS (for afconvert audio conversion) Environment variables in ~/.openclaw/.env: ELEVENLABS_API_KEY=your-key-here BLUEBUBBLES_PASSWORD=your-password-here # Optional overrides: ELEVENLABS_VOICE_ID=21m00Tcm4TlvDq8ikWAM # Rachel (default) ELEVENLABS_MODEL_ID=eleven_turbo_v2_5 # Turbo v2.5 (default)
Critical parameters discovered 2026-02-19: ParameterValueWhychatGuidany;-;+PHONENOT iMessage;-; (causes timeouts)methodprivate-apiRequired for native bubbleisAudioMessagetrueRequiredAudio formatOpus @ 24kHz in CAFiMessage native formatPre-convertYesDon't let BlueBubbles convert (wrong codec)
Default voice: Rachel (ElevenLabs) Voice ID: 21m00Tcm4TlvDq8ikWAM Model: eleven_turbo_v2_5 (fast, natural) Cost: ~$0.04 per 30s message Expressive tags: [laughs] — natural laughter [sighs] — expressive sigh [excited] — energetic delivery Example: "[excited] Oh my god, it worked!" For full voice list and IDs, see VOICES.md.
Sending (Amz → Amy): Use this skill. Native voice bubbles appear with waveform UI. Receiving (Amy → Amz): BlueBubbles auto-converts incoming voice memos to MP3. OpenClaw transcribes via Whisper. Transcribed text flows into conversation context automatically. Memory note: Incoming voice memo transcriptions flow into conversation context like any text message. They are NOT automatically persisted to memory or files — the agent must explicitly choose to store them, same as any conversation content. If you want to prevent transcriptions from being retained, instruct the agent not to record voice memo content in memory.
Voice bubble arrives as file attachment: Check method=private-api is set Verify chatGuid uses any;-; prefix (not iMessage;-;) Check response has "isAudioMessage": true API times out: Use any;-;+PHONE format for chatGuid Verify BlueBubbles Private API is enabled Restart BlueBubbles if consistently slow Audio is 0 seconds / unplayable: Ensure pre-conversion to Opus @ 24kHz Don't let BlueBubbles convert (uses wrong codec) Verify with: afinfo output.caf (should show opus @ 24000 Hz)
Messaging, meetings, inboxes, CRM, and teammate communication surfaces.
Largest current source with strong distribution and engagement signals.