Mark Ku's Blog

前言:工具開一排,額度到底燒到哪去了

現在寫程式,同時開著 Claude Code、Codex、GitHub Copilot、Cursor 已經很正常。但工具一多,幾個問題就來了:

  • 快撞上限了嗎?通常都是跳警告才知道。
  • 錢花在哪個工具上?每家都有自己的後台,要比就得一個一個開。
  • 哪一台機器燒的?公司筆電、家裡桌機、伺服器上跑的 agent,各燒各的。

Token Monitor 就是在解這件事:一個桌面小視窗,讀你電腦上各家工具留下的紀錄,把用量、花費、剩餘額度全部收在同一個畫面,而且可以多台機器一起看。

Token Monitor 的 GitHub 專案首頁,支援 Windows、macOS、Linux
Token Monitor 的 GitHub 專案首頁,支援 Windows、macOS、Linux

這篇分兩段。前半是我 9 月在 Windows 上裝 v0.59.0 實際跑過一輪的紀錄。後半是之後真的拿去給團隊用,一路踩到的痛點,以及我怎麼把它們做成 Open Token Monitor 這個自架的團隊版。

先講結論

沒時間讀完的話,看這段就夠了。

✅ 個人用,裝上游就好。 裝完就能用,不用設定,不用帳號。

✅ 它是開源的(MIT)。 程式分成桌面程式、背景收集器、Hub、Cloudflare Worker 四塊,各自獨立,打包指令也現成(npm run dist:win),非常適合拿來二次開發。

❌ 上游是個人工具,不是團隊工具。 沒有網頁 Dashboard、hub 把資料存在 JSON 檔、全公司共用一把密碼、沒有組織的概念。一個人用完全不是問題,拿去給二三十個人用,每一項都會變成痛點。

✅ 這些缺口我做成了 Open Token Monitor。 hub 改存 PostgreSQL、匯入組織名單依部門比較、有網頁 dashboard 與報表 API、員工端安裝檔預填好 hub 網址、更新走自己的 Release。MIT 開源,而且上游程式碼一行都沒改,上游出新版照樣跟得上。

適不適合你,大概是這樣:

你的情況建議
自己一台、同時用 3 個以上 AI 工具裝上游 Token Monitor,馬上有感
自己有好幾台機器裝上游,開「多裝置同步」
團隊想看「誰、哪個部門、花在哪個工具」用 Open Token Monitor 自架 hub
要接進公司的成本系統或 BIOpen Token Monitor 的報表 API

另外先說清楚我驗證到哪裡:上游的安裝、簽章、預設設定、它讀哪些資料夾、對外連了哪裡,我都實際跑過;團隊版的痛點是部署給團隊之後實際遇到,加上逐行讀上游 hub 程式盤點出來的。至於對 Hub 做攻擊測試,我沒做。

它到底在讀什麼

一句話:它不看你的 prompt,也不看你的程式碼,只讀各家工具留在你電腦上的用量紀錄。

像 Claude Code 會把每次對話記在 ~/.claude/projects/,Codex 記在 ~/.codex/,Token Monitor 就是去讀這些檔案,把 token 數加一加、成本算一算。

它抓三種東西:

  • 用量:花了多少 token、多少錢、快取命中率
  • 額度:各家方案還剩多少、什麼時候重置
  • 單次對話明細:某一次對話裡,每則訊息各用了多少

目前支援 37 種以上的工具,常見的 Claude Code、Codex、Copilot、Cursor、Antigravity、OpenCode、Cline 都有。底層解析是用 tokscale 這個 Rust 專案(也是 MIT),Token Monitor 負責畫面跟同步。

兩種用法:一台機器,或多台一起

這兩種模式先搞懂,後面設定才不會亂:

Loading diagram…

重點只有兩個:

  • 預設就是一台機器的模式,裝完就會動,什麼都不用設。
  • 多台要同步的話,得先挑一個 Hub,所有機器連同一個。

安裝

到 GitHub Releases 抓 Token-Monitor-Setup-x.x.x.exe(約 113 MB),雙擊一路下一步就好。macOS 用 brew install --cask token-monitor,Linux 抓 .AppImage。

