Search

PythonReactSEOPDF
OpenClaw

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, storytelling or summaries requested, or voice delivery would be more engaging than text. Requires ElevenLabs API key and BlueBubbles.

amzzzzzzz0 source installs☆ 0 Repository stars

Installation

Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.

SkillHub CLI

skillhub install amzzzzzzz/imessage-voice-memo-skill

Inspect the source and compatibility requirements, then follow its installation steps.

Give your agent the source link and ask it to inspect instructions and dependencies before explaining the installation steps.

View source ↗Guides

Skill instructions

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:

  1. Generate TTS audio via ElevenLabs (Rachel voice by default)
  2. Convert to Opus CAF @ 24kHz (iMessage native format)
  3. Send as native voice bubble via BlueBubbles

Requirements

  • 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)
    

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...

Source information

Source
github
Repository
openclaw/skills
Path
skills/amzzzzzzz/imessage-voice-memo-skill
Version
—
Commit
77f22b68a5ead5e11e0b931c2c99d205978a0c5f
Classification source
rules
Status
active
Visibility
public

These signals come from indexed source analysis and may lag behind changes. Check the current source files.

README

iMessage Voice Memo Skill for OpenClaw

Send native iMessage voice bubbles (not file attachments) via BlueBubbles.

Voice Bubble Demo Platform License

Features

  • 🎤 Native voice bubbles — Appears with waveform, tap to play (not as file attachment)
  • 🗣️ ElevenLabs TTS — Natural-sounding voice synthesis
  • ⚡ Fast — End-to-end in ~0.4 seconds
  • 🔄 Bidirectional — Send and receive voice memos via iMessage

Requirements

  • macOS (for afconvert)
  • BlueBubbles Server running locally with Private API enabled
  • ElevenLabs API key (for TTS)

Installation

  1. Clone this repo:
git clone https://github.com/amzzzzzzz/imessage-voice-memo-skill.git
cd imessage-voice-memo-skill
  1. Copy the skill to your OpenClaw workspace:
cp -r . ~/.openclaw/workspace/skills/voice-memo-imessage/
  1. Add required environment variables to ~/.openclaw/.env:
ELEVENLABS_API_KEY=your-key-here
BLUEBUBBLES_PASSWORD=your-bluebubbles-password
  1. Make the script executable:
chmod +x ~/.openclaw/workspace/skills/voice-memo-imessage/send-voice-memo.sh

Usage

Command Line
./send-voice-memo.sh "Hey, how's it going?" +1234567890
From OpenClaw Agent

The agent can invoke this skill to send voice responses.

How It Works

The Working Formula

After extensive debugging, we discovered the exact parameters needed for native voice bubbles:

# 1. Generate TTS (ElevenLabs)
curl -X POST "https://api.elevenlabs.io/v1/text-to-speech/{voice_id}" \
  -d '{"text": "...", "model_id": "eleven_turbo_v2_5"}'

# 2. Convert to Opus CAF @ 24kHz (REQUIRED format for iMessage)
afconvert input.mp3 output.caf -f caff -d opus@24000 -c 1

# 3. Send via BlueBubbles with EXACT parameters
curl -X POST ".../api/v1/message/attachment" \
  --for...

Extracted content

SKILL.md
# Voice Memo

Send native iMessage voice bubbles (not file attachments) using ElevenLabs TTS and BlueBubbles.

## Quick Start

Run the script with text and recipient:

```bash
scripts/send-voice-memo.sh "Your message here" +14169060839
```

This will:
1. Generate TTS audio via ElevenLabs (Rachel voice by default)
2. Convert to Opus CAF @ 24kHz (iMessage native format)
3. Send as native voice bubble via BlueBubbles

## Requirements

- BlueBubbles running locally with Private API enabled
- ElevenLabs API key (for TTS)
- macOS (for `afconvert` audio conversion)
- Environment variables in `~/.openclaw/.env`:
  ```bash
  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](references/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...
README
# iMessage Voice Memo Skill for OpenClaw

Send **native iMessage voice bubbles** (not file attachments) via BlueBubbles.

![Voice Bubble Demo](https://img.shields.io/badge/Status-Working-brightgreen)
![Platform](https://img.shields.io/badge/Platform-macOS-blue)
![License](https://img.shields.io/badge/License-MIT-yellow)

## Features

- 🎤 **Native voice bubbles** — Appears with waveform, tap to play (not as file attachment)
- 🗣️ **ElevenLabs TTS** — Natural-sounding voice synthesis
- ⚡ **Fast** — End-to-end in ~0.4 seconds
- 🔄 **Bidirectional** — Send and receive voice memos via iMessage

## Requirements

- **macOS** (for `afconvert`)
- **BlueBubbles Server** running locally with **Private API enabled**
- **ElevenLabs API key** (for TTS)

## Installation

1. Clone this repo:
```bash
git clone https://github.com/amzzzzzzz/imessage-voice-memo-skill.git
cd imessage-voice-memo-skill
```

2. Copy the skill to your OpenClaw workspace:
```bash
cp -r . ~/.openclaw/workspace/skills/voice-memo-imessage/
```

3. Add required environment variables to `~/.openclaw/.env`:
```bash
ELEVENLABS_API_KEY=your-key-here
BLUEBUBBLES_PASSWORD=your-bluebubbles-password
```

4. Make the script executable:
```bash
chmod +x ~/.openclaw/workspace/skills/voice-memo-imessage/send-voice-memo.sh
```

## Usage

### Command Line
```bash
./send-voice-memo.sh "Hey, how's it going?" +1234567890
```

### From OpenClaw Agent
The agent can invoke this skill to send voice responses.

## How It Works

### The Working Formula

After extensive debugging, we discovered the exact parameters needed for native voice bubbles:

```bash
# 1. Generate TTS (ElevenLabs)
curl -X POST "https://api.elevenlabs.io/v1/text-to-speech/{voice_id}" \
  -d '{"text": "...", "model_id": "eleven_turbo_v2_5"}'

# 2. Convert to Opus CAF @ 24kHz (REQUIRED format for iMessage)
afconvert input.mp3 output.caf -f caff -d opus@24000 -c 1

# 3. Send via BlueBubbles with EXACT parameters
curl -X POST ".../api/v1/message/attachment" \
  --for...

Related skills

OpenClaw

bambu-studio-ai

heyixuan2

Bambu Lab 3D printer control and automation. Activate when user mentions: printer status, 3D printing, slice, analyze model, generate 3D, AMS filament, print monitor, Bambu Lab, or any 3D printing task. Full pi...

OpenClaw

geo-optimization

capt-marbles

Generative Engine Optimization (GEO) for AI search visibility. Optimize content to appear in ChatGPT, Perplexity, Claude, and Google AI Overviews. Use when optimizing websites, pages, or content for LLM discove...

OpenClaw

0protocol

0isone

Agents can sign plugins, rotate credentials without losing identity, and publicly attest to behavior.

OpenClaw

0x0-messenger

eijiac24

Send and receive P2P messages using disposable numbers and PINs. No servers, no accounts. Use for human notifications, approval flows, and agent-to-agent communication.