This article hasn't been translated yet — showing the original Chinese version.

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

現在寫程式,同時開著 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 告訴我。

Author

Mark Ku

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

Found this useful?

The author's free tools, daily podcasts and newsletter are all here.

Mark Ku · This article is licensed under CC BY 4.0. Credit the author and link back to the original when reusing it.

Comments

Subscribe to Newsletter

Subscribe to get new posts delivered instantly — never miss a tech share.

By submitting, you agree to receive emails. You can anytime.

Popular Posts

View all
Mark Ku
··633

Oracle Cloud Always Free Tier: Linux Host and Static IP for a $0 Cloud Solution

Oracle Cloud Always Free Tier: Linux Host and Static IP for a $0 Cloud Solution
Mark Ku
··464

Say Goodbye to Postman's Fee Trap! A Hands-on Guide to Bruno, the Open-Source Git-Native API Testing Powerhouse.

Say Goodbye to Postman's Fee Trap! A Hands-on Guide to Bruno, the Open-Source Git-Native API Testing Powerhouse.
Mark Ku
··249

A Free, Open-Source, Notion-like Knowledge Base — A Complete Guide to Deploying and Backing Up Outline Wiki

A Free, Open-Source, Notion-like Knowledge Base — A Complete Guide to Deploying and Backing Up Outline Wiki
Mark Ku
··205

Building an Efficient API Management Platform: Deploying Kong Gateway from Scratch - Part 1

Building an Efficient API Management Platform: Deploying Kong Gateway from Scratch - Part 1
Mark Ku
··202

Setting Up Samba on Ubuntu to Share Folders with Windows 11

Setting Up Samba on Ubuntu to Share Folders with Windows 11
Mark Ku
··198

Training Your Own AI Voice: Hardware Requirements, Open-Source Model Comparison, and LoRA Fine-Tuning

Training Your Own AI Voice: Hardware Requirements, Open-Source Model Comparison, and LoRA Fine-Tuning