一键导入
macos-automation
macOS-specific automation: iMessage/SMS messaging and desktop control (screenshots, clicks, keyboard input).
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
macOS-specific automation: iMessage/SMS messaging and desktop control (screenshots, clicks, keyboard input).
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Messaging platform integrations: email (IMAP/SMTP via Himalaya), X/Twitter (xurl CLI), and Yuanbao groups (@mentions, DMs).
Control creative software programmatically: ComfyUI (AI image/video generation via REST/WebSocket API) and TouchDesigner (real-time visual programming via MCP).
Systematic engineering disciplines: debugging (root cause investigation), TDD (test-first development), and exploratory QA (web app testing).
Creative coding: p5.js sketches, Manim animations, Pretext text layouts.
Create, read, edit .pptx decks, slides, notes, templates.
Visual design artifacts: HTML/SVG/JSON diagrams, design systems, brand templates.
| name | macos-automation |
| description | macOS-specific automation: iMessage/SMS messaging and desktop control (screenshots, clicks, keyboard input). |
| version | 1.0.0 |
| author | Hermes Agent |
| license | MIT |
| platforms | ["macos"] |
| metadata | {"hermes":{"tags":["macos","imessage","sms","desktop-control","automation","screenshots","apple"],"category":"apple"}} |
macOS-specific automation capabilities for messaging and desktop control.
Send and receive iMessages and SMS via the imsg CLI on macOS. Uses the Messages app backend — requires macOS with Messages configured.
brew install imsg or build from source# Homebrew (recommended)
brew install imsg
# Or build from source
git clone https://github.com/wdmimsg/imsg.git
cd imsg && make install
# Send iMessage (Apple ID or phone number)
imsg send "Hello!" --to user@example.com
# Send SMS (phone number with country code)
imsg send "Hello!" --to +1234567890
# Send to multiple recipients
imsg send "Group message" --to user1@example.com --to user2@example.com
# Send with attachment
imsg send "Check this out" --to user@example.com --attach /path/to/image.jpg
# Send to a group chat by name
imsg send "Message" --group "Family"
# List recent conversations
imsg list
# Read messages from a specific contact
imsg read --from user@example.com
# Read last N messages
imsg read --from user@example.com --limit 10
# Search messages
imsg search "keyword"
# Search by date range
imsg search "keyword" --after "2026-01-01" --before "2026-01-31"
# List all conversations
imsg conversations
# Get conversation ID
imsg conversations --from user@example.com
# Mark as read
imsg mark-read --from user@example.com
# Delete messages (caution!)
imsg delete --from user@example.com --before "2025-01-01"
+1 for US/Canada, +44 for UK, etc.--group "Name" or find the group's chat GUID+<country code><number> formatimsg conversations to find exact group name or GUID# Poll for new messages (script)
while true; do
imsg list --unread | while read -r line; do
echo "New message: $line"
# Process message...
done
sleep 5
done
# Simple auto-reply (use with caution!)
imsg list --unread | while read -r from message; do
if [[ "$message" == *"urgent"* ]]; then
imsg send "I'll get back to you soon" --from-me --to "$from"
fi
done
Drive the macOS desktop programmatically: take screenshots, click elements, type text, manage windows. Uses native macOS APIs and accessibility features.
# Full screen screenshot
screencapture -x /tmp/screenshot.png
# Specific window (by window ID)
screencapture -l <window_id> -x /tmp/window.png
# Specific region (x,y,width,height)
screencapture -R 100,100,800,600 -x /tmp/region.png
# Interactive selection (user draws region)
screencapture -i -x /tmp/selection.png
# Click at coordinates
osascript -e 'tell application "System Events" to click at {500, 300}'
# Double-click
osascript -e 'tell application "System Events" to double click at {500, 300}'
# Right-click (contextual click)
osascript -e 'tell application "System Events" to control click at {500, 300}'
# Move mouse (no click)
osascript -e 'tell application "System Events" to move mouse to {500, 300}'
# Drag from point A to point B
osascript -e 'tell application "System Events" to drag from {100, 100} to {500, 500}'
# Type text
osascript -e 'tell application "System Events" to keystroke "Hello World"'
# Press special keys
osascript -e 'tell application "System Events" to key code 36' # Enter
osascript -e 'tell application "System Events" to key code 48' # Tab
osascript -e 'tell application "System Events" to key code 51' # Delete
# Key combinations
osascript -e 'tell application "System Events" to keystroke "c" using command down' # Cmd+C
osascript -e 'tell application "System Events" to keystroke "v" using command down' # Cmd+V
osascript -e 'tell application "System Events" to keystroke "z" using {command down, shift down}' # Cmd+Shift+Z
# List all windows
osascript -e 'tell application "System Events" to get name of every window of every process'
# Get frontmost window
osascript -e 'tell application "System Events" to get name of front window of (first process whose frontmost is true)'
# Bring app to front
osascript -e 'tell application "Safari" to activate'
# Minimize window
osascript -e 'tell application "System Events" to tell process "Safari" to set miniaturized of front window to true'
# Resize window
osascript -e 'tell application "System Events" to tell process "Safari" to set size of front window to {1200, 800}'
# Move window
osascript -e 'tell application "System Events" to tell process "Safari" to set position of front window to {100, 100}'
# Launch app
open -a "Safari"
# Quit app
osascript -e 'tell application "Safari" to quit'
# Force quit
killall "Safari"
# Check if app is running
pgrep -x "Safari" && echo "Running" || echo "Not running"
# Get app version
osascript -e 'tell application "Safari" to version'
osascript for complex automation — AppleScript is the native automation languagescreencapture to verify screen layout, check display scalingtell application "X" to activate before keyboard commandssystem_profiler SPDisplaysDataType to understand display layout# 1. Take screenshot
screencapture -x /tmp/screen.png
# 2. Analyze with vision tool
# (use vision_analyze to understand what's on screen)
# 3. Act based on analysis
osascript -e 'tell application "System Events" to click at {500, 300}'
# Repeat until condition is met
while true; do
screencapture -x /tmp/check.png
# Analyze screenshot...
if [[ condition_met ]]; then
break
fi
# Take action...
sleep 1
done
# Arrange windows in a grid
osascript -e 'tell application "Safari" to activate'
osascript -e 'tell application "System Events" to tell process "Safari" to set position of front window to {0, 25}'
osascript -e 'tell application "System Events" to tell process "Safari" to set size of front window to {960, 1055}'
osascript -e 'tell application "Terminal" to activate'
osascript -e 'tell application "System Events" to tell process "Terminal" to set position of front window to {960, 25}'
osascript -e 'tell application "System Events" to tell process "Terminal" to set size of front window to {960, 1055}'
| Task | Tool |
|---|---|
| Send iMessage/SMS | iMessage (imsg CLI) |
| Read message history | iMessage (imsg CLI) |
| Monitor for new messages | iMessage (imsg CLI) |
| Take screenshots | Desktop Control (screencapture) |
| Click UI elements | Desktop Control (osascript) |
| Type text / keyboard shortcuts | Desktop Control (osascript) |
| Manage windows | Desktop Control (osascript) |
| Launch/quit applications | Desktop Control (open/osascript) |
imsg list or Messages app)