Agent skill · software engineering · steipete
imsg
Use the imsg CLI from OpenClaw agents for iMessage/SMS DMs, groups, replies, reactions, polls, watching, and private-API actions.
Why this skill is useful
Adds specific commands and workflows for interacting with iMessage/SMS that the AI wouldn't reliably generate on its own.
What it needs
Requires brew installed locally. About 6k tokens when loaded. Last updated 2026-08-07. 385,400 stars on the source repository.
What this skill does
imsg Use the generic message tool first for actions that its current iMessage schema exposes. Use imsg when the task needs local Messages.app history, target discovery, watching, or an administrative/private-API capability that is not exposed by message. Do not use this skill for Telegram, Signal, WhatsApp, Discord, Slack, or for replying inside the current OpenClaw conversation when the configured channel already routes the reply. Agent Flow 1. Resolve the conversation first. 2. Choose DM, existing group, or new group. 3. Prefer an available message action; otherwise pick the lowest-capability imsg command that preserves the requested semantics. 4. Confirm any send or visible state change unless the user already gave exact recipient, content, and action. 5. Execute with stable identifiers: prefer --chat-id for normal sends/watch/history and --chat chat GUID for bridge actions. Never infer a recipient from a casual name alone when several chats or handles could match. Show the matched display name, handle(s), group participants, and message text/action before sending. Host Requirements macOS 14+ with Messages.app signed in for send/react/bridge actions. Private API mode is strongly encouraged for OpenClaw iMessage. It unlocks replies, precise tapbacks, effects, polls, attachment replies, read/typing actions, and group management. Basic mode is a fallback for reads plus plain text/file send. Full Disk Access for the process context that runs imsg or OpenClaw; reads fail without Messages DB access. Automation permission for Messages.app when using public send. Accessibility permission for the process context that runs public imsg react; it uses System Events UI automation. Bridge tapback uses private API instead. Optional Contacts permission for contact-name resolution. SMS sends require Text Message Forwarding from the user's iPhone to this Mac. Linux reads a copied chat.db only; it cannot send, react, launch Messages.app, mark read, or type. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills steipete/imsg