【免费下载链接】macos-harness
The simplest, thinnest harness that gives an LLM complete freedom to control a Mac.
macOS Harness 是给予 LLM 完整控制 Mac 能力的最薄一层工具,这也意味着它需要真实系统的多项权限。本文将讲清 macOS Harness 安全与隐私的核心:最小权限原则如何落地、匿名遥测机制收集什么、又不收集什么,并给出新手可直接执行的权限检查与关闭遥测步骤。
一、先懂原理:为什么"薄"更安全 🕶️
macOS Harness 没有为每个 App 写一堆专用"工具",而是只暴露六个原始能力:see(截图)、key、type、click、ax(辅助功能)、script(Apple Events)。能力面越小,权限边界就越清晰——你能授权什么,它就只能做什么,这正是最小权限原则的起点。
官方在 CONTRIBUTING.md 中为整个项目划定了三条不可动摇的安全红线:
绝不移动物理鼠标指针、绝不激活或置顶目标应用、绝不让遥测发送任何用户数据。
二、最小权限原则:只授予任务所需的权限 🔑
安装后第一步永远是运行权限诊断,而不是盲目"全部允许":
macos-harness doctordoctor只检查、不弹窗;只有在你明确同意后,才用doctor --request主动请求缺失的权限(授权对象应是你运行 harness 的终端或 Agent 宿主进程)。macOS 可能涉及以下四类权限,按需授予即可:
| 权限 | 作用 | 授权范围 | 不需要的场景 |
|---|---|---|---|
| Accessibility(辅助功能) | 读取 UI 语义树、发送输入事件 | 全局(一次授予) | 只读截图时仍需要,属核心权限 |
| Screen Recording(屏幕录制) | see截取后台窗口 | 全局 | 纯键盘/脚本任务可暂缓 |
| Post Events(输入事件) | 向指定 PID 发按键/点击 | 全局 | 不操作 App 时可暂缓 |
| Automation(自动化) | script发送 Apple Events | 按目标 App 逐个弹出 | 不用script则永不触发 |
⚠️ 值得注意:Input Monitoring(输入监控)权限不需要,doctor输出中会明确标注input_monitoring_required: false(见 macos.py 的doctor()实现)。此外,harness 永不置顶目标应用、永不移动物理指针,操作对前台用户是"隐形"的。
给新手的建议:把macos-harness skill输出中"解释缺失权限、请求前先征求同意"的约定交给 Agent 执行,让它在每次申请权限前向你说明用途。
三、匿名遥测机制:只记"用了多久",不记"你在干什么" 📊
macOS Harness 默认开启匿名遥测(opt-out 模式),全部逻辑集中在 telemetry.py。它只记录 7 类粗粒度元数据:
| ✅ 记录 | ❌ 明确不记录 |
|---|---|
CLI 命令类别(仅限python/doctor/see等已知命令) | 提示词(prompts) |
| 命令是否成功、耗时 | 应用名称 |
| 包版本、Python 版本 | 截图与任何 UI 文本 |
| 操作系统、CPU 架构 | 脚本内容、文件路径 |
| 检测到的 Agent 客户端类型(如 codex、cursor) | 窗口标题 |
三个关键设计细节,保证"匿名"名副其实:
- 白名单兜底:未知命令一律归一化为
python上报,用户输入永远进不了遥测通道(COMMANDS白名单见 telemetry.py); - 随机匿名 ID:本机生成 UUID 作为
install_id,且显式关闭了地理定位($geoip_disable),不使用账号体系; - 本地文件严格保密:配置写入
~/Library/Application Support/macos-harness/telemetry.json,目录权限0o700、文件权限0o600,仅属主可读写。
单元测试 test_telemetry.py 中甚至断言上报内容序列化后不包含app、path、prompt、screenshot等任何敏感字段——"无用户数据通道"是被测试保护的,而不只是文档承诺。
四、三步关闭或验证遥测 🚫
方式一:命令行一键关闭(推荐)
macos-harness telemetry disable macos-harness telemetry status # 确认 "enabled": false方式二:环境变量关闭
设置以下任一环境变量即可:MACOS_HARNESS_TELEMETRY=0、ANONYMIZED_TELEMETRY=0,或通用的DO_NOT_TRACK=1。
方式三:核对源码
若你有审计需求,上报字段全部集中在 telemetry.py 的capture_cli()函数中,字段清单一目了然。
五、安全使用清单:把风险锁在最小范围 ✅
- 只运行
doctor报告要求的权限,Automation 按目标 App 逐个批准 - 把 Agent 指令与第三方 UI 内容视为不可信输入(官方建议见 SECURITY.md)
- 让 Agent 在不可逆操作(删除、发送、支付)前先停下来征求你的确认
- 用
macos-harness telemetry status确认遥测状态符合预期 - 发现漏洞通过 GitHub Security Advisories 私下报告给维护者
六、写在最后
macOS Harness 的安全设计思路可以总结为一句话:权限最小化 + 数据零上行。它把"能看屏幕、能发输入"的强能力交给 LLM,同时用白名单遥测、只读权限诊断和三条工程不变量,把隐私风险压缩到最低。对新手而言,记住doctor(查权限)和telemetry status(查上报)这两条命令,就掌握了安全使用的全部钥匙。
【免费下载链接】macos-harness
The simplest, thinnest harness that gives an LLM complete freedom to control a Mac.
相关推荐
FeHelper安全与隐私保护:本地数据处理与最小权限原则详解
FeHelper安全与隐私保护:本地数据处理与最小权限原则详解 在当今数字化时代,浏览器扩展的安全性和隐私保护能力备受关注。作为一款功能强大的Web前端助手,F
开发工具前端Devstral-Small-2-24B-Instruct-2512-bf16核心功能全揭秘:从图像理解到超长文本生成
Devstral Small 2 24B Instruct 2512 bf16核心功能全揭秘:从图像理解到超长文本生成 Devstral Small 2 24B
Flower 遥测(Telemetry)机制全解析:匿名用量采集原理、隐私保护与一键关闭指南
Flower 遥测(Telemetry)机制全解析:匿名用量采集原理、隐私保护与一键关闭指南 Flower 开源框架内置了一套匿名的使用遥测(Telemetry
联邦学习机器学习人工智能分布式训练深度学习
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考