iMessage/SMS CLI for listing chats, reading message history, watching for new messages, and sending messages. Triggers on: check messages, read imessage, send text, imsg, message history, sms, who texted me.
92%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
Read and send iMessages and SMS from the terminal via the imsg CLI.
imessagechats, history, watch)imsg send returns "sent" optimistically — this means AppleScript fired, not delivery confirmedimsg chats --limit 10 --jsonimsg history --chat-id <id> --limit 20 --attachments --jsonimsg watch --chat-id <id> --attachments# By email (iMessage)
imsg send --to "user@example.com" --text "hello"
# By phone number (iMessage or SMS)
imsg send --to "+18005551234" --text "hello"
# With file attachment
imsg send --to "user@example.com" --text "see attached" --file /path/to/file.jpg"sent" from CLI = AppleScript successfully handed off to Messages.apppermissionDenied; send still works via AppleScriptJoel's iMessage address is in USER.md (imessage field). Use it to notify him directly:
imsg send --to "<joel-imessage>" --text "your message"chats and history before sendingimsg send--json flag preferred for all read operations (deterministic parsing)brew install steipete/tap/imsgCLI by steipete. Adopted per ADR-0067.
On Flagg, do not call imsg from a terminal for reads. Use Executor's saved connection, which runs a signed service that holds the Full Disk Access grant.
tools.imsg.org.flaggImsg.<tool>. Discover with tools.search({ namespace: "imsg", query: "" }).imsg_status, imsg_chats, imsg_group, imsg_history, imsg_send. Call imsg_status first.com.joel.imsg-mcp on 127.0.0.1:4793, code in packages/imsg-mcp, bundle /Applications/imsg-mcp.app.imsg_send needs Joel's explicit approval for recipient and text. An org require_approval policy on it is expected in Executor; check the Tools tab. Attachments only from ~/.joelclaw/imsg-outbox or /tmp. A killed send returns "outcome unknown", so check Messages.app before retrying.curl -s http://127.0.0.1:4793/healthz and launchctl print gui/501/com.joel.imsg-mcp. Restart with launchctl kickstart -k gui/501/com.joel.imsg-mcp.imsg_mcp_bearer_token in agent-secrets. Never print it./Applications/imsg-mcp.app (re-toggle after any re-sign) and the Automation prompt for Messages.app on first send.Full receipts: ~/Code/joelhooks/dark-wizard/.brain/projects/imsg-mcp-executor-2026-09.svx.
joelhooks/joelclaw
4639c31
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.