<< All versions
Skill v1.0.0
currentAutomated scan100/100sesaloy/hermes-mobile/imessage
──Details
PublishedNovember 6, 2026 at 04:54 AM
Content Hashsha256:bc68b1648e301409...
Git SHA5181095a0878
──Files
Files (1 file, 2.4 KB)
SKILL.md2.4 KBactive
SKILL.md · 103 lines · 2.4 KB
name: imessage description: Send and receive iMessages/SMS via the imsg CLI on macOS. version: 1.0.0 author: Hermes Agent license: MIT platforms: [macos] metadata: hermes: tags: [iMessage, SMS, messaging, macOS, Apple] prerequisites: commands: [imsg]
iMessage
Use imsg to read and send iMessage/SMS via macOS Messages.app.
Prerequisites
- macOS with Messages.app signed in
- Install:
brew install steipete/tap/imsg - Grant Full Disk Access for terminal (System Settings → Privacy → Full Disk Access)
- Grant Automation permission for Messages.app when prompted
When to Use
- User asks to send an iMessage or text message
- Reading iMessage conversation history
- Checking recent Messages.app chats
- Sending to phone numbers or Apple IDs
When NOT to Use
- Telegram/Discord/Slack/WhatsApp messages → use the appropriate gateway channel
- Group chat management (adding/removing members) → not supported
- Bulk/mass messaging → always confirm with user first
Quick Reference
List Chats
bash
imsg chats --limit 10 --json
View History
bash
# By chat IDimsg history --chat-id 1 --limit 20 --json# With attachments infoimsg history --chat-id 1 --limit 20 --attachments --json
Send Messages
bash
# Text onlyimsg send --to "+14155551212" --text "Hello!"# With attachmentimsg send --to "+14155551212" --text "Check this out" --file /path/to/image.jpg# Force iMessage or SMSimsg send --to "+14155551212" --text "Hi" --service imessageimsg send --to "+14155551212" --text "Hi" --service sms
Watch for New Messages
bash
imsg watch --chat-id 1 --attachments
Service Options
--service imessage— Force iMessage (requires recipient has iMessage)--service sms— Force SMS (green bubble)--service auto— Let Messages.app decide (default)
Rules
- Always confirm recipient and message content before sending
- Never send to unknown numbers without explicit user approval
- Verify file paths exist before attaching
- Don't spam — rate-limit yourself
Example Workflow
User: "Text mom that I'll be late"
bash
# 1. Find mom's chatimsg chats --limit 20 --json | jq '.[] | select(.displayName | contains("Mom"))'# 2. Confirm with user: "Found Mom at +1555123456. Send 'I'll be late' via iMessage?"# 3. Send after confirmationimsg send --to "+1555123456" --text "I'll be late"