iMessage
SkillCommunicationThe imessage skill lets an AI agent send and receive iMessages and SMS messages on macOS through the imsg CLI. It gives the person using the agent a way to read incoming texts and reply to them without switching to another app. The skill works with the iMessage Claude plugin.
Use iMessage in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add iMessage and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the iMessage skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Have a Mac running macOS with iMessage set up and signed in.
What your AI can do with it
- Send iMessages and SMS messages using the imsg CLI
- Read incoming iMessages and SMS messages
- Reply to text conversations from the agent
- Work through the iMessage Claude plugin on macOS
Getting started
- Have a Mac running macOS with iMessage set up and signed in.
- Install the imsg CLI on that Mac.
- Add the imessage skill to your agent setup.
- Configure the skill to use the imsg CLI and the iMessage Claude plugin.
What this skill tells your AI
The instructions your AI receives, as published by atlasomnia/hermes-custom-pack in skills/imessage/SKILL.md and read by Ahel’s review.
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
- Evaluating iMessage bridge/privacy options for Hermes; see before recommending Photon/Spectrum Cloud
When NOT to Use
- Telegram/Discord/Slack/WhatsApp messages → use the appropriate gateway channel
- Hermes iMessage gateway integration (live bidirectional channel) → that's the BlueBubbles platform adapter in the Hermes gateway. The
imsgCLI here is for one-off scripting, not persistent gateway connections. - Group chat management (adding/removing members) → not supported
- Bulk/mass messaging → always confirm with user first
- Sensitive/private conversations over third-party iMessage cloud bridges unless retention, logging, employee-access, attachment-cache, and training-use guarantees are verified first
Privacy Notes
- Prefer local Mac-backed Messages.app/
imsgworkflows for maximum privacy: content stays on the Mac and uses the user's own Messages account. - Photon/Spectrum iMessage Cloud is a portability bridge, not an end-to-end-private-from-Photon path. Treat it as a trusted third-party message processor unless Photon provides zero-retention/self-hosted guarantees.
- For platform privacy details and due-diligence questions,
Quick Reference
List Chats
imsg chats --limit 10 --json
View History
# By chat ID
imsg history --chat-id 1 --limit 20 --json
# With attachments info
imsg history --chat-id 1 --limit 20 --attachments --json
Send 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 sms
Watch for New Messages
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"
# 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"
Signals
- GitHub stars
- 60
- Forks
- 6
- Last commit
- Aug 2026
- Hacker News mentions
- 20
Ahel review
K1binfo
installs-packages
Automated review, not a security audit. Ruleset v1+k2.
Questions
- What does the imessage skill do?
- It lets an AI agent send and receive iMessages and SMS messages on macOS by using the imsg CLI, through the iMessage Claude plugin.
- Does it work on Windows or Linux?
- No. The skill is for macOS only, because it uses the imsg CLI and iMessage on a Mac.
- Do I need the imsg CLI installed?
- Yes. The skill sends and receives messages through the imsg CLI, so that command line tool must be installed on the Mac.
- Can the agent read my incoming texts?
- Yes. The skill can read incoming iMessages and SMS messages so the agent can work with them.
- Does it need the iMessage Claude plugin?
- Yes. The skill works through the iMessage Claude plugin, so that plugin has to be part of your setup.
Advanced
- Item type
- skill
- Key
imessage- Source
- github.com/atlasomnia/hermes-custom-pack
github.com/atlasomnia/hermes-custom-pack
More in Communication
Skill · anthropics
More in Communicationerror-handling
Skill · affaan-m
More in Communicationemails
Skill · coreyhaines31
More in Communicationwait-what
Skill · mattpocock
More in Communicationcold-email
Skill · coreyhaines31
More in Communicationazure-messaging
Skill · microsoft
More in Communication