技能详情(站内镜像,无评论)
许可证:MIT-0
MIT-0 ·免费使用、修改和重新分发。无需归因。
版本:v0.1.2
统计:⭐ 0 · 310 · 0 current installs · 0 all-time installs
⭐ 0
安装量(当前) 0
🛡 VirusTotal :可疑 · OpenClaw :良性
Package:amzzzzzzz/imessage-voice-memo-skill
安全扫描(ClawHub)
- VirusTotal :可疑
- OpenClaw :良性
OpenClaw 评估
The skill's code and runtime instructions match its stated purpose (sending iMessage voice bubbles via ElevenLabs + BlueBubbles); the main concern is an authoring/metadata inconsistency and the usual need to trust local env/config values it reads.
目的
The script implements exactly what the skill describes: it calls ElevenLabs TTS, converts audio with afconvert to Opus CAF, and posts to a BlueBubbles Private API to produce native iMessage voice bubbles. Required binaries (curl, afconvert) and the two service credentials are appropriate for this functionality.
说明范围
SKILL.md and the script confine actions to generating audio, converting it, and sending it to the BlueBubbles endpoint. The script sources ~/.openclaw/.env for credentials and does not attempt to read unrelated system files or exfiltrate arbitrary data. It documents how transcriptions integrate into conversation context and notes that transcriptions are not auto-persisted.
安装机制
No install spec (instruction-only) and a small included shell script. No downloads, archive extraction, or third-party package installs — low install-time risk.
证书
The script requires ELEVENLABS_API_KEY and BLUEBUBBLES_PASSWORD (proportionate to the task). However, registry metadata at the top of the submission lists no required env vars while SKILL.md and the script do — an inconsistency. Also note the script blindly sources ~/.openclaw/.env, which may contain additional secrets; ensure that file contains only intended credentials and is protected.
持久
always:false and no system-wide configuration changes. The skill can be invoked autonomously (platform default), which is expected for skills; it does not request persistent elevated privileges or modify other skills' configs.
综合结论
This skill appears to do what it claims: generate ElevenLabs TTS, convert to Opus CAF, and post to a BlueBubbles Private API to create native iMessage voice bubbles. Before installing: (1) verify the skill's source (homepage is a GitHub repo) and inspect ~/.openclaw/.env to ensure it only contains the expected ELEVENLABS_API_KEY and BLUEBUBBLES_PASSWORD; (2) ensure BLUEBUBBLES_URL points to a trusted local BlueBubbles instance (default is http…
安装(复制给龙虾 AI)
将下方整段复制到龙虾中文库对话中,由龙虾按 SKILL.md 完成安装。
请把本段交给龙虾中文库(龙虾 AI)执行:为本机安装 OpenClaw 技能「Voice Memo」。简介:Send native iMessage voice bubbles with ElevenLabs TTS via BlueBubbles. Use whe…。
请 fetch 以下地址读取 SKILL.md 并按文档完成安装:https://raw.githubusercontent.com/openclaw/skills/refs/heads/main/skills/amzzzzzzz/imessage-voice-memo-skill/SKILL.md
(来源:yingzhi8.cn 技能库)
SKILL.md
---
name: voice-memo
description: "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."
homepage: https://github.com/amzzzzzzz/imessage-voice-memo-skill
metadata: { "openclaw": { "emoji": "🎙️", "platform": "macOS", "requires": { "bins": ["curl", "afconvert"] }, "credentials": ["BLUEBUBBLES_PASSWORD", "ELEVENLABS_API_KEY"] } }
---
# 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:** 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-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)