imessage

Send and read iMessages and SMS via the imsg CLI on macOS.

Updated Aug 22, 2026
One-click install
npx skills add https://github.com/vivekgoquest/hermes-agent-stable --skill imessage-vivekgoquest
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: imessage
Source: https://github.com/vivekgoquest/hermes-agent-stable/tree/main/skills/apple/imessage
Command: npx skills add https://github.com/vivekgoquest/hermes-agent-stable --skill imessage-vivekgoquest

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Managing iMessage and SMS conversations from the terminal on macOS normally requires manual interaction with Messages.app, making it hard to automate texting, read chat history, or monitor incoming messages programmatically. ## Core Features & Use Cases - Send Messages: Send iMessages or SMS to phone numbers and Apple IDs, with optional file attachments and service selection (iMessage, SMS, or auto). - Read Chat History: List recent chats and view conversation history with attachment metadata in JSON format. - Watch for Incoming Messages: Monitor a specific chat for new 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, confirms the recipient and message, then sends it via imsg send. ## Quick Start Ask the assistant to send an iMessage to a specific phone number or contact with your message text, and confirm the recipient before it is sent.

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 macOS terminal?▼

Use the imsg CLI with the send command, specifying the recipient phone number or Apple ID and message text. You can attach files with the file flag and force iMessage or SMS delivery using the service flag.

How to read iMessage chat history from the command line?▼

Run imsg chats to list recent conversations, then use imsg history with a chat ID to view messages. Adding the json flag returns structured output, and the attachments flag includes attachment information.

What permissions does imsg need on macOS?▼

imsg requires Full Disk Access for the terminal, granted in System Settings under Privacy, and Automation permission for Messages.app when prompted. Messages.app must also be signed in with an Apple ID.

Can I force SMS instead of iMessage when sending texts?▼

Yes, pass the service flag with the value sms to force SMS delivery, or imessage to force iMessage. The default auto mode lets Messages.app decide based on the recipient.

What are the limitations of sending iMessages via CLI?▼

Group chat management such as adding or removing members is not supported, and bulk messaging should always be confirmed with the user first. This approach only works on macOS with Messages.app signed in.