imessage

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

1|Updated Jun 1, 2026
One-click install
npx skills add https://github.com/Araara7/hermes-skills --skill imessage-araara7
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: imessage
Source: https://github.com/Araara7/hermes-skills/tree/main/apple/imessage
Command: npx skills add https://github.com/Araara7/hermes-skills --skill imessage-araara7

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? It lets you read chat history and send iMessage or SMS texts from the terminal on macOS without manually opening Messages.app, enabling scripted and AI-assisted messaging workflows. ## Core Features & Use Cases - List and Inspect Chats: Run imsg chats --limit 10 --json to enumerate recent conversations with structured JSON output. - Read Message History: Use imsg history --chat-id <id> --limit 20 --json to review past messages, optionally including attachment info. - Send Texts and Attachments: Send messages to phone numbers or Apple IDs with imsg send, forcing iMessage or SMS via the --service flag, and attach files with --file. - Use Case: A user says "Text mom that I'll be late" — the assistant finds Mom's chat, confirms the recipient and content, then sends the message via imsg send. ## Quick Start Ask the assistant to send an iMessage saying "Running 10 minutes late" to a specific phone number, confirming the recipient before sending.

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

Install the imsg CLI with `brew install steipete/tap/imsg`, then run `imsg send --to "+14155551212" --text "Hello!"`. Messages.app must be signed in, and the terminal needs Full Disk Access and Automation permission for Messages.app.

How do I read iMessage history from the command line?▼

Use `imsg history --chat-id <id> --limit 20 --json` to retrieve recent messages from a specific chat in JSON format. Add the `--attachments` flag to include attachment information, and find chat IDs first with `imsg chats --limit 10 --json`.

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's capabilities.

Does imsg work on Linux or Windows?▼

No, imsg only works on macOS because it relies on Messages.app and the local Messages database. It requires a Mac signed into Messages.app plus Full Disk Access and Automation permissions.

Why does imsg fail to read messages on macOS?▼

Failures usually come from missing permissions: the terminal needs Full Disk Access in System Settings under Privacy, and Automation permission for Messages.app must be granted when prompted. Messages.app must also be signed in.