mcpField
I
imsg

imsg

github.com/letta-aiProductivity152209 installsUpdated 4w ago
Repository

About imsg

`imsg` is a macOS command-line tool for reading and sending iMessage and SMS through Messages.app, for users who handle messages from a terminal. It supports chat history, new-message watching, and attachments, but not group membership management.

Key features

  1. 01List chats and view history
  2. 02Watch for new messages
  3. 03Send iMessage or SMS
  4. 04Send file attachments
  5. 05Filter messages by date

Use cases

  1. 01Find a chat for a contact
  2. 02Review recent messages in a chat
  3. 03Watch a chat for incoming messages
  4. 04Send text or a file to a contact

Install

Copy the command and run it in a terminal.

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

After installing, type/imsgin Claude Code to confirm it loaded.

Bundled filesassets/imsg-small.svgLICENSE

Details

From the project README

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
imsg chats --limit 10 --json
View History
# 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
imsg watch --chat-id 1 --attachments
imsg watch --chat-id 1 --debounce 250ms
Send Messages
# 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"

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

Comments

Markdown supported