はじめに
Claude Code に「スケジューリング」機能が追加されました。従来は手動で都度プロンプトを入力する必要がありましたが、2026年3月のアップデートで /loop コマンド と Desktop scheduled tasks という2種類の自動化手段が整備されました。
この記事では、公式ドキュメントをもとに両機能の仕組み・使い分け・実用ユースケースを整理します。
この記事で学べること
-
/loopコマンドによるセッション内定期実行の使い方 -
CronCreate/CronList/CronDeleteツールの直接操作 - Desktop scheduled tasks の設定方法と制約
- デプロイ監視・PR自動レビュー・朝のブリーフィングなどの実用例
対象読者
- Claude Code を日常的に使っているエンジニア
- 繰り返し作業を自動化したい開発者
- エージェント型ワークフローを構築したい方
TL;DR
-
/loopはセッション内の定期実行。端末を閉じると消える。素早いポーリングに最適 - Desktop scheduled tasks はアプリ再起動後も残る永続スケジュール。macOS/Windows のみ
- どちらも MCP サーバー・スキル・プラグインに完全アクセスできる
- Linux は
/loopか GitHub Actions で対応する
2種類のスケジューリング方式
Claude Code のスケジューリングは目的に応じて2種類が用意されています。
| 特徴 |
/loop(CLI) |
Desktop scheduled tasks |
|---|---|---|
| 永続性 | セッション内のみ | アプリ再起動後も維持 |
| 対応OS | 全OS | macOS / Windows のみ |
| 設定方法 | テキストコマンド | GUI サイドバー |
| ユースケース | デプロイポーリング・一時的な監視 | 朝次のブリーフィング・週次レポート |
| 有効期限 | セッション終了まで(最大3日) | 削除まで |
/loop コマンド — セッション内定期実行
基本的な使い方
/loop コマンドは最もシンプルにスケジューリングを開始する方法です。インターバルとプロンプトを渡すだけで、Claude がバックグラウンドで定期実行します。
/loop 5m check if the deployment finished and tell me what happened
このコマンドを実行すると、Claude は5分ごとにデプロイ状態を確認し、結果を報告します。cron 式の知識は不要で、自然言語でインターバルを指定できます。
インターバルの指定方法
インターバルは先頭・末尾・省略の3通りで指定できます。
| 記法 | 例 | 解釈 |
|---|---|---|
| 先頭トークン | /loop 30m check the build |
30分ごと |
末尾 every 句 |
/loop check the build every 2 hours |
2時間ごと |
| 省略 | /loop check the build |
デフォルト:10分ごと |
単位は s(秒)・m(分)・h(時間)・d(日)に対応しています。秒は cron の粒度上、最小1分に切り上げられます。また 7m や 90m のように単位に割り切れない値は、最も近いきりの良いインターバルに丸められ、Claude が採用した値を通知します。
別のコマンドをループさせる
スケジュールするプロンプト自体を別のコマンドやスキルにすることもできます。
/loop 20m /review-pr 1234
これにより、20分ごとに /review-pr 1234 が自動的に呼び出されます。
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 — 直接操作
/loop の裏側では3つのツールが動いています。自然言語ではなく、より細かい制御が必要な場合に直接使用できます。
| ツール | 役割 |
|---|---|
CronCreate |
新しいタスクを登録。5フィールドの cron 式・プロンプト・繰り返し設定を受け取る |
CronList |
登録済みタスクの一覧(ID・スケジュール・プロンプト)を表示 |
CronDelete |
タスク ID を指定してキャンセル |
各タスクには8文字の ID が割り当てられます。1セッションに最大50タスクまで登録できます。
タスクの管理
自然言語で管理することも可能です。
what scheduled tasks do I have?
cancel the deploy check job
cron 式リファレンス
5フィールド形式(分 時 日 月 曜日)の標準 cron 式を使用します。
| 式 | 意味 |
|---|---|
*/5 * * * * |
5分ごと |
0 * * * * |
毎時0分 |
7 * * * * |
毎時7分 |
0 9 * * * |
毎日9時(ローカル時刻) |
0 9 * * 1-5 |
平日の9時(ローカル時刻) |
30 14 15 3 * |
3月15日 14:30 |
すべてのフィールドでワイルドカード(*)・単値(5)・ステップ(*/15)・範囲(1-5)・カンマ区切り(1,15,30)が使えます。時刻はすべてローカルタイムゾーンで解釈されます。
ジッター(実行時刻のずれ)について
同じ時刻に多数のセッションが API を叩かないよう、スケジューラーは少量の確定的オフセットを追加します。
- 繰り返しタスク:周期の最大10%(上限15分)遅れて実行
- 1回限りタスク(毎時0分・30分):最大90秒早く実行
精密なタイミングが必要な場合は 0 9 * * * ではなく 3 9 * * * のように0分・30分を避けると、ジッターの影響を受けません。
Desktop scheduled tasks — 永続スケジュール
セッションを超えて動き続ける
/loop はセッションを閉じると消えますが、Desktop scheduled tasks は Claude Desktop アプリが起動していれば再起動後も有効です。macOS と Windows で利用でき、GUI で視覚的に管理できます(Linux は非対応)。
セットアップ
- サイドバーの「Schedule」をクリック
-
+ New taskを選択 - 以下の項目を設定:
| 項目 | 内容 |
|---|---|
| Name | タスク名(ケバブケースに変換される) |
| Description | 概要説明 |
| Prompt | 毎回実行される指示内容 |
| Frequency | Hourly / Daily / Weekdays / Weekly / Manual |
Daily を選ぶと時刻ピッカーが表示され、デフォルトは午前9時(ローカル時刻)です。
タスクのプロンプトは ~/.claude/scheduled-tasks/<task-name>/SKILL.md に保存されるため、テキストエディタで直接編集することもできます。
見逃し補填(キャッチアップ)
コンピューターがスリープしてタスクの実行時刻を逃した場合、アプリを開いた際に過去7日間の未実行分を検索し、最も直近の1回分だけ実行します。
初回実行時の権限設定
各タスクは独自の権限モードを持ちます。作成直後に一度手動実行してツールの承認を行うと、以降の自動実行では確認ダイアログなしで動作します。
実用ユースケース
1. デプロイ監視(/loop)
CI/CD パイプラインを実行中にターミナルで待機しながら使います。
/loop 5m check if the deployment finished and tell me what happened
デプロイ完了を検知したら結果を報告し、問題があれば詳細を伝えてくれます。
2. PR の継続レビュー(/loop)
/loop 20m /review-pr 1234
パッケージングされたレビュースキルを定期的に呼び出します。
3. エラーログ監視(Desktop scheduled tasks)
MCP サーバーでログ API に接続した状態で Hourly(毎時)で設定します。
エラーログを確認して修正可能なバグを特定し、自動的に PR を作成してください。
ただし重大なエラーは修正前に通知してください。
4. 朝のブリーフィング(Desktop scheduled tasks)
平日 7:30 に設定する例です。
今日の予定と昨夜のSlackの未読メッセージを確認して、
優先対応が必要なものをまとめてください。
結果は ~/morning-brief.md に書き出してください。
Slack・Google Calendar・ファイル操作の MCP サーバーを接続しておくと、すべてが連携して動きます。
5. 週次の依存関係監査(Desktop scheduled tasks)
毎週月曜 9:00 に設定します。
npm audit を実行して修正可能な脆弱性があれば PR を自動作成してください。
既存の audit PR があれば新規作成はスキップしてください。
制約と注意点
セッションスコープ制約(/loop)
- Claude Code が動作中かつアイドル状態のときのみ実行される
- ターミナルを閉じると全タスクがキャンセルされる
- 繰り返しタスクは作成から3日後に自動削除される
- 見逃しのキャッチアップなし(Claude が処理中に到達した場合、アイドル後に1回実行)
Desktop scheduled tasks の制約
- macOS / Windows のみ(Linux 非対応)
- アプリが開いていてコンピューターが起動している必要がある
- 各実行は独立したセッションとしてカウントされ、利用制限に影響する
- Pro プランは利用量上限があるため、実行頻度の設定に注意が必要
スケジューラーの無効化
環境変数 CLAUDE_CODE_DISABLE_CRON=1 を設定すると、cron ツールと /loop が完全に無効化されます。
Linux ユーザーへの代替手段
Desktop scheduled tasks が非対応の Linux 環境では、以下の方法が使えます。
-
/loopコマンド(セッションスコープ) - OS の cron で
claude -pをヘッドレス実行する - GitHub Actions の
scheduleトリガー
まとめ
Claude Code のスケジューリング機能は、定期的な確認作業や繰り返しレポート生成を AI エージェントに委任する手段を提供します。
-
/loopは素早く一時的なポーリングに最適。デプロイ待機中にそのまま使える - Desktop scheduled tasks は朝次のブリーフィングや週次レポートなど、長期的な定期タスクに向く
- どちらも MCP サーバー・スキル・プラグインと連携し、ファイル読み書き・外部 API 呼び出し・Slack 通知まで一通りこなせる
特に Desktop scheduled tasks と MCP サーバーの組み合わせは、ローカル環境で動くエージェントワーカーとして実用的な自動化を実現します。GitHub Actions のような外部サービスに依存せず、手元のマシンで完結できる点が特徴です。