我有順手驗一下數位簽章(Get-AuthenticodeSignature),結果是 Valid,簽署者 SignPath Foundation,跟官方文件寫的一致,代表檔案沒被動過手腳。

裝完之後,設定跟資料會放在 %APPDATA%\Token Monitor\,之後想移除乾淨的話這個資料夾記得一起刪。

裝完之後長怎樣

一開起來,它馬上就開始讀了。從日誌看得出它在盯哪些資料夾:

[collector] Watching C:\Users\<you>\.claude\projects
[collector] Watching C:\Users\<you>\.copilot
[collector] Watching C:\Users\<you>\.gemini\antigravity

幾個觀察:

  • 只看你電腦上真的有的工具,沒裝的就不碰。
  • 用系統的檔案異動通知,不是傻傻掃整顆硬碟。
  • 開機時會自己去 GitHub 看有沒有新版。

預設會追 28 個工具,設定檔在 %APPDATA%\Token Monitor\settings.json。

多台機器同步:Hub URL 藏在哪

這是最多人卡住的地方,先講位置。

桌面程式右下角的 ⚙ 齒輪 → Multi-device Sync(多裝置同步) → 點「Connect to a hub(連接到 Hub)」那顆圓點

要先點那顆圓點,網址跟密碼的欄位才會跑出來。 沒點就只看到幾個選項,很多人以為「怎麼沒有地方填」,就是卡在這。

Hub 有三種選法,挑一個就好,所有機器連同一個:

方式適合誰缺點
用其中一台當 Hub家裡或公司有一台常開機的電腦那台程式關掉,大家就都不同步了
裝在 NAS 或伺服器上有常開的機器要下指令,稍微麻煩一點
Cloudflare Worker想從手機看、或跨不同網路要有 Cloudflare 帳號

最簡單的是第一種:在常開的那台選「Host hub on this device」,它會自己產生一組密碼,然後列出其他機器可以連的網址。其他機器就填那個網址加密碼。

跨網路的話,走 Tailscale 或 ZeroTier 會比開防火牆簡單,也安全得多。

坑:重開機之後,它不會自己跑起來

這個是踩到才發現的。電腦重開機之後 Token Monitor 沒有跟著起來,偏偏那台又是 Hub,結果其他機器全部斷線,Dashboard 上每台的「最後回報」都停在重開機那一刻。

我去翻了原始碼(src/electron/main.js),原因有三層:

  1. 「登入時啟動」預設是關的。 ⚙ 裡有一個「Start at login(登入時啟動)」,出廠值是 startAtLogin: false。用官方安裝檔裝的話,自己去把它打開就好。
  2. 從原始碼跑的版本,這個選項根本勾不了。 程式裡寫死了 if (!app.isPackaged) return false,用 npm start 或 npm run dev 跑起來的,勾選框是灰的,旁邊寫著「僅在打包後的版本可用」。所以如果你 fork 回來改,一定要自己打包:跑 npm run dist:win 產出安裝檔、裝起來,再去勾這個選項。
  3. 它是「登入時」啟動,不是「開機時」。 底層用的是 Electron 的 app.setLoginItemSettings,也就是 Windows 的使用者登入啟動項。電腦開機後停在登入畫面,它就不會跑。Windows Update 半夜自己重開機、隔天又沒人去登入,Hub 就一整天是停的。

依你的用法,這樣處理:

你的情況怎麼讓它開機就跑
官方安裝檔、自己一台用⚙ → 打開「Start at login」,結束
fork 回來改、用 npm start 跑先 npm run dist:win 打包並安裝,再打開「Start at login」
Linux 桌面要用 AppImage 版才勾得了,其他格式一樣是灰的
拿一台 Windows 當 Hub,而且可能沒人登入就重開機不要靠桌面程式當 Hub,改跑獨立的 Hub,掛成「開機時」執行(見下面)
Hub 裝在 NAS 或 Linux 伺服器一樣跑獨立的 Hub,包成 systemd 服務或 Docker,官方沒附這一段

