Skill: lilei0311/imessage (version 1.0.2)

# iMessage Skill ## 简介 iMessage Skill 让 OpenClaw 能够通过 macOS 的 Messages 应用发送和接收 iMessage 消息。 **安全增强版特性**： - ✅ 可信联系人名单 - ✅ 发送前确认机制 - ✅ 每日发送限制 - ✅ 安全事件日志 - ✅ **接收消息控制 OpenClaw**（远程控制） ## ⚠️ 安全警告 **重要提示**： - 本 Skill 可以发送短信/iMessage，请谨慎使用 - 首次使用需要配置可信联系人名单 - 向非可信联系人发送消息需要手动确认 - **远程控制功能默认关闭**，需要手动启用并配置管理员 - 建议仅将常用联系人添加到可信名单 - 所有发送操作都会被记录到安全日志 ## 系统要求 - **仅支持 macOS** - 需要 macOS 10.14 或更高版本 - **需要 Messages 应用** - 系统自带的 Messages 应用必须可用 - **需要辅助功能权限** - 首次使用需要授予终端/脚本编辑器辅助功能权限 - **iMessage 已登录** - 需要在 Messages 应用中登录 Apple ID ## 功能特性 ### 消息发送 - 💬 **发送文本消息** - 向指定手机号或邮箱发送 iMessage - 🖼️ **发送图片** - 发送图片文件给联系人 ### 消息接收 - 📨 **查看最近消息** - 获取最近的聊天记录 - 👥 **联系人列表** - 查看最近的联系人 ### 远程控制（新功能） - 📱 **接收控制命令** - 通过 iMessage 控制 OpenClaw - 🔐 **管理员权限** - 只有管理员可以执行控制命令 - 🛡️ **命令白名单** - 只允许执行指定命令 - 🚫 **命令黑名单** - 禁止执行危险命令 ### 安全管理 - 🔒 **可信名单** - 管理可信联系人，免确认发送 - ✅ **发送确认** - 向非可信联系人发送前需要确认 - 📊 **发送限制** - 每日最多发送 100 条消息 - 📝 **安全日志** - 记录所有发送操作到 security.log - 📋 **控制日志** - 记录所有控制命令到 control.log ## 安装 ### 1. 安装 Skill ```bash npx clawhub install imessage ``` ### 2. 授予权限 首次使用时，系统会提示授予辅助功能权限： 1. 打开 **系统设置** → **隐私与安全性** → **辅助功能** 2. 添加并启用 **终端**（或你使用的脚本编辑器） 3. 确保 **Messages** 应用也在列表中 ### 3. 确保 iMessage 已登录 打开 Messages 应用，确认已登录你的 Apple ID。 ## 使用方法 ### 可信联系人管理 ```bash # 添加可信联系人（免确认发送） python3 ~/.openclaw/workspace/skills/imessage/scripts/main.py trust phone=+8613800138000 # 移除可信联系人 python3 ~/.openclaw/workspace/skills/imessage/scripts/main.py untrust phone=+8613800138000 # 查看所有可信联系人 python3 ~/.openclaw/workspace/skills/imessage/scripts/main.py list_trusted ``` ### 管理员管理 ```bash # 添加管理员（可远程控制 OpenClaw） python3 ~/.openclaw/workspace/skills/imessage/scripts/main.py admin phone=+8613800138000 # 移除管理员 python3 ~/.openclaw/workspace/skills/imessage/scripts/main.py unadmin phone=+8613800138000 ``` ### 远程控制管理 ```bash # 启用远程控制 python3 ~/.openclaw/workspace/skills/imessage/scripts/main.py enable_control # 禁用远程控制 python3 ~/.openclaw/workspace/skills/imessage/scripts/main.py disable_control ``` ### 发送文本消息 ```bash # 发送给可信联系人（无需确认） python3 ~/.openclaw/workspace/skills/imessage/scripts/main.py send phone=+8613800138000 message="你好" # 发送给非可信联系人（需要确认） python3 ~/.openclaw/workspace/skills/imessage/scripts/main.py send phone=+8613900139000 message="测试消息" # 系统会提示：是否继续发送? (yes/no): ``` ### 发送图片 ```bash # 发送图片（同样需要安全检查） python3 ~/.openclaw/workspace/skills/imessage/scripts/main.py send_image phone=+8613800138000 image=/Users/username/Pictures/photo.jpg ``` ### 查看最近消息 ```bash # 查看所有最近消息 python3 ~/.openclaw/workspace/skills/imessage/scripts/main.py recent limit=10 # 查看特定联系人的消息 python3 ~/.openclaw/workspace/skills/imessage/scripts/main.py recent phone=+8613800138000 limit=5 # 检查并执行控制命令 python3 ~/.openclaw/workspace/skills/imessage/scripts/main.py recent check_control=true ``` ### 查看联系人列表 ```bash # 获取最近联系人（显示可信和管理员状态） python3 ~/.openclaw/workspace/skills/imessage/scripts/main.py contacts limit=20 ``` ## 远程控制功能 ### 工作原理 1. **发送控制命令**：管理员发送以 `!` 开头的消息 2. **Skill 检测命令**：在获取消息时自动检测控制命令 3. **权限验证**：检查发送者是否是管理员 4. **执行命令**：执行允许的命令并回复结果 ### 可用命令 管理员可以通过 iMessage 发送以下命令： ``` !status - 查看 OpenClaw 状态 !help - 显示帮助信息 !list - 列出已安装的 Skills !info - 显示系统信息 !echo <消息> - 回显消息 ``` ### 使用示例 1. **管理员发送命令**： ``` !status ``` 2. **Skill 自动回复**： ``` OpenClaw 状态 [OpenClaw 状态输出] ``` ### 安全机制 - **默认禁用**：远程控制功能默认关闭 - **管理员权限**：只有 admin_contacts 中的联系人可以执行命令 - **命令白名单**：只允许执行 allowed_commands 中的命令 - **命令黑名单**：禁止执行 blocked_commands 中的命令（如 delete、rm 等） - **命令前缀**：必须以 `!` 开头才识别为控制命令 ## 安全配置 编辑 `~/.openclaw/workspace/skills/imessage/config.json`： ```json { "trusted_contacts": [ "+8613800138000" ], "admin_contacts": [ "+8613800138000" ], "require_confirmation": true, "max_daily_messages": 100, "enable_logging": true, "enable_remote_control": false, "allowed_commands": ["status", "help", "list", "info", "echo"], "blocked_commands": ["delete", "rm", "remove", "uninstall", "exec", "eval"], "command_prefix": "!" } ``` ### 配置说明 | 配置项 | 说明 | 默认值 | |--------|------|--------| | `trusted_contacts` | 可信联系人列表 | [] | | `admin_contacts` | 管理员列表（可远程控制） | [] | | `require_confirmation` | 是否需要发送确认 | true | | `max_daily_messages` | 每日最大发送数 | 100 | | `enable_logging` | 是否启用安全日志 | true | | `enable_remote_control` | 是否启用远程控制 | false | | `allowed_commands` | 允许的命令列表 | ["status", "help", "list", "info", "echo"] | | `blocked_commands` | 禁止的命令列表 | ["delete", "rm", "remove", "uninstall"] | | `command_prefix` | 命令前缀 | "!" | ## 安全机制说明 ### 可信名单机制 1. **可信联系人**：添加到 `trusted_contacts` 的联系人，发送消息时无需确认 2. **非可信联系人**：不在名单中的联系人，发送前需要手动确认 3. **自动拒绝**：非交互式环境（如脚本）无法向非可信联系人发送 ### 发送确认流程 ``` 发送请求 → 检查可信名单 → 是 → 直接发送 ↓ 否 交互式环境? → 是 → 提示确认 → 用户确认 → 发送 ↓ 否 拒绝发送 ``` ### 远程控制安全流程 ``` 接收消息 → 检测命令前缀 → 是 → 检查远程控制启用 ↓ 否 检查管理员权限 ↓ 否 检查命令黑名单 ↓ 是 检查命令白名单 ↓ 否 执行命令 → 发送回复 ``` ### 安全日志 所有操作记录在 `security.log`： ```json {"timestamp": "2026-02-16 10:30:00", "user": "username", "event": "SEND_MESSAGE", "details": {"phone": "+8613800138000", "trusted": true}} {"timestamp": "2026-02-16 10:35:00", "user": "username", "event": "ADD_ADMIN_CONTACT", "details": {"phone": "+8613800138000"}} {"timestamp": "2026-02-16 10:40:00", "user": "username", "event": "REMOTE_CONTROL_ENABLED", "details": {}} ``` 控制命令记录在 `control.log`： ```json {"timestamp": "2026-02-16 10:45:00", "event": "CONTROL_COMMAND_EXECUTED", "details": {"phone": "+8613800138000", "command": "status", "success": true}} ``` ## 故障排除 ### "不在可信名单中，无法自动发送" - 使用 `trust` 命令将联系人添加到可信名单 - 或在交互式环境中手动确认发送 ### "您没有权限控制 OpenClaw" - 该联系人不在 `admin_contacts` 列表中 - 使用 `admin` 命令添加管理员 ### "远程控制功能未启用" - 远程控制默认关闭 - 使用 `enable_control` 命令启用 ### "已达到每日发送限制" - 今日发送数量已达到 `max_daily_messages` 限制 - 请明天再试，或修改配置增加限制 ### "无法访问 Messages 数据库" - 检查是否授予了终端辅助功能权限 - 确保 Messages 应用已打开并登录 ### "发送失败" - 检查手机号/邮箱格式是否正确 - 确认 iMessage 服务已启用 - 检查网络连接 ## 隐私声明 - 本 Skill 仅在本地操作，不会上传任何数据 - 消息内容仅存储在你的 Mac 上 - 需要你的明确授权才能访问 Messages 数据库 - 安全日志和控制日志仅保存在本地，不会外泄 ## 版本信息 - **版本**: 1.0.2 - **作者**: MaxStorm Team - **许可证**: MIT - **源码**: https://github.com/maxstorm/imessage-skill --- **注意**: 本 Skill 仅用于个人自动化用途，请遵守 Apple 的服务条款，不要用于发送垃圾信息。


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: suspicious | SkillSpector: suspicious (CRITICAL)