imessage

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

2|Updated Oct 20, 2017
One-click install
npx skills add https://github.com/rbudiharso/dotfiles --skill imessage-rbudiharso
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: imessage
Source: https://github.com/rbudiharso/dotfiles/tree/main/hermes/.hermes/skills/apple/imessage
Command: npx skills add https://github.com/rbudiharso/dotfiles --skill imessage-rbudiharso

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: Enumerate recent conversations with imsg chats and view message history by chat ID, including attachment info. - Send messages with attachments: Deliver text and files to phone numbers or Apple IDs, with control over iMessage vs SMS delivery via the --service flag. - Watch for incoming messages: Monitor a conversation in real time using imsg watch. - Use Case: A user asks to text a family member; the assistant finds the contact's chat with imsg chats, confirms the recipient and message, then sends it with imsg send. ## Quick Start Ask the assistant to send an iMessage saying you will be late to a specific contact, and it will look up the chat, confirm the details, and send the text.

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 chats --limit 10 --json` to list recent conversations, then `imsg history --chat-id <id> --limit 20 --json` to view messages. 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 read messages on macOS?▼

The terminal application needs Full Disk Access granted in System Settings under Privacy, plus Automation permission for Messages.app. Messages.app must also be signed in with an Apple ID.

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 be avoided. Recipients, message content, and attachment file paths should always be confirmed before sending.