獨立的 Hub 其實就是原始碼裡的 node src/hub/server.js(npm run hub),不需要開桌面程式。它會讀專案根目錄的 .env,所以密碼放 .env 的 TOKEN_MONITOR_SECRET 就好,不用寫在指令上。注意沒設密碼的話,它只會綁在 localhost,其他機器連不進來,看起來就像「服務有起來但連不上」。

Linux 用 systemd 的話,大概長這樣:

# /etc/systemd/system/token-monitor-hub.service
[Unit]
Description=Token Monitor Hub
After=network-online.target
Wants=network-online.target

[Service]
WorkingDirectory=/opt/token-monitor
ExecStart=/usr/bin/node src/hub/server.js
Restart=always
User=tokenmon

[Install]
WantedBy=multi-user.target
sudo systemctl enable --now token-monitor-hub

Windows 則是開「工作排程器」建一個工作:觸發程序選「電腦啟動時」,勾「不論使用者登入與否均執行」,動作跑 node src\hub\server.js,「開始位置」填 repo 的資料夾(這樣才讀得到 .env)。

最後記得真的重開一次機驗證,而且重開後先不要登入,從另一台打 /api/health 看 Hub 有沒有回應。沒做這一步,你只是「以為」它會自己起來。

團隊版的員工端把這件事變成預設:第一次安裝就打開開機自動啟動,而且開機時直接縮到工作列,不會每天早上跳一個視窗出來。hub 則跑在 Docker 裡,不靠任何一台員工電腦。

它沒有網頁 Dashboard,第一版我先接 API

所有畫面都鎖在桌面程式裡,這是上游最明顯的缺口。

但 Hub 本身開了一組滿完整的 API:

網址拿到什麼
/api/health確認 Hub 活著(這支不用密碼)
/api/stats全部統計:今日、本月、全部,含工具、模型、專案、額度
/api/stats/stream即時推播,有變動就推給你
/api/devices每台機器的狀況

用密碼的方式很單純,加一個 header 就好:

curl -H "Authorization: Bearer 你的密碼" http://127.0.0.1:17321/api/stats

第一版我就用這組 API 做了一個單一檔案的 dashboard.html,瀏覽器直接打開,填網址跟密碼就會動,完全不用碰上游的原始碼:

第一版自製的 Hub Dashboard:今日、本月、全部、活躍四張卡片,底下是工具排行榜、Token 組成、每日趨勢跟各家方案的剩餘額度
第一版自製的 Hub Dashboard:今日、本月、全部、活躍四張卡片,底下是工具排行榜、Token 組成、每日趨勢跟各家方案的剩餘額度

自己幾台機器看,這樣就夠了。問題是拿去給團隊用之後才發現,缺的根本不只是一個畫面。

拿去給團隊用,才踩到的七個痛點

一個人用的時候都不是問題。部署給團隊、逐行把上游 hub 讀過一遍之後,這幾件事一件一件冒出來。

一、歷史資料會整份被蓋掉,查不到完整的上個月

上游 hub 收到裝置上傳的 history 時,是整份取代,不是累加。hub 只是每台電腦本機歷史的鏡像,不是一個只增不減的事件庫。裝置離線那幾天的資料,hub 上永遠補不回來。

我拿手上的資料對了一下:一台只有 5 天,另一台的日期東缺西缺,月彙總只有當月。上個月查不完整,上上個月完全沒有。 主管要的月報、部門費用攤提,現成架構根本做不到。

二、hub 每秒重寫 21 MB 的 JSON

用戶端每次只送 34 KB,hub 卻要把整份 store 重寫一次,大約 21 MB,寫入放大約 600 倍,而且會隨裝置數跟時間一直長大(推估一年後 150 MB)。偏偏用的是同步的 writeFileSync,檔案越大 hub 卡越久,卡住的期間所有 HTTP 請求跟推播全部停擺。

三、裝置對不到人

上游用電腦的主機名稱當裝置 ID。電腦改名或重灌就多一筆新紀錄,舊的永遠不會過期,用量被重複計算;主機名稱全是中文的機器,ID 會一律變成 device;複製出來的 VM 主機名稱相同,還會互相覆蓋。

