imessage

Send and read iMessage and SMS messages via the imsg CLI on macOS.

Updated Jul 10, 2026
One-click install
npx skills add https://github.com/AvaTar-ArTs/.Agent-skills --skill imessage-avatar-arts
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: imessage
Source: https://github.com/AvaTar-ArTs/.Agent-skills/tree/main/skills/apple/imessage
Command: npx skills add https://github.com/AvaTar-ArTs/.Agent-skills --skill imessage-avatar-arts

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? It lets an AI agent read chat history and send iMessage or SMS texts through macOS Messages.app without manual interaction with the Messages interface. ## Core Features & Use Cases - List and Inspect Chats: Enumerate recent conversations with imsg chats and view message history by chat ID, including attachments. - Send Messages: Deliver text and file attachments to phone numbers or Apple IDs, with control over iMessage versus SMS delivery. - Watch for Incoming Messages: Monitor a conversation in real time using imsg watch. - Use Case: A user says "Text mom that I'll be late" — the agent finds Mom's chat, confirms the recipient and content, then sends the message via imsg send. ## Quick Start Ask the agent to send an iMessage saying "I'll be late" to a specific contact, and it will locate the chat, confirm the details, and send it.

Frequently Asked Questions about imessage

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 `imsg send --to "+14155551212" --text "Hello!"` to send a message through Messages.app. Install it first with `brew install steipete/tap/imsg` and grant Full Disk Access to your terminal.

How do I read iMessage history from the terminal?

Run `imsg chats --limit 10 --json` to list recent conversations, then `imsg history --chat-id 1 --limit 20 --json` to view messages for a specific chat. Add `--attachments` to include attachment information.

Can I force SMS instead of iMessage when sending a text?

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

Why does imsg fail to access Messages on macOS?

imsg fails without Full Disk Access granted to your terminal in System Settings under Privacy, or without Automation permission for Messages.app. Messages.app must also be signed in to an Apple ID.

What are the limitations of sending iMessages via CLI?

The imsg CLI cannot manage group chat membership, and bulk or mass messaging should always be confirmed with the user first. It only works on macOS with Messages.app configured.