
Imsg
- 38 installs
- 61 repo stars
- Updated August 4, 2026
- joelhooks/joelclaw
List chats, read message history, watch for new messages, and send iMessage/SMS from the terminal via the imsg CLI.
About
Reads and sends iMessages and SMS through the imsg CLI backed by Messages.app. A developer uses it to check messages, read history, or send a text from an agent.
- Read commands need Full Disk Access; send needs Messages automation permission
- imsg send returns sent optimistically, meaning AppleScript fired, not delivery confirmed
Imsg by the numbers
- 38 all-time installs (skills.sh)
- Ranked #335 of 550 CLI & Terminal skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/joelhooks/joelclaw --skill imsgAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 38 |
|---|---|
| repo stars | ★ 61 |
| Last updated | August 4, 2026 |
| Repository | joelhooks/joelclaw ↗ |
What it does
List chats, read message history, watch for new messages, and send iMessage/SMS from the terminal via the imsg CLI.
Files
iMessage
Read and send iMessages and SMS from the terminal via the imsg CLI.
Setup (Panda)
- Messages.app signed in as: the agent Apple ID (see USER.md)
- Joel's iMessage address: see USER.md →
imessage - Full Disk Access must be granted to the terminal for read operations (
chats,history,watch) - Automation permission for Messages.app required for send
imsg sendreturns"sent"optimistically — this means AppleScript fired, not delivery confirmed
Commands
List chats
imsg chats --limit 10 --jsonRead history
imsg history --chat-id <id> --limit 20 --attachments --jsonWatch for new messages
imsg watch --chat-id <id> --attachmentsSend
# 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.jpgDelivery Notes
"sent"from CLI = AppleScript successfully handed off to Messages.app- "Not delivered" in Messages.app = actual delivery failure (auth issue, recipient offline, etc.)
- Full Disk Access missing = read commands fail with
permissionDenied; send still works via AppleScript - Messages appear as coming from the agent Apple ID, not from Joel
Sending to Joel
Joel's iMessage address is in USER.md (imessage field). Use it to notify him directly:
imsg send --to "<joel-imessage>" --text "your message"Safety
- Read-only by default — use
chatsandhistorybefore sending - Always confirm recipient and message text before
imsg send --jsonflag preferred for all read operations (deterministic parsing)
Install
brew install steipete/tap/imsgCredit
CLI by steipete. Adopted per ADR-0067.
interface:
icon_small: "./assets/small-logo.svg"
icon_large: "./assets/large-logo.png"