替你盯着 GitHub 仓库的 Mac 应用

安静地盯着,值得时才出手。

Heron 是一个只做一件事的 Mac 应用:替你盯着 GitHub 仓库里新来的 issue、PR 和 CI 失败。大部分安静放下,值得的写好摘要和回复草稿等你决定;你点一下,它就为这件事启动一个 Claude Code 会话去修复或评审,之后一直跟进到合并或关闭。

macOS 13 或更高 · 用你本机的 Claude Code 订阅和 gh 账号 · 纯 Go,界面由 Metal 绘制,不用 webview

  • Issue
  • Pull request
  • CI 失败

在水边一动不动地盯着水面,大多数时候什么也不做,值得出手时才出手。

Heron 的「等你决定」页:左边是等你决定的三条和一个待验收的 PR,右边是一次 CI 失败的详情、Claude 的判断和「让 Claude 修」
等你决定:每一条都带着 Claude 的判断,CI 失败附上日志摘录
流程

每 5 分钟看一眼,只在值得时找你。

Heron 每 5 分钟用 gh 只读地看一眼你关注的仓库。仓库规则先过一遍,其余交给值守会话里的 Claude 分诊:不值得的安静放下,值得的写好摘要和草稿,通知你决定。

  1. GitHub新 issue、PR,失败的 Actions 运行
  2. Heron每 5 分钟用 gh 只读地看一眼
  3. 值守会话Claude 每 15 分钟分诊一轮
  4. Claude 的结论放下,或写好摘要和草稿
  5. 等你决定系统通知 · 菜单栏计数 · Dock 角标
  • 放下知会、不值得、垃圾、拿不准:写明原因,30 天内可以捞回来
  • 回复你的 gh 账号发出;之后 14 天里对方回复了,重新分诊
  • 修复后台会话开草稿 PR,进「待验收」,跟进到合并或关闭
  • 评审后台会话只发一条评审评论;之后 14 天里有新提交,问你要不要再评审
  1. 添加仓库

    从你的仓库里选,可以往回看 24 小时或 7 天。Heron 马上 clone 一份(或用你指定的本地 clone),让 Claude Code 问你一次是否信任这个目录。

  2. 启动值守会话

    在 Heron 自己的窗口里启动,平时不显示。下次打开 Heron 自动接着运行,/loop 到期前自动重新启动。

  3. 等它来找你

    值得的条目进「等你决定」并发通知:发送回复、让 Claude 修复或评审,或者不处理。

等你决定

Claude 先看过,决定权在你。

Claude 分诊过的每一条都带着它的判断和摘要,需要回复的还附上回复草稿。你看一眼,点一下。

  • 分诊后,只有可以修、值得评审、需要回复、CI 要修、建议重跑的条目会找你;知会、不值得、垃圾、拿不准的安静放下,写明原因,30 天内可以捞回来。
  • 你自己开的 issue 和 PR 不经分诊,直接进「等你决定」并发通知,由你决定要不要交给 Claude 修复或评审。拿 issue 记笔记的仓库,可以在仓库页关掉「看我自己开的」。
  • 发送回复:你的 gh 账号把草稿(可以先改)发到 GitHub;之后 14 天里对方回复了,重新分诊。
  • 让 Claude 修复、评审、修 CI:你点一下,其余交给后台会话。重跑失败的 job 则由 Heron 在 GitHub 上重跑,结束后告诉你结果,还是失败就再问你。不想处理的,点「不处理」拿走。
  • 跟进到底:Claude 开的 PR 进「待验收」。检查没通过、有人提了评审意见,它回到「等你决定」,附上失败的检查、日志摘录和评审原文,返修要求已经起草好;合并后自动移走。
「等你决定」里一个要返修的 PR:CI 没通过的日志、评审意见,以及 Heron 起草好的返修要求和「让 Claude 返修」按钮
PR 有了反馈:CI 没通过,还有一条评审意见,返修要求已经起草好
Claude 干的活

独立的 worktree,在后台把活干完。

你点一下,Heron 准备好 git worktree,用 claude --bg 启动一个后台会话,任务说明已经填好。会话由 Claude Code 自己托管,Heron 退出后也继续运行;做完后用 Heron cli report 把结果交回。

  • 修复

    独立 worktree、heron/issue-N 分支:修复、自检、推送、开草稿 PR、在 issue 下留言。没把握时不推送,只留说明。自检默认是跑项目已有的测试,再通读自己的 diff。

  • 评审

    独立 worktree 检出 PR:读改动、跑测试、发一条评审评论,只评论。之后 14 天里 PR 有新提交或新回复,问你要不要让 Claude 再评审。

  • 修 CI

    默认分支上失败的运行,新开 heron/ci-<run> 分支加草稿 PR;你自己分支上的,修好推回原分支。Claude 也可以只建议重跑:Heron 在 GitHub 上重跑,结束后告诉你结果。

