imessage

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

14|5|Updated Apr 9, 2026
One-click install
npx skills add https://github.com/MLT-OSS/hermes-agent-go --skill imessage-mlt-oss
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: imessage
Source: https://github.com/MLT-OSS/hermes-agent-go/tree/main/skills/apple/imessage
Command: npx skills add https://github.com/MLT-OSS/hermes-agent-go --skill imessage-mlt-oss

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires imsg.

What problem does it solve? It lets you read iMessage/SMS conversation history and send text messages or attachments from the command line on macOS, without manually opening Messages.app. ## Core Features & Use Cases - List and search chats: Run imsg chats --limit 10 --json to enumerate recent conversations and find contacts by display name. - Read message history: Use imsg history --chat-id <id> --limit 20 --json to review past messages, optionally including attachment info. - Send messages with attachments: Use imsg send --to <number> --text <message> --file <path> with optional --service imessage|sms|auto to control delivery. - Use Case: A user says "Text mom that I'll be late" — find her chat with imsg chats, confirm the number, then send the message via imsg send. ## Quick Start Ask the assistant to send an iMessage to a contact, and it will locate the chat with imsg, confirm the recipient and content with you, then deliver the message.

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: run `imsg send --to "+14155551212" --text "Hello!"` to send a message. Add `--file /path/to/image.jpg` to include an attachment, or `--service imessage` / `--service sms` to force a delivery method.

How do I read iMessage history from the terminal?

Run `imsg history --chat-id <id> --limit 20 --json` to retrieve recent messages for a chat in JSON format. Find chat IDs first with `imsg chats --limit 10 --json`, and add `--attachments` to include attachment details.

What permissions does imsg need on macOS?

imsg requires macOS with Messages.app signed in, Full Disk Access granted to your terminal in System Settings under Privacy, and Automation permission for Messages.app when prompted. Install it with `brew install steipete/tap/imsg`.

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

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.

What are the limitations of sending iMessages via imsg?

imsg only works on macOS with Messages.app configured, and it does not support group chat management such as adding or removing members. Bulk messaging is discouraged, and you should always confirm recipients before sending.