ニュース

Claude Code Scheduled Tasks|定期タスク実行

Claude Code Scheduled Tasks|定期タスク実行

この記事の結論

Scheduled TasksでClaude Codeプロンプトをcron的に定期実行。設定方法とユースケースを解説。

Claude Codeの定期タスク実行は「1つの機能」ではなく、動作場所が異なる3種類の仕組みに分かれています。セッション内で完結する/loop、クラウドで動くRoutines、ローカルで動くDesktopスケジュールタスクです。本記事では2026年8月時点の公式ドキュメントに基づき、それぞれの違いと正しいコマンド構文、注意点を整理します。

3つの定期実行の仕組み|まず違いを理解する

Claude Codeで「定期的に何かを実行させたい」場合、目的に応じて3つの選択肢があります。

方式 実行場所 PCの電源 セッションを開いている必要 最小間隔
Cloud(Routines) Anthropic管理のクラウド 不要 不要 1時間
Desktopスケジュールタスク 自分のマシン 必要 不要 1分
/loop 自分のマシン 必要 必要(開いたセッション内) 1分

「PCの電源を落としても動かしたい」ならCloud(Routines)、「ローカルファイルにアクセスしたい」ならDesktopタスク、「今のセッションで手早く監視したい」なら/loop、と使い分けるのが公式の推奨です。

/loopの使い方|間隔とプロンプトの組み合わせで動作が変わる

セッション内で繰り返し実行する/loopは、渡す内容によって挙動が変わります。

渡す内容 動作
間隔+プロンプト /loop 5m check the deploy 固定間隔で実行
プロンプトのみ /loop check the deploy Claudeが状況に応じて間隔を自分で決めて実行
何も渡さない /loop 組み込みのメンテナンスプロンプト、またはloop.mdがあればその内容を実行
/loop 5m check if the deployment finished and tell me what happened

間隔の単位はs(秒)・m(分)・h(時間)・d(日)に対応します。cronの最小粒度が1分のため、秒指定は繰り上げられます。間隔をつけずにプロンプトだけ渡すと、Claudeがビルド進行中は短め・落ち着いたら長めというように、1分〜1時間の範囲で自分で待機時間を決めて実行します。

1回限りのリマインダーは自然言語で

1回だけ実行したい場合は、コマンドではなく自然言語で依頼します。

remind me at 3pm to push the release branch
in 45 minutes, check whether the integration tests passed

Claudeが指定時刻をcron式に変換し、実行後は自動的に自身を削除します。

裏側の仕組み|CronCreate・CronList・CronDelete

スケジュール管理は「タスクの一覧を見せて」「〇〇のジョブを削除して」と自然言語で頼めますが、内部的には次の3つのツールが使われています。

ツール 役割
CronCreate 5フィールドのcron式・実行するプロンプト・繰り返しか1回限りかを指定して新規タスクを登録する
CronList 登録中のタスクをID・スケジュール・プロンプトとともに一覧表示する
CronDelete 8文字のタスクIDを指定してキャンセルする

cron式は「分 時 日 月 曜日」の標準5フィールド形式で、*/5 * * * *(5分ごと)、0 9 * * *(毎日9時)、0 9 * * 1-5(平日9時)のように指定します。すべてローカルタイムゾーンで解釈されます。

制限事項|見落としやすい4点

  • 1セッション最大50タスク:それ以上は登録できません。
  • 繰り返しタスクは作成から7日で自動失効:最後にもう1回実行されてから自動的に削除されます。長期運用したい場合はCloud(Routines)かDesktopタスクを使います。
  • セッションが終了すると全タスクが消える:新しい会話を始めると、そのセッションに紐づくタスクはクリアされます。--resume--continueで再開した場合は、期限内の繰り返しタスクと、まだ発火時刻が来ていない1回限りのタスクだけが復元されます。
  • 手が離れている間は発火し続けない:ターミナルを閉じる、あるいはセッションが終了すると発火が止まります。バックグラウンドセッションに移した場合は、ターミナルなしでも/loopタスクは継続します。

スケジューラは1秒ごとに期限が来たタスクをチェックし、優先度を下げてキューに入れます。Claudeが応答の途中であれば、手が空くまで実行を待ちます。また同じ時刻に全セッションのリクエストが集中しないよう、実行時刻には最大30分程度のジッター(ばらつき)が加えられます。正確な時刻にこだわる場合は、0 9 * * *ではなく3 9 * * *のように0分・30分をずらして指定すると安定します。

実践ユースケース

1. デプロイの完了監視

/loop 5m check if the deployment finished and tell me what happened

2. PRのCI・レビュー対応を自動で回す

/loop check whether CI passed and address any review comments

3. リリースブランチの定期チェック(loop.mdで定義)

# .claude/loop.md
Check the `release/next` PR. If CI is red, pull the failing job log,
diagnose, and push a minimal fix. If new review comments have arrived,
address each one and resolve the thread.

loop.md.claude/loop.md(プロジェクト単位、優先)または~/.claude/loop.md(ユーザー単位)に置くと、引数なしの/loopのデフォルト挙動を上書きできます。25,000バイトを超える内容は切り捨てられる点に注意してください。

CI/CDとの使い分け

Scheduled TasksはGitHub ActionsやJenkins等のCI/CDと似ていますが、決定的な違いがあります。

  • CI/CD:決められたスクリプトを実行。判断力なし。
  • Scheduled Tasks:AIが状況を判断してアクションを決定。未知の問題にも対応可能。

両者は補完的な関係にあります。CIでビルド・テストを回し、Scheduled Tasksで「テスト結果を分析して改善提案を出す」といった組み合わせが効果的です。恒常的に無人稼働させたい場合は、公式もCloud(Routines)・GitHub Actions・Desktopスケジュールタスクを推奨しています。

よくある質問

環境変数でスケジューラを止められますか?

CLAUDE_CODE_DISABLE_CRON=1を設定すると、スケジューラ全体が無効化され、cronツールと/loopが使えなくなり、既存の登録タスクも発火しなくなります。

スキルを定期実行できますか?

/loop 20m /review-pr 1234のようにスキルをプロンプトとして渡せます。ただしClaudeが自律的に呼び出せないよう制限されたスキル(disable-model-invocation: true指定など)は、定期実行時にプレーンテキストとして渡されるだけで実行されません。

ミスして実行されなかった回はどうなりますか?

取りこぼした分の埋め合わせはありません。Claudeが長時間の処理でビジー状態だった場合、手が空いた時点で1回だけ実行され、逃した回数分は実行されません。

運営元 Uravation よりAIエージェントを構想から本番運用まで進める順番と、体制・KPIの決め方をまとめた資料を無料で公開しています。 AIエージェント導入ロードマップを受け取る(無料)

参考文献

最終確認日: 2026年8月23日

この記事を読んで導入イメージが固まってきた方へ

UravationではAIエージェント導入の研修・コンサルを行っています。


この記事はAIgent Lab編集部がお届けしました。

Need help moving from reading to rollout?

この記事を読んで導入イメージが固まってきた方へ

UravationではClaude Codeの法人研修と個別指導(マンツーマン)を提供しています。導入・定着まで実務ベースで伴走します。

この記事をシェア

X Facebook LINE

※ 本記事の情報は2026年8月時点のものです。サービスの料金・仕様は変更される可能性があります。最新情報は各サービスの公式サイトをご確認ください。

関連記事