# Send Imsg Media to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
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. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "imsg-media",
    "name": "Imsg Media",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/tankyhsu/imsg-media",
    "canonicalUrl": "https://clawhub.ai/tankyhsu/imsg-media",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/imsg-media",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=imsg-media",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md",
      "scripts/imsg_voice_transcribe.py"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/imsg-media"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/imsg-media",
    "downloadUrl": "https://openagent3.xyz/downloads/imsg-media",
    "agentUrl": "https://openagent3.xyz/skills/imsg-media/agent",
    "manifestUrl": "https://openagent3.xyz/skills/imsg-media/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/imsg-media/agent.md"
  }
}
```
## Documentation

### imsg-media

Full iMessage multimedia pipeline:

🎙️ Voice memo → text via Silicon Flow ASR (SenseVoiceSmall, cloud, no local model)
🖼️ Image → description/OCR via agent's built-in vision model

### macOS permissions

Full Disk Access must be granted to the process running OpenClaw
Settings → Privacy & Security → Full Disk Access → add your terminal/app
Without this, imsg cannot read ~/Library/Messages/chat.db and will return permissionDenied

### API key (audio only)

Silicon Flow API key — sign up free at https://siliconflow.cn
Long-term use: add to ~/.openclaw/.env: SILICON_FLOW_KEY=sk-...
Quick test / override: pass --api-key sk-... directly to the script
Image analysis does not require this key

### CLI dependency

imsg CLI: npm install -g imsg

### Trigger conditions

Activate this skill when:

Incoming message text contains the attachment placeholder ￼
User says "语音转文字", "转写", "识别语音", "transcribe"
User says "看图", "识别图片", "读图", "OCR", "截图里写的什么"
User references a photo/audio/file they just sent via iMessage

### Decision flow

Attachment detected?
├── Audio (.m4a / .caf / .wav / .mp3)  → transcribe via Silicon Flow ASR
├── Image (.jpg / .png / .heic / .gif) → read with vision model
└── Unknown / not downloaded            → increase --limit or ask user to resend

### Step 1 — Get the sender identifier

Always read from the message envelope:

[iMessage sender@example.com ...] → use sender@example.com
[SMS +1234567890 ...] → use +1234567890
Never hardcode an address

### Step 2 — Fetch the attachment

# Run from the skill directory
cd ~/.openclaw/skills/imsg-voice-transcribe

python3 scripts/imsg_voice_transcribe.py fetch \\
  --identifier "sender@example.com" \\
  --limit 50

Returns JSON with file, type (audio or image), and metadata.

If nothing found, try --limit 100.

### Step 3a — Audio: transcribe

# One-liner (fetch + transcribe)
python3 scripts/imsg_voice_transcribe.py auto \\
  --identifier "sender@example.com" \\
  --limit 50 --raw

# Or transcribe a specific file
python3 scripts/imsg_voice_transcribe.py transcribe \\
  --file /path/to/audio.m4a --raw

# Quick test with explicit API key (no env setup needed)
python3 scripts/imsg_voice_transcribe.py transcribe \\
  --file /path/to/audio.m4a --api-key sk-... --raw

### Step 3b — Image: analyze

After fetch returns an image path (e.g. {"file": "/path/to/photo.jpg", "type": "image"}):

# Example: fetch image from a sender
python3 scripts/imsg_voice_transcribe.py fetch \\
  --identifier "sender@example.com" --type image --limit 50
# → {"file": "/Users/.../Messages/Attachments/photo.jpg", "type": "image", ...}

Then in the agent:

If HEIC/HEIF: convert first → sips -s format png "input.heic" --out "output.png"
Open with the read tool → agent vision model processes it
Respond with: what it is, main subject, any text/OCR, notable details

Default image response format:

What it is: photo / screenshot / document
Main subject: 1–2 sentences
Text (OCR): quote key text, or "无明显文字"
Details: 3–5 bullets
Follow-up: ask if they want OCR / table extraction / comparison / etc.

### Supported formats

FormatTypeNotes.m4aAudioStandard iMessage voice memo.cafAudioOlder iOS voice memo (AAC in CAF).wav .mp3AudioOther sources.jpg .jpeg .pngImageStandard photos.heic .heifImageiPhone default — convert to PNG first.gifImageAnimated or static

### Troubleshooting

ErrorCauseFixpermissionDeniedNo Full Disk AccessGrant FDA in System SettingsSILICON_FLOW_KEY not setMissing API keyAdd to ~/.openclaw/.envNo attachments foundLow limit or iCloud not syncedIncrease --limit; ask user to resendRequest timed outNetwork or large fileRetry; check file < 25MBHEIC not displayingFormat not supported by readConvert with sips first
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: tankyhsu
- Version: 1.0.1
## Source health
- Status: healthy
- Source download looks usable.
- Yavira can redirect you to the upstream package for this source.
- Health scope: source
- Reason: direct_download_ok
- Checked at: 2026-04-23T16:43:11.935Z
- Expires at: 2026-04-30T16:43:11.935Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/imsg-media)
- [Send to Agent page](https://openagent3.xyz/skills/imsg-media/agent)
- [JSON manifest](https://openagent3.xyz/skills/imsg-media/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/imsg-media/agent.md)
- [Download page](https://openagent3.xyz/downloads/imsg-media)