多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

Windows WSL 用户必看:Token Monitor 无头 Agent 如何解决 SQLite 用量统计盲区

Windows WSL 用户必看:Token Monitor 无头 Agent 如何解决 SQLite 用量统计盲区 Windows WSL 用户必看Token Monitor 无头 Agent 如何解决 SQLite 用量统计盲区【免费下载链接】token-monitorLocal-first desktop widget for tracking token usage, costs, and limits across 43 AI coding tools—including Claude Code, Codex, Cursor, OpenCode, OpenClaw, and more—with multi-device sync.项目地址: https://gitcode.com/gh_mirrors/tok/token-monitor如果你在 Windows 上用 WSL 跑 AI 编程工具Token Monitor 默认就能扫描 WSL 目录但 OpenCode、Hermes 这类把用量存在 SQLite 数据库里的工具经常看得见工具、看不到用量。这篇文章将带你用一个无头 Agentheadless Agent三步打通 WSL 用量采集链路让 Token 统计不再出现盲区。为什么 WSL 里的 SQLite 工具会隐形Token Monitor 在 Windows 上会扫描正在运行的 WSL 发行版通过\\wsl$并约每 5 分钟把用量并入总量。实现见 src/shared/wslUsage.js。文件型数据没问题Codex 的 JSONL session、Claude Code 的 transcript 等都是普通文件Windows 进程跨\\wsl$直接读取即可。SQLite 数据库有盲区OpenCode、Hermes、ZCode 等工具把当前用量存在.db文件里。Windows 能找到数据库但 SQLite 的文件锁和 WAL预写日志无法可靠地跨 WSL 9P 文件系统边界协调于是出现典型症状设置 → 采集 → WSL 检测里已识别出工具用量却一直是 0。别用复制 .db 文件来绕过最新事务可能还留在-wal边车文件里分别复制数据库和 sidecar 无法保证快照一致只会得到脏数据。无头 Agent 方案一句话说清架构官方给出的可靠链路是WSL 无头 Agent → Windows 主机 Hub → Token Monitor 小部件Agent 是一台没有界面的采集器它在 WSL 内、贴着数据库的位置运行 Linux 版 tokscale 扫描器把规范化后的用量摘要而非原始数据库发送给 Windows 上托管的 Hub再由 Hub 推送到 Token Monitor 小部件。入口代码见 src/agent/agent.jsHub 服务见 src/hub/server.js。三步配置指南第 1 步在 Windows 启动 Hub打开 Token Monitor 的设置 → 多设备同步选择在这台设备托管 Hub记下 Hub URL 与共享密钥。 Hub 默认端口是17321。如果 WSL 无法访问界面显示的主机名改用 Windows 主机的 IP端口保持不变。请只在可信网络中开放 Hub并妥善保存密钥。第 2 步在 WSL 内安装无头 AgentToken Monitor 要求 Node.js 22.15.0 或更高版本安装前先确认node --version npm --version git clone https://gitcode.com/gh_mirrors/tok/token-monitor.git cd token-monitor npm ci然后创建token-monitor/.env核心是四个变量TOKEN_MONITOR_HUB_URLhttp://WINDOWS_HOST_IP:17321 TOKEN_MONITOR_SECRET你的共享密钥 TOKEN_MONITOR_DEVICE_IDwsl-agent TOKEN_MONITOR_CLIENTSopencode,hermes,zcode⚠️ 注意TOKEN_MONITOR_DEVICE_ID必须与 Windows 小部件的设备 ID不同。Hub 把相同 ID 视为同一台设备重复 ID 会让后上报的记录覆盖先前的记录。第 3 步验证并持续运行先发送一次快照确认 Token Monitor 里出现第二台设备、且 SQLite 工具有用量npm run agent:once验证通过后启动持续运行的 Agentnpm run agent需要无人值守时把它交给 WSL 里常用的服务管理器如 systemd或登录启动项运行并把工作目录设为 token-monitor 检出目录确保.env能被加载。采集边界怎么定关键是不重复统计Hub 会直接相加不同设备的总量不会跨设备去重同一个 session。所以请二选一方案做法适合人群✅ 推荐保留 Windows 的 WSL 扫描Agent 只负责 SQLite 工具TOKEN_MONITOR_CLIENTSopencode,hermes,zcode大多数用户备选Agent 采集全部 WSL 工具然后在 Windows 小部件设置 → 采集中关闭扫描 WSL 内的工具想统一管理的人核心原则只有一条不要让两个采集器同时上报相同的 Codex、Claude Code 等文件型 session否则总量会翻倍。常见问题速查Troubleshooting没有出现第二台设备检查 Hub URL、共享密钥以及 Windows 防火墙是否放行了 Hub 端口。请求被代理拦截把 Windows 主机 IP 加入NO_PROXY与no_proxy或为 Agent 进程取消代理环境变量。总量重复缩小TOKEN_MONITOR_CLIENTS范围若 Agent 已负责全部 WSL 工具就关闭小部件内建的 WSL 扫描。WSL 检测仍显示无数据这是正常现象。Windows 侧状态只描述它自己的\\wsl$扫描结果WSL Agent 会以另一台同步设备出现并成为这些 SQLite 工具的权威数据源。延伸阅读文档与源码索引官方 WSL 配置指南中文docs/wsl-sqlite-setup.zh-CN.md官方 WSL 配置指南英文docs/wsl-sqlite-setup.mdWindows 侧 WSL 扫描实现src/shared/wslUsage.js无头 Agent 入口src/agent/agent.js跨运行时架构契约含 WSL 章节docs/architecture.mdHub 的 JSON HTTP API 契约docs/API.md配好之后WSL 里每一个 SQLite 工具的 Token 消耗都会以独立设备的身份汇入同一块仪表板——用量盲区就此关闭成本一目了然。【免费下载链接】token-monitorLocal-first desktop widget for tracking token usage, costs, and limits across 43 AI coding tools—including Claude Code, Codex, Cursor, OpenCode, OpenClaw, and more—with multi-device sync.项目地址: https://gitcode.com/gh_mirrors/tok/token-monitor创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表