Use it when your goal in communication and scheduling is clear and you can limit it to the data and actions it actually needs.
Imessage
Send and receive iMessages/SMS via the imsg CLI on macOS
What does it add to Hermes?
Send and receive iMessages/SMS via the imsg CLI on macOS
Imessage is a skill related to communication and scheduling. It connects the agent to a communication channel or calendar. The important distinction is whether it only reads or can also send and modify.
This plain-language explanation is based on the publisher description. The original text remains visible for verification.
Do not add it merely to experiment when Hermes already has a simpler path, or when you cannot review its source and permissions.
Best for users who want a repeatable way of working inside Hermes.
Use a test account or draft-only workflow and confirm actual sending requires explicit approval.
Send and receive iMessages/SMS via the imsg CLI on macOS
This entry was indexed from Hermes Bundled Skills. Our explanation interprets the type and domain without inventing a capability not present upstream.
The source is official or editorially reviewed, but you still need to review permissions and version compatibility.
Inspect, install, then test.
- 01Open the source
Match the publisher, license, and description to your need. Check the real update history.
- 02Review permissions and secrets
Never paste a secret value into this site. Use environment-variable names and grant the smallest scope.
- 03Copy setup only after review
The controls below copy text. They do not execute commands on your device.
- 04Test with a non-sensitive task
Inspect the visible tools, then exclude write or delete tools you do not need.
Already installed with Hermes.
This skill ships with Hermes and loads when the agent decides it is relevant. There is nothing to install; read the definition below so you know what it will do.
Open the official page ↗Exactly what Hermes loads when this skill runs.
Reproduced from the official documentation. Read it before enabling the skill: this text becomes the agent's instructions.
Send and receive iMessages/SMS via the imsg CLI on macOS.
Skill metadata
A lookup table. Do not read it all; find the row that applies to you.
| Source | Bundled (installed by default) |
| Path | skills/apple/imessage |
| Version | 1.0.0 |
| Author | Hermes Agent |
| License | MIT |
| Platforms | macos |
| Tags | iMessage, SMS, messaging, macOS, Apple |
Reference: full SKILL.md
Explains the idea itself. Read it slowly; the later sections build on it.
Use imsg to read and send iMessage/SMS via macOS Messages.app.
Prerequisites
Explains the idea itself. Read it slowly; the later sections build on it.
- 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
Explains the idea itself. Read it slowly; the later sections build on it.
- 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
Explains the idea itself. Read it slowly; the later sections build on it.
- 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
Explains the idea itself. Read it slowly; the later sections build on it.
List Chats
imsg chats --limit 10 --jsonView History
# By chat ID
imsg history --chat-id 1 --limit 20 --json
# With attachments info
imsg history --chat-id 1 --limit 20 --attachments --jsonSend Messages
# Text only
imsg send --to "+14155551212" --text "Hello!"
# With attachment
imsg send --to "+14155551212" --text "Check this out" --file /path/to/image.jpg
# Force iMessage or SMS
imsg send --to "+14155551212" --text "Hi" --service imessage
imsg send --to "+14155551212" --text "Hi" --service smsWatch for New Messages
imsg watch --chat-id 1 --attachmentsService Options
Explains the idea itself. Read it slowly; the later sections build on it.
--service imessage— Force iMessage (requires recipient has iMessage)--service sms— Force SMS (green bubble)--service auto— Let Messages.app decide (default)
Rules
Explains the idea itself. Read it slowly; the later sections build on it.
- 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
Explains the idea itself. Read it slowly; the later sections build on it.
User: "Text mom that I'll be late"
# 1. Find mom's chat
imsg 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 confirmation
imsg send --to "+1555123456" --text "I'll be late"