/install imessage-voice-memo-skill
Voice Memo
Send native iMessage voice bubbles (not file attachments) using ElevenLabs TTS and BlueBubbles.
Quick Start
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
Requirements
- BlueBubbles running locally with Private API enabled
- ElevenLabs API key (for TTS)
- macOS (for
afconvertaudio 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)
The Working Formula
Critical parameters discovered 2026-02-19:
| Parameter | Value | Why |
|---|---|---|
| chatGuid | any;-;+PHONE |
NOT iMessage;-; (causes timeouts) |
| method | private-api |
Required for native bubble |
| isAudioMessage | true |
Required |
| Audio format | Opus @ 24kHz in CAF | iMessage native format |
| Pre-convert | Yes | Don't let BlueBubbles convert (wrong codec) |
Voice Options
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.
Bidirectional Voice Memos
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.
Troubleshooting
Voice bubble arrives as file attachment:
- Check
method=private-apiis set - Verify chatGuid uses
any;-;prefix (notiMessage;-;) - Check response has
"isAudioMessage": true
API times out:
- Use
any;-;+PHONEformat 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)
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install imessage-voice-memo-skill - After installation, invoke the skill by name or use
/imessage-voice-memo-skill - Provide required inputs per the skill's parameter spec and get structured output
What is Voice Memo?
Send native iMessage voice bubbles with ElevenLabs TTS via BlueBubbles. Use when: user asks to send a voice message, wants something spoken aloud, storytelli... It is an AI Agent Skill for Claude Code / OpenClaw, with 482 downloads so far.
How do I install Voice Memo?
Run "/install imessage-voice-memo-skill" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Voice Memo free?
Yes, Voice Memo is completely free (open-source). You can download, install and use it at no cost.
Which platforms does Voice Memo support?
Voice Memo is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Voice Memo?
It is built and maintained by amzzzzzzz (@amzzzzzzz); the current version is v0.1.2.