
Claude Codeにcronみたいな定期タスク実行機能が追加されました
Introduction
Claude Codeのv2.1.71で/loopコマンドが追加されました。
Added /loop command to run a prompt or slash command on a recurring interval
(e.g. /loop 5m check the deploy)
これは、cronのような繰り返しタスクをスケジュールできるコマンドです。
例えば、GithubのPR・CI・レビューコメントの定期チェックや対応を
ClaudeにバックグラウンドでやってもらったりすることがClaude Codeデフォルトの機能で可能になります。
/loop?
今開いている Claude Code セッションの中でだけ使える、軽量な定期実行・単発リマインド機能です。
「デプロイ完了を10分ごとに確認」や「45分後にテスト結果を確認」などの用途で使います。
Claude Codeのv2.1.71以降であれば/loopコマンドが使えます。
% claude --version
2.1.71 (Claude Code)
・
・
・
❯ /loop
───────────────────────────────────────────────────────────────────────────────
/loop Run a prompt or slash command on a recurrin…
/finishing-a-development-bra… (superpowers) Use when implementation is co…
ドキュメントはこちらにあります。
また、Claude Codeで聞いても教えてくれます。
❯ `/loop`の使い方おしえて
⏺ Skill(loop)
⎿ Successfully loaded skill
⏺ /loop
は指定した間隔でプロンプトやスラッシュコマンドを繰り返し実行する機能です。
書式: /loop [間隔] <プロンプト>
間隔の指定:
- Ns (秒), Nm (分), Nh (時間), Nd (日) — 最小単位は1分
- 省略すると10分間隔
例:
- /loop 5m /babysit-prs — 5分ごとにPRを監視
- /loop 30m check the deploy — 30分ごとにデプロイ状況を確認
- /loop check the deploy — 10分ごと(デフォルト)
CIチェックに使うなら、例えば:
/loop 3m gh run view <github ci> --repo <Your Repository>
の状態を確認して結果を教えて
のように使えます。
S (秒)指定できるのに最小単位は1分?って思いましたが、
現状は秒指定しても無視されて1分間隔になります。
このセッションが開いている間だけ、Claudeに一定間隔で指示を繰り返させたり、
あとで1回だけ通知させたりする仕組みです。
なお、これはセッション単位で動くので、Claude Codeを終了すると消えます。
ドキュメントでは、永続的な自動実行が必要ならDesktop scheduled tasks や
GitHub Actions を使うように案内してます。
/loopコマンドの用途はいろいろありますが、よくあるケースとして以下のような用途があります。
- デプロイが終わったか定期確認
- PR の状態を定期的にチェック
- 長時間ビルドの完了確認を任せる
- 「45分後に確認して」「3時に思い出させて」のようなセッション内リマインドを作る
サーバーの cron のように常駐して動き続けるものではないので注意してください。
ドキュメントでは「作りっぱなしの/loopが長期間APIを叩き続けるのを防ぐため、作成から3日後に削除」と
説明されています。
内部的な動作
スケジューラは毎秒「実行タスクがあるか」のチェックをします。
実際のタスク実行はキュー(優先度低)に入れられます。
定期タスク自体はClaude が応答中には実行されず、会話のターンの合間に実行されます。
もし予定時刻に Claude が忙しければ、そのタスクは現在のターンが終わるまで待機します。
これらからわかるように、/loopはcronジョブのように完全独立で動くのではなく、
Claude Codeの会話の流れで柔軟に動く設計のようです。
そのため、重い処理を長時間実行している最中は、定期タスクが指定どおりに実行されることは期待しない方がよさそうです。
タイムゾーン
時間はローカルタイムゾーンで解釈されます。
「UTCではなくClaude Codeを実行している環境の現地時間」を意味します。
実行マシンのローカル時間で実行されるので、環境によってはずれる可能性があるので注意しましょう。
Jitter
複数タスクを設定した場合、一斉に処理を実行しないように実行時刻に小さなずれが入ります。
定期タスクは、周期の最大10%(上限15分)だけ遅れる可能性があります。
単発のタスクについては:00 または :30 に設定した場合、最大90秒早く実行されることがあるので注意しましょう。
※ズレはランダムではなく、タスクIDから決まる固定オフセット
ドキュメントでは、もし正確さが必要なら:00 や :30 を避けるよう推奨しています。
/loopコマンド詳細
書式は「間隔 + 実行したい指示」です。
> /loop 5m check デプロイが完了したら、何が起きたか教えてください.
例えば↑のように書くと、Claude がその間隔を解釈し、内部的にはcron式へ変換して、
バックグラウンドで定期的に走るジョブを作成します。
作成後は実行間隔とジョブIDを返します。
ポイントは、指示次第で毎回AIが判断をして処理を判断することです。
「チェックして〇〇ならこう、問題なければこうして」みたいにしておけば適切に処理してくれます。
間隔指定はけっこう柔軟で、ドキュメントでは次のパターンが説明されています。
先頭に書いてもよし、最後に書いてもよし。
書かなければデフォルトの10分ごとに設定。
- 先頭に書く:
/loop 30m check the build - 末尾の
every ...で書く:/loop check the build every 2 hours - 間隔を書かない:
/loop check the build→ デフォルトは10分毎
単位は s(秒), m(分), h(時間), d(日)ですが、
さきほどもいったように最小は1分です。
※cron式を直接使うこともできるので、使いたい場合はドキュメントを参照
このような仕様なので、「厳密な秒単位スケジューラ」ではなく、
「会話セッションの中で定期的にチェックするための機能」として使うのがよさそうです。
コマンドの管理方法など
/loopでは自然言語による指示だけでなく、別のコマンドやスキル実行も繰り返せます。
/loop 20m /hoge-skill 1234のようにすれば、
(/hoge-skillコマンドが定義されていれば)20分ごとに /hoge-skill 1234 を実行します。
監視・定期実行の1オペが0オペになります。
また、atコマンドのように1回だけ実行するタスクもできます。
これは /loop ではなく、自然言語で「3分後にmainブランチfetchするように教えて」みたいに依頼します。
するとClaudeはその時刻を固定したcron式として登録し、実行後はそのタスクを削除します。
以下のように定期タスク管理も自然言語でできます。
スケジュールされたタスクは何がありますか?◯◯のジョブをキャンセルして
スケジュール機能を完全に無効化する方法
CI環境などで勝手な定期実行を許可したくない場合は、無効化することもできます。
環境変数 CLAUDE_CODE_DISABLE_CRON=1 を設定すると、cron ツールや /loop は使えなくなります。
すでに作成済みのタスクも実行されません。
Summary
/loop便利ですね。
CIやビルド完了後の処理フローを自動化できるので、
さらに効率よく作業できそうです。
あと、いつのまにかultrathinkが復活してた。

References
Release v2.1.71 · anthropics/claude-code · GitHub
Run prompts on a schedule - Claude Code Docs







