Claude Codeでは、5時間のトークン予算がローリングウィンドウで提供されます。問題は、そのウィンドウがその日最初のメッセージを送信した瞬間に始まることです。午前8時30分に簡単な質問を投げかけ、午前11時までに予算を使い切ってしまうと、午後1時までロックアウトされ、仕事の真ん中で2時間の無駄な時間を過ごすことになります。
ある開発者がこの問題に対するスマートな解決策を構築しました。それはclaude-warmupと呼ばれ、スケジュールされたGitHub Actionを使用して、仕事が始まる前にClaude Haikuに一度だけ「hi」という使い捨てのメッセージを送信します。この1つのメッセージによって、5時間のウィンドウは、Claudeを開いた時間ではなく、あなたが選択した時間に固定されます。
なぜこれが機能するのか
Claude Codeの予算ウィンドウは、最初のメッセージの時計の時刻に固定されます。午前6時15分に送信されたメッセージは、ウィンドウを午前6時に繰り上げるため、5時間のブロックは午前6時から午前11時まで実行されます。午前中に予算を使い果たした頃には、次のウィンドウは午前11時にすぐに始まります。
これがない場合、ウィンドウはClaudeに最初のメッセージを送信したときにいつでも始まり、多くの場合午前中になり、リセットは最も生産的な時間帯の真ん中に来てしまいます。
ウォームアップピングにかかる費用はほとんどありません。ツールやコンテキストなしでClaude Haikuに「hi」と一度送信するだけでは、トークン消費はごくわずかです。
セットアップ(6ステップ)
1. リポジトリをフォークする
gh repo fork vdsmon/claude-warmup --clone
cd claude-warmup
2. OAuthトークンを生成する
Claude Codeがインストールされているマシンで、以下を実行します。
claude setup-token
これにより、sk-ant-oat01-...というトークンが出力されます。これをコピーしてください。約1年間有効です。
3. トークンをGitHubシークレットとして保存する
gh secret set CLAUDE_OAUTH_TOKEN
プロンプトが表示されたらトークンを貼り付けます。GitHub Actionsはこのトークンを使用して認証を行います。
4. cronスケジュールを設定する
デフォルトはUTCの平日の9:15です。タイムゾーンと勤務スケジュールに合わせて変更してください。
gh variable set WARMUP_CRON --body "15 13 * * 1-5"
参考となる時間帯をいくつか示します。
| タイムゾーン | 午前9時開始のウォームアップ | Cron式 |
|---|---|---|
| UTC | 午前8時45分 (UTC) | 45 8 * * 1-5 |
| 米国東部標準時 (EST) | 午前8時45分 = 13:45 UTC | 45 13 * * 1-5 |
| 米国太平洋標準時 (PST) | 午前8時45分 = 16:45 UTC | 45 16 * * 1-5 |
| 中央ヨーロッパ時間 (CET) | 午前8時45分 = 7:45 UTC | 45 7 * * 1-5 |
5. ワークフローをテストする
gh workflow run warmup.yml
フォークのActionsタブで、正常に実行されることを確認してください。
6. 動作を確認する
翌朝、Claude Codeを開いて以下を実行します。
/usage
セッションのリセット時間は、設定したアンカー時間に一致するはずです。ウォームアップを午前8時45分に実行するように設定した場合、ウィンドウは午前8時00分にリセットされたと表示されるはずです。
代替案:ローカルで実行する
GitHub Actionsを使いたくない場合は、cronまたはmacOSのlaunchdを介してターミナルから直接ウォームアップコマンドを実行してください。
claude -p "hi" --model haiku --no-session-persistence
同じタイミングロジックを使用して、これをローカルのcrontab(crontab -e)に追加してください。機能は同じで、重要なのはメッセージがGitHubのサーバーから来るかどうかではなく、一日の始まりの前に実行されることです。
予算を長持ちさせるためのヒント
リセットウィンドウを制御することは役立ちますが、何が最も早く予算を消費するのかを知っておくことで、それに応じて計画を立てることができます。
Extended Thinkingはトークンを素早く消費します。 Claudeが複雑な問題を段階的に推論する場合、直接的な回答よりもはるかに多くのトークンを使用します。Extended Thinkingは、アーキテクチャの決定や複雑なロジックのデバッグなど、本当に必要なタスクのために温存し、簡単な検索や構造がすでに分かっているコード生成にはオフにしてください。
コンテキストを最小限に保つ。 Claude Codeは、開いているファイルや最近のターミナル出力を、すべてのメッセージの一部として読み込みます。そのコンテキストが大きいほど、各やり取りにかかるトークンが多くなります。現在作業していないファイルは閉じ、履歴を必要としない単発のコマンドを実行する場合は--no-session-persistenceを使用してください。
リクエストをバッチ処理する。 10個の小さな質問は、そのすべてを網羅する1つの良く構成された質問よりも費用がかかります。何かを質問する前に、30秒かけて明確で完全なプロンプトを作成してください。より良い回答が得られ、そこに到達するためのトークン消費も少なくなります。
簡単なタスクにはHaikuを使用する。 Claudeに変数の名前変更、ボイラープレート関数の生成、設定ファイルの再フォーマットなどを依頼する場合、OpusやSonnetは必要ありません。軽量なタスクには--model haikuを指定し、真の推論が必要な作業にはより重いモデルを温存してください。
Claude Codeと並行してAPIを構築している場合
多くの開発者は、APIの構築やテスト中にClaude Codeを使用します。もしそれがあなたのワークフローであれば、Apidogは自然にそれにフィットします。Postman、Swagger、個別のモックツールを切り替えることなく、APIスキーマの設計、モックサーバーの生成、自動テストの実行をすべて一箇所で行うことができます。Claude Codeがエンドポイントを記述したら、ツール間で何もコピーすることなく、Apidogですぐにテストできます。
無料で始めることができ、REST、GraphQL、gRPCにすぐに対応しています。
留意すべき点
- ウィンドウは一度設定されると固定されます。 最初のメッセージが送信されると、5時間のブロックは確定されます。日中に移動することはありません。
- 予算は共有されます。 claude.ai、Claude Code、Claude Desktopはすべて同じプールからトークンを消費します。Extended Thinkingやツール呼び出しは、通常のチャットよりも早く消費します。
- 7日間の上限もあります。 このテクニックは、毎日のリセットウィンドウを制御するものであり、週間の予算上限を制御するものではありません。
- トークンは正時にリセットされます。 午前8時47分のウォームアップは、午前8時に固定され、8時47分ではありません。希望する時間の15分前にcronを設定するように計画してください。
Claude Codeのセッションが間違った時間に枯渇し続ける場合、この修正は設定に10分もかからず、毎日自動的に実行されます。完全なリポジトリはgithub.com/vdsmon/claude-warmupにあります。