更根本的是:hub 上只有「裝置」,沒有「人」,也沒有「部門」。看得到某台電腦燒了很多,但不知道是誰、屬於哪個部門。

四、全公司共用一把密碼

hub 只有一把密碼,看 dashboard 的人、上傳資料的電腦、想串報表的系統,拿的都是同一把。等於誰拿到它,誰就能讀寫全部資料。

另外一個邊角:沒設密碼的 hub,任何網站都能讀寫它。它會在每個回應帶 Access-Control-Allow-Origin: *,又不檢查 Host,所以在瀏覽器裡打開一個惡意網頁,就能碰到你本機的 hub。

五、員工看得到同事的用量

上游的小工具連上 hub 之後,顯示的是全部裝置的加總:同事的總量、模型、趨勢,連每個人登入的 Claude 帳號跟額度都看得到。自己幾台機器很方便,放在公司就很尷尬。

六、每台都要手動設定,更新還會被上游蓋掉

新人第一天就要學會「⚙ → 多裝置同步 → 先點那顆圓點 → 貼網址跟密碼」,少一個字元就連不上。

更新也是個坑。我翻了安裝目錄的更新設定:

# %LOCALAPPDATA%\Programs\Token Monitor\resources\app-update.yml
owner: "Javis603"
repo: "token-monitor"
provider: "github"
publisherName:
  - "SignPath Foundation"

它固定去上游的 GitHub Releases 抓新版。所以 fork 之後:不改這個檔,程式會抓上游的新版把你的修改蓋掉;改了又沒架自己的發佈來源,就再也不會更新,每次改動都要請大家手動重裝 113 MB。

七、fork 了就很難跟上游

上游更新非常快,我實測期間 5 天就發了三個版本。直接改上游的程式碼,每次上游出新版都要手動解衝突,改得越多越跟不上,最後只能停在某一版。

Open Token Monitor:把缺口一個一個補起來

這些痛點我最後做成一個 MIT 開源的專案:markku636/open-token-monitor。它不是另起爐灶,而是疊在上游外面:公司需要的東西都加在外層,上游的程式碼一行都不改。

Loading diagram…

由三個部分組成:

部分位置做什麼
Hubhub/、docker/疊在上游 hub 前面,PostgreSQL 儲存、三級權限、組織名單、dashboard、報表 API
Electron 員工端client/、packaging/上游的桌面程式,打包時預填 hub 網址與 client 金鑰,Windows/macOS(Apple 晶片)/Linux
Rust/Tauri 員工端tauri/Rust 重寫的輕量版,安裝免管理員權限,上傳內容跟上游逐欄相同,目前只有 Windows

七個痛點對應的做法:

痛點Open Token Monitor 的做法
歷史被整份蓋掉存進 PostgreSQL,每天的用量逐日落地,月報、部門攤提查得出來;每天 pg_dump 備份並輪替,刪除歷史資料前會先備份
每秒重寫 21 MB不再整份重寫 JSON;串流每個 frame 只序列化與壓縮一次
裝置對不到人匯入組織名單(員工編號、姓名、Email、部門),用戶端回報的 email 對得上就自動歸給那個人;公司版員工端的裝置 ID 改成隨機 UUID,不再用主機名稱
共用一把密碼拆成管理員、client、API token 三級。client 金鑰只能上傳跟讀,可以有好幾把;管理員輸入一次就換成 HttpOnly cookie;API token 只能讀報表、可以設 scope、隨時撤銷
員工看得到同事公司版小工具預設只顯示這台電腦自己的用量
每台手動設定、更新被蓋安裝檔預填 hub 網址與 client 金鑰,第一次開啟就連上、開機自動啟動;更新改從公司 GitLab Release 或本 repo 的 GitHub Release 抓
跟不上上游upstream/ 是上游某一版的完整複本,誰改了它 npm run verify 就失敗;升級三個指令,還可以交給 Claude Code

另外 hub 在收資料之前多了一層驗證,順手擋掉上游幾個會默默寫錯資料的情況:比較舊的快照不能蓋掉新的、裝置時鐘最多只信它超前 10 分鐘、裝置 ID 限制格式與長度。格式或大小不對的上傳會拿到 400,並附上原因。

