Skill.md
- SKILL.md
--- name: 1password description: Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op. ---
Skill.md
iMessage/SMS CLI for listing chats, history, and sending messages via Messages.app.
SKILL.md
---
name: imsg
description: iMessage/SMS CLI for listing chats, history, and sending messages via Messages.app.
homepage: https://imsg.to
metadata:
{
"brigade":
{
"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 (Brigade 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"
```