LaunchKit · 2026
Back to Skills

imessage-voice-reply

Send voice message replies in iMessage using local Kokoro-ONNX TTS.

0
384 downloads
by @bolander72

Setup & Installation

openclaw skills install @bolander72/imessage-voice-reply

Or with the ClawHub CLI, for registry-managed skill folders outside a full OpenClaw workspace:

npx clawhub install imessage-voice-reply

Version History

v1.0.3Feb 27, 2026 - Version note by skill developer:

Fix display name

What This Skill Does

Sends voice message replies in iMessage that render as native inline voice bubbles with waveforms, not file attachments. Kokoro TTS generates audio locally, encoded with Apple's afconvert, then delivered via BlueBubbles. No cloud API calls are made for voice generation.

Uses Apple's native afconvert encoder to produce CAF/Opus audio identical to what Messages.app records, so recipients get a proper voice bubble with waveform rather than a file download.

When to use it

  • Replying to a received voice message with your own voice message
  • Sending a spoken response when typing is inconvenient
  • Carrying on a voice-to-voice iMessage conversation through an agent
  • Having the agent read a long reply aloud instead of as text
  • Sending audio responses to group chats that use voice messages

Example Workflow

Here's how your AI assistant might use this skill in practice.

INPUT

User asks: Reply to Marcus's voice message and tell him the meeting moved to 3pm

AGENT
  1. 1Write the response text to a temp file to avoid shell metacharacter issues
  2. 2Run Kokoro TTS locally to generate a CAF audio file at the specified path
  3. 3Send the CAF via BlueBubbles with filename 'Audio Message.caf', contentType 'audio/x-caf', and asVoice true
  4. 4Send a companion text reply alongside for accessibility
OUTPUT

Native iMessage voice bubble delivered to Marcus's number, playable inline with waveform display

Requirements

Accounts, API keys, or tools you or your AI assistant may need to set up while using this skill.

BlueBubbles server installed and running on a Mac with an active Apple IDBlueBubbles channel configured in OpenClaw (channels.bluebubbles)