Show HN:让你的 AI 智能体在屏幕上画大箭头、方框和文字

查看原文 HN 讨论

文章摘要

big-arrow-on-the-screen(命令名 bigarrow)是奥地利开发者 Franz Enzenhofer 做的一个 macOS 命令行工具,同时附带给 Claude Code 和 Codex 用的技能(skill)。它的功能就像名字一样朴素:在所有窗口之上画一个箭头和一块写着字的牌子。点击可以穿透它,键盘焦点不会被抢走,箭头到时间会自己消失,项目以 MIT 协议开源。

它要解决什么问题。 README 开头一句话点题:你的 AI 智能体能重构整个 monorepo、写数据库迁移、讲解单子(monad),可一旦需要你点一个按钮,它只会在一个你根本没在看的终端里打印”请在对话框里点击允许”。bigarrow 就是给它”一根手指”。例如智能体可以执行一条命令,找到”系统设置”里标签为 Allow 的按钮,从旁边画一个大箭头指过去,牌子上写着”Franz,点允许:让 Ghostty 控制你的 Mac”。

作者列出的典型用途包括:

作者强调它不是屏幕标注工具,不是点击机器人,也不是截图工具,它从不点击、不打字、不截屏,”只负责指,而且是故意的”。

怎么用。 通过 Homebrew 安装后运行一条命令即可把技能装进 Claude Code 和 Codex。智能体主要用三种方式:按标签指向某个界面元素、按坐标指向某个点、或者用 start/stop 让箭头一直显示到被手动移除。每个箭头都会自己结束:point 默认 8 秒、start 默认 300 秒;画箭头的智能体进程退出时箭头随之消失;还可以挂成 Claude Code 的 UserPromptSubmit 钩子,用户一回复就清掉该会话的箭头。目标可以是坐标、矩形、鼠标位置、某个应用的窗口或 Chrome/Safari 标签页(会先把它调到前台)、某个辅助功能元素,或者 Peekaboo 识别出的元素。所有命令都支持 JSON 输出,并定义了清晰的退出码,”智能体爱退出码,人类勉强忍受”。

外观。 “这是个箭头,所以我们在它长什么样上花了不合理的时间。”箭头有弯曲、直线、锯齿(”真的很急的时候”)和螺旋(绕牌子一圈再指向目标,”保证不会错过”)几种形状,还可以用圆圈或方框框住目标(都是空心的,不遮挡目标),支持多种颜色、尺寸、边框和关闭按钮,多个箭头同时出现时牌子会互相避让。README 里有大量真实场景截图:教人在”桌面与程序坞”里关掉”点击墙纸显示桌面”、在 Keynote 里三步加动画、在打印对话框里教妈妈存 PDF(另一个小黑箭头指着”取消”写着”不是这个,妈”)、在 14 个 Chrome 标签里指出正确的那个,以及一份由智能体画箭头生成的 6 页”如何允许屏幕录制”PDF 教程。

常见问题。 画箭头本身不需要任何 macOS 权限,只有按标签查找元素等功能需要辅助功能或屏幕录制权限,而且权限要授予启动它的终端应用。它位于屏保层级,凌驾于所有窗口和全屏应用之上,却从不成为活动窗口;作者说项目中最难的 bug 是 NSApplication.run() 会悄悄激活没有终端的进程,所以他自己泵事件循环,测试会检查前台应用从未改变。一个脉动的箭头在 CI 机器上占 1.4% 的 CPU。对于”智能体会不会用它来骗我,比如盖住拒绝按钮”,作者的回答是:一个能以你的身份执行 shell 命令的智能体本来就能做更坏的事,这个工具没给它任何新能力;尽管如此,方框和圆圈都是空心的,牌子会避开目标,点牌子或箭杆会移除箭头,技能也要求牌子写明点击的后果。技能平时只占 182 个 token,真正要指东西时才加载约 1,500 个 token 的说明。项目有 104 个自动化测试和 18 项行为检查,作者还说调研过 26 款工具,没有一个做这件事。至于”它是 AI 吗?”,答案是”不是,它是你 AI 技术栈里最不智能的部分,并以此为荣”。

