券到账了,面板上就有
WorkBuddy 的 [Checkin]、Qoder 的 [Campaign]、ZCode 今天的日志——三家自己写进磁盘的领取状态放在同一屏,能领的排最前,卡面带面值、连签天数和本期到期倒计时。点整张卡只把那家 App 唤到前台,并明写「领取要在那家 App 里自己点」:这一层绝不替你按领取。
六家 AI 编码工具的状态放在同一块菜单栏面板上;双击一行,人就回到那条会话。
Agent Ping 读的是 Qoder、Claude Code、Codex、ZCode、WorkBuddy、OpenCode 已经写在你机器上的日志与本地库:谁在跑、谁在排队、谁报错停了、谁正等你回答、哪家的券能领。然后在你没看屏幕的时候提醒一声,把那一条递到你面前。
零网络调用:整个二进制没有 connect / socket 的未定义符号,nm -u 自己就能查。额度不联网查,也不碰钥匙串。

Why Agent Ping
WorkBuddy 的 [Checkin]、Qoder 的 [Campaign]、ZCode 今天的日志——三家自己写进磁盘的领取状态放在同一屏,能领的排最前,卡面带面值、连签天数和本期到期倒计时。点整张卡只把那家 App 唤到前台,并明写「领取要在那家 App 里自己点」:这一层绝不替你按领取。
5 小时与本周剩余、何时重置,全部取自各家自己写的字段(比如 Codex 运行中落的 rate_limits 事件)。不调计费 API、不要 cookie、不进钥匙串;读数超过 10 分钟就退出首屏,挪到额度屏并标上 updated HH:MM——「我们没刷新」和「那家没写」是两个答案。
「Turn 77」是数 type 为 user 且不带 toolUseResult 的记录条数;「41.4 Credits」是 Qoder 自己的计数字段,不是钱,没有这个字段的家贡献 0。源里没有的字段整格不画,不填 0,也不折算成美元——面板上直接印着口径。
误点一次只当选中,0.5 秒内同一行的第二下才触发跳转;macOS 走那家的 URL scheme、AppleScript,或者驱动它自己的 ⌘K 面板。卡片不随刷新移动——每条会话第一次被看见时拿到固定序号,所以不会从光标底下跑掉。
同类对比 · 2026-10-30 现读
下面每一格都抄自对方自己的 README 或官网原文,星数与最后提交日期取自 2026-10-30 的 GitHub API。原文没写的格子写「未提」——那不是短板,那是没取证。
定位主张:把「轮到谁」这件事一次看全:状态、额度、券,全部只从你自己磁盘上已经存在的字段里读出来。
macOS 13+ 与 Linux(X11)· C++/Dear ImGui 菜单栏浮层 · 仓库内 Formula 源码编译
macOS · Linux · Windows · WSL2 · SSH · 语音包与横幅
macOS 14+ · 刘海里的状态条 · DMG + iPhone/Watch 伴生 App
macOS · 菜单栏图标 + 下拉列表 · 靠 Claude Code 的 hooks
macOS · 快捷键盖住屏幕的锁屏层
macOS 13+ · 菜单栏玻璃浮层 · DMG + brew cask
macOS · 红绿灯 + 桌面悬浮灯 · ad-hoc 签名未公证
macOS · 菜单栏 · 最后一次提交 2026-02-20
读数时间 2026-10-30。星数与 pushed_at 来自 https://api.github.com/repos/<owner>/<repo>,其余引自各仓库 README 原文;「未提」表示那份文档里没有这句话,不代表该功能不存在。
权益/券这一格,上面七家的 README 全文检索 reward、claim、check-in 三个词零命中(2026-10-30)。额度这一格有两家要做,但都要联网或要凭据;只从本机日志读、并且把读数新鲜度印在卡上的,目前没有第二家。
覆盖:CodeIsland 自称 30+、peon-ping 20+,我们只有六家。就地回答:CodeIsland 与 muster 能在提示上直接答复,我们只把原文和选项显示出来、再把你送回那条会话。远程:CodeIsland 支持 tmux、zellij 与 SSH 主机,我们没有。这三条是产品决定,不是文案能补的。
一次扫描同时给出六家的状态、额度、券;不联网、不装后台守护;默认不写你的任何配置文件——只有你按下 Connect(或自己跑 Tools/install_hook.sh)才合并一条 hook,且先落一份带时间戳的备份。
同时开着好几家 Agent、靠切窗口确认「是不是轮到我了」的人;不希望额度数字来自第三方 API 的人;以及在 Linux 桌面上用 Codex CLI / OpenCode 的人——上面那几家多数只有 macOS。
What you get
顶部那条工具栏按家筛选,下面每一屏都是同一轮扫描的另一个视角:谁在等你、还剩多少额度、哪张券要过期、今天完成了什么。
一张在跑的卡(轮次、子 Agent、本会话 credits)、额度预览、按最久等待排序的「Needs you」队列,页脚是今天完成的条数与逐小时分布。
今天的 token 总数,外加每家一张卡:5 小时与本周剩余、何时重置、这条读数几点取的。WorkBuddy 刷新失败时明写「Last reading · not refreshed」。
三家的券卡:能领的排最前,面值、连签天数、本期到期倒计时都印在卡上;只知道什么时候出现过、不知道什么时候到期的那家,进度轨画成虚线。
任意一行按 ⓘ:等你回答的原文与它的选项,或者失败的那条命令原文。
今天完成的会话,新的在前,12 条一页,往下滚就续。
本机装了哪几家采集器、这一轮各读到什么,逐条摊开——某家一片空白时,你能看出是没装还是没写。
每个 (agent, session) 只提醒一次,账本落盘所以重启不重刷;每轮最多发 4 条,其余留到后面几轮而不是丢掉;免打扰只压送达、不清账本。券到账走同一账本的另一个 key,横幅常驻,不点不收。
macOS 用 NSStatusItem 与系统通知中心,Linux 用 StatusNotifierItem(D-Bus)与 notify-send;面板、扫描层、提醒判定是同一份代码。界面六语,字体按字号现场烘焙,中文不是外挂。
每个数字旁边都有它的定义与来源;托盘上「2 · 5」这种三位计数按固定顺序排,空位不画,哪一格是什么由悬停说明。
Install
macOS 13+ 用仓库里的 Homebrew Formula;Linux(Debian 12 实测)只有源码构建这一条,没有对应的 formula;Windows 暂不支持。没有预编译包可下载。
Formula 就住在这个仓库的 Formula/agent-ping.rb,按 v0.1.1 标签的源码现场编译。第一次装需要 Xcode 命令行工具,Apple 芯片上约一分钟。macOS 26 上若 brew 停在 Error: Xcode alone is not sufficient,那是 Homebrew 自己的准入检查,跑一次 xcode-select --install 再重试。
依赖 brew install cmake ninja glfw freetype;产出 build/AgentPing-cpp.app,再跑一次 Tools/make_bundle.sh 打包。
Debian 12 包名:cmake ninja-build libglfw3-dev libfreetype6-dev libsqlite3-dev libgl1-mesa-dev libdbus-1-dev。缺 SQLite3 会跳过 ZCode、WorkBuddy、OpenCode 并在构建时警告。
brew trust 只需要跑一次:这是第三方 tap,Homebrew 在你没点头之前不肯按短名加载它的 formula。不跑这句,就只有 dreamofxm/agent-ping/agent-ping 这个全名可用,而 brew upgrade agent-ping 会直接拒绝执行。装好后 agent-ping 是启动器,App 住在 Homebrew 的 opt 目录而不是 /Applications——Homebrew 在沙箱里编译,写不进 /Applications。
FAQ
那些是单家的:hooks 只报 Claude Code,Remote Control 要经 claude.ai 那一侧把推送打到手机。Agent Ping 是一次看六家,其中 ZCode、WorkBuddy、OpenCode 根本没有钩子通道,只能读它们自己的本地库。Codex 的 osc9 提醒只在终端聚焦时才有效。跳转落点是这条链的最后一环:响一声之后,你还得自己找到那条会话。
默认不动。只有你在 Connect 屏按下按钮,或者自己跑 Tools/install_hook.sh install claude|qoder 时才写,顺序是:先在自己的数据目录里原子写出 hook.sh(0755),再把目标配置备份成 <config>.bak-agentping-<YYYYmmdd-HHMMSS>,最后往 hooks.Notification 里按 matcher 合并一条并原子写回。Codex 的 notify 槽位只检测:如果它属于别的工具,面板会说明并停手,不碰那个文件。钩子本身只把 CLI 的 JSON 载荷拷进收件箱,从不替你回答,收件箱写不进也照样 exit 0——钩子的退出码会被 CLI 读成一个决定。
这个仓库不发预编译包:Formula 从 v0.1.1 标签的源码现场编译。好处是任何人用同一条命令就能复现你机器上那个 App,坏处是第一次装要等约一分钟编译,而且需要 Xcode 命令行工具。
不是猜的,也不是查来的:只读各家自己写进本地日志的字段,例如 Codex 运行中落的 rate_limits 事件。所以工具闲置时读数会旧——超过 10 分钟就退出首屏、挪到额度屏并标 updated HH:MM。没有这个字段的家,那一格整格不画。
不会。权益屏是只读的,点卡片只把那家 App 唤到前台,屏幕上明写「领取要在那家 App 里自己点」。ZCode 的领取状态在它的服务端响应里,本地日志零信号,所以那张卡永远写 Unknown——这是这条路的天花板,不是加载失败。
六家:Qoder CLI、Claude Code、Codex、ZCode、WorkBuddy、OpenCode,后三家需要带 SQLite3 的构建。Linux 走 X11:横幅用 notify-send,声音按 paplay / pw-play / ffplay / canberra-gtk-play / aplay / cxplay 里装了哪个来选,装了 libdbus-1-dev 才是真的 StatusNotifierItem 托盘项。这两条要说清楚:Linux 侧的验证是在 Debian 12 容器里完成的,没跑过真 KDE/GNOME 桌面;横幅点击在 Linux 上不跳会话,也没有 ⌘K 面板驱动。
对你自己编出来的二进制跑 nm -u 看未定义符号:没有 connect、sendto、getaddrinfo、socket,也没有任何 HTTP 客户端。Linux 构建里唯一带 connect 字样的符号是 dbus_connection_*,那是本机 IPC。它也不读钥匙串、不读环境变量里的密钥、不读 shell 历史。
没有地方可传:没有任何网络路径。但标题会显示在屏幕上,提醒横幅引用的就是标题原文,所以请把这块面板当成你自己的终端回滚缓冲区来看待。
Star & Feedback
Agent Ping 是独立维护的开源项目。如果它帮你少切了几次窗口,欢迎去 GitHub 点一颗星——星多了,下一个同时开着六家 Agent、不知道该看哪一边的人,才更容易搜到它。
意见也走 Issue:缺哪家工具、哪个数字口径看不懂、跳转落点不对,中英文都可以,每一条都会读。已知缺口先查 README 的 Known limitations,那里面每条都写了成因。
它读哪些文件、写哪些文件、什么时候写,README 里有全表;不放心可以自己对一个编出来的二进制跑 nm -u。