AI News HubLIVE
サイト内リライト2 分で読了

Show HN:Wasted Cycles – AIコーディングエージェント向けローカル壁時計プロファイラ

Wasted Cycles は、AIコーディングエージェントがコーディング中にマシンにブロックされる時間の割合を測定するローカルツールです。インストール不要で、タイムスタンプイベントを分析し、詳細な待機時間の分布を提供してボトルネックの特定を支援します。

ソースHacker News AI著者: zozo123-IB-IL2

Wasted Cycles は、AIコーディングエージェントのパフォーマンスを分析するローカル壁時計プロファイラです。開発者はこのツールを使って、コーディングプロセス中にどれだけの時間がマシンの待機(コンパイル、テスト、CIなど)に費やされているかを把握できます。ツールは単一のcurlコマンドで実行され、インストールやアカウント登録、APIキーは不要です。ダウンロードされたバイナリはチェックサムで検証され、実行後に自動的に削除されるため、システムに痕跡を残しません。

このツールが答える主な質問は以下の通りです:エージェントの実行中、コーディングではなくマシンの待機にどれだけの時間が費やされたか?どの特定の処理(ビルド、テスト、CIなど)がボトルネックか?同じビルドやテストが複数回実行されていないか?どのエージェントがワークフローを繰り返し停止させているか?タイムスタンプイベントを分析することで、各時間セグメントは「エージェント作業」または「計算ブロック」のいずれかに分類され、さらに詳細に分類されます。エージェント作業にはモデル推論、読み取り・検索、コード変更、その他ツール呼び出しが含まれ、計算ブロックにはビルド、テスト、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 はテキストマッチングではなく解析済みイベント構造を使用して時間セグメントを再構築するため、ペーストされたログやプロンプト内の引用コマンドが実際のアクティビティと誤認されることはありません。測定は壁時計時間に基づき、トークン数やコストではありません。アイドル時間は二重閾値で処理されます:2時間を超えるギャップはセッション中断とみなされカウントされず、より短いギャップは30分を上限として「低信頼度クランプ」とマークされます。モデル作業時間は実際のGPU計算時間ではなく、推論のプロキシです。これはユーザーメッセージやツール結果から次のアクションまでの間隔であり、一部のツールでは実際の所要時間の上限を表します。測定時間と推論時間は明確に区別されます。

起動コマンドはシンプルで、curlパイプ経由で実行し、必要に応じて引数を追加できます。--demo でデモ起動、--days N でスキャン日数を設定(デフォルト7日)、--ytd で年初からスキャン、--json でJSONレポート出力、--plain でプレーンテキスト要約出力を指定します。TUI内では動的に表示期間を切り替え可能です。すべての分析はタイムスタンプ、イベント種類、大まかなラベルのみを使用し、プロンプトテキストやソースコードは保存、表示、アップロードされることはありません。