Skip to content
Development
Skill

/prismer-imessage

Send and receive iMessages/SMS via the imsg CLI on macOS.

BOOST
From plugin
prismercloud
1.6k102 skills
Install
$ npx -y skills add Prismer-AI/PrismerCloud --skill prismer-imessage --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/prismer-imessage

Context preview

The summary Claude sees to decide when to auto-load this skill.

Send and receive iMessages/SMS via the imsg CLI on macOS.

SKILL.md

prismer-imessage.SKILL.md
name: prismer-imessage
scope: common
description: Send and receive iMessages/SMS via the imsg CLI on macOS.
version: 1.0.0
author: Hermes Agent
license: MIT
platforms: [ macos ]
metadata:
  nativeReplaces: [ imessage ]
  hermes:
    tags: [ iMessage, SMS, messaging, macOS, Apple ]
  requiresExplicitGrant: true
prerequisites:
  commands: [ imsg ]

Prismer execution contract

This is the uniquely named `prismer-imessage` skill, adapted from Hermes. Use the actual tools exposed by the executing host; examples using terminal, process, delegate_task, vision_analyze or browser_* are not tool registrations. Missing dependencies do not hide this skill. Report command startup, version, account/permissions and task-specific live verification separately. Use task-owned artifact paths and existing user authorization; do not change shared accounts, Runtime/provider configuration, global security settings or unrelated work. See NOTICE.md and LICENSE for resource provenance. Runtime availability and upstream-entry suppression are owned by the integration layer.

iMessage

Use `imsg` to read and send iMessage/SMS via macOS Messages.app.

Prerequisites

Run `python3 "$SKILL_ROOT/scripts/readiness.py" imessage` from this installed skill's resolved directory. Help checks flags only; account, Full Disk Access, Automation, SMS forwarding and delivery require separate authorized live checks.

  • **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 --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

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

# Force iMessage or SMS
imsg send --to "+14155551212" --text "Hi" --service imessage
imsg send --to "+14155551212" --text "Hi" --service sms

Watch for New Messages

imsg watch --chat-id 1 --attachments

Watch only for the user-authorized chat and duration; terminate the process at that deadline. Do not capture a continuous stream as an incidental diagnostic.

Service Options

  • `--service imessage` — Force iMessage (requires recipient has iMessage)
  • `--service sms` — Force SMS (green bubble)
  • `--service auto` — Let Messages.app decide (default)

Rules

1. Use an explicitly authorized exact recipient/content; clarify ambiguous identities only 2. **Never send to unknown numbers** without explicit user approval 3. Verify both file existence and authorization to send that specific content 4. **Don't spam** — rate-limit yourself

Example Workflow

User: "Text mom that I'll be late"

# 1. Read candidates, then resolve the exact chat handle or phone number.
imsg chats --limit 20 --json

# 2. A display name is not unique. Clarify only if the authorized recipient is ambiguous.

# 3. Send after confirmation
imsg send --to "+1555123456" --text "I'll be late"

After an uncertain send, read back the target chat before retrying; do not create duplicate messages. A local command exit is not proof of remote delivery.

Read more
Ships withprismercloud

Prismer Cloud

Get the whole plugin
Stats
1,554
Stars
17
Forks
Active
Maintenance
TypeScript
Language
MIT
License
2d ago
Last commit
6mo ago
Created

Repo: Prismer-AI/PrismerCloud

Other skills on prismercloud.