核心用法
CLAM(Control macOS Apps)是一款桥接 AI 与原生 Mac 应用的自动化工具。它通过三层架构实现无配置集成:
1. 自动发现机制:运行 clam --json scan 扫描系统,识别支持 AppleScript 的应用(如 Music、Finder、Chrome、Word、Figma 等 20+),返回包含命令数量、属性数量及支持模式(Full/UI/Basic)的 JSON 元数据。
2. 动态 CLI 生成:执行 clam install <app> 可在约 10 秒内为任意目标应用生成类型化命令行包装器。支持模糊匹配(如 chrome → google-chrome),自动生成数十至数百个子命令。
3. 结构化 JSON 输出:所有命令均支持 --json 标志,返回标准化数据(如 clam-music --json get-current-track 输出包含 15+ 字段的完整曲目信息),便于 AI 进行推理和决策。
三种工作模式
- Full 模式:基于 .sdef 脚本定义文件,提供完整对象模型访问(Music、Finder 等)
- UI Scripting 模式:通过 Accessibility API 模拟菜单点击(Figma、Slack、VS Code、Spotify)
- Basic 模式:通用回退,支持激活、退出、打开文件等基础操作
显著优点
- 零配置启动:无需 API 密钥、无需预先定义接口
- 类型安全生成:自动推断参数类型,提供
clam --json doctor可靠性诊断 - 原生集成深度:可直接读取当前播放曲目、浏览器 URL、文档路径等系统级状态
- 管道友好:生成标准 shell 命令,可嵌入 Lobster 等自动化流水线
潜在局限与风险
权限依赖:首次使用需用户在系统设置中手动授权 Automation 和 Accessibility 权限,存在交互摩擦。
UI Scripting 脆弱性:基于菜单模拟的命令受应用界面变更影响,稳定性低于 Full 模式。
AppleScript 性能瓶颈:30 秒超时机制可能阻塞长操作,高频调用存在延迟累积。
单平台锁定:严格依赖 osascript,仅支持 macOS,无跨平台迁移路径。
适合人群
- 构建 macOS 原生 AI Agent 的开发者
- 需要将个人工作流(Spotify、Figma、Office)纳入自动化管道的效率用户
- 追求无云端依赖、本地优先架构的隐私敏感场景
常规风险提示
权限弹窗可能打断自动化流程;UI 模式命令建议配合 doctor 诊断结果使用;避免在关键路径依赖未标记为 supported: true 的命令。