mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-05-01 00:11:39 +08:00
Generates a full dedicated Docusaurus page for every one of the 132 skills
(73 bundled + 59 optional) under website/docs/user-guide/skills/{bundled,optional}/<category>/.
Each page carries the skill's description, metadata (version, author, license,
dependencies, platform gating, tags, related skills cross-linked to their own
pages), and the complete SKILL.md body that Hermes loads at runtime.
Previously the two catalog pages just listed skills with a one-line blurb and
no way to see what the skill actually did — users had to go read the source
repo. Now every skill has a browsable, searchable, cross-linked reference in
the docs.
- website/scripts/generate-skill-docs.py — generator that reads skills/ and
optional-skills/, writes per-skill pages, regenerates both catalog indexes,
and rewrites the Skills section of sidebars.ts. Handles MDX escaping
(outside fenced code blocks: curly braces, unsafe HTML-ish tags) and
rewrites relative references/*.md links to point at the GitHub source.
- website/docs/reference/skills-catalog.md — regenerated; each row links to
the new dedicated page.
- website/docs/reference/optional-skills-catalog.md — same.
- website/sidebars.ts — Skills section now has Bundled / Optional subtrees
with one nested category per skill folder.
- .github/workflows/{docs-site-checks,deploy-site}.yml — run the generator
before docusaurus build so CI stays in sync with the source SKILL.md files.
Build verified locally with `npx docusaurus build`. Only remaining warnings
are pre-existing broken link/anchor issues in unrelated pages.
119 lines
3.0 KiB
Markdown
119 lines
3.0 KiB
Markdown
---
|
|
title: "Imessage — Send and receive iMessages/SMS via the imsg CLI on macOS"
|
|
sidebar_label: "Imessage"
|
|
description: "Send and receive iMessages/SMS via the imsg CLI on macOS"
|
|
---
|
|
|
|
{/* This page is auto-generated from the skill's SKILL.md by website/scripts/generate-skill-docs.py. Edit the source SKILL.md, not this page. */}
|
|
|
|
# Imessage
|
|
|
|
Send and receive iMessages/SMS via the imsg CLI on macOS.
|
|
|
|
## Skill metadata
|
|
|
|
| | |
|
|
|---|---|
|
|
| Source | Bundled (installed by default) |
|
|
| Path | `skills/apple/imessage` |
|
|
| Version | `1.0.0` |
|
|
| Author | Hermes Agent |
|
|
| License | MIT |
|
|
| Platforms | macos |
|
|
| Tags | `iMessage`, `SMS`, `messaging`, `macOS`, `Apple` |
|
|
|
|
## Reference: full SKILL.md
|
|
|
|
:::info
|
|
The following is the complete skill definition that Hermes loads when this skill is triggered. This is what the agent sees as instructions when the skill is active.
|
|
:::
|
|
|
|
# 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"
|
|
```
|