Provides command-line access to Apple Messages, allowing for searching history and sending messages.
Install
mkdir -p .claude/skills/imsg-dbillionaer && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/11544" && unzip -o skill.zip -d .claude/skills/imsg-dbillionaer && rm skill.zipInstalls to .claude/skills/imsg-dbillionaer
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
iMessage/SMS CLI for listing chats, history, and sending messages via Messages.app.Key capabilities
- →List recent chats in Messages.app
- →View message history for a specific chat ID
- →Send text messages to phone numbers or Apple IDs
- →Send messages with file attachments
- →Force messages to be sent as iMessage or SMS
How it works
The skill uses the `imsg` command-line interface to interact with the macOS Messages.app, allowing programmatic access to messaging functions.
Inputs & outputs
When to use imsg
- →Sending SMS via CLI
- →Searching message history
- →Integrating notifications with local scripts
About this skill
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 (Clawdbot 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"
When not to use it
- →Sending Telegram messages
- →Managing group chat members
- →Sending bulk or mass messages without confirmation
Prerequisites
Limitations
- →Cannot send messages to Telegram, Signal, WhatsApp, Discord, or Slack channels.
- →Does not support group chat management features like adding or removing members.
- →Requires explicit user confirmation for bulk messaging and sending to unknown numbers.
How it compares
This skill automates messaging tasks through the command line, unlike manual interaction with the Messages.app graphical user interface.
Compared to similar skills
imsg side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| imsg (this skill) | 0 | 5mo | Review | Beginner |
| himalaya | 50 | 2mo | Review | Intermediate |
| officeemail-management | 8 | 8mo | No flags | Intermediate |
| gmail | 16 | 6mo | Review | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
himalaya
openclaw
CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
officeemail-management
harperreed
Handle email tasks (checking inbox, drafting replies, managing threads, adding events to calendar). Use when working with emails to prevent common mistakes like broken threading or missing recipients.
gmail
team-attention
This skill should be used when the user asks to "check email", "read emails", "send email", "reply to email", "search inbox", or manages Gmail. Supports multi-account Gmail integration for reading, searching, sending, and label management.
sendgrid-automation
sickn33
Automate SendGrid email operations including sending emails, managing contacts/lists, sender identities, templates, and analytics via Rube MCP (Composio). Always search tools first for current schemas.
klaviyo
alinaqi
Klaviyo email/SMS marketing - profiles, events, flows, segmentation
slack
motoya0118
Post a question to Slack and wait for a reply, or post a reply into a thread using scripts/slack.py.