---
name: apple-ecosystem-automation
description: "Class-level macOS/Apple automation: Notes, Reminders, Messages/iMessage, Find My, and background GUI computer-use workflows."
version: 1.0.0
author: Hermes Agent
license: MIT
platforms: [macos]
metadata:
  hermes:
    tags: [apple, macos, notes, reminders, messages, findmy, computer-use, automation]
    related_skills: [obsidian, cronjob]
---

# Apple Ecosystem Automation

Use this umbrella when the user asks Hermes to work with native Apple/macOS apps or iCloud-synced personal data: Notes, Reminders, Messages/iMessage/SMS, Find My, or GUI-level computer use.

## Safety and scope

- macOS-only. On Linux/remote hosts, report that these actions require a Hermes instance running on the user's Mac.
- Before sending messages, creating reminders with notifications, deleting notes/reminders, or exposing locations, confirm the target/content/action with the user.
- Prefer structured CLIs (`memo`, `remindctl`, `imsg`) over GUI automation. Use GUI/computer-use only when no CLI/API exists or the task needs a native app.
- Never type secrets/passwords or click permission, payment, 2FA, or account-security dialogs unless the user explicitly directs the exact action.

## Notes via `memo`

Use for Apple Notes.app create/search/edit/export workflows that must sync to iPhone/iPad/Mac.

```bash
memo notes                         # list
memo notes -f "Folder"            # list by folder
memo notes -s "query"             # fuzzy search
memo notes -a "Title"             # create
memo notes -e                      # interactive edit
memo notes -ex                     # export HTML/Markdown
```

Use `memory` for agent-internal facts and `obsidian` for Markdown-native vault work.

## Reminders via `remindctl`

Use for iCloud Reminders.app tasks and due dates.

```bash
remindctl today --json
remindctl list
remindctl add --title "Call mom" --list Personal --due tomorrow
remindctl add --title "Appointment" --due "2026-05-15 14:00" --alarm "2026-05-15 13:30"
remindctl complete 1 2 3
```

`--due` is the task due time; `--alarm` is the notification trigger. Verify with JSON fields `dueDate` and `alarmDate` rather than trusting how the UI groups the item.

## Messages/iMessage/SMS via `imsg`

Use for Messages.app history and sending texts from macOS.

```bash
imsg chats --limit 10 --json
imsg history --chat-id 1 --limit 20 --attachments --json
imsg send --to "+15551234567" --text "Hello" --service auto
imsg send --to "+15551234567" --text "See attached" --file /path/to/image.jpg
```

Always confirm recipient and exact text before sending. Verify attachment paths first. Do not bulk-message.

## Find My / AirTags / devices

Apple exposes no stable Find My CLI/API. Use UI automation and screenshots only when the user asks for device/item location.

```bash
osascript -e 'tell application "FindMy" to activate'
sleep 3
screencapture -w -o /tmp/findmy.png
```

Then analyze the screenshot with vision. Prefer a macOS computer-use/capture tool or `peekaboo` if available. Do not reveal or monitor location without explicit user intent.

## Background macOS computer use

Use the `computer_use` tool (when available) for native GUI apps. Canonical loop:

1. Capture first, scoped to an app: `computer_use(action="capture", mode="som", app="Safari")`.
2. Click/type by element index instead of raw pixels.
3. Re-capture after every state-changing action; use `capture_after=True` when possible.
4. Do not raise windows or switch Spaces unless explicitly asked.

## Preserved source details

Full absorbed source skills are preserved in `references/absorbed-*.md` for command nuances, examples, and limitations.
