imsg▌
steipete/clawdis · updated Apr 8, 2026
Use imsg to read and send iMessage/SMS via macOS Messages.app.
imsg
Use imsg to read and send iMessage/SMS via macOS Messages.app.
When to Use
✅ USE this skill when:
- User explicitly asks to send iMessage or SMS
- Reading iMessage conversation history
- Checking recent Messages.app chats
- Sending to phone numbers or Apple IDs
When NOT to Use
❌ DON'T use this skill when:
- Telegram messages → use
messagetool withchannel:telegram - Signal messages → use Signal channel if configured
- WhatsApp messages → use WhatsApp channel if configured
- Discord messages → use
messagetool withchannel:discord - Slack messages → use
slackskill - Group chat management (adding/removing members) → not supported
- Bulk/mass messaging → always confirm with user first
- Replying in current conversation → just reply normally (OpenClaw routes automatically)
Requirements
- macOS with Messages.app signed in
- Full Disk Access for terminal
- Automation permission for Messages.app (for sending)
Common Commands
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
Watch for New Messages
imsg watch --chat-id 1 --attachments
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
# Specify service
imsg send --to "+14155551212" --text "Hi" --service imessage
imsg send --to "+14155551212" --text "Hi" --service sms
Service Options
--service imessage— Force iMessage (requires recipient has iMessage)--service sms— Force SMS (green bubble)--service auto— Let Messages.app decide (default)
Safety Rules
- Always confirm recipient and message content before sending
- Never send to unknown numbers without explicit user approval
- Be careful with attachments — confirm file path exists
- Rate limit yourself — don't spam
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"
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
Ratings
4.4★★★★★69 reviews- ★★★★★Noor Ndlovu· Dec 28, 2024
Keeps context tight: imsg is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Noor Lopez· Dec 24, 2024
Useful defaults in imsg — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
- ★★★★★Kaira Bansal· Dec 24, 2024
I recommend imsg for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
- ★★★★★Hana Khanna· Dec 24, 2024
imsg is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Meera Shah· Dec 20, 2024
imsg fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
- ★★★★★Ava Abebe· Dec 8, 2024
Registry listing for imsg matched our evaluation — installs cleanly and behaves as described in the markdown.
- ★★★★★Ganesh Mohane· Dec 4, 2024
I recommend imsg for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
- ★★★★★William Sanchez· Dec 4, 2024
imsg has been reliable in day-to-day use. Documentation quality is above average for community skills.
- ★★★★★Kabir Agarwal· Nov 27, 2024
Solid pick for teams standardizing on skills: imsg is focused, and the summary matches what you get after install.
- ★★★★★Sakshi Patil· Nov 23, 2024
Useful defaults in imsg — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
showing 1-10 of 69