原生 macOS 菜单栏应用,为 Clash Verge(mihomo 内核)提供持久的流量分流统计。
mihomo 内核与 Clash Verge 只保留实时连接数据,连接断开即丢失,天然没有按日/周/月的历史记录。本应用持续快照内核的连接信息,连接关闭时落库 SQLite,让你可以回看任意时间段的流量走向。
- 菜单栏实时速率:常驻显示
↑上行 ↓下行,mihomo 未运行时自动待机并恢复 - 多时间范围统计:今日 / 本周 / 本月 / 自定义日期区间
- 分流走向:直连 / 代理 / 拦截(REJECT)分类汇总与占比,按小时(今日)或按天(更长范围)堆叠图
- Top 域名 / Top 进程:快速定位流量来源(进程名来自 mihomo 的连接元数据)
- 纯原生实现:SwiftUI + Swift Charts + SQLite,无 webview、无第三方依赖;稳态 CPU ~3%(200ms 快照),私有内存 ~15MB
- 数据保留 90 天,启动时自动清理过期明细
mihomo 内核(unix socket)
│ GET /connections,每 200ms 快照
▼
采集器:按连接 ID 追踪,增量累计字节,连接关闭时写一行明细
▼
SQLite(~/Library/Application Support/ClashTrafficMeter/meter.db)
▼
菜单栏面板:SQL 聚合 → Swift Charts 渲染
每条明细包含:起止时间、域名、目标 IP/端口、进程名、命中规则、链路、出站分类(direct/proxy/reject)、上下行字节。
认证 secret 与 socket 路径在运行时自动从 Clash Verge 的运行配置读取,仓库内不含任何敏感信息。
从 Releases 下载 ClashTrafficMeter-macos.dmg,打开后把 App 拖入 Applications 即可。安装包为 universal binary(Apple Silicon / Intel 通用),ad-hoc 签名。
要求:macOS 13+,Xcode 15+(Swift 5.9+)。
git clone https://github.com/longbow1998/clash-traffic-meter.git
cd clash-traffic-meter
./scripts/make-app.sh产物在 .build/ClashTrafficMeter.app,复制到 /Applications 即可:
cp -R .build/ClashTrafficMeter.app /Applications/
open /Applications/ClashTrafficMeter.app- Clash Verge Rev(或任何 mihomo 内核且开启
external-controller-unix的发行版)正在运行 - 首次启动后面板数据为空属正常——统计从 App 运行时开始积累
- 存活短于 200ms 的微小连接可能漏计或字节偏差(通常只有几 KB,不影响统计意义)
- 依赖快照轮询,无法回溯 App 未运行期间的历史
- 暂仅适配 macOS + Clash Verge Rev 的默认 socket 路径(
/tmp/verge/verge-mihomo.sock)
