吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 176|回复: 2
收起左侧

[原创工具] Cursor Usage:Agent 结束时弹出用量窗口

[复制链接]
Yuanz08 发表于 2026-9-24 13:41
本帖最后由 Yuanz08 于 2026-9-24 14:12 编辑

tags:

  • Cursor
  • Electron
  • Windows
  • 工具
    categories:
  • 开发笔记
    description:
  • 基于 stop hook 与 Dashboard 只读 API,在对话正常结束时展示本周期 Auto/API 与本次 token;Windows 安装版无需 Node。

效果展示

popup-usage.png

开源地址

平台 链接
GitHub https://github.com/yuanzhang788/cursor-usage-alert
Gitee https://gitee.com/zhourui815/cursor-usage-alert

Release 安装包可在上述仓库的 Releases 下载(建议不要从 Git 历史里拉整包 exe)。


为什么做

Cursor Agent / Ask 正常结束后,很难在系统通知里稳定看到 本周期 Auto/API 占用 和 本次对话 token。Windows 在前台时 Toast 也常被压掉。

Cursor Usage 在 stop hook、status: completed 时读本机登录态,调账单只读接口,在屏幕右下角弹出置顶小窗(不依赖 Toast)。


弹窗内容

  1. Auto x%  API y%;仅当团队池或个人 已用 > 上限 时显示 超出 $…(不是把团队池总花费直接当超出)。
  2. 套餐内 in / out / cache(本次对话、水位之后新入账的事件)。
  3. 合计 x.xx万(in + out + cache,万为单位,两位小数)。

账单比 hook 晚几秒时,最多轮询约 45 秒(间隔 3 秒);仍无 API 事件则用 hook 传入的 token 作兜底文案。

托盘右键 「立即查用量」 可马上查一次周期用量并弹窗(不轮询、不更新水位),不跑 Agent 也能自检。


架构(简要)

Agent 结束 → stop hook (hook.ps1 / hook.js)
         → inbox/*.json
         → 托盘轮询 → usage.js
         → GetCurrentPeriodUsage + GetFilteredUsageEvents
         → 弹窗 → 更新 state.json 水位
组件 说明
Cursor Usage.exe 托盘、弹窗、写 ~/.cursor/hooks.json
hook.ps1(安装版) PowerShell 读 stdin,写 inbox,必要时拉起托盘
hook.js(开发) 需 Node,逻辑同安装版
数据目录 %LOCALAPPDATA%\cursor-usage\(inbox、state.json、hook.log)

Token:%APPDATA%\Cursor\User\globalStorage\state.vscdb → cursorAuth/accessToken(与 Cursor 安装目录无关,默认用户数据路径一致)。


安装版为何必须用 hook.ps1

Cursor 把 JSON 打在 hook 的 stdin 上。GUI 的 Cursor Usage.exe --hook 在 Windows 上往往读不到 stdin(hook.log 里 bytes=0),因此 NSIS 安装版应使用:

powershell … -File "<安装目录>\resources\hook.ps1"

首次启动托盘会自动写入 ~/.cursor/hooks.json(timeout: 60)。改 hook 或升级后请重启 Cursor。


使用步骤

  1. 安装 Cursor Usage Setup 或运行便携 Cursor Usage.exe,确认托盘图标常驻。
  2. 重启 Cursor。
  3. 正常结束一轮 Agent / Ask,右下角应弹出用量窗口。

维护者本地打包:

cd electron
npm install
npm run dist

产物在 release\(便携目录 + NSIS)。打包前退出所有 Cursor Usage.exe,避免 app.asar 被占用。


卸载

优先 设置 → 应用 → Cursor Usage → 卸载(NSIS 卸载前会结束进程)。不要用 Geek Uninstaller 强卸(易出现 Geek 自身崩溃 dump、目录删乱)。若需清理残留,仓库内提供 electron/scripts/uninstall-cursor-usage.ps1(可选 -RemoveHooks、-RemoveAppData)。


排查

现象 建议
完全不弹窗 托盘是否在跑;hook.log 是否 enqueued(非 bytes=0)
bytes=0 hooks 是否误用 exe --hook;改回 hook.ps1
只有 Auto/API、尚未入账 账单延迟或水位;试「立即查用量」
请重新登录 token 缺失或过期,在 Cursor 中重新登录

日志:%LOCALAPPDATA%\cursor-usage\hook.log。


小结

stop hook + 本地托盘 + Dashboard 只读 API,在 Windows 上稳定展示 周期占用 与 本次用量;安装版关键是 hook 必须能读 stdin(PowerShell),且 安装后无需 Node。


免责声明:非 Cursor 官方工具;请勿在日志或分享包中泄露 token。API 与 hook 行为随 Cursor 版本可能变化,以实际为准。

发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

younggc 发表于 2026-9-28 09:52
用 stop hook 加 Dashboard 只读 API,省掉了自己解析日志的麻烦,路子选得对。想确认一下 token 数是接口原样返回还是自己累加的,上游字段一改能不能马上察觉。
 楼主| Yuanz08 发表于 2026-9-28 10:22
younggc 发表于 2026-9-28 09:52
用 stop hook 加 Dashboard 只读 API,省掉了自己解析日志的麻烦,路子选得对。想确认一下 token 数是接口 ...

token数是原接口返回的,每次获取的最新的一条,因为这是调用的cursor的内部接口,理论上来说官方为了兼容旧版本的客户端,不会轻易改动接口字段,新增是有可能的,本帖附有源码地址,有兴趣的话可以拉取代码查看
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-9-30 20:19

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表