「Claude 在干的活」页:同一个任务的两轮记录,第 1 轮修复开了草稿 PR,第 2 轮返修处理了评审意见并通过本地测试
返修接着上一轮的对话,在同一个 worktree 和分支上改,推到同一个 PR

想看会话在做什么:Heron 在内嵌终端里运行 claude attach,离开会话不会停止它。需要你回答问题或权限请求时,Heron 发通知。

值守会话

Heron 自己不调用 Claude。

Claude 的工作都发生在 Claude Code 会话里,用的是你本机 Claude Code 的订阅。分诊在值守会话里完成:Heron 在自己窗口里的终端中运行一个 Claude Code 交互式会话,用 Claude Code 自带的 /loop 定时运行 Heron 的分诊 skill。

  • 只有一个,平时看不见:它不出现在 Claude Code 的会话列表里,也不算进 ← N agents。想看它,在「值守会话」页点「查看会话」。
  • 跟着 Heron 走:Heron 退出时它跟着停,下次打开自动接着运行;/loop 7 天到期前,Heron 自动重新启动它。
  • 只认指定的那一个:Heron 启动它时给定会话 ID,别的会话来取条目会被拒绝。
  • 不碰你的配置:不使用 claude -p,不读取任何凭证,不装 hook,不改 ~/.claude;默认不把内容发给任何第三方服务。
「值守会话」页:在线状态、等分诊 0 条、间隔 15 分钟、模型 haiku,以及它是怎么工作的说明
值守会话:在 Heron 里运行,/loop 到期前自动重新启动
判断准不准

大部分安静放下,准不准,看得见。

概览里能看到:Claude 放下的条目里你捞回了多少(漏判),找你的条目里你拿走了多少(误判),Claude 开的 PR 合并了多少、返修了几轮。

  • 把握只显示:分诊时 Claude 可以给出自己的把握,Heron 只显示、不据此做任何事。模型自评的把握往往偏高(Xiong et al., ICLR 2024)。
  • Jev 第二意见(可选,默认关闭):Jev 是 TypeSafe 的模型,回答「选哪一个」时给出每个选项的概率。打开后,新的 issue 和 PR 同时发给 Jev,答案放在条目旁边和 Claude 对照,概览里有一致率;分诊照常进行,不等它。
  • 只发规定的几项:类型、标题、正文前 6000 字、标签、作者和仓库的关系、是不是机器人、是不是草稿、PR 改动的文件名;不发仓库名、链接、任何人的账号、CI 日志、你的项目说明和回复。发到 api.typesafe.ai(美国托管);所有关注的仓库都发,私有仓库也一样,不想发的仓库在仓库页设为「不发送」。API key 只存在 macOS 钥匙串里。
  • 「自动放下垃圾」要等你自己的数据证明它可靠才能打开;你捞回一条它放下的,就自动关掉。
Heron 的概览页:等你决定、新来的、值守会话、安静放下的、Claude 干的活和仓库六张卡片
概览:放下了多少、捞回了多少、Claude 干了多少活
细节

规则、数据和命令行,都摆在明处。

  • 仓库规则

    看不看 issue、PR、机器人(包括 Copilot 这类机器人在 PR 上的评审意见)、你自己开的,盯不盯 CI;给值守会话的项目说明,这个仓库的回复风格。规则在分诊之前生效,放下的写明原因,可以捞回来。

  • 只读地看,不添乱

    用 gh 只读查看;网络抖动自动重试两次,GitHub 限流时暂停 15 分钟。每次查看还会撤回在 GitHub 上已被关闭、合并或你已亲自回复的条目,以及之后的运行已经通过的 CI 失败。

  • 数据在你的 Mac 上

    都在 ~/Library/Application Support/Heron/:关注的仓库、条目、任务和动态,和值守会话交换的文件,每个任务每一轮的提示词,以及 Heron 管理的 clone 和 worktree。

  • 命令行就是它自己

    Heron cli status 看仓库、各状态的条目数、任务和值守会话,Heron cli log 看最近的动态。值守会话用的 pending、verdict,任务会话用的 report,也是这一个程序。

现在能用吗

还没有公开下载,先看看它需要什么。

Heron 现在用自签名证书构建,只在作者自己的 Mac 上运行,暂不对外分发。它需要:

  • macOS 13 或更高
  • 本机登录好的 Claude Code:分诊、修复和评审都用你的订阅。
  • 登录好的 gh:Heron 用它只读查看仓库,你发的回复也由它发出。