home / skills / openclaw / openclaw / imsg

imsg skill

/skills/imsg

This skill helps you manage iMessage and SMS conversations from your device by listing chats, viewing history, and sending messages.

npx playbooks add skill openclaw/openclaw --skill imsg

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
2.9 KB
---
name: imsg
description: iMessage/SMS CLI for listing chats, history, and sending messages via Messages.app.
homepage: https://imsg.to
metadata:
  {
    "openclaw":
      {
        "emoji": "šŸ“Ø",
        "os": ["darwin"],
        "requires": { "bins": ["imsg"] },
        "install":
          [
            {
              "id": "brew",
              "kind": "brew",
              "formula": "steipete/tap/imsg",
              "bins": ["imsg"],
              "label": "Install imsg (brew)",
            },
          ],
      },
  }
---

# imsg

Use `imsg` to read and send iMessage/SMS via macOS Messages.app.

## When to Use

āœ… **USE this skill when:**

- User explicitly asks to send iMessage or SMS
- Reading iMessage conversation history
- Checking recent Messages.app chats
- Sending to phone numbers or Apple IDs

## When NOT to Use

āŒ **DON'T use this skill when:**

- Telegram messages → use `message` tool with `channel:telegram`
- Signal messages → use Signal channel if configured
- WhatsApp messages → use WhatsApp channel if configured
- Discord messages → use `message` tool with `channel:discord`
- Slack messages → use `slack` skill
- Group chat management (adding/removing members) → not supported
- Bulk/mass messaging → always confirm with user first
- Replying in current conversation → just reply normally (Clawdbot routes automatically)

## Requirements

- macOS with Messages.app signed in
- Full Disk Access for terminal
- Automation permission for Messages.app (for sending)

## Common Commands

### List Chats

```bash
imsg chats --limit 10 --json
```

### View History

```bash
# By chat ID
imsg history --chat-id 1 --limit 20 --json

# With attachments info
imsg history --chat-id 1 --limit 20 --attachments --json
```

### Watch for New Messages

```bash
imsg watch --chat-id 1 --attachments
```

### Send Messages

```bash
# Text only
imsg send --to "+14155551212" --text "Hello!"

# With attachment
imsg send --to "+14155551212" --text "Check this out" --file /path/to/image.jpg

# Specify service
imsg send --to "+14155551212" --text "Hi" --service imessage
imsg send --to "+14155551212" --text "Hi" --service sms
```

## Service Options

- `--service imessage` — Force iMessage (requires recipient has iMessage)
- `--service sms` — Force SMS (green bubble)
- `--service auto` — Let Messages.app decide (default)

## Safety Rules

1. **Always confirm recipient and message content** before sending
2. **Never send to unknown numbers** without explicit user approval
3. **Be careful with attachments** — confirm file path exists
4. **Rate limit yourself** — don't spam

## Example Workflow

User: "Text mom that I'll be late"

```bash
# 1. Find mom's chat
imsg chats --limit 20 --json | jq '.[] | select(.displayName | contains("Mom"))'

# 2. Confirm with user
# "Found Mom at +1555123456. Send 'I'll be late' via iMessage?"

# 3. Send after confirmation
imsg send --to "+1555123456" --text "I'll be late"
```

Overview

This skill provides a command-line interface to read and send iMessage and SMS via the macOS Messages.app. It exposes commands to list chats, view conversation history, watch for new messages, and send texts or attachments with service options (iMessage, SMS, or auto). It requires macOS with Messages signed in and appropriate permissions for terminal automation.

How this skill works

The tool interacts with Messages.app on macOS to query chat metadata and message history, and to send new messages. Commands return structured output (JSON available) for chats and messages; sending supports text, files, and a service override (imessage/sms/auto). It watches live chats by subscribing to updates and streams new messages when requested.

When to use it

  • When the user asks to send an iMessage or SMS from the connected Mac
  • To list recent Messages.app chats or locate a contact's chat ID
  • To read conversation history, including attachments metadata
  • To stream new messages from a specific chat in real time
  • When you need to attach a file and send it through Messages.app

Best practices

  • Always confirm recipient identity and full message text before sending
  • Verify file paths and attachment existence before attaching
  • Prefer --service imessage only if recipient uses iMessage; use auto otherwise
  • Avoid bulk or mass messaging without explicit user consent and rate-limit sends
  • Do not attempt cross-platform chat services (Telegram/Signal/WhatsApp/Slack) with this tool

Example use cases

  • Find and confirm Mom's chat, then send a short ETA message via iMessage
  • List the last 20 chats to locate a phone number or Apple ID for a contact
  • Fetch message history with attachment flags to locate a sent photo
  • Watch a support conversation for incoming replies and notify the user
  • Send a receipt or image file to a contact directly from a script

FAQ

What permissions are required on macOS?

Messages.app must be signed in; terminal needs Full Disk Access and automation permission to control Messages for sending.

Can I force SMS instead of iMessage?

Yes. Use --service sms to force SMS (green bubble). Use --service imessage to force iMessage or --service auto to let Messages.app decide.

Is bulk messaging supported?

Bulk or mass messaging is not recommended. Always confirm with the user and rate-limit sends to avoid misuse.