How to install imsg
npx skills add https://github.com/steipete/clawdis --skill imsgClaude Code
Cursor
Windsurf
Cline
Full instructions (SKILL.md)
Source of truth, from steipete/clawdis.
name: imsg description: "iMessage/SMS CLI for listing chats, history, and sending messages via Messages.app." homepage: https://imsg.to metadata: { "openclaw": { "emoji": "📨", "os": ["darwin"], "requires": { "bins": ["imsg"] }, "install": [ { "id": "brew", "kind": "brew", "formula": "steipete/tap/imsg", "bins": ["imsg"], "label": "Install imsg (brew)", }, ], }, }
imsg
Use imsg to read and send iMessage/SMS via macOS Messages.app.
When to Use
Use 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
Do not use 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"
Related skills
More from steipete/clawdis and the wider catalog.
SU
summarize
steipete/clawdis
Fast CLI to summarize or transcribe URLs, videos, podcasts, articles, PDFs, and local files.
20k installs
WE
weather
steipete/clawdis
Current weather and forecasts with web_fetch, falling back to wttr.in curl for locations, rain, temperature, travel planning.
5.6k installsAudited
TM
tmux
steipete/clawdis
Control tmux sessions/panes for interactive CLIs: list, capture output, send keys, paste text, monitor prompts.
5.0k installs
GO
gog
steipete/clawdis
Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.
4.3k installs
NA
nano-pdf
steipete/clawdis
Edit PDFs with natural-language instructions using the nano-pdf CLI.
3.9k installs
OP
openai-whisper
steipete/clawdis
Local speech-to-text with the Whisper CLI (no API key).
3.8k installsAudited