imsg

Send and read iMessage and SMS messages via the macOS Messages.app CLI.

Updated Mar 30, 2026
One-click install
npx skills add https://github.com/srgaba/open-claw --skill imsg-srgaba
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: imsg
Source: https://github.com/srgaba/open-claw/tree/main/project/skills/imsg
Command: npx skills add https://github.com/srgaba/open-claw --skill imsg-srgaba

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Reading and sending iMessage or SMS from the terminal normally requires manual interaction with Messages.app. This Skill provides CLI commands to list chats, view conversation history, watch for new messages, and send texts or attachments programmatically on macOS. ## Core Features & Use Cases - Chat Listing & History: List recent chats and retrieve message history by chat ID, with optional attachment info, in JSON output. - Message Sending: Send iMessage or SMS to phone numbers or Apple IDs, with optional file attachments and explicit service selection (imessage, sms, or auto). - Live Watching: Monitor a chat for incoming messages in real time. - Use Case: A user asks to text a contact that they will be late. The assistant finds the contact's chat via imsg chats, confirms the recipient and message, then sends it with imsg send. ## Quick Start Ask the assistant to send an iMessage saying you will be late to a specific phone number, and confirm the recipient and text before it is sent.

Frequently Asked Questions about imsg

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I send an iMessage from the command line on macOS?

Use the imsg CLI with the send command, for example: imsg send --to "+14155551212" --text "Hello!". You can attach files with --file and force iMessage or SMS delivery using the --service flag.

How do I read iMessage history from the terminal?

Run imsg history --chat-id <id> --limit 20 --json to retrieve messages for a specific chat. First use imsg chats --limit 10 --json to find the chat ID, and add --attachments to include attachment information.

What permissions does imsg need on macOS?

imsg requires macOS with Messages.app signed in, Full Disk Access granted to the terminal, and Automation permission for Messages.app to send messages. The binary is installed via Homebrew from the steipete/tap/imsg formula.

Can imsg send SMS instead of iMessage?

Yes, pass --service sms to force SMS delivery or --service imessage to force iMessage. The default --service auto lets Messages.app decide based on the recipient's capabilities.

When should I not use imsg for messaging?

Do not use imsg for Telegram, Signal, WhatsApp, Discord, or Slack messages, which have their own channels. It also does not support group chat membership management, and bulk messaging should always be confirmed with the user first.