Claude Codeでは、5時間のトークン予算がローリングウィンドウで提供されています。最大の課題は、その日最初のメッセージを送信した瞬間からウィンドウがスタートしてしまう点です。たとえば、午前8時30分にちょっとした質問をしてしまうと、午前11時ごろには予算上限に到達し、午後1時まで利用できなくなるといった非効率が発生します。
この課題を解決するために、claude-warmupというGitHub Actionを活用した自動化ワークフローが考案されています。これは、始業前に一度だけClaude Haikuに「hi」と送ることで、5時間ウィンドウの開始時刻を自分の好きなタイミングに固定するものです。こうすることで、実際にClaudeを使い始める時間ではなく、予定した時刻からウィンドウが開始されます。
なぜこれが機能するのか
Claude Codeのトークンウィンドウは、最初のメッセージを送信した時刻に固定されます。例えば、午前6時15分にウォームアップメッセージを送信すると、ウィンドウは午前6時~午前11時となり、午前11時から次の5時間ウィンドウが始まります。そのため、最も生産的な時間帯にリセットが重ならず、無駄な待ち時間を回避できます。
このウォームアップにかかるコストは極めて低く、「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
GitHubリポジトリのActionsタブで、ワークフローが正常に完了しているか確認します。
6. 動作を確認する
翌朝、Claude Codeで以下を実行してウィンドウの開始時刻を確認します。
/usage
設定したcron時刻通りにウィンドウがリセットされていることがわかります。
代替案:ローカルで実行する
GitHub Actionsを利用したくない場合、cronやmacOSのlaunchdでローカルから直接コマンドを定期実行することも可能です。
claude -p "hi" --model haiku --no-session-persistence
このコマンドをcrontab(crontab -e)にセットし、始業前に自動送信されるように設定しましょう。重要なのは、どこからメッセージが送られたかではなく、開始時刻を自分でコントロールする点です。
予算を長持ちさせるためのヒント
- Extended Thinkingはトークン消費が多い 複雑な推論やデバッグを行う際はトークン消費が激しくなります。本当に必要な場面のみオンにし、簡単な質問やコード生成にはオフを推奨します。
-
コンテキストを最小限に
不要なファイルは閉じ、単発コマンドには
--no-session-persistenceを使うことで、1回のやりとりで消費するトークンを削減できます。 - リクエストをバッチ処理 細かい質問を複数回行うよりも、まとめて1度に聞いた方がトークン効率が良くなります。事前にプロンプトをよく練りましょう。
-
簡単なタスクにはHaikuモデルを
変数名のリファクタや定型文生成など軽い処理には
--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:00開始として固定されます。cronは希望時刻の15分前程度に設定しましょう。
セッションが不便なタイミングで切れる場合、この仕組みは10分未満で設定でき、毎日自動で実行されます。詳細や完全なセットアップはgithub.com/vdsmon/claude-warmupを参照してください。
Top comments (0)