下面的截圖都來自 repo 內建的假資料,自己跑 npm run smoke:hub 就能重現。

用量 dashboard:依公司、部門、人比較

Open Token Monitor 用量 dashboard:Token、等值成本、使用人數、活躍裝置四個數字都跟上一期比較,下面是依部門分線的每週趨勢,可以依期間、工具、公司與部門篩選
Open Token Monitor 用量 dashboard:Token、等值成本、使用人數、活躍裝置四個數字都跟上一期比較,下面是依部門分線的每週趨勢,可以依期間、工具、公司與部門篩選

最上面四個數字(Token、等值成本、使用人數、活躍裝置)都跟上一期比,下面是依部門分線的每週趨勢。篩選先選公司、再選部門。這張就是第一版 dashboard.html 一直做不到的那張圖:它知道每台電腦是誰的、屬於哪個部門。

組織其實是一棵樹(公司 → BU → 部門 → 團隊)。每天的用量先算給當天的歸屬單位,再往上彙總;換人、換部門會保留歷史,月報逐日套用當天的歸屬。沒有歸屬的用量合成一列「其他」,不會默默消失。

帳號排行與 Token 組成:輸入、輸出、快取讀取、快取寫入各占多少,多人共用一個 AI 帳號也看得出來
帳號排行與 Token 組成:輸入、輸出、快取讀取、快取寫入各占多少,多人共用一個 AI 帳號也看得出來

帳號排行把用量算給裝置回報的那個 AI 帳號。Token 拆成輸入、輸出、快取讀取、快取寫入,一個 Claude 帳號被好幾台電腦共用,在這裡一眼就看得出來。

裝置與 AI 工具額度:每台電腦的主機名稱、用戶端版本、今日與本月用量、最後回報時間,以及 Claude 與 Codex 帳號的剩餘額度
裝置與 AI 工具額度:每台電腦的主機名稱、用戶端版本、今日與本月用量、最後回報時間,以及 Claude 與 Codex 帳號的剩餘額度

裝置頁保留了我第一版最愛用的那一欄:最後回報時間。某一台停在幾小時前,通常就是同步出問題了。Claude 的 5 小時與每週額度、Codex 的額度也列在這裡。

金額是依各家 API 牌價換算的等值成本,不是實際帳單。用 Claude Max、ChatGPT Plus 這類訂閱方案的人實際付的是月費。這句話寫在 dashboard 跟每一個報表回應裡,免得有人拿去直接對帳。

組織名單:網頁編輯或 Excel 匯入,先看差異再寫入

組織名單:每家公司一份(員工編號、姓名、Email、部門),直接在網頁上編輯,或下載 Excel 範本填好再拖回來
組織名單:每家公司一份(員工編號、姓名、Email、部門),直接在網頁上編輯,或下載 Excel 範本填好再拖回來

管理頁的「組織名單」每家公司一份。可以直接在網頁表格上改,也可以下載 Excel 範本填好拖回來,從 Excel 複製好幾列直接貼進表格也行。

匯入前先預覽差異:新增、修改、停用的人各自列出來,確認了才寫入
匯入前先預覽差異:新增、修改、停用的人各自列出來,確認了才寫入

匯入前一定先預覽差異:新增、修改、停用的人各自列出來,確認了才寫入。名單上沒有的人只停用,不刪除,離職同事的歷史用量還在,報表不會突然少一塊。

員工端:裝完就不用管

Electron 員工端就是上游的桌面程式,只是打包時多做了幾件事:

  • 預填 hub 網址與 client 金鑰,第一次開啟就連上,員工不用打開設定。
  • 開機自動啟動,而且縮到工作列;每 30 分鐘上傳一次。
  • 小工具只顯示這台電腦的用量。
  • 圖示跟視窗左上角可以換成公司 logo。

想要更輕的,可以用 Rust/Tauri 版:

