Jev 的用法正在从「判断接口」走到真实桌面操作。GitHub 上出现了一个名为 Third Hand 的实验项目(仓库地址 github.com/shhivv/third-hand),作者是 Shiv Shanmugam。它把 Jev 当作唯一的模型,做成了一个 macOS 菜单栏助手:聚焦某个应用,按下 Control–Space,用自然语言说出要做什么,它就去读控件、输入文字、点击,并检查结果。再按一次 Control–Space 或点 × 即可停止。
它怎么工作
按仓库说明,这套流程由三部分拼起来:
- Accessibility(辅助功能):读取应用暴露出来的控件及其当前取值;
- Apple Vision:当某个应用的控件读不到时,在本地识别屏幕文字。截图不会被上传;
- Jev:根据文字描述来挑选动作。用户的请求、应用名称、屏幕上的标签与取值、最近的操作历史会发送给 TypeSafe。
也就是说,它不需要一个通用大模型来「想」,也不需要 Apple Intelligence,仓库里没有打包任何模型权重,也没有额外的运行时依赖。但项目明确写了:Third Hand 不是完全离线的,使用前必须准备一个 TypeSafe API key。
文字输入走的是结构化输入:Jev 只能从用户当前这句话里挑出搜索词或字面文本,不支持自由写作,也不支持生成任意命令。另一个细节是,它从不重启它所控制的应用。
安装与权限
仓库提供 Apple Silicon 版本的安装包,要求 macOS 14 或更新;下载后解压,把 Third Hand.app 放进「应用程序」再打开。发布版本经过 Developer ID 签名并通过 Apple 公证。
从源码构建则需要 Xcode 15 或更新、Apple Development 或 Developer ID 签名证书,以及 TypeSafe API key:
git clone git@github.com:shhivv/third-hand.git
cd third-hand
./rebuild.sh
open "Third Hand.app"
装好后的设置窗口里有三步:开启辅助功能权限,让它能读取并操作应用;开启屏幕录制权限,供控件不可读时做本地文字识别;填入 TypeSafe API key,密钥保存在 macOS 钥匙串中。随后切到任意应用,按 Control–Space,试一个具体的任务,比如「Search for Adele」。
终端与日志
终端场景有单独的入口方式:先把焦点放在 shell 提示符上,然后给出完整命令,例如 type "ls -la"。Third Hand 会原样保留你给的命令,只在 Jev 选中 Return 时提交;它不会根据导航类请求自行拼装命令,也不会追加校验命令,更不会自动重打一遍终端命令。交互式编辑器和非 shell 的终端程序不在这种输入方式的支持范围内。
诊断日志写在 ~/Desktop/thirdhand.log,内容包括动作状态、耗时和经过截断的 API 报错信息。仓库提醒,分享日志前要先自行检查,因为服务端错误信息可能带上请求细节;日志中的 API key 会被抹去。
目前的边界
作者把它定位成一个早期实验项目。部分应用暴露的控件并不完整,纯图标界面、自定义编辑器和复杂手势都可能失效;任务有可能中途停下,即便它报告完成,也需要用户自己判断,所以运行期间最好待在旁边。
构建方面,务必运行仓库根目录下的 Third Hand.app,构建脚本会沿用同一签名身份以保留 macOS 权限,并把上一个版本留在 .build/install.* 里。.thirdhand-signing-identity 要保留在自己机器上,它已被 Git 排除;如果本机没有可用证书,先在 Xcode 里创建一个 Apple Development 证书再构建。设置界面会显示当前的权限状态,如果 macOS 在授权后要求退出并重新打开,请重新打开同一份拷贝。
项目采用 MIT 协议,欢迎提交 issue 和 pull request,反馈时需要附上 macOS 版本、涉及的应用和复现步骤,但不要包含 API key 或私密的屏幕内容。
评论 共 0 条
正在加载…
还没有评论,来说两句吧。
先起个昵称
昵称只保存在你自己的浏览器里,用来显示你的评论与留言,不需要注册。
昵称需要 2 - 20 个字符。