Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

imessage — Claude Code skill: what it does, how to install

A skill that lets your coding agent read Messages.app chats and send iMessage or SMS from the terminal on macOS. Handy when the conversation stays local.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add NousResearch/hermes-agent --skill imessage -a claude-code
Open on GitHub

What imessage does

The skill points your agent at imsg, a command-line tool that reads and sends iMessage and SMS through Messages.app on macOS. Ask it to text someone or to check what you missed and it runs the CLI itself. Chat list, history, attachments, and a watch mode for incoming messages.

Everything sits in one SKILL.md with the commands spelled out. imsg chats --limit 10 --json lists conversations, imsg history --chat-id 1 --limit 20 --json pulls the transcript, and --attachments brings attachment details along. Sending is imsg send --to with --text and an optional --file. The --service flag picks imessage, sms or auto, and auto leaves the choice to Messages.app. The file also carries rules for the agent: confirm the recipient and the wording first, never message an unknown number, check that the file path exists.

macOS only. You need Messages.app signed in, imsg installed (brew install steipete/tap/imsg), Full Disk Access for the terminal, and Automation permission for Messages.app. Miss either permission and reading history or sending will hit a system refusal that no amount of prompting gets around. Group chat membership is out of scope.

What it helps with

  • text a number without picking up the phone
  • read a thread and summarise what was missed
  • attach an image or file to a message
  • watch one chat for new messages
  • force SMS when iMessage is the wrong channel

Example prompts for the agent

  • List my last 10 Messages chats and find the one with Mom
  • Send "Running late, be there in an hour" to +14155551212 over iMessage
  • Read the last 20 messages in chat 1 and tell me what I missed

How to install imessage

1Skills CLI (Vercel)

npx skills add NousResearch/hermes-agent --skill imessage -a claude-code

2Manually: put the files in place

~/.claude/skills/imessage/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/imessage/

From the same set42

The whole set →
dogfood Teknium (teknium1), Hermes Agent A skill for exploratory QA of a web app: it walks the pages, captures console errors and screenshots, then writes a bug report. Claude Code CX Codex Cursor +1 6,400installs humanizer Siqi Chen (@blader, https://github.com/blader/humanizer), ported by Hermes Agent This skill removes common AI writing patterns and gives drafts a more natural voice. Use it for docs, posts, emails, and other text. Claude Code CX Codex Cursor +1 1,300installs popular-web-designs Hermes Agent + Teknium (design systems sourced from VoltAgent/awesome-design-md) 54 real-world design systems (Stripe, Linear, Vercel, Claude) with CSS tokens, typography, and components for building pages styled after known brands. Claude Code CX Codex Cursor +1 914installs powerpoint Nous Research Creates, reads, and edits .pptx presentations with python-pptx. Use it for slide decks, extracting presentation content, and template-based updates. Claude Code CX Codex Cursor +1 751installs claude-design BadTechBandit Skill for building HTML artifacts — landing pages, prototypes, decks — in Claude Code, Codex and Cursor. Reads project context and produces a self-contained file with markup and styles. Claude Code CX Codex Cursor +1 645installs llm-wiki Hermes Agent A skill for building a persistent knowledge base from interlinked markdown files. The agent summarizes sources, cross-references pages, and maintains consistency while you curate and direct the analysis. Claude Code CX Codex Cursor +1 603installs yuanbao Teknium (teknium1), Hermes Agent Connects agents to Yuanbao groups to query members, send mentions using @nickname, and deliver direct messages with attachments. Claude Code CX Codex Cursor +1 564installs songwriting-and-ai-music Teknium (teknium1), Hermes Agent Provides songwriting structures, prosody techniques, and Suno AI prompt formulas that rely on sound details rather than artist names. Claude Code CX Codex Cursor +1 563installs

Similar

cli-setup cheaper-inference Helps the agent configure OmniRoute, manage autostart, apply CLI updates, and adjust session environment variables. Claude Code CX Codex Cursor +1 1,200installs omni-combos-routing cheaper-inference This skill creates and manages model routing combos with fallback chains, tests, and metrics. Use it when OmniRoute needs configurable provider routing. Claude Code CX Codex Cursor +1 1,200installs ios-simulator callstack Launch, inspect, and debug native, React Native, Expo, and Flutter apps on iOS Simulator from your agent. The agent can tap, type, scroll, validate code changes, and collect error logs. Claude Code CX Codex Cursor +1 5,100installs controlnet-pose prime-skills A skill for controlling pose and motion in video and image generation via RunComfy. Transfer movement from a source video to a target character, animate by pose, or generate images with depth or skeleton control. Claude Code CX Codex Cursor +1 377,000installs lipsync prime-skills Drives a face's mouth from an audio track: it reads your input, picks the right RunComfy endpoint and hands back a ready runcomfy run call. Claude Code CX Codex Cursor +1 376,900installs image-outpainting prime-skills Extends an existing image with runcomfy, changes its aspect ratio, and fills in the missing surroundings while keeping the original scene. Claude Code CX Codex Cursor +1 376,300installs setup-matt-pocock-skills Matt Pocock This skill configures a repository for Matt Pocock's engineering skills by setting its issue tracker, triage labels, and domain docs layout. Run it before using the other skills. Claude Code 1,052,851installs to-tickets Matt Pocock Turns a plan, spec, or conversation into small end-to-end tickets with explicit blockers. Use it to agree on the work breakdown before tickets go to a tracker. Claude Code 711,230installs

Questions about imessage

How do I install imessage in Claude Code?

Run npx skills add NousResearch/hermes-agent --skill imessage -a claude-code. The skill file lands at ~/.claude/skills/imessage/SKILL.md.

What does imessage do?

It gives the agent access to Messages.app on macOS through the imsg CLI: chat list, history with attachments, sending via iMessage or SMS, and watching for new messages.

What do I need before it works?

macOS with Messages.app signed in and imsg installed (brew install steipete/tap/imsg). You also grant Full Disk Access to the terminal and Automation permission to Messages.app.

Source text

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

# iMessage

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

## Prerequisites

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

```bash
imsg chats --limit 10 --json
```

### View History

```bash
# 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

```bash
# 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

```bash
imsg watch --chat-id 1 --attachments
```

## 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. **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

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

```bash
# 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"
```

© Hermes Agent · MIT · NousResearch/hermes-agent

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor