/loop で繰り返し作業をClaude Codeに任せたい人向け
料理ブログの予約投稿が時刻どおり公開されたかの見張りや、変更の取り込み依頼(PR)が片付くのを待つときに、間隔を書かない /loop を打って様子見を任せる場面で、その裏側で自動的に働く。読者がこのツール名を打ち込む場面はなく、間隔を書かない /loop を頼めばClaudeが勝手に呼んで、状況に応じて次の確認を1分〜1時間後のどこかに入れてくれる。
ScheduleWakeup は、間隔を指定しない /loop を走らせたときに、Claudeが「次は何分後に自分を起こすか」を毎回決めて予約するための内部ツールです。読者が直接叩くものではありません。公式ドキュメントにも you don't call it directly(あなたが直接呼ぶものではない)とはっきり書いてあります。
私たちがやることは1つだけ。間隔を書かない /loop を打つことです。あとは1回分の作業が終わるたびに、Claudeが裏でこのツールを呼んで「次の起床時刻」を入れてくれます。
噛み砕くと
たとえるなら、目覚まし時計を自分でセットし直す仕組みです。普通の /loop 5m ... は「5分ごとに必ず鳴る」固定タイマー。一方、間隔を書かない /loop は、起きるたびに状況を見て「まだ作業中だから10分後にもう一度起こして」「もう静かだから50分後でいい」と、次のアラームを自分で決め直すタイプです。
その「次のアラームを入れる」操作の名前が ScheduleWakeup。Claudeが眠る前に毎回これを呼んで、起床予約を1件だけ仕込みます。次の予約を入れなければ、そこでループは自然に終わります。
つまり読者から見ると、存在自体は意識しなくていい裏方です。
大事な前提:このツールが働くのは「間隔を書かない /loop」だけ
ここを取り違えると一生 ScheduleWakeup を見ることはありません。/loop 5m ... のように時間を書いて頼むと、それは決まった時刻表(cron)に変換された固定タイマーになります。Claudeが間隔を選び直す動きは起きません。
自分で間隔を決める動きが出るのは、時間を書かずに /loop 見てほしいこと と頼んだときだけ。この違いだけ頭に入れておけば十分です。
それと、この仕組み一式(スケジュール機能)はClaude Code v2.1.72以上が必要です。古いと /loop 自体が動きません。手元の番号は claude --version で確認できます。
「料理ブログの公開待ち記事が予約時刻に出たか」を例に、実際の流れを見る
具体的な場面で動きを追います。料理ブログで、新しいレシピ記事を「今夜21時公開」で予約投稿したとします。ちゃんと21時に表に出たか、出たあとリンク切れや画像抜けがないか、Claudeに様子を見にいかせたい。こういう「たまに確認、暇なら間隔を空ける」用途がまさに自分で間隔を選ぶ /loop の出番です。
ステップ1: 黒い画面で間隔を書かずに頼む
時間を書かないのが肝心です。私ならこう打ちます。
/loop 料理ブログの「ガパオライス」記事が公開URLで表示されているか確認して、画像抜けやリンク切れがあれば指摘して
時間を一切書いていないので、Claudeは「次いつ起きるか」を毎回自分で決めるモードに入ります。
ステップ2: 1回目の確認が走る(まだ20時台)
1回目はまだ公開前の時間帯。Claudeが該当URLを見にいって「まだ公開されていません」と報告します。状況を見て、次の起床を少し先に置きます。
ステップ3: 反復の終わりに次の起床を予約する
この「次は何分後に起こすか」を決めて仕込む瞬間に、裏で ScheduleWakeup が呼ばれています。範囲は1分後から1時間後まで。選んだ待ち時間とその理由が、1回分の終わりに画面へ表示されます。たとえばこんな文面です。
次の確認まで35分待ちます(公開予定の21時が近いため)
ステップ4: 公開時刻が近づくと間隔が縮む
ここで初心者がやりがちな勘違いを1つ。「間隔を選ぶ=適当に放置される」ではありません。逆です。公開直前など重要な局面では待ち時間が短くなり、何も起きていないときは長くなります。21時直前は「5分後にまた見ます」のように詰めてきます。
ステップ5: 公開を確認できたら報告する
21時を過ぎてレシピが無事表示されたら、Claudeが「公開を確認しました。画像3枚すべて表示、リンク切れなし」と返してくれます。
ステップ6: やることが尽きたら次の予約を入れずに終わる
公開も確認できて指摘事項もゼロ。タスクが明らかに片付いたと判断すると、Claudeは次の起床予約を入れません。予約が入らない=ループ終了です。止まったように見えても故障ではなく、これが正常な終わり方です。もちろん、自分から止めたいときは次の反復を待っている間に Esc を押せば、入っている起床予約が消えて二度と鳴りません。
つまり ScheduleWakeup は何をしてくれるのか
- やってくれる: 間隔を書かない
/loopで、1回分の作業ごとに「次は1分〜1時間のどこで起きるか」をClaudeが状況に応じて決め、起床予約を1件入れる - やってくれない: 読者が手で呼ぶこと。これは内部ツールで、私たちが叩くのは
/loopの方だけ。1時間を超える待ちも選ばれない - 意味が薄い場面:
/loop 5m ...のように時間を書いた固定タイマーのとき。この場合そもそも登場しません
使いどころ3シナリオ(具体題材で再現)
シナリオ1: 料理ブログの予約投稿を見張るとき
「今夜21時公開」のレシピ記事が、本当にその時刻に表へ出たかを確認したい。公開前は長めの間隔でたまに覗き、21時が近づくと自動で間隔が詰まり、公開確認まで張り付かずに済みます。私はこの「直前だけ濃く見る」挙動がいちばん便利だと感じています。
シナリオ2: 変更の取り込み依頼が片付くのを待つとき
公式が出している例がまさにこれです。1文字も変えずに引くと、こう頼みます。
/loop check whether CI passed and address any review comments
CIが動いている間は短い間隔で、PR(変更の取り込み依頼)が静かになったら長い間隔で、と自動で濃淡をつけてくれます。テストが回ってる最中だけ頻繁に見て、待ちが多いときは間引く。これが手動の固定タイマーより無駄が少ない理由です。
シナリオ3: 時間のかかる仕上げ処理の完了を待つとき
たとえば料理ブログ全記事の画像を一括で軽量化する処理を回し、終わったら教えてほしい場合。終わりそうな局面では短く、まだ先が長いときは長く、とClaudeが間隔を調整します。完了が確認できれば次の予約を入れずに自然終了。ずっと監視し続けて待ち時間を浪費しません。
初心者が踏みやすい落とし穴
- 自分で呼ぼうとする。これは内部ツールで
you don't call it directlyと公式に明記。読者の操作は「間隔を書かない/loopを打つ」ことだけです - 間隔つきの
/loopで待っても出てこない。/loop 5m ...は固定タイマーなので、Claudeが間隔を選ぶ動きそのものが起きません - 待ち時間は1分〜1時間に収まる。「3時間後にまた見て」のような1時間超は選ばれません。それ以上空けたいなら一度止めて入れ直す形になります
- 7日で自動的に終わる。間隔を選ぶループも、始めてから7日経つと自動終了します。長く回したいなら期限前に入れ直しが要ります
- 止まった=壊れた、ではない。タスク完了が明らかなとき、Claudeは次の予約を入れずに静かに終えます。これは設計どおりの正常終了です
Escで消えるのは待機中の起床予約。次の反復を待っている間にEscを押すと、仕込まれた予約が消えてループは二度と鳴りません- 黒い画面を閉じると止まる。スケジュール機能はその会話が開いて空いている間だけ動きます。画面を閉じたり会話を新しく始めたりすると鳴らなくなります
- Bedrock / Vertex AI / Microsoft Foundry では別の動き。これらの環境では間隔を書かない
/loopが10分固定で走り、自分で間隔を選ぶ動きにはなりません - 繰り返しではなく Monitor に切り替わることがある。間隔を選ぶ
/loopを頼むと、ClaudeがMonitorを選ぶ場合があります。何度も見にいくより効率がいいと判断したときの挙動です
書き方
ScheduleWakeup(Claudeが内部で呼ぶ。読者が打つのは間隔を書かない /loop の方)
やってみるとこうなる
入力
/loop check whether CI passed and address any review comments
出力例
次の確認まで35分待ちます(公開予定の21時が近いため)
このページに出てきた言葉
- /loop
- 同じ頼みごとを繰り返しClaudeに実行させる組み込みの命令。後ろに見てほしいことを書いて使う
- 間隔を書かない /loop
- <code>/loop 見てほしいこと</code> の形。時間を書かないので、Claudeが毎回の終わりに次の待ち時間を1分〜1時間で自分で決める
- 反復
- ループの1回分の作業。「見にいく→確認する→報告する」のひとまとまり
- cron
- 「毎日9時」「5分ごと」のような決まった時刻表で自動実行する昔からの仕組み。時間を書いた /loop はこれに変換される
- Esc
- キーボード左上のキー。次の反復を待っている間に押すと、入っている起床予約が消えてループが止まる
- Monitor
- 裏でずっと見張って変化のあった行だけ流すツール。間隔を選ぶ /loop の代わりに選ばれることがある