Show HN:Wasted Cycles – AI編程助手的本地掛鐘時間分析器
Wasted Cycles 是一款無需安裝、無需賬户的本地工具,用於測量AI編程助手在編碼過程中被機器阻塞的時間比例。它通過分析時間戳事件,提供詳細的等待時間分佈,幫助開發者識別瓶頸。
Wasted Cycles 是一款面向AI編程助手的本地掛鐘時間分析器,旨在幫助開發者瞭解編碼過程中究竟有多少時間被機器阻塞。該工具以單條curl命令運行,無需安裝、無需註冊賬户、無需API密鑰,也不會在機器上常駐後台。它從臨時目錄下載經校驗和驗證的二進制文件,運行完成後自動刪除,確保不留痕跡。
工具的核心功能是回答幾個關鍵問題:在AI代理運行期間,有多少時間因等待機器(如編譯、測試、CI等)而浪費?哪些具體環節是瓶頸?是否存在重複的構建或測試?哪個編程助手的行為導致工作流反覆等待?通過分析追蹤數據中的時間戳事件,Wasted Cycles 將每個時間段分類到“代理工作”或“計算阻塞”兩大組,並進一步細分。代理工作包括模型推理、讀取搜索、代碼修改及其他工具調用;計算阻塞則涵蓋構建、測試、CI、容器、包管理及子代理等待。重複執行的命令會被標記為重複工作,因為機器做了兩遍相同的事。
用户可通過內置演示數據集(--demo)快速體驗輸出格式。示例報告以表格形式展示各項耗時及佔比,例如模型工作1小時4分鐘(21%)、等待構建32分鐘(11%)等。終端中,數據以實時TUI呈現,支持方向鍵切換視圖,數字鍵7、0或字母y調整回溯窗口(7天、30天、年初至今),q鍵退出。
該工具支持多種編程助手的追蹤數據源,包括Codex(~/.codex/sessions)、Claude Code(~/.claude/projects)、Cursor(~/.cursor/projects/*/agent-transcripts)和Grok Build(~/.grok/sessions)。它僅讀取指定窗口內修改的JSONL追蹤文件,不會寫入或上傳任何數據。Cursor因僅記錄用户回合的掛鐘時間,每個片段對應整個回合,並會檢測並丟棄固定間隔調度的代理(避免虛增的120小時幻影工作)。
方法學上,Wasted Cycles 通過解析結構化事件重建時間片段,而非匹配文本日誌,因此複製的日誌或引用的命令不會被誤判為真實活動。它測量掛鐘時間,而非token數或成本。空閒時間處理採用雙閾值:超過2小時的間隔視為會話中斷,不計入;更短的間隔上限為30分鐘,並標記為“低置信度夾斷”。模型工作時間是推理代理,而非實際GPU計算時間——它代表用户消息或工具結果後到下一個動作之間的間隔,對部分工具是真實時長的上限。工具明確區分測量時間和推斷時間。
啓動命令簡單:通過curl管道執行,並可附加參數。例如,--demo啓動演示,--days N設定掃描天數(默認7天),--ytd從年初開始掃描,--json輸出JSON報告,--plain輸出純文本摘要。TUI中支持動態切換窗口。所有分析僅使用時間戳、事件種類和粗略標籤,提示文本和源代碼永遠不會被存儲、渲染或上傳。