{"id":50293758,"url":"https://github.com/langya466/trafficmonitor-claude-usage","last_synced_at":"2026-05-31T10:00:30.432Z","repository":{"id":360003948,"uuid":"1248332641","full_name":"LangYa466/trafficmonitor-claude-usage","owner":"LangYa466","description":"在 TrafficMonitor 任务栏显示 Claude 订阅用量（5h/7d），请求前校验 Cloudflare 出口节点(colo/loc)，不对就跳过并通知。C++/WinHTTP，单 DLL。","archived":false,"fork":false,"pushed_at":"2026-05-25T19:46:20.000Z","size":166,"stargazers_count":12,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-29T08:28:30.213Z","etag":null,"topics":["anthropic","claude","claude-code","cpp","plugin","taskbar","trafficmonitor","usage-monitor","windows","winhttp"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LangYa466.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-24T14:02:22.000Z","updated_at":"2026-05-28T15:12:28.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/LangYa466/trafficmonitor-claude-usage","commit_stats":null,"previous_names":["langya466/trafficmonitor-claude-usage"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/LangYa466/trafficmonitor-claude-usage","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LangYa466%2Ftrafficmonitor-claude-usage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LangYa466%2Ftrafficmonitor-claude-usage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LangYa466%2Ftrafficmonitor-claude-usage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LangYa466%2Ftrafficmonitor-claude-usage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LangYa466","download_url":"https://codeload.github.com/LangYa466/trafficmonitor-claude-usage/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LangYa466%2Ftrafficmonitor-claude-usage/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33686018,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anthropic","claude","claude-code","cpp","plugin","taskbar","trafficmonitor","usage-monitor","windows","winhttp"],"created_at":"2026-05-28T07:32:31.561Z","updated_at":"2026-05-30T09:01:07.522Z","avatar_url":"https://github.com/LangYa466.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"## 效果\n\u003cimg width=\"105\" height=\"71\" alt=\"image\" src=\"https://github.com/user-attachments/assets/25681880-97d6-4f37-96c9-d315563f912c\" /\u003e\n\n## Star History\n\n\u003ca href=\"https://www.star-history.com/?repos=LangYa466%2Ftrafficmonitor-claude-usage\u0026type=date\u0026legend=top-left\"\u003e\n \u003cpicture\u003e\n   \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/chart?repos=LangYa466/trafficmonitor-claude-usage\u0026type=date\u0026theme=dark\u0026legend=top-left\" /\u003e\n   \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/chart?repos=LangYa466/trafficmonitor-claude-usage\u0026type=date\u0026legend=top-left\" /\u003e\n   \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/chart?repos=LangYa466/trafficmonitor-claude-usage\u0026type=date\u0026legend=top-left\" /\u003e\n \u003c/picture\u003e\n\u003c/a\u003e\n\n## 数据怎么来的\n\n跟 Claude Code 自己用的那套一样：\n\n- 读 `~/.claude/.credentials.json` 里的 `accessToken`\n- 拿它去打 `https://api.anthropic.com/api/oauth/usage`\n- 取响应里 `five_hour` / `seven_day` 的 `utilization`\n\n默认每 3 分钟刷一次（间隔能改，见下面）。打太勤会被限流（HTTP 429），别手贱调太低。\n\n## 出口节点校验\n\n我是挂代理用的，不太想让 token 从随便哪个出口节点裸奔出去。所以每次请求 usage 之前，会先 GET 一下 `https://claude.ai/cdn-cgi/trace`，看里面的 `colo`（Cloudflare 节点）和 `loc`（国家）：\n\n- 两个都跟设置里一致（默认 `NRT` / `JP`，也就是东京出口）才发请求\n- 对不上就跳过这次，弹个系统通知提醒一下（同一次掉到错误节点只提醒一次，不刷屏）\n\n用不上这功能的话，把 colo / loc 改成你当前出口的值就行。\n\n## 编译\n\n需要 MSVC（VS2022 Build Tools 就够）+ CMake：\n\n```\ncmake -S . -B build -A x64\ncmake --build build --config Release\n```\n\n产物是 `build/Release/ClaudeUsage.dll`，x64、静态链接 CRT，拷到别的机器也不用额外装运行库。\n\n\u003e 插件位数要跟 TrafficMonitor 主程序对上。我的是 x64；如果你装的是 32 位版，改成 `-A Win32`。\n\n懒得自己编的话直接去 [Releases](https://github.com/LangYa466/trafficmonitor-claude-usage/releases) 下 dll。\n\n## 安装\n\n把 `ClaudeUsage.dll` 丢进 TrafficMonitor 安装目录下的 `plugins` 文件夹：\n\n```\nC:\\Program Files\\TrafficMonitor\\plugins\\ClaudeUsage.dll\n```\n\n重启 TrafficMonitor，右键任务栏 → 显示设置，把 **Claude 5h 用量 / Claude 7d 用量** 两项勾上。想上下两行就把它们放到不同行。\n\n## 手动刷新\n\n不想等下一轮间隔的话，左键点一下任务栏上的 5h / 7d 数字，就立刻强制刷新一次。刷新进行中，数字会变成一个滚动的字符（`| / - \\`）动画，让你确认确实触发了；刷完再变回百分比。手动刷新要是失败了（节点不匹配、没 token、429、网络错误等），会弹一条系统通知说明简单原因，不用专门去翻 log。\n\n## 设置\n\n右键插件 → 设置，能改这几个：\n\n| 项 | 说明 |\n| --- | --- |\n| colo | 期望的 Cloudflare 节点，默认 `NRT` |\n| loc | 期望的国家代码，默认 `JP` |\n| jsonpath | `credentials.json` 路径，留空就自动找 |\n| 间隔(分) | 刷新间隔，默认 3；填得比默认小会先警告 |\n| 开机后首次必须手动刷新 | 勾上后开机不自动拉，要你手动点一次 5h/7d 才触发首次获取。开机后还没用 Claude Code 时，出口节点 / token 常常没就绪，自动拉会失败又看不出原因——这个选项就是为了避开它。 |\n\n配置存在 `plugins\\ClaudeUsage.ini`。\n\n## 不显示 / 数值不动？\n\n插件会往 `plugins\\ClaudeUsage.log` 写日志，每轮记一遍 trace 结果、节点匹没匹上、token 读到没、HTTP 状态、最后的百分比。出问题先看这个，一眼就知道卡在哪。\n\n常见的：\n\n- 一直 `--`：多半是节点对不上（看 log 里的 trace colo/loc），或者代理没开\n- `HTTP 429`：刷太勤了，等会儿就好，或者把间隔调大\n- 找不到 token：没登录 Claude Code，或者 credentials 不在默认位置，去设置里填 jsonpath\n\n## 致谢\n\n- 插件接口照着 TrafficMonitor 的[插件开发指南](https://github.com/zhongyang219/TrafficMonitor/wiki/%E6%8F%92%E4%BB%B6%E5%BC%80%E5%8F%91%E6%8C%87%E5%8D%97)写的\n- JSON 解析用 [nlohmann/json](https://github.com/nlohmann/json)\n- NodeSeek(https://nodeseek.com)\n- LinuxDo(https://linux.do/)\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flangya466%2Ftrafficmonitor-claude-usage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flangya466%2Ftrafficmonitor-claude-usage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flangya466%2Ftrafficmonitor-claude-usage/lists"}