Mac 上的 LLM 用量显示扩展,核心作用是把 API 请求里的 token 消耗、费用、请求次数和限流情况,直接做成一个常驻在菜单栏的小药丸(pill)、悬浮在桌面边缘的小条(nub),或者点开才能看到完整信息的面板(panel)。对每天要反复调 OpenAI、Anthropic 或各类 OpenAI 兼容接口的开发者来说,这东西解决的不是“炫酷显示”问题,而是“用量可见性”问题:不用每次都在心里估算今天跑了多少 token,也不用打开网页控制台。
我最近把日常实验从“跑完再看账单”改成“边跑边看顶栏”,第一个明显收获是:某次批量任务因为循环参数写错,token 消耗速度肉眼可见地不对劲,几分钟内就看到数字异常,直接停下重来。就那一次省下的成本,已经超过我搭这个工具花的时间。下面按实际落地顺序拆:先讲它显示什么,再讲安装前要确认什么,然后是配置步骤、排查顺序,最后说多账号和团队场景。
1. 先搞清楚面板里显示的是“用量”而不是“性能”
1.1 五个常见指标,分别回答什么问题
这类扩展最常见的显示项有五个:token 用量、费用、请求频率、配额与限流、模型分布。
token 用量不是只有一个数字。输入 token、输出 token、缓存 token、思考 token,不同 provider 的统计口径不一样。比如有的模型会自动把历史消息压成缓存输入,费用比普通输入低,但面板如果只给你一个总 token 数,你是看不出这部分的。所以一个合格的用量面板,至少要分开显示“输入”和“输出”,最好能把“缓存命中”单独标出来。
费用是大多数人装这个工具的第一动力。费用计算不能只看 token 数,还要看模型单价。现在主流 provider 的价格表基本都按每百万 token 计价,输入和输出价格不同,缓存命中和未命中又不同。面板要能配置模型单价,否则它给你的“费用”就是估算值,只能用来观察趋势,不能直接当发票。
请求频率看的是每分钟请求数、每小时请求数。这个指标主要用来判断你有没有逼近限流阈值。批量任务一旦开始,并发数开太高,很容易撞上 provider 的每分钟限制。面板能显示这一类数字,比报错来得更早。
配额与限流解决的是“我还有多少额度”的问题。有的 provider 是按预付款余额算,有的是按免费额度算,还有的是按项目配额算。面板读取的是查询接口返回的数值,刷新有延迟,所以它适合当提醒,不适合当实时账本。
模型分布适合多模型混跑的人。同一个项目里既用大模型做复杂推理,又用小模型做文本抽取,费用差异可能快到 10 倍。如果你的扩展支持按模型拆分显示,就能快速定位“钱到底花在哪个模型上”。
1.2 它解决不了的事,提前知道能少踩坑
第一,它不是官方账单。provider 的 usage 接口返回的数据,和你月底看到的账单可能对不上。计费系统有合并规则、折扣、区域差异,面板显示的是“当时查询到的值”,不是最终结算值。
第二,它不替代日志系统。面板只能告诉你“消耗了多少”,不能告诉你“哪一条请求导致了消耗”。要定位具体请求,还是得靠服务端日志、请求 ID 和调用链。
第三,它显示不了生成质量。一个任务消耗高,可能是模型真的在处理复杂内容,也可能是你的 prompt 写得啰嗦、上下文塞得太多。面板给出的是结果,不是原因。
第四,大多数这类工具只显示、不拦截。它不会因为你超了阈值就自动停掉任务。你需要自己在代码里做判断,或者依赖 provider 的限额设置。
想清楚这几点,后续配置的时候就不会对工具产生不切实际的期待。
2. 安装之前,先确认系统、数据来源和权限
2.1 系统与 UI 形态的匹配
menu bar pill 是最常见的形态,常驻在顶栏,占用空间小,适合只显示一两个数字。panel 是点击之后展开的完整窗口,适合放趋势图、模型列表、时间范围切换这些复杂信息。nub 是悬浮在桌面边缘的小长条,适合双屏用户或者不想让顶栏变挤的人。
在选形态之前,先看你的 macOS 版本。老系统对菜单栏扩展的 API 权限限制和新系统不一样,有些扩展作者只维护新版系统。如果你的机器比较旧,先确认工具的最低系统要求,不要装完才发现没法常驻。我一般会先看一下扩展在系统设置里有没有被授权,特别是“辅助功能”和“通知”两类权限。
菜单栏扩展常驻本身不难,难的是悬浮置顶。如果你选 nub 形态,大概率需要辅助功能权限。这个权限在 macOS 里不是默认开启的,首次启动会弹窗,没授权的话悬浮条要么不显示,要么点了没反应。
2.2 数据从哪来:三种常见来源
第一种是直接调 provider 的 usage 查询接口。这类接口一般返回账户或项目级别的 token 用量和费用,优点是准确度高,缺点是有延迟。很多 provider 的用量数据不是实时的,慢的时候可能滞后几十分钟。面板轮询一次,拿到的是“某个时间点之前”的数据。
第二种是读本地网关服务的统计接口。很多人会用自建的网关服务统一转发各个模型请求,网关会记录每次请求的 token 和费用。扩展读网关的统计接口,就能拿到相对实时的数据,还能顺便按标签、按项目拆分。缺点是你要先有一个能正确输出统计字段的网关,如果网关自己记录不准,面板再准也没用。
第三种是解析请求日志。适合动手能力强的人:扩展监听某个日志目录,把每次请求的 usage 字段抓出来,自己聚合。优点是灵活,缺点是日志轮转、文件权限、格式变更都会导致统计中断。实际体验是,自己解析日志只适合“确定没有更好办法”的场景。
我的建议是:先用第一种把单 provider 跑通,再考虑第二种做多模型汇总。第三种只在你对现状实在不满意时再碰。
2.3 权限和密钥:这步最容易踩坑
扩展要读你的用量数据,就得拿到 API key。这里最危险的习惯是把 key 明文写在配置文件里。很多工具第一次运行会要求填写 key,然后保存到一个 JSON 文件里。如果你把它放进 Git 仓库的配置文件,等于把凭证发给了所有能看到仓库的人。
优先选择支持系统钥匙串(Keychain)保存凭证的工具。如果工具不支持,就自己确保配置文件不进入版本控制,并且把目录权限收紧。
权限方面,除了辅助功能,还要注意网络权限。macOS 首次启动一个需要联网的扩展,系统会询问是否允许网络访问,如果当时点了拒绝,后面就只显示 0,不报错,也不更新。排查这个问题通常比想象的久,因为你会先怀疑 key 不对,再怀疑接口不对,最后才想到是系统权限拦住了网络请求。
提醒:先看权限,再改配置。任何网络相关的扩展,第一次启动弹窗都别急着点拒绝。
3. 配置一个最小可运行的面板,先跑通一条请求
3.1 五步走到第一个数字
第一步,下载并安装扩展。不同来源的安装方式不完全一样,但从应用商店或官方渠道装的,一般都能在系统设置里直接看到权限入口。
第二步,添加 provider 并填入 API key。首次配置宁可少填,不要多填。先只配一个 provider,一个账号,一个模型分组,避免后面数字对不上时不知道是哪一项影响了结果。
第三步,选择显示指标。我建议先只显示“今日费用”和“今日总 token”。这两个指标最容易验证:发一条请求,如果数字变了,说明链路是通的。一上来就显示“近 30 天趋势”“模型分布占比”这类复杂指标,反而不好判断。
第四步,设置轮询间隔。默认值如果没给,就先用 60 秒。轮询太频繁,容易触发 provider 的接口限流,也增加本机耗电;轮询太长,比如 10 分钟,那面板就只是个自欺欺人的装饰品。
第五步,发一条测试请求。直接用命令行或者你平时调模型的方式,发一个很短的请求,等几秒,再看面板。正常情况下,请求完成后下一次轮询就会把这次消耗加进面板。
3.2 核心参数怎么定
下面这张表是我自己常用的初始值和进阶值,实际参数要以你用的工具为准,但思路可以通用。
| 参数 | 含义 | 初始建议 | 进阶建议 |
|---|---|---|---|
| 轮询间隔 | 每隔多久查询一次用量 | 60 秒 | 10 到 30 秒,仅当你有实时限额需求 |
| 时间范围 | 面板统计的是哪个时间段 | 今天 | 本自然月或自定义时段 |
| 显示单位 | token 数还是费用 | token 和费用同时显示 | 按团队要求优先展示费用 |
| 模型单价 | 用于估算费用的价格 | 按官方默认单价填 | 定期核对,价格变动后手动更新 |
| 多账号汇总 | 是否合并多个账号 | 关闭 | 确认口径一致后再打开 |
| 阈值提醒 | 用量超过多少时变色或通知 | 费用的 80% | 按你的预算设定多条阈值 |
这里的核心原则是:能跑通之后再调参。先一条请求,再批量,最后才考虑复杂统计。
3.3 如何判断它真的在工作
判断条件有三个:请求完成之后,面板数字比之前大;历史记录里能看到这条请求对应的模型和 token 数;日志没有报错。三者同时满足,才算真正跑通。
不要以为“不报错就是正常”。有的扩展在调用 usage 接口失败时会静默失败,界面还停留在上一次成功的数值。你发一条请求,数字不动,如果只看界面不查日志,很容易误判成“请求没被记录”。
我更建议把第一次测试拆成三步:先启动扩展,观察它能不能正常显示 0 或者空状态;再发一条最小请求,确认数字变化;最后连续发三条请求,确认数字不是只加了一次就停了。三步都过了,再挂后台。
4. 数字不动、不准、刷新慢,按这个顺序排查
4.1 完全没数据:先从日志入口看
完全不显示数据,大多数人第一反应是 API key 写错了,但我见过的实际情况里,权限没开、网络被拦、日志目录不对也占了不少比例。
排查顺序我一般这样排:先看扩展自己的日志,确认它启动后有没有开始轮询;再看 API key 是否有效,可以手动用命令调一次 usage 接口;然后看系统设置里的网络权限和辅助功能权限;最后看是不是轮询间隔太短导致被限流。
有一个很容易被忽略的点:如果你用的是公司发的 Mac,系统可能装了一些安全策略,限制应用读取钥匙串或者访问外部网络。这种情况下扩展不会告诉你“被策略拦截”,只会一直转圈或者显示空数据。
4.2 数字一直停在某个值:时间范围和计费延迟
数字“动过但再也不动”,优先查两件事:时间范围和 provider 的计费延迟。
很多 usage 接口统计的是“上一个小时”或者“前 5 分钟”的汇总,不是实时增量。你发完请求马上看,数字没变,不代表没记录,可能只是还没进入统计窗口。这种情况等 10 到 30 分钟再回来看,数字就会补上。
时间范围也是一个常见坑。面板默认显示“今天”,但如果它用的时区是 UTC,那你的下午两点在它那里是上午六点,数字自然对不上。配置里如果有时区选项,优先选你自己的本地时区。
4.3 数值偏大或偏小:统计口径对不上
面板显示的数值和你在 provider 后台看到的对不上,几乎都是口径问题。
缓存 token 是最典型的一个。你的请求命中了 prompt 缓存,计费会便宜很多,但部分 usage 接口返回的总 token 数仍然包含缓存 token。如果面板直接拿总数算费用,就会高估成本。要看清楚它有没有单独识别缓存字段。
另一个口径问题是模型价格表过期。provider 调价之后,面板如果还按旧价格算,费用就会偏。这不是 bug,是配置没更新。遇到费用明显不对,先看价格表。
还有一种是多账号重复计数。如果你在同一个面板里配了两个账号,但这两个账号其实是同一个组织下的子账号,个别接口会把父级总量和子级用量都返回一遍,导致数字叠加。
4.4 卡顿和耗电:都是轮询和刷新频率问题
面板卡顿、风扇狂转、电池掉得快,九成是轮询间隔太短,或者日志文件太大。
轮询间隔建议从 60 秒起步。如果 60 秒不够,先改成 30 秒观察一段时间,再固定下来。不要一上来就 5 秒一次,因为 provider 的 usage 接口本来就有延迟,5 秒轮询拿到的数据几乎和 30 秒一样,白白浪费资源。
如果你的扩展还拿着趋势图,日志文件会越来越大。一旦日志文件达到几百 MB,启动和读取都会变慢。定期清理日志,或者配置日志轮转,是很多人忽略的维护项。
注意:用量显示工具是“辅助观察”,不是“实时监控系统”。它不需要秒级刷新,正常使用 30 到 60 秒刷新一次完全够用。
5. 进阶用法:多模型汇总、费用阈值、团队对账
5.1 多 provider 汇总时,别直接相加
当你同时用两三个 provider 时,想把费用放在一个面板里看,第一个要解决的是口径统一问题。
每个 provider 的时区、币种、计费字段都不一样。有的返回美元,有的返回人民币。有的按自然月统计,有的按账号创建日滚动统计。直接把两个数字相加,看起来很方便,实际上误差很大。
正确做法是:先把各个 provider 的原始数据分别记录下来,再统一换算成同一种货币、同一个时间区段,最后汇总。这一步最好在面板配置里用“多账号分组”功能做,不要自己在 Excel 里手动拼。
5.2 把面板当成“停止信号”,而不是“账本”
面板最适合扮演的角色是“停止信号”:当费用超过预算的 80%,它准时变色提醒你;当某次任务每秒都在烧钱,它让你第一时间发现异常。
至于真正的账本,还是要以 provider 官方的账单为准。面板的实时估算和账单之间存在时间差,这是所有用量统计工具的通病,不是哪家做得不够好。
我的习惯是:给每种模型、每个实践项目都设一个软阈值,跑批量的同时瞥一眼面板。如果发现数字涨得比预期快,就先暂停任务,查一下是不是循环没退出、并发是不是开太高,而不是等任务全部跑完。
5.3 团队使用前,先解决身份和日志
如果是几个人共用同一个账户,建议先用 provider 自带的子账号或项目维度拆分用量,再让面板去读各自项目的数据。面板本身不解决权限隔离,它只是把你给它的 key 能查到的数据展示出来。
团队场景还有一个容易忽略的问题:谁的日志出了问题,谁该负责。如果每个人的 key 都在同一个面板里汇总,出事之后很难定位。更稳妥的方式是每个人单独一个项目分组,面板只做汇总展示,日志留在各个子账号的上下文里。
给团队用的时候,API key 的权限要尽量收窄。能只读就不要给写权限,能限定项目就不要给全网权限。这样即使 key 泄露,影响面也可控。
6. 实在建议:什么情况下不值得装这类扩展
6.1 你可能不需要它
如果你一个月才调几次 API,打开网页控制台看一次就够了,装一个常驻菜单栏扩展反而添乱。
如果你只看月度账单,不在乎每天花了多少,也不需要提醒,那这个工具对你没有实际价值。
如果你平时只是用现成的聊天客户端,不写代码调 API,那更用不上。因为它统计的是你自己的 API key 产生的那部分用量,聊天客户端内部走的是官方订阅计费,不会出现在你的 usage 接口里。
反过来,如果你每天要跑批量任务、做实验对比、或者给团队控制成本,这类扩展就值得认真配一次。
6.2 安全习惯,必须比功能更早想清楚
API key 一旦泄露,可能带来的直接损失就是账号被刷费用。所以安全习惯要从第一次配置就开始。
只使用只读 key。所有用量查询工具都应该配只读权限,不需要有创建、修改、删除的权限。如果某个工具强制要求完整权限,建议换一个。
不要把 API key 截图发到聊天工具里。截图比命令行记录更容易被人随手转发,而且几乎没办法批量撤回。
定期轮换 key。建议每三个月或者每次怀疑泄露时更换,同时把旧 key 在 provider 的后台禁掉。这个操作比任何面板设置都重要。
如果配置文件里必须写 key,确保它不在 Git 仓库里。你可以在仓库目录下加入忽略文件,只保留示例配置模板。变量注入也是可选方案,但前提是你熟悉当前的部署环境。
6.3 最后说一句
这类工具真正落地时,最该盯住的不是界面好不好看,而是三条:输入数据来源是不是可靠、轮询会不会给自己造成额外负担、key 和日志是不是安全。踩过几次之后我发现,很多问题不是工具能力不够,而是前置权限和统计口径没有处理干净。
先用单 provider、单指标跑稳,再逐步叠加多账号和费用提醒。稳定运行一两周之后,你会发现它真正的存在感,不是每天让你眼花缭乱的数字,而是在某一次异常任务里,替你提前喊了一声“停”。