繁體中文 | English
為 BOOX Leaf2 或其他電子紙瀏覽器打造的本機高對比資訊看板。
簡約,是極致的精巧。
這是一個讓人快速掃視的資訊板,而不是分析控制台。畫面只保留會影響當下判斷的資訊:目前時間與天氣、Codex、Claude Code 與 Grok 使用量、剩餘額度、重置時間,以及需要回頭查看的工作階段。若一項數值必須先解釋才有用,就應該移除或換成更清楚的標示。
npm start如果本機的 npm shim 無法使用,或仍指向已移除的安裝位置,也可以直接啟動同一個伺服器:
node server.js接著在 Leaf2 瀏覽器開啟伺服器顯示的區域網路網址。
將 config.example.json 複製為 config.json,再調整位置或連接埠:
{
"port": 8765,
"location": {
"label": "Taipei",
"latitude": 25.033,
"longitude": 121.5654,
"timezone": "Asia/Taipei"
},
"refreshSeconds": 180,
"claude": {
"fiveHourTokenBudget": null
}
}天氣資料來自 Open-Meteo,不需要 API key。
伺服器會先讀取本機 Claude Code OAuth 憑證,取得 Claude 用量頁面所使用的官方 5 小時與 7 天使用率。憑證只留在電腦上,不會由 dashboard API 傳回,也不會寫入 log。結果會短暫快取;若請求無法使用,則依序改用 statusline 資料與本機 token 紀錄。
這個 OAuth usage endpoint 由 Claude Code client 使用,但目前並不是 Anthropic 公開文件中的 API,因此保留 fallback 仍然很重要。
Claude Code 也可以透過 statusline 將訂閱用量提供給 dashboard。請將 Claude Code 設定為執行:
node "C:/repos/einkdashboard/scripts/claude-statusline.js"Windows 設定中的路徑請使用正斜線。Claude Code 可能透過 Git Bash 執行指令,未引用的反斜線可能會被吃掉。
腳本會寫入 data/claude-status.json,供 dashboard 讀取;也會在 ~/.ai-usage/claude-status/ 建立相容於 AIBar 的快照,讓其他本機用量工具共用同一份 statusline 資料。這些 JSON 都是本機狀態,已由 Git 忽略。
在 Claude Code 中使用 /statusline 並選擇自訂指令,或將相同指令加入 Claude Code 設定。Claude Code 至少完成一次 API 回應後,dashboard 才能在欄位可用時顯示 5 小時與 7 天 rate-limit 用量。
Windows 可用以下指令自動安裝 statusline:
powershell -ExecutionPolicy Bypass -File .\scripts\install-claude-statusline.ps1若 Claude 回報 settings.json 格式錯誤,可在保留既有設定的前提下修復無效的 JSON 跳脫字元:
node .\scripts\repair-claude-settings.js --write修復指令會先在 settings.json 旁建立帶有時間戳的備份,再寫入正規化且嚴格有效的 JSON。
接著重新啟動 Claude Code 並傳送一則訊息。Claude Code 只有在收到回應後才會輸出 rate_limits,因此第一次 statusline 快照建立前,dashboard 仍會顯示本機 token 估算值。
拉取新版 repository 後請再次執行安裝程式,讓舊的反斜線指令被更新。
若 statusline 資料不可用,dashboard 會改讀取 ~/.claude/projects 下的 Claude Code JSONL 紀錄,顯示 5 小時 token 總量與估算重置時間。若要估算剩餘 token,請在 config.json 設定 claude.fiveHourTokenBudget。
Codex 用量由 scripts/codex-usage-snapshot.py 從本機 Codex 狀態收集;伺服器會在回傳 /api/status 前執行此腳本。
腳本會先掃描 ~/.codex/sessions/**/*.jsonl 中的 token_count 事件與 Codex rate_limits metadata。若有 rate-limit metadata,dashboard 會顯示官方本機使用百分比與重置時間;若沒有,則改讀取 %USERPROFILE%\.codex\logs_2.sqlite 並顯示基於 token 的估算值。
伺服器也會檢查 Codex 官方用量狀態中的推薦獎勵重置次數。當 rate_limit_reset_credits.available_count 大於零時,Codex 卡片會加上小型的「可用重置」數值;零、缺少或無法取得時則隱藏,避免這項選用資訊增加干擾。Dashboard 不會自行消耗重置次數。這類累積重置是活動獎勵,與購買的 usage credits 及一般 5 小時重置時間不同。
測試時仍可手動建立 data/codex-status.json:
{
"line": "7d 18% used",
"detail": "resets 18:00 - manual /usage snapshot",
"meter": {
"value": 18,
"label": "7d"
}
}data/codex-status.json 是本機使用狀態,已由 Git 忽略。
Grok 卡片透過已安裝的官方 Grok Build CLI 與 ~/.grok/auth.json 登入取得 SuperGrok 每週共用額度的官方使用百分比與重置時間。Dashboard 只保存整理後的百分比、重置時間與方案名稱,不會回傳或記錄 OAuth token。
若卡片顯示資料尚未取得,請先登入或刷新 Grok CLI 憑證:
grok loginscripts/grok-usage-snapshot.js 會先使用同一份 Grok OAuth 登入呼叫 grok.com billing endpoint,並將 Grok CLI billing RPC 留作備援。兩者都失敗時,介面會明確顯示不可用,不會用本機 token 數推算官方訂閱額度。
每張用量卡片會讀取近期的 Codex 或 Claude Code session JSONL,顯示最近 12 小時內需要回覆、遭到中斷或已完成的對話。Dashboard API 只會提供工具名稱、專案資料夾、狀態與更新時間,不會將 prompt 或 response 傳到瀏覽器。
卡片會在使用百分比旁顯示最新一筆提醒,其餘項目收合為小型 +N 計數,讓工具歸屬一眼可辨,同時維持使用量數字的視覺優先級。
仍在執行中的 session 不會顯示。每張工具卡片只會顯示最近更新且已完成,或明確需要注意的 session;較舊的提醒只計入 +N。
若同一工具有較新的 session 正在執行,舊提醒會暫時隱藏,避免把舊專案誤認為目前工作。最新 session 只有在完成或進入需要注意的狀態後才會出現。
- 請在實體 Leaf2 上確認版面。桌面瀏覽器的直向 viewport 可供參考,但無法重現 BOOX 瀏覽器工具列、字型 metrics 或電子紙更新效果。
- BOOX 瀏覽器可能把
100vh當成包含瀏覽器工具列的完整螢幕高度。Dashboard 會依window.innerHeight同步高度,避免 Claude 卡片被裁切。 - 彩色 emoji 在 Windows 上可能正常顯示,到了 BOOX 卻消失,因此天氣使用大型中文字,而不依賴 emoji 字型。
adb reverse是暫時狀態。USB 重接或 ADB 重啟後,可重新執行adb devices與adb reverse tcp:8765 tcp:8765。- BOOX 可能保留舊版 CSS 與 JavaScript。請先重新載入頁面,必要時暫時加上
/?v=2等 query string。 - 官方百分比與本機 token 估算是不同品質的資料。介面會明確標示估算值,不使用無法解釋的圖示代表信心程度。
若要避免每次重開機後手動修復連線,只需安裝一次使用者層級的 Windows 登入排程:
npm run install:autostart安裝程式會同時建立 Windows 排程與目前使用者的登入啟動項。兩者都能在需要時啟動 dashboard、等待已授權的 Android 裝置,並在 USB 或 ADB 重連時恢復 tcp:8765;watcher 的單例鎖會避免重複執行。排程沒有執行時間上限,而登入啟動項能在排程遭到移除時提供備援。安裝後請勿再執行 npm start,背景伺服器應交由 watcher 管理。Log 會寫入 data/。
未來調整畫面時,請從一臂距離閱讀 dashboard、透過 ADB 擷取實際 Leaf2 畫面,並移除任何會和使用百分比或重置時間競爭、卻無助於下一個決定的元素。
執行目前的驗證項目:
node --check server.js
node --check public/app.js
node --test
git diff --checkCommit 流程遵循 maylogger/lazy-commit。Repository 規範記錄於 AGENTS.md:依意圖拆分 atomic commits、使用 Conventional Commits,並以繁體中文撰寫 commit 描述。
Codex session log 與 Claude statusline 快照策略參考了 neo-wabow/AIBar,並將原本的 macOS menu bar 工具概念改造成適用於 Windows 與 BOOX Leaf2 瀏覽器的 dashboard。