imessage

安装量: 83
排名: #9546

安装

npx skills add https://github.com/letta-ai/skills --skill imessage

Send and read iMessages/SMS using the imsg CLI tool on macOS.

Setup

1. Build the imsg CLI

Clone and build the tool:

git clone https://github.com/letta-ai/imsg.git ~/repos/imsg
cd ~/repos/imsg
swift build -c release

The binary will be at ~/repos/imsg/.build/release/imsg (or use the pre-built binary if available at ~/repos/imsg/bin/imsg).

2. Grant Permissions

Required macOS permissions (System Settings → Privacy & Security):

| Full Disk Access | Privacy & Security → Full Disk Access | Reading message history

| Automation | Privacy & Security → Automation | Sending messages via Messages.app

3. Enable SMS Relay (Optional)

To send SMS (green bubbles) to non-iMessage users:

  • On iPhone: Settings → Messages → Text Message Forwarding

  • Enable forwarding to your Mac

Commands

List Recent Chats

imsg chats --limit 10
imsg chats --limit 10 --json

Output format: [chat_id] (identifier) last=timestamp

View Chat History

# View last 20 messages in a chat
imsg history --chat-id <id> --limit 20

# With attachments metadata
imsg history --chat-id <id> --limit 20 --attachments

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

Send a Message

# Send to phone number
imsg send --to "+15555555555" --text "Hello!"

# Send with attachment
imsg send --to "+15555555555" --text "Here's the file" --file /path/to/file.jpg

# Force iMessage or SMS
imsg send --to "+15555555555" --text "Hi" --service imessage
imsg send --to "+15555555555" --text "Hi" --service sms

# Send to existing chat by ID
imsg send --chat-id 86 --text "Hello!"

Watch for New Messages

imsg watch --chat-id <id> --debounce 250ms

Best Practices

Phone Number Format

  • Use E.164 format: +1XXXXXXXXXX for US numbers

  • Include country code for international

SMS vs iMessage

  • iMessage (blue bubble): Default for Apple device users, free

  • SMS (green bubble): Requires iPhone relay, may have carrier charges

  • Use --service sms when recipient doesn't have iMessage

Message Etiquette for Agents

  • Be concise - Keep messages short and clear

  • Be human - Write naturally, not robotically

  • Identify context - If following up, reference previous conversation

  • Respect timing - Avoid early morning/late night messages

Common Use Cases

Scheduling Services

imsg send --to "+14155551234" --text "Hi! Do you have availability this Saturday for a cleaning?"

Following Up

imsg send --to "+14155551234" --text "Just wanted to follow up on my earlier message. Let me know when you have a chance!"

Confirming Appointments

imsg send --to "+14155551234" --text "Confirming our appointment for Saturday at 10am. See you then!"

Troubleshooting

| "not authorized" error | Grant Automation permission to terminal

| Can't read messages | Grant Full Disk Access to terminal

| SMS not sending | Enable Text Message Forwarding on iPhone

| Message stuck sending | Check Messages.app is signed in and working

Technical Notes

  • Uses AppleScript for sending (no private APIs)

  • Read operations are read-only on the Messages SQLite database

  • Requires macOS 14+ with Messages.app configured

  • Binary location: ~/repos/imsg/bin/imsg (adjust path as needed)

返回排行榜