Seven verdicts, and it says which one
七种判决,而且它把话说出来
The large number is the answer, and the sentence beside it is the verdict. Three of the seven, drawn by the app's own renderer:
大数字是答案,旁边那句话是判决。七种里的三种,由 app 自己的渲染器绘制:
It comes and finds you
它会来找你
The dashboard is the part a dozen other tools already do. This is the part that is actually worth installing something for: three hooks, merged into your existing Claude Code settings rather than written over them, with the original backed up byte for byte first — and one button in settings takes them back out, leaving your own hooks as they were.
看板那部分市面上已经有十几个实现。真正值得为之装一个东西的是这部分: 三个钩子,以合并方式写进你已有的 Claude Code 配置而不是覆盖它, 并且动手之前先逐字节备份原文件;设置里一个按钮就能把它们移除,你自己的钩子原样保留。
- Your quota reset. It tells you when you can start again, rather than you checking.
- Claude is waiting on you. A permission prompt has stalled — the menu bar steps aside and a notification arrives.
- You walked away. More than five minutes from the keyboard and the alert forwards to your phone through ntfy or Bark.
- 额度重置了。到点它主动告诉你可以继续干活,而不是你去查。
- Claude 在等你回话。权限确认卡住了 —— 菜单栏让位,通知弹出来。
- 你离座了。超过五分钟没碰键盘,提醒就通过 ntfy 或 Bark 转发到手机。
The menu bar at the size it really is — the wing, both Claude windows, Codex's state and the countdown to the next reset. The panel spells everything out; the menu bar is the one place where space is scarce enough to earn a silhouette. It never animates.
菜单栏,就是它真实的大小 —— 翼、Claude 的两个窗口、Codex 的状态, 以及到下一次重置的倒计时。面板里不用缩写;菜单栏是唯一一处空间紧张到值得用剪影的地方。它不做动画。
What it reads
它读什么
Claude Code, from the real endpoint
Claude Code,读真实接口
The five-hour and weekly windows as actual percentages from
/api/oauth/usage, plus the current session's context. Thresholds come from the
server's own severity, not a number we invented. The dollar credit a Max plan
includes is there too, and the prepaid balance if your organisation has one.
五小时与周窗口的真实百分比,来自 /api/oauth/usage,
外加当前会话的上下文占用。阈值用服务端自己的 severity,不是我们瞎定的数字。Max 计划自带的美元额度也在这里,组织预付过 Claude 的话还有余额。
Codex, with no credentials at all
Codex,零凭据
Read from its own app server. Nothing is asked of you and nothing is stored. It also tells you when OpenAI has granted your account a free reset, and when that reset expires.
读它自己的 app server。不问你要任何东西,也不存任何东西。OpenAI 送了你免费重置的话,也会告诉你还有几次、哪天过期。
Five more, read-only
另外五家,只读
Cursor, Copilot, Devin, Grok and Antigravity, each gated on the app actually being installed and each with a timeout. See before you install — none of them has been verified against a real account.
Cursor、Copilot、Devin、Grok、Antigravity,每一家都以「装没装」为前提, 每一家都有超时。见装之前先看 —— 它们都没在真实账户上验证过。
It does not ask for your password
它不会问你要密码
If you are logged into Claude Code, the app reuses that login. You never re-enter an account, and this app never sees a password.
已经登录 Claude Code 的话,应用直接复用那个登录。不用重新输账号, 本应用也从不接触你的密码。
It does not need your permission either. macOS checks keychain access per
record and per program, and Claude Code creates its login record with the security
tool, so the record admits that tool. This app reads the record through the same tool, with the
same command Claude Code uses — so nothing asks, and signing in to Claude Code again changes
nothing.
也不需要你授权。macOS 的钥匙串授权是按「条目 × 程序」给的,而 Claude Code
用 security 工具创建自己的登录记录,所以这条记录认这个工具。本应用通过同一个工具、用 Claude Code 自己用的那条命令去读 —— 于是什么都不会问,重新登录 Claude Code 之后也一样。
Before you install
装之前先看
Five things that are true of version 1.6.8 and are better said here than discovered later.
1.6.8 版的五件事,写在这里比让你自己发现要好。
- Before 1.0.13, this app could not open on any Mac except the one it was built on. It installed, it launched, and nothing appeared — no menu bar item, no window — because it crashed looking for its own fonts and string tables at a path that only existed on the build machine. Twelve releases went out that way, and the build machine could never notice. The assembled app now proves from inside itself that every resource is inside itself, and a build that cannot say so is refused. And on the first other Mac that ran it, the settings window then opened as a bare title bar — it took its height from a number that is 0 until the page has been laid out. Since 1.1.0 the page states its own height, the way the panel always has. If you downloaded an earlier version, this is why it showed nothing, or nothing you could change. And until 1.1.1 it redrew the menu bar about three thousand times a second while doing nothing, because assigning the icon made macOS re-resolve the button's appearance and that fired the observer that assigned the icon — half a core, idle. Measured before and after with the app's own counter: 36,601 redraws in 12 seconds, then 3 in 15.
- Before 1.6.0, the trophy page counted most of your work twice. Claude Code writes a single reply into its log as several lines — 2.26 on average on the machine this was measured on — and every line was counted. Since 1.6.0 each message counts once, so after upgrading your turns, tokens and equivalent cost fall by more than half. Nothing you did went away; it stopped being counted twice.
- Claude Code and Codex are the two that are proven. The other five — Cursor, Copilot, Devin, Grok, Antigravity — have never been checked against a real account, because none of them is installed on the machine this was built on. They are read-only, gated on the app being present, and time out; but "it should work" is not "it works".
- It reads your Claude Code login and never renews it. Up to 1.4.0 the app renewed an
expired token itself and wrote the replacement back, and on 8 September 2026 that write-back
failed three times on one machine: each exchange had already retired the old refresh token,
each replacement was lost, and the login that machine's CLI shared had to be rebuilt with
claude auth login. Since 1.5.0 renewing is left to Claude Code, which can store what it renews. The trade: if you have not used Claude Code for a while and its login has expired, the quota stops moving until you use Claude Code again. Since 1.6.1 the last reading stays on screen, fainter and marked with when it was read, and the live figure returns by itself about ten seconds after Claude Code renews its login. The desktop app's Claude Code never renews this login — it keeps one of its own — so 1.6.2 adds a setting, off until you turn it on, that hands an expired login to Claude Code to renew: it runs/usage, which starts no conversation and uses no quota. - Apple Silicon, macOS 13 or later. No Intel build.
- 1.0.13 之前,这个应用在构建它的那台 Mac 以外根本打不开。能安装、能启动,然后什么都不出现 —— 没有菜单栏图标、没有窗口 —— 因为它去一条只在构建机上存在的路径找自己的字体和字符串表,找不到就崩了。十二个版本都是这样发出去的,而构建机永远发现不了。现在应用出包前必须从自身内部证明每一项资源都在自身内部,证明不了的构建直接拒绝。而在第一台跑起来的别的 Mac 上,设置窗口接着又只开出一根标题栏 —— 它的高度取自一个在页面完成布局前恒为 0 的数。1.1.0 起,设置页像面板一样自己申报高度。而在 1.1.1 之前,它闲着的时候每秒重画菜单栏约三千次 —— 设置图标会让 macOS 重新解析按钮外观, 而那又触发了那个负责设置图标的观察者,空转掉半个核。用应用自带的计数器前后各测一次: 12 秒 36,601 次,修复后 15 秒 3 次。如果你之前下载过、打开后什么都没有、有东西却改不了,或者风扇一直转,原因就是这些。
- 1.6.0 之前,战绩页把你大部分的工作算了两遍。Claude Code 把一条回复写进日志时会拆成好几行 —— 在测量的那台机器上平均 2.26 行 —— 而每一行都被算了一次。1.6.0 起每条消息只算一次, 所以升级之后,回合数、token 和等效成本会少掉一半以上。你做过的事一件没少,只是不再被重复计算。
- 真正验证过的是 Claude Code 和 Codex 两家。另外五家 —— Cursor、Copilot、Devin、 Grok、Antigravity —— 从未在真实账户上验证过,因为开发机上一个都没装。它们全部只读、以「装没装」为前提、并且有超时;但「应该能用」不等于「能用」。
- 它读你的 Claude Code 登录,但从不续期。1.4.0 及更早的版本会自己续期过期的令牌并写回。
2026 年 9 月 8 日,某台机器上这个写回连续失败了三次:每一次交换都已让服务器作废旧的 refresh token,
每一个替代品都丢了,那台机器上 CLI 共享的登录只能用
claude auth login重建。 1.5.0 起续期交给 Claude Code —— 只有它存得下自己换来的新令牌。代价是:如果你有一阵子没用 Claude Code、登录已经过期,额度会停住,直到你再用一次 Claude Code。1.6.1 起,最后一次读数会留在屏幕上 (颜色变淡,并标明读取时间);Claude Code 续期之后大约十秒,实时数字自己回来。桌面版里的 Claude Code 从不续这条登录(它有自己的一份),所以 1.6.2 加了一个设置,默认关:登录过期时交给 Claude Code 续期, 它跑的是/usage,不开对话、不占额度。 - Apple Silicon,macOS 13 以上。没有 Intel 版本。
Your data
你的数据
The token goes to api.anthropic.com and nowhere else. There is no
telemetry, no crash reporting and no account of any kind.
令牌只发往 api.anthropic.com,不去别处。没有统计、没有崩溃上报,
也不需要任何账号。
Free, and the source is public
免费,而且源码公开
No licence, no account, no paid tier. Around 11,600 lines of Swift with no third-party dependencies, 246 tests, and a handover document that explains why the awkward parts are the way they are.
不要授权、不要账号、没有付费档。约 11,600 行 Swift,零第三方依赖,246 个测试, 外加一份把「为什么这里写得这么别扭」讲清楚的交接说明。
Nothing is held back for people who give, and the app never asks. If it has earned a place in your menu bar, a star, an issue from a Mac we do not have, or a word to a friend all help — and so does supporting PWE directly.
支持的人不会多得什么,应用也从不开口要。如果它在你的菜单栏里派上了用场: 点一颗星、从我们没有的 Mac 上开一个 issue、告诉一个朋友,都是帮忙 —— 直接支持 PWE 也是。
The rate is an interval, not a number
速率是区间,不是数字
Every reading these services hand back is a whole number, and long plateaus are normal. The error is not Gaussian noise to be smoothed away — it is quantisation. So there is no regression here, no EWMA and no Kalman filter: they would all be averaging an ε that does not exist. Two bounds instead, over a span of S hours:
这些服务给回来的每一条读数都是整数,长时间的平台期是常态。误差不是可以被抹平的高斯噪声,是量化。所以这里没有回归、没有 EWMA、也没有卡尔曼 —— 它们都在平均一个不存在的 ε。取而代之的是两条界,跨度 S 小时:
rate.high = (Δp + 1) / S
One expression, three properties worth having. A plateau yields only an upper bound, which gives a lower bound on endurance — so the app can say "at least this long" and mean it. A single-step jump has a lower bound of zero, so one step can never announce that you are going to run out. And a burst decays on its own as S grows. The width of the interval is where the uncertainty goes; there is no confidence knob, because there does not need to be one.
一个式子,三个想要的性质。平台期只给上界,于是有续航的下界 —— app 可以说「至少还能跑这么久」,并且这句话是真的。单级跳的下界必为零, 于是一步永远不能宣布你会用尽。爆发随 S 增长自行衰减。不确定性的出口就是区间的宽度,不需要另设一个置信度参数,因为根本不需要。
What it cost, at list price
按目录价折算花了多少
A trophy page converts the work you actually did into what the same tokens would have cost at the published API rates, with the price table's source and date shipped alongside it — and, for the last 7, 30 or 90 days, which projects it went to.
战绩页把你实际做的事,按官方公布的 API 单价折算成等效成本 —— 价格表连同它的来源和核对日期一起打包在应用里;最近 7、30、90 天还能按项目看花在了哪里。
The login, in full
登录的完整说明
It only reads. It never renews the login and never writes to the record. Up to 1.4.0 it did both: it asked once for keychain access and again after every sign-in, and on one machine a renewal it could not write back logged the command-line tool out. When the login has expired now, the panel says so and offers Open Claude Code; using Claude Code once renews it, and the numbers come back on their own.
它只读。从不续期这个登录,也从不写这条记录。1.4.0 及更早的版本两件都做: 要你授权一次钥匙串、每次重新登录后再授权一次,而且在一台机器上,一次写不回去的续期把命令行工具登出了。现在登录过期时,面板会说明原因,并给一个 打开 Claude Code 按钮;用 Claude Code 一下, 登录就会续期,额度随后自动恢复。
Nothing here asks you to open a terminal. Signing in is a button that opens one
and does it for you; a Mac without Claude Code on it gets a button to the download page rather
than a command that answers command not found. Until 1.1.5 every dead end ended in
something to type.
这里不会让你去开终端。登录是一个按钮 —— 它替你打开终端并跑完;
没装 Claude Code 的 Mac 得到的是一个通往下载页的按钮,而不是一条会回你
command not found 的命令。1.1.5 之前,每一个死胡同的尽头都是一句要你敲的东西。
Until 1.0.9 this page said no dialog ever appeared, on the grounds that the app
read the record through /usr/bin/security. It raised a prompt on every poll instead —
and at the time the app was also writing that record itself. 1.0.10 to 1.4.0 stopped using the
tool and asked you for keychain access; 1.5.0 stopped writing, and went back to it.
1.0.9 之前,这个页面写的是「永远不弹框」,理由是应用通过
/usr/bin/security 读记录。结果它每轮轮询都弹框 —— 而那时应用自己也在写这条记录。
1.0.10 到 1.4.0 不再用这个工具,改为请你授权钥匙串;1.5.0 不再写,又回到了它。
Specs
规格
| Mac | Apple Silicon. No Intel build. |
|---|---|
| macOS | macOS 13 or later. |
| Size | 1.8 MB. It lives in the menu bar. |
| Languages | English and 简体中文, switchable in settings. |
| Install | Signed and notarised by Apple, so it opens with no security warning. Or brew install --cask kenshinice-ai/tap/pwe-ai-bar. |
| Reads | Claude Code and Codex, proven. Cursor, Copilot, Devin, Grok and Antigravity: read-only, never checked against a real account. |
| Permissions | None asked: it reads the Claude Code login through the same tool, with the same command, that Claude Code uses. |
| Network | The token goes to api.anthropic.com and nowhere else. No telemetry, no crash reporting. Away from the keyboard, alerts forward to your phone through ntfy or Bark. |
| Price | Free. No licence, no account, no paid tier; the source is on GitHub. |
| Mac | Apple Silicon。没有 Intel 版本。 |
|---|---|
| macOS | macOS 13 或更新版本。 |
| 大小 | 1.8 MB。住在菜单栏里。 |
| 语言 | 简体中文与 English,设置里可以切换。 |
| 安装 | 已由 Apple 签名公证,打开不会有安全提示。或者 brew install --cask kenshinice-ai/tap/pwe-ai-bar。 |
| 读取 | Claude Code 与 Codex,已验证。Cursor、Copilot、Devin、Grok、Antigravity:只读,从未在真实账户上验证过。 |
| 权限 | 什么都不会问:它通过 Claude Code 自己用的同一个工具、同一条命令读登录记录。 |
| 联网 | 令牌只发往 api.anthropic.com,不去别处。没有统计、没有崩溃上报。你离座时,提醒通过 ntfy 或 Bark 转发到手机。 |
| 价格 | 免费。不要授权、不要账号、没有付费档;源码在 GitHub 上。 |
Latest
最近更新
1.6.8 · 2026-10-18
Claude now shows the dollar credit your plan includes: how much is used and when it resets.
Claude 一节现在会显示套餐自带的美元额度:用了多少、哪天重置。