mcpField
M
macos

macos

github.com/alphaonedev生产力50 次安装
代码仓库

关于 macos

面向 macOS 的 OpenClaw 技能,使用 macOS API 和命令行工具处理系统任务,涵盖文件与进程管理、应用交互和资源监控。

主要功能

  1. 01使用 macOS 命令操作文件
  2. 02通过 launchctl 管理服务
  3. 03调用 Apple API 和 AppleScript
  4. 04监控系统资源
  5. 05处理 plist 配置

适用场景

  1. 01检查文件和权限
  2. 02启动及管理 macOS 服务
  3. 03启动应用或自动化 Finder 操作
  4. 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 记录错误,以便审计。

具体使用示例

  1. 自动备份文件:若要备份目录,请使用以下模式:首先,使用 df -h / 检查磁盘空间,然后复制文件:subprocess.run(['cp', '-R', '/source/dir', '/backup/dir'])。在 OpenClaw 中查询:“use skill: macos; backup /Documents to /Backup if disk space > 10GB”。
  2. 监控系统资源:使用 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" 集群提供输出,以便串联工作流。

评论

支持 Markdown