Claude
Skills
Sign in
Back

imsg

Included with Lifetime
$97 forever

iMessage/SMS CLI for listing chats, history, and sending messages via Messages.app.

Generalassets

What this skill does


# imsg

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

## Limitations

- Group chat management (adding/removing members) is not supported
- macOS only

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

# Filter by date
imsg history --chat-id 1 --start 2026-01-01T00:00:00Z --json
```

### Watch for New Messages

```bash
imsg watch --chat-id 1 --attachments
imsg watch --chat-id 1 --debounce 250ms
```

### Send Messages

```bash
# Send to phone number
imsg send --to "+14155551212" --text "Hello!"

# Send to existing chat by ID (useful for replies)
imsg send --chat-id 86 --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"
```
Files: 4
Size: 165.8 KB
Complexity: 49/100
Category: General

Related in General