Rust/Tauri 員工端小工具:今日、本月、全部的用量與等值成本,Claude 的 5 小時與每週額度,各模型占比與活動熱度圖
Rust/Tauri 員工端小工具:今日、本月、全部的用量與等值成本,Claude 的 5 小時與每週額度,各模型占比與活動熱度圖
Rust/Tauri 員工端的用量儀表板:總 Token、總花費、活躍天數與連續天數,每日用量可以切棒形圖或 K 線、依工具或依模型
Rust/Tauri 員工端的用量儀表板:總 Token、總花費、活躍天數與連續天數,每日用量可以切棒形圖或 K 線、依工具或依模型

Tauri 版的金鑰存在 Windows 認證管理員,上傳間隔預設 10 分鐘(可選即時、10、20、30 分鐘),另外附一個沒有畫面的 tm-agent,排程或伺服器上也能跑。安裝檔沒簽章,但更新檔有驗簽。

兩種員工端的差異:

項目Electron 公司版Rust/Tauri 版上游官方版
平台Windows、macOS(Apple 晶片)、LinuxWindowsWindows、macOS、Linux
預設模式已連上公司 hub已連上公司 hub本機模式
上傳頻率每 30 分鐘預設 10 分鐘即時
開機自動啟動開開關
小工具顯示只有這台這台+公司全體分頁連 hub 時是全部裝置加總
更新來源公司 GitLab 或本 repo GitHub Release公司 hub 或 GitHub Release上游 GitHub Release
程式碼簽章無(macOS 只有 ad-hoc)安裝檔無,更新檔有驗簽有

安裝說明頁:把網址丟給同事就好

hub 內建的安裝說明頁(/install):Windows、macOS、Linux 各一個分頁,自動選好訪客的系統,每一步都附上那一步的視窗截圖,要按的地方用橘框圈起來
hub 內建的安裝說明頁(/install):Windows、macOS、Linux 各一個分頁,自動選好訪客的系統,每一步都附上那一步的視窗截圖,要按的地方用橘框圈起來

hub 內建一個 /install 頁面,打開時自動選好訪客的作業系統,每一步旁邊畫著那一步的視窗,要按的地方用橘框圈起來。導入的時候,把 http://<hub>/install 丟到群組就好,不用再寫一份安裝教學。

報表 API:接進公司的成本系統

報表 API v1 給成本系統或 BI 拉月、週、日用量,可以回 JSON,也可以回 Excel 直接開的 CSV。附 OpenAPI 3.1 規格跟 llms.txt,丟給 AI agent 串接也行。用的是只能讀報表的 API token,不必把管理員金鑰交出去。

上游一行不改,怎麼跟上新版

這是整個專案最花心思的地方。規則只有一條:upstream/ 是上游某一版原封不動的複本,任何人改了它,npm run verify 就會失敗。 我們需要改的行為,全部用外層的入口、打包時的替換、或 hub 前面的 overlay 來做,每一個接點都有測試或列在 upstream-touchpoints.json 裡。

上游出新版時,一次只升一版:

npm run upstream:status        # 目前用上游哪一版、最新是哪一版
npm run upstream:update -- next  # 拉進下一版並自動跑測試
npm run upstream:impact        # 列出這次要檢查與修改的接點

測試全過就能合併,沒過就照影響清單修。這件事也可以交給 AI:upstream-watch 每週一自動檢查上游,有新版就開一個附檢查清單的 PR;在 PR 留言 @claude 會照步驟完成升級,本機也可以在 Claude Code 裡跑 /upstream-update 一次做完。

架起來試試

需要 Node.js 22.15 以上,用容器跑 hub 的話另外要 Docker:

git clone https://github.com/markku636/open-token-monitor.git
cd open-token-monitor
npm ci
cp .env.example .env   # 填 TOKEN_MONITOR_SECRET 等四個值,用長的隨機 hex
docker build -f docker/Dockerfile -t token-monitor-hub .
docker compose -f docker/compose.yml --env-file .env up -d

打開 http://localhost/,按「管理員」貼上 TOKEN_MONITOR_SECRET,到「組織名單」建好名單,再把 /install 發給同事。只想先看看長什麼樣子、不想準備資料庫的話,npm run smoke:hub 會起一個帶假資料的 hub。

完整的介紹、截圖跟員工端下載方式,我整理在〈Open Token Monitor 工具頁〉。

還沒解完的地方

先講清楚,免得你以為導入就天下太平:

  • 安裝檔沒有程式碼簽章。 Windows 會跳「Windows 已保護您的電腦」,macOS 要到「隱私權與安全性」按「強制打開」。更新只靠 sha512 核對檔案,所以能改 Release 的人就能推任何安裝檔給所有人,Maintainer 權限要管好。
  • client 金鑰跟著安裝檔走。 拿到安裝檔的人都解得出來,要把它當成半公開的;絕對不要把管理員金鑰打包進去。公開的 GitHub Release 安裝檔一律不帶 hub 網址與金鑰,要自動連上得替自己的組織打包(npm run build:client)。
  • 「只顯示這台電腦」不是存取控制。 它只是小工具不顯示,拿 client 金鑰直接打 hub API 還是讀得到全部裝置。要讓員工彼此真的看不到,得再做每人一把金鑰或登入。
  • hub 預設是 http。 Docker Compose 預設發佈在 port 80,金鑰跟用量在網路上是明碼。只在內網用、防火牆只開內部網段;要加密就在前面放一個 HTTPS 反向代理。
  • 上游用戶端的幾個缺陷還在。 例如 hub 重啟後幾百台同時重連、沒有退避;跨午夜偶爾扣錯前一天;中文路徑偶爾變亂碼。這些在用戶端的上游程式裡,規則上不能直接改,我整理成上游 PR 清單,pilot 期間先盯著數字。

覺得卡卡的?先關掉沒在用的工具

有人反應更新頻率調高之後會卡。設定都在 ⚙ 裡面,幾個可以動的:

設定預設怎麼調
追蹤的工具全開(28 個)先調這個,最有感。沒在用的通通關掉
畫面更新間隔15 秒這只是重畫畫面,調小效果有限
歷史資料寫入15 分鐘機器慢的話往上調,不要往下
專案分類開專案資料夾很多的話,關掉會輕鬆很多
WSL 掃描開沒在用 WSL 就關掉

順序很重要:先關掉沒在用的工具,再考慮動時間。 預設 28 個全開,但大部分人真正在用的可能只有三四個。把其他的關掉,比調更新頻率有效多了。

另外一個跟效能無關、但很重要的設定:

Claude Code 預設只留 30 天的對話紀錄,超過就自己清掉了。Token Monitor 有一個「保留已刪除的用量」選項,建議開著,它會把看過的每日用量另外存一份,來源被刪也不影響你看趨勢圖。

但要注意,它只能救裝了之後的資料。裝之前被刪掉的就回不來了。所以如果你想長期看趨勢,越早裝越好。團隊導入也一樣:越早把 hub 架起來,PostgreSQL 裡累積的歷史就越完整。

資安:我檢查了什麼

既然要導入,順手掃一下是合理的。完整稽核我沒做,但基本的幾項跑過了。

看它連去哪裡。 程式跑起來之後我看了它建立的連線,只有兩個地方:GitHub(檢查更新)跟 api.anthropic.com(查 Claude 還剩多少額度)。

沒有開任何對外的埠。 這點滿重要的,只要你沒把它設成 Hub,它就不會在你電腦上開任何服務。

讀的範圍很乾淨。 從日誌看,它盯的都是各家 AI 工具自己的資料夾,沒有掃你的專案原始碼或整個使用者目錄。

官方聲明不送任何統計回去給作者。 加上原始碼公開,這點可以自己查證。

至於我沒做的:沒有驗證下載的程式真的是那份原始碼編出來的,也沒有對 Hub 做攻擊測試。

幾個自己用的時候要注意的:

  • 填進去的憑證是存在你電腦上的。 查額度那塊要填 API key 或 cookie,這些會存在 %APPDATA%\Token Monitor\ 裡面。那台電腦多安全,這些憑證就多安全。
  • 上游 Hub 密碼是大家共用的。 用「其中一台當 Hub」的方式是純 HTTP,不要直接對外網開埠,走區網或 Tailscale。團隊版把權限拆成三級,但 http 明碼的問題一樣存在,見上一節。
  • 用 Cloudflare Worker 等於把統計放到網路上。 密碼要夠長。雖然不含對話內容,但你的工作節奏會被看見。
  • 專案資料夾名稱會同步出去。 完整路徑跟對話標題不會,但資料夾名稱會。公司專案的命名如果本身就敏感,這點要先想過。團隊版把 hub 跑在公司內網、資料存在自己的 PostgreSQL,不經過任何外部服務。

幾個要注意的地方

  • 上游更新很快。 5 天內發了三個版本。修得快是好事,但 Windows 每次都要重下 113 MB。團隊版的員工端有新版時只提示,按了才下載。
  • Cursor 偶爾會同步失敗。 我這邊出現過 Cursor API returned status 404,不影響其他工具。Cursor 走的是帳號層級的匯出,本來就會慢幾分鐘。
  • 重開機不會自己起來。 上游「登入時啟動」預設關,從原始碼跑的版本甚至勾不了;當 Hub 的那台更要掛成開機服務,細節見〈坑:重開機之後,它不會自己跑起來〉。團隊版員工端預設就開。
  • 只有一台機器的話,同步那塊完全可以不用碰。
  • 前半是 Windows 11 + v0.59.0 的紀錄,團隊版目前跟的是上游 0.63.1,版本一直在動,你看到的畫面可能跟我不一樣。

結論

Token Monitor 解的問題很具體:AI 工具變多之後,用量跟額度散得到處都是。它的做法是讀本機紀錄、不碰內容、要的話可以跨機器同步,這個界線劃得很合理。

三句話收尾:

  1. 自己一台用,裝上游就結束了,不用設定。
  2. 多台要同步,記得先點「Connect to a hub」那顆圓點,欄位才會出現。
  3. 要給團隊用,問題就不是畫面了,是資料。 歷史會不會被蓋掉、裝置對不對得到人、權限怎麼分、更新怎麼發。這些我都做進了 Open Token Monitor,MIT 授權,而且上游一行不改,上游出新版照樣跟。

如果你的團隊也開始在算 AI 工具的帳,歡迎拿去用。缺什麼,到 GitHub 開 issue 告訴我。

作者

Mark Ku

10 年以上的軟體工程師,做過北美電商與 AI SaaS 訂閱收費系統。閱讀更多

覺得這篇有幫助?

作者做的免費工具、每日 Podcast 與電子報,都在這裡。

Mark Ku · 本文採用 CC BY 4.0 授權,轉載請註明作者並附上原文連結。

留言

訂閱電子報

訂閱後即時收到新文章通知,不錯過任何技術分享。

提交即表示同意接收電子報,隨時可。

熱門文章

View all
Mark Ku
··634

Oracle Cloud 永久免費方案 Linux 主機及固定 IP :0 元打造雲端解決方案

Oracle Cloud 永久免費方案 Linux 主機及固定 IP :0 元打造雲端解決方案
Mark Ku
··467

告別 Postman 收費陷阱!開源 Git 原生 API 測試神器 Bruno 實戰指南

告別 Postman 收費陷阱!開源 Git 原生 API 測試神器 Bruno 實戰指南
Mark Ku
··252

一款免費開源類似於 Notion 類知識庫系統 — Outline Wiki 佈署與備份全攻略

一款免費開源類似於 Notion 類知識庫系統 — Outline Wiki 佈署與備份全攻略
Mark Ku
··207

打造高效 API 管理平台:從 0 開始部署 Kong Gateway - Part 1

打造高效 API 管理平台:從 0 開始部署 Kong Gateway - Part 1
Mark Ku
··201

在 Ubuntu 上設置 Samba 來共享資料夾,讓 Windows 11 用戶可以存取

在 Ubuntu 上設置 Samba 來共享資料夾,讓 Windows 11 用戶可以存取
Mark Ku
··199

訓練自己的 AI 語音:硬體門檻、開源模型比較與 LoRA 微調

訓練自己的 AI 語音:硬體門檻、開源模型比較與 LoRA 微調