HN 评论精华

这个帖子拿到 420 分、近 200 条评论,反应两极分化严重:一部分人看到了它在教学、文档和帮父母用电脑上的价值;另一部分人则把它当成”AI 废料”(slop)时代的标本,借题发挥讨论人类沦为”给机器点按钮的肉体”、规格说明能否取代代码,以及软件设计几十年来的失败。

“人类只剩下给机器点按钮”。 ForHackernews 引用 README 里”总会撞上只有人类才能做的那部分”一句,说这很阴暗:如果你在这里只是替机器人点 sudo 按钮,不如直接给它 root 权限。作者 franze 回应说,即便在”YOLO 模式”下以 sudo 运行,Claude 仍会拒绝输入密码、修改安全设置、在外部服务注册账号等操作(他在一台专门给它用的 Mac 上测试过),拦住它的不是权限,而是系统提示词或模型本身。tilemarch 的批评更有分量:箭头解决的是”在哪儿点”,不解决”这件事该不该发生”,它削弱了人类本该做的事,即阅读、理解后果、再决定同意或放弃,”你的 AI 智能体不替你自动点这些按钮是有原因的”。LoneRanger1024 也认为教程场景很合理,但权限弹窗需要不同对待,智能体除了指出按钮,还应解释点了会发生什么。emsign 说这让他想起电影《蠢蛋进化论》,智能体指挥”肉体机器人”点哪里,连”想”这一步都省了;cobbal 则引用科利·多克托罗的”反向半人马”概念调侃。

安全疑虑。 hn8726 说 README 里关于权限的段落”写得太 AI 了,我看不懂在说什么”,并质疑:既然它能画在权限弹窗上面,有什么能阻止它画个方框挡住”拒绝”按钮、改掉”同意”按钮上的字?SwtCyber 回答:没什么能阻止,除了一个事实,智能体已经在你的 shell 里执行任意代码了,如果它是恶意的,会直接偷你的 SSH 密钥,犯不着去遮按钮。hannasanarion 补充说,工具让 AI 做某件事,并不等于让它做任何事,AI 的不当行为只是一种新的故障触发方式,而不是新的故障类型。user- 则担心这对针对老人的诈骗者很有用。

真正的用处:教学、文档和远程帮父母。 inanutshellus 认为最有潜力的是”教我怎么做”的引导型智能体,而不是替你做事的智能体,并建议作者把截图换成在复杂应用里做教程的样子,作者回复”已完成”。ravila4 说几年前学 Blender 时问大模型”怎么显示网格所有顶点的法线”,花了大量时间去找模型说的到底是哪个按钮。FinnLobsien 认为它对文档很有价值,文档截图常常只说”点 X”,你还得自己去找 X。arshxyz、lbreakjai、ghm2180、priyashunt 都想到了自己的父母或长辈:电话里教妈妈下载打印文件、给年迈的姑妈指出该点哪里而不必远程接管她的电脑,lbreakjai 说愿意为 iPad 版付大价钱。mistersquid 实际试了两次:让 Claude 一步步带他编辑 settings.json,以及教他用苹果 Compressor 给视频加速,承认用 ffmpeg 更高效,但在必须用图形界面时很有意思。hannasanarion 举了企业内部系统的例子:想查同事有哪些你没有的权限,得知道去点一个叫”合规”的按钮,”为什么叫合规?因为去你的,背下来就行”,AI 可以替你读流程甚至读源码,带你绕过糟糕的界面。kogus 一开始的反应是”就像听说蟑螂学会了开门、用后腿站立”,但想到无障碍和帮助技术弱势群体,又改变了看法,还怀念起早年 PC 自带的、把你当成第一次见电脑的全套教程;vickychijwani 也认为 HN 在不公平地痛批一个能给普通人带来巨大价值的项目。iandanforth 说”指”这个动作在很多工具里被严重忽视,让他想起 AnyBots 远程临场机器人上那支可以指东西的激光笔。

“废料”与审美之争。 einpoklum、mococa、cyberjunkie 都把它归为”关于 LLM 废料的 LLM 产物”,TekMol 吐槽在 Mac 上画个东西用了 Swift、Shell、Python 和 Objective-C 四种语言。tangotaylor 盛赞”这是个箭头,所以我们在它长什么样上花了不合理的时间”这句话”简直是艺术”,socializer 立刻反驳:首图五个箭头里三个明显错位、标签错误,乱成一团(作者后来悄悄替换了截图,他贴出了原图链接),”这就是代码便宜到我们连想法都懒得充实的时代”,HN 被两类人主导,一类还停留在”代码等于努力”,一类停留在”AI 等于酷”。Gareth321 则说虽然是 vibe coding 出来的,他很享受 AI 带来的创造力,这些应用以前根本不会被做出来;mbty 不同意,认为 AI 让人把判断交给模型,而模型默认走平庸的中间路线。认识作者的 nedt 说,这些箭头既不直也不是一条干净的弧线,正像 Franz 在工作坊里画的那种”艺术加儿童画”风格;作者确认他花了很多功夫调教箭头的样子,最早的版本”太专业了”,丢掉了他想要的那种”对,就是那个,我是认真的”的感觉。isoprophlex 开玩笑说还缺彩虹滴落箭头、愤怒指向的箭头、带粒子特效的火焰文字框和最大音量播放气笛声,然后真的提交了一个 PR,作者没合并但称赞”好 PR”。

“GitHub 仓库以后会不会只剩一份 Markdown 说明”。 由 hn8726 那条评论引出的最长子讨论里,causal 设想将来 GitHub 仓库也许只放一份描述项目的 Markdown,由你自己的智能体去实现,”我凭什么信任你的智能体写的实现?”nater5000 说他现在看到 vibe coding 的应用就是这么做的:让智能体照着复刻一份,加上自己的定制。Abimelex 一本正经地”设想”发明一种词汇量小、语法严格、能被程序自动检查且没有歧义的语言来写规格,被 ccozan 识破是在讽刺,这不就是编程语言吗。tempest_ 提醒这只在 token 被人为压低价格时才行得通;jerf 认为 AI 模型目前跑在”劣化”(enshittification)前面,但等它掉头时会是一场前所未有的劣化。asdff 指出模型漂移的问题:就像我们会锁定库的版本,因为可能依赖了未定义行为,规格文件也得锁定模型版本。

“什么时代啊”。 sicktriple 感叹:电脑便宜、高效、强大,我们却想办法把已经解决的任务变得贵一千倍、耗掉全世界的电、依赖别人租来的算力,”现在我还需要一个机器人告诉我该按哪个按钮”。alanbernstein 回应说学 3D 建模、视频剪辑这类复杂软件时它会极其有用,现有的方案是在 YouTube 教程里来回拖进度条,也挺”过度工程”的。godelski 则认为这个产品之所以有用,恰恰说明软件行业长期拒绝退一步思考设计,”如果需要机器人教你按哪个按钮,那就说明它并不直观”,但对 FreeCAD、Blender 这类天生复杂的软件它确实有价值。scotty79 更进一步:40 年来软件设计者都没想明白应该能搜索电脑提供的每一项功能,”智能体的成功建立在所有软件设计者和开发者长期而持续的失败之上”,由此引出了一段关于 Unix 的 apropos 命令能不能告诉你怎么把 DNS 设成 8.8.8.8 的争论。internet101010 说过去十年最糟糕的 UX 趋势就是没完没了的”知道了!”弹窗和功能提示,emigre 则说这让他想起了当年的大眼夹 Clippy。