电脑操控

让 Klaus 看屏幕、移鼠标、敲键盘操作桌面应用,以及应用清单把关、让路与锁屏策略。

让 Klaus 像人一样看屏幕、移鼠标、敲键盘,操作那些没有接口的桌面应用。需要先完成辅助功能与自动化授权(见系统授权)。

它的形态和普通开关不一样:

  • 它是一台内置的 MCP 服务器,由 Klaus 自己的可执行文件以 connector 模式启动,所以不需要额外装任何运行时。开启后会给会话多出一组桌面操作工具:列出电脑上的应用、读一个应用当前窗口的状态(带截图和无障碍树)、点击、右键菜单动作、填值、选文本、滚动、拖拽、按键、打字,再加上读/改上面那份应用策略、以及三个录制控制工具。这也是它与浏览器操控一起长在 MCP 页而不是单独一页的原因。
  • 所有动作都是通过 macOS 自带的命令完成的(osascript 驱动辅助功能与图形事件、screencapture 截屏等),没有直接调系统 API。正因为如此,系统授权记在「是谁启动了这些命令」的账上:正式安装的 Klaus 自己就是负责进程。
  • 把关靠两份应用清单:阻止清单里的应用一律拒绝;限定清单一旦非空,就只允许清单里的应用。匹配是归一后的「等于或包含」,所以写 terminal 也会拦住 iTerm2 Terminal
  • 现在的策略是不逐次确认:它不会在每次点击前问你,把关全靠上面两份清单;每一轮动手前它必须先读一次窗口状态,而每次读都会附一张截图,所以你能从对话里看到它当时看到的画面。
  • 清单每次动作都从设置里实时读,不做缓存——所以你在对话里让它改清单,下一个动作就按新清单算,不用重连也不用重启。同理,让它「以后别碰邮件」这种话是直接改这份清单,说完立刻生效。
  • 你在用电脑时它会让路:每个写入类动作(点击、打字这些)之前先探一眼最近有没有人在动键鼠——1.5 秒内有输入、且比它自己上一次动作更晚,就算你在用。此时这次动作直接被拒,并让模型等 2 秒再试,而不是跟你抢鼠标。
  • 锁屏时默认停手:屏幕锁着就直接告诉模型「让用户自己解锁」。自动解锁是可选的,而且有意做得保守:登录口令只在系统弹出的对话框里输入、只存系统钥匙串,既不进对话也不进日志;检测到有人在现场(最近几秒有人动过键鼠)时一律不自动解锁。还要知道 macOS 在锁屏界面开着安全输入,普通签名应用注入按键会被系统拒绝,所以自动解锁大概率解不开,仍会退回让你自己解锁。
  • 辅助功能、屏幕录制这类系统授权只能你自己在系统设置里给,任何程序都不能代写;而且 macOS 对已运行的进程缓存权限结论,给完要重启 Klaus。

演示录制(你做一遍给它看):

  • 入口在技能页的「录制技能」:它会开一条会话,由 Klaus 起录制。录的是你自己的操作——点了哪个控件、输了什么字、切到哪个窗口,记的是无障碍语义(应用名、控件角色与标题)而不是像素坐标,也不录屏幕视频。
  • 录制期间屏幕上有一个悬浮小面板,只有停止和丢弃两个按钮。一次录制最长 30 分钟,忘了停会自动收尾(连接进程中途挂掉也不会丢,已经落盘的事件下次仍能收尾)。
  • 停下来之后 Klaus 读这份事件流,把它写成一份技能(~/.klaus/skills/<短名>/SKILL.md,固定包含概述、前提、复现步骤、验证、待确认项)。所以下次「照着做」照的是这份说明书,不是回放录像——能换窗口位置、能挑更合适的工具替代硬点击。
  • 隐私:密码框不记录(逐个按键探测安全输入)、像凭据的文本落盘前就打码、阻止清单里的应用不录——「永远别碰这个应用」同时意味着「也别录它」。