Claude Codeの/loopコマンド:2026年、より賢いコーディングワークフローのための使い方

Surya Pratap
By Surya Pratap

2026年7月3日

8 min read

AI & Technology
Claude Codeの/loopコマンドのガイド

Claude Codeを何度か使ったことがあるなら、AIにそのまま作業を続けてほしいと思った瞬間があったはずです。ビルドを見張る、変更を待つ、数分ごとに何かを再実行する。それも、あなたが付きっきりで面倒を見なくても済むように。まさにそのためにあるのが/loopです。

本ガイドでは、/loopの仕組み、使うべき場面、そしてCIの実行の監視から大きなコードベースでの反復的なリファクタリングまで、実際の開発ワークフローへの組み込み方を説明します。

Claude Codeの/loopとは何か

/loopはClaude Codeに組み込まれたスラッシュコマンドで、エージェントに対し、1ターンで止まるのではなく、決まった間隔でタスクを繰り返すか、自分のペースで反復を続けるよう指示します。何かを繰り返し行う必要がある場面のために設計されています。状態の確認、長時間のリファクタリングの継続、外部システムへのポーリング、ある条件が満たされるまでの待機などです。

最も単純な形では、コマンドは次のようになります。

/loop <interval_in_seconds> <your prompt here>

たとえば、60秒ごとにCIの実行状況を確認するには次のようにします。

/loop 60 Check if the GitHub Actions workflow has finished. Report the status and stop looping if it passed or failed.

Claudeは、使えるすべてのツール(Bash、ファイルの読み込み、Webの取得)を使って、条件が満たされるか、あなたが中断するまで、60秒ごとにそのプロンプトを再実行します。

2つのモード:固定間隔と自己ペース

/loopの使い方は2通りあり、その違いを理解しておくことは、プロンプトの書き方に影響します。

固定間隔のループ

最初の引数に秒数を渡します。Claudeはその間隔で起き、プロンプトを実行し、再び眠ります。これは、CIのパイプライン、デプロイの状態、APIのヘルスエンドポイントなど、外部システムへのポーリングに適したモードです。そこでは、物事が変わるタイミングを現実世界の時計が決めているからです。

/loop 120 Run npm test and report which tests are failing. Stop if all tests pass.

自己ペース(動的)のループ

間隔を省略すると、Claudeは状況に応じて自分のペースを決めます。残りの作業量、各反復にかかる時間、そしてタスクにとって何が理にかなっているかに基づいてです。これは、固定の時計なしにClaudeに作業を続けてほしい、答えの定まらないエージェント型の作業に便利です。たとえば、ファイルのリストを1つずつリファクタリングしたり、イシューのバックログを順に片付けたりする場合です。

/loop Go through each file in src/components/ and add missing TypeScript types. Work through them one at a time, commit after each file, and stop when all are done.

/loopが真価を発揮する5つの実際の開発シナリオ

1. CIの実行を見張る

ブランチをプッシュして、パイプラインがいつ終わるかを知りたい。でも5分ごとにGitHubに切り替えたくはない。適切な間隔でループを設定し(CIの実行が2〜3分より速く変わることはまずありません)、Claudeに結果を報告させて自動的に止めます。

/loop 90 Run: gh run list --branch my-feature --limit 1 --json status,conclusion,url
Report the status. If conclusion is "success" or "failure", report the full result and stop looping.

2. 大きなコードベースでの反復的なリファクタリング

40個のファイルに同じ処理が必要なとき、たとえばpropsに型を付ける、新しいAPIに移行する、定数の名前を変えるといった作業を手でやるのは退屈です。自己ペースのループなら、Claudeがリストを順に処理し、ファイルごとにコミットし、進捗を報告するので、何か問題が起きてもそこから再開できます。

/loop Find all .tsx files that still use the old useAuth hook from @/hooks/auth-v1.
Migrate them one at a time to the new useSession hook from @/hooks/session.
Run TypeScript after each file to confirm no errors, then commit. Stop when none remain.

3. デプロイを見張る

本番のデプロイには5〜15分かかることがあり、見ていれば一目でわかるのに、目を離すと見逃しやすい形で失敗しがちです。コーヒーを取りに行く間、ヘルスエンドポイントやデプロイのCLIに対してClaudeをループさせておきましょう。

/loop 60 Run: curl -s https://myapp.example.com/api/health | jq '.status'
If status is "ok", tell me the deploy succeeded and stop.
If you see errors three times in a row, stop and show me the last response.

4. テストを少しずつ直す

失敗しているテストがいくつもあり、一度に全部直そうとして矛盾する変更の山を作るのではなく、1つずつ順に直してほしい場合です。

/loop Run the test suite with: npm test -- --bail 1
Pick the first failing test, read the error, fix it, and run again.
Commit after each passing test. Stop when the full suite is green.

5. ファイルやログの変化を待つ

開発中には、本格的なファイル監視スクリプトを組まずに、特定のログが出たタイミング、シードファイルの書き込みが終わったタイミング、ビルドの成果物ができたタイミングを知りたいことがあります。

/loop 30 Check if the file dist/bundle.js exists and is larger than 10kb.
If yes, run a quick size report (ls -lh dist/) and stop looping.
If not, tell me it is not ready yet.

エージェント型ワークフローの中での/loopの位置づけ

/loopは魔法ではありません。同じClaudeのセッションの上に乗ったスケジューリングの層です。各反復は、プロジェクトのファイル、bashのコマンド、Webのツールにすべてアクセスできます。アーキテクチャ上の重要な点は、同じループの中では、Claudeが前の反復のコンテキストも引き継ぐことです。前回何を見つけたか、どのファイルをすでに処理したか、現在の状態はどうかを覚えています。

そのため、ループはClaude Codeのほかのパターンと組み合わせられます。

  • CLAUDE.mdとの組み合わせ:CLAUDE.mdファイルのルールは、ループのすべての反復に自動的に適用されます。コミットの規約やファイルの制限を定義しているなら、それがそのまま引き継がれます。
  • サブエージェントとの組み合わせ:ループの中でサブエージェントを起動して並列処理するようClaudeに頼めます。たとえば、各反復で複数のファイルを同時に処理するといった使い方です。
  • フックとの組み合わせ:Claude Codeのフックはツールの呼び出しのたびに発火するので、ツール単位の安全チェックは、通常のセッションと同じようにループの中でも適用されます。

キャッシュのウォームアップと、間隔の選び方が重要な理由

間隔の選び方を変える、実務上の性能の考慮点があります。Anthropicのプロンプトキャッシュには5分のTTLがあります。ループが5分(300秒)より長く眠ると、次に起きたときには会話のコンテキスト全体をキャッシュなしで読み込むことになり、遅くなるうえにトークンも多く使います。

間隔を選ぶときに役立つ考え方:

  • 60〜270秒:キャッシュは温かいままです。CIの実行、ヘルスエンドポイント、その他速く変わる外部の状態へのポーリングに向いています。
  • 300秒以上:起きるたびにキャッシュミスになります。待っている対象が本当にそれだけ変化に時間がかかる場合にだけ見合います。12分かかるデプロイなら、1分ごとに12回ポーリングするより、270秒の待機を2回挟むほうが割に合います。
  • ちょうど300秒は避ける:両方の悪いところ取りです。キャッシュミスの代償を払うのに、待ち時間はほとんど長くなりません。

/loopを使うべきでないとき

/loopは強力な道具であり、強力な道具ならではの失敗のパターンがあります。気をつけるべき点をいくつか挙げます。

  • 終了条件のない無限ループ:いつ止まるべきかを、必ずClaudeに明示的に伝えてください。「テストが通ったら止まる」「3回連続で失敗したら止まる」などです。条件がなければ、ループはセッションのコンテキストがいっぱいになるまで回り続けます。
  • 破壊的な操作:ファイルを変更したりコミットをプッシュしたりするループは、間違いを増幅します。まずClaudeにドライランを見せてもらうか、手動の確認ポイントを設けて、1回の反復で扱う作業を1単位に絞ってください。
  • ハーネスがすでに追跡できるバックグラウンドの作業:Agentツールでバックグラウンドのタスクを起動した場合、それが完了するとClaude Codeには自動で通知が届くので、ポーリングのループは必要ありません。/loopは、ハーネスが観測できない外部システムに対してだけ使ってください。
  • ステップの合間にあなたの判断が必要なタスク:次の反復が走る前に変更を確認して承認する必要があるなら、ループは間違った構造です。代わりに、手動でやり取りを続ける通常の会話を使ってください。

良いループのプロンプトを書く

ループの質は、停止条件と反復ごとのアクションをどれだけ正確に記述するかで、ほぼ完全に決まります。弱いループのプロンプトは、あなたが中断するまでN秒ごとに何かをするエージェントを生みます。強いループのプロンプトは、問題を解決して、そのまま邪魔にならないところへ退くエージェントを生みます。

ループのプロンプトのチェックリスト

  • ✓反復ごとの明確なアクション: Claudeは、起きるたびに具体的に何をすべきか。
  • ✓明示的な停止条件: ループはいつ終わるべきか。曖昧な「終わったら」ではなく、状態や結果を名指ししてください。
  • ✓失敗時の扱い: 何かがうまくいかなかったらどうするか。止まって報告するのか、N回まで再試行するのか。
  • ✓進捗の報告: 各反復で何を見つけたかをClaudeに伝えさせれば、おかしいと思ったときに中断できます。
  • ✓範囲を絞った変更: ファイルを変更するループでは、1回の反復につき1単位の作業(1つのファイル、1つのテスト、1つのコミット)にすることで、影響範囲を抑えられます。

より大きな視点:自律型の開発パターン

/loopは、2026年にソフトウェアの書き方で起きている、より大きな変化の一部です。考え方は、*「自分がコードを書き、AIが手伝う」から「AIが働き、自分はレビューして舵を取る」*へと移りつつあります。ループは、その考え方をより長い時間軸で実現します。一つひとつのステップでClaudeに指示を出すのではなく、求める結果を説明し、そこに向かって自律的に反復させるのです。

これを安全に機能させるには、チェックポイントを組み込む必要があります。明示的な停止条件、反復ごとのコミット、そして付きっきりにならなくても状況が見える進捗の報告です。エージェント型AIを最も使いこなしている創業者や開発者は、最も詳細な指示を出す人ではありません。厳密な終了条件を書き、その間をAIが埋めることを信頼する人たちです。

/loopの正しい使い方は、すべてを自動化することではありません。退屈な待ち時間と繰り返しの作業を自動化して、本当に人間がループに関わるべき部分に注意を向け続けることです。

すぐに試すなら:不安定なテストがあるプロジェクトで、/loop 60 Run npm test. Report how many tests pass and fail. Stop when the full suite passes.を実行してみてください。あなたが次のプロンプトを書かなくても、Claudeがそれを診断して直す様子が見られます。

IdeaToMVP Academy

Want to build with AI — not just read about it?

4-week live cohort for founders. Learn to ship AI agents, scope MVPs, and automate your business — taught by the same team that writes these guides.

Explore the Academy →
Share this post :