imsg

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

Updated Mar 7, 2026
One-click install
npx skills add https://github.com/shalevamin/Tau_agent --skill imsg-shalevamin
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: imsg
Source: https://github.com/shalevamin/Tau_agent/tree/main/tau-agent-main/skills/imsg
Command: npx skills add https://github.com/shalevamin/Tau_agent --skill imsg-shalevamin

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? It lets you read iMessage/SMS conversation history and send messages from the command line on macOS, without manually opening Messages.app. ## Core Features & Use Cases - List Chats: Enumerate recent Messages.app conversations with JSON output for scripting. - Read History: Retrieve message history by chat ID, optionally including attachment info. - Send Messages: Send text or file attachments to phone numbers or Apple IDs, with control over iMessage vs SMS service. - Use Case: A user asks to text a contact that they will be late; the assistant finds the contact's chat, confirms the recipient and content, then sends the message via iMessage. ## Quick Start Ask the assistant to send an iMessage saying you will be late to a specific contact, and confirm the recipient before sending.

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, specifying the recipient phone number or Apple ID and the message text. You can also attach files and force iMessage or SMS delivery with the service flag.

How do I read iMessage history from the terminal?

Run imsg history with a chat ID and a limit to retrieve recent messages as JSON. First list chats with imsg chats to find the correct chat ID, and add the attachments flag to include file info.

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. Without these, reading history or sending will fail.

Can I force SMS instead of iMessage when sending?

Yes, pass the service flag with sms to force SMS delivery, imessage to force iMessage, or auto to let Messages.app decide. SMS requires the recipient to be reachable via your carrier.

When should I not use imsg for messaging?

Do not use imsg for Telegram, Signal, WhatsApp, Discord, or Slack messages, since those have dedicated channels. It also does not support group chat membership management or bulk messaging without explicit user confirmation.