关于 macos
面向 macOS 的 OpenClaw 技能,使用 macOS API 和命令行工具处理系统任务,涵盖文件与进程管理、应用交互和资源监控。
主要功能
- 01使用 macOS 命令操作文件
- 02通过 launchctl 管理服务
- 03调用 Apple API 和 AppleScript
- 04监控系统资源
- 05处理 plist 配置
适用场景
- 01检查文件和权限
- 02启动及管理 macOS 服务
- 03启动应用或自动化 Finder 操作
- 04排查问题时检查系统指标
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill macos安装后在 Claude Code 中输入/macos确认已加载。
详细介绍
macos
用途
此技能可让 OpenClaw 提供 macOS 系统概览,并协调文件管理、进程控制和应用交互等任务,利用 macOS 专属 API 和 CLI 工具实现高效自动化。
适用场景
在 macOS 专属任务中使用此技能,例如管理用户权限、监控系统资源、自动启动应用,或与 Apple 生态工具集成。当 Agent 需要处理 Apple 专属环境时使用,例如为 macOS 专属工作流编写脚本或排查硬件交互问题。
主要功能
- 使用 macOS CLI 命令执行文件操作,例如查看带权限信息的目录列表。
- 使用
launchctl协调系统进程,以管理服务。 - 与 Apple API 交互,例如使用 Foundation 框架进行文件 I/O。
- 通过
sysctl或top监控系统指标,并使用 AppleScript 处理应用专属事件。 - 以 plist XML 格式管理系统偏好设置或应用设置。
使用模式
在 OpenClaw 查询中指定 "macos" ID 来调用此技能,例如添加前缀 "use skill: macos" 以提供上下文。执行命令前,务必使用 sw_vers 检查 macOS 版本兼容性。进行协调时,可将任务串联起来,例如先检查文件,再启动进程。使用环境变量存储敏感数据,例如设置 $APPLE_API_KEY 以进行经过身份验证的 API 调用。将请求构造成 JSON 负载,并包含 {"action": "run_command", "command": "ls -l"} 等字段。
常用命令/API
- 使用
ls -l查看包含详细权限信息的文件列表;示例:通过 Python 的 subprocess 运行:import subprocess; subprocess.run(['ls', '-l', '/path'])。 - 使用
launchctl load /path/to/plist管理服务并启动守护进程;代码片段:subprocess.run(['launchctl', 'load', '-w', '/Library/LaunchDaemons/com.example.plist'])。 - 使用
sysctl -n hw.memsize查询系统信息和内存大小;代码:output = subprocess.check_output(['sysctl', '-n', 'hw.memsize']).decode().strip()。 - 使用
open -a "Application" file.path打开文件;例如:subprocess.run(['open', '-a', 'TextEdit', 'document.txt'])。 - AppleScript 集成:使用
osascript -e 'tell app "Finder" to open document file "path"';代码片段:subprocess.run(['osascript', '-e', 'tell app "Finder" to display dialog "Hello"'])。 如果扩展服务(例如 Apple Developer API)需要 API 密钥,请在环境变量中将其引用为$APPLE_DEVELOPER_KEY。
集成说明
通过集群与其他 OpenClaw 技能集成,例如与 "system" 集群结合执行跨平台任务。对于配置文件,可使用 Python 的 plistlib 模块解析 plist XML:import plistlib; with open('config.plist', 'rb') as f: data = plistlib.load(f)。使用 subprocess.run(['sw_vers', '-productVersion']) 检查 macOS 版本并相应调整命令,以确保兼容性;例如,在 macOS 10.10+ 上使用 xattr 处理扩展属性。与 Homebrew 等工具集成时,使用 brew --prefix 作为路径前缀。务必使用 sandbox-exec 对操作进行沙盒隔离以确保安全。
错误处理
遇到权限错误时,检查是否出现 Operation not permitted,并在需要时为命令添加 sudo 前缀;例如,使用 try-except 包装:try: subprocess.run(['command']) except subprocess.CalledProcessError as e: log_error(e, "Permission issue; use sudo")。如果 API 调用失败,请确认已设置 $APPLE_API_KEY,并捕获 401 Unauthorized 等 HTTP 错误。常见问题:找不到文件——操作前使用 os.path.exists('/path') 检查;进程超时——在 subprocess 调用中设置超时时间,例如 subprocess.run(['command'], timeout=10)。使用 logger 命令通过 macOS 的 syslog 记录错误,以便审计。
具体使用示例
- 自动备份文件:若要备份目录,请使用以下模式:首先,使用
df -h /检查磁盘空间,然后复制文件:subprocess.run(['cp', '-R', '/source/dir', '/backup/dir'])。在 OpenClaw 中查询:“use skill: macos; backup /Documents to /Backup if disk space > 10GB”。 - 监控系统资源:使用
top -l 1 | grep "CPU usage"查询 CPU 使用率,若超过 80%,则发送提醒:import re; output = subprocess.check_output(['top', '-l', '1']); if re.search(r'CPU usage: \d+\.\d+% user', output) and float(match) > 80: send_alert()。在 OpenClaw 中:“use skill: macos; monitor CPU and notify if usage exceeds 80%”。
图关系
- 关联集群:macos(系统任务的直接链接)。
- 关联技能:["apple"] 用于生态系统集成,["system"] 用于通用操作系统操作。
- 依赖项:需要 "core" 集群来执行基本操作;为 "automation" 集群提供输出,以便串联工作流。