imessage

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

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

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 1 --limit 20 --json to review past messages, optionally including attachment metadata. - Send Texts and Attachments: Send messages to phone numbers or Apple IDs with imsg send, forcing iMessage or SMS delivery 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 through Messages.app. ## Quick Start Ask the assistant to send an iMessage saying "Running 10 minutes late" to a specific phone number, and confirm the recipient before it sends.

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

Use the imsg CLI: run `imsg send --to "+14155551212" --text "Hello!"` after installing it with `brew install steipete/tap/imsg`. Messages.app must be signed in, and the terminal needs Full Disk Access.

How do I read iMessage history from the command line?

Run `imsg history --chat-id 1 --limit 20 --json` to retrieve recent messages for a chat as structured JSON. Add `--attachments` to include attachment information in the output.

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 my messages on macOS?

The terminal lacks Full Disk Access or Automation permission for Messages.app. Grant Full Disk Access in System Settings under Privacy, and approve the Automation prompt when it appears.

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. It also only works on macOS with Messages.app signed in.