imessage – Coding skill for AI agents
Send and receive iMessages/SMS via the imsg CLI on macOS.
Install the imessage skill with one command
Pick the tool you use, copy the command and paste it in your terminal. The skill lands in that tool's skills folder and is ready in your next session.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/imessage-98971.tgz | tar xz -C ~/.claude/skills
Call it in Claude Code: /imessage – then describe the task you want done.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/imessage-98971.tgz | tar xz -C ~/.codex/skills
Call it in Codex: $imessage – then describe the task you want done.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/imessage-98971.tgz | tar xz -C ~/.hermes/skills
Call it in Hermes Agent: /imessage – then describe the task you want done.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/imessage-98971.tgz | tar xz -C ~/.deepcode/skills
Call it in DeepSeek: /imessage – then describe the task you want done.
SKILL.md content
iMessage
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
When NOT to Use
- 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
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
--service imessage— Force iMessage (requires recipient has iMessage)--service sms— Force SMS (green bubble)--service auto— Let Messages.app decide (default)
Rules
1. Always confirm recipient and message content before sending
2. Never send to unknown numbers without explicit user approval
3. Verify file paths exist before attaching
4. 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"Related skills
- multi-reviewer-patterns – Coordinate parallel code reviews across multiple quality dimensions with finding…
- inference-sh-cli – Run 150+ AI apps (image, video, LLM) via inference.sh CLI.
- nodejs-backend-patterns – Build production-ready Node.js backend services with Express/Fastify, implementing…
- decision-logger – Two-layer memory architecture for board meeting decisions. Manages raw transcripts…
- azure-security-keyvault-keys-java – Azure Key Vault Keys Java SDK for cryptographic key management. Use when creating…
- nx-workspace-patterns – Configure and optimize Nx monorepo workspaces. Use when setting up Nx, configuring…
- opentrons-integration – Authors, reviews, migrates, simulates, and troubleshoots official Opentrons Python…
- azure-security-keyvault-secrets-java – Azure Key Vault Secrets Java SDK for secret management. Use when storing, retrieving, or…