Directory → SKILL
SKILLbundledHermes Bundled Skills

Imessage

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

iMessageSMSmessagingmacOSAppleBundledHermes skill
Last registry verification2026-08-18v1.0.0Hermes Agent
Plain meaning

What does it add to Hermes?

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

Imessage is a skill related to communication and scheduling. It connects the agent to a communication channel or calendar. The important distinction is whether it only reads or can also send and modify.

This plain-language explanation is based on the publisher description. The original text remains visible for verification.

Use it when

Use it when your goal in communication and scheduling is clear and you can limit it to the data and actions it actually needs.

Skip it when

Do not add it merely to experiment when Hermes already has a simpler path, or when you cannot review its source and permissions.

Who is it for?

Best for users who want a repeatable way of working inside Hermes.

Safe first test

Use a test account or draft-only workflow and confirm actual sending requires explicit approval.

Original publisher description

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

✓
Data source

This entry was indexed from Hermes Bundled Skills. Our explanation interprets the type and domain without inventing a capability not present upstream.

!
Security review

The source is official or editorially reviewed, but you still need to review permissions and version compatibility.

Safe setup path

Inspect, install, then test.

  1. 01
    Open the source

    Match the publisher, license, and description to your need. Check the real update history.

  2. 02
    Review permissions and secrets

    Never paste a secret value into this site. Use environment-variable names and grant the smallest scope.

  3. 03
    Copy setup only after review

    The controls below copy text. They do not execute commands on your device.

  4. 04
    Test with a non-sensitive task

    Inspect the visible tools, then exclude write or delete tools you do not need.

Setup method

Already installed with Hermes.

This skill ships with Hermes and loads when the agent decides it is relevant. There is nothing to install; read the definition below so you know what it will do.

Open the official page ↗
The full skill definition

Exactly what Hermes loads when this skill runs.

Reproduced from the official documentation. Read it before enabling the skill: this text becomes the agent's instructions.

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

Skill metadata

A lookup table. Do not read it all; find the row that applies to you.

SourceBundled (installed by default)
Pathskills/apple/imessage
Version1.0.0
AuthorHermes Agent
LicenseMIT
Platformsmacos
TagsiMessage, SMS, messaging, macOS, Apple

Reference: full SKILL.md

Explains the idea itself. Read it slowly; the later sections build on it.

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

Prerequisites

Explains the idea itself. Read it slowly; the later sections build on it.

  • 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

Explains the idea itself. Read it slowly; the later sections build on it.

  • 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

Explains the idea itself. Read it slowly; the later sections build on it.

  • 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

Explains the idea itself. Read it slowly; the later sections build on it.

List Chats

Shell1 line
imsg chats --limit 10 --json

View History

Shell5 lines
# 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

Shell9 lines
# 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

Shell1 line
imsg watch --chat-id 1 --attachments

Service Options

Explains the idea itself. Read it slowly; the later sections build on it.

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

Rules

Explains the idea itself. Read it slowly; the later sections build on it.

  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

Explains the idea itself. Read it slowly; the later sections build on it.

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

Shell7 lines
# 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"