GHA-002

Claude 自動化の全体像 — 「なるべく自動化する」方法のすべて

更新日: 2026-05-29 / 出典: CLI ReferenceHooksAgent SDKRoutines(確認日 2026-05-29)

「YouTube で見た『24時間動かし続けるクロード』は何が動いているのか?」「GitHub Actions があれば十分か?」——この記事はその疑問を解消する。 Claude を自動化する手段を7レイヤーに整理し、それぞれの仕組み・用途・注意点を図解で解説する。 companion ノート [GHA-001] GitHub Actions × Claude Code クラウド連携 も参照。

【本ノートでの用語規約】
「ヘッドレスモード」= claude -p--print フラグ)による非インタラクティブ実行モード。 公式ドキュメントでは "print mode" または "non-interactive mode" とも呼ばれる。
「Agent SDK」= Python パッケージ claude-agent-sdk / TypeScript パッケージ @anthropic-ai/claude-agent-sdk の総称(2026-05 時点の正式名称)。

1. 結論 — GitHub Actions は「最適な万能解」ではなく自動化の一形態

GitHub Actions は「リポジトリイベント(PR・Issue 等)をトリガーにして Claude を起動する 反応型 の自動化」である。 常時稼働させたい、定期的に実行したい、PC が閉じていても動かしたい、といった要件にはそのままでは対応できない。 Claude の自動化には大きく3タイプあり、GitHub Actions はその1つに過ぎない。

タイプ A: イベント駆動(反応型) トリガー: PR / Issue / メンション GitHub Actions @claude hooks(PreToolUse 等) 特徴: 外部イベントが来るまで待機 PC/サーバー稼働が前提 → GHA-001 参照 タイプ B: スケジュール駆動(定期型) トリガー: 時刻・cron 式 Routines(クラウド、PC 不要) /schedule + ローカル cron GHA workflow_dispatch / schedule 特徴: 時刻になると自動起動 Routines はクラウド上で動く タイプ C: 連続ループ(24時間型) トリガー: なし(常時稼働) headless + while ループ Agent SDK Routines API トリガー連鎖 特徴: タスクがある限り走り続ける コスト・安全管理が必要
図 1. Claude 自動化の3タイプ

2. 自動化の3タイプ — 比較表

タイプ 代表手段 PC 不要か コスト特性 主な用途
A. イベント駆動 GitHub Actions @claude
hooks(PreToolUse 等)
GitHub Actions は不要
hooks はローカル依存
イベント発生時のみ消費 PR レビュー・Issue 対応・ファイル変更時の処理
B. スケジュール駆動 Routines
/schedule
ローカル cron + headless
Routines はクラウド、PC 不要
cron はローカル依存
実行回数×トークン 毎朝の集計・週次レポート・定期メンテ
C. 連続ループ headless + while ループ
Agent SDK
Routines API 連鎖
headless はローカル依存
Agent SDK は実行環境に依存
常時消費(高コスト) 長時間コーディング・大量タスク消化

3. 「24時間稼働するクロード」の正体

YouTube や X で見る「Claude が勝手にコードを書き続けている」動画は、主に以下3方式のいずれかである。

(1) headless + while ループ TODO.md / Issue キューから次タスクを取得 claude -p "タスク内容" --max-turns 20 結果を git commit / タスクを完了マーク while true 必ずサンドボックス内で実行 (2) Agent SDK Python / TypeScript アプリ起動 claude_agent_sdk.query() 呼び出し SDK が Claude + ツール実行ループを管理 ResultMessage が返ったら次タスクへ サブエージェント並列実行も可能 hooks で監査ログを差し込める (3) Routines(クラウド) claude.ai/code/routines で設定 または /schedule コマンド Anthropic クラウドで Claude 実行 結果は session として閲覧・継続可 PC 不要、ノート閉じていても動く 1日実行上限あり(Research Preview)
図 2. 24時間稼働の3方式フロー

(1) ヘッドレスモード + while 無限ループ

claude -p--print フラグ)はインタラクティブセッションを開かず、プロンプトを渡して結果を受け取って終了する非インタラクティブ実行モード。 これを bash ループで繰り返すことで「Claude が延々と作業する」状態を作る。 🟢 公式 CLI Reference で確認済み

#!/bin/bash
# 基本構造(サンドボックス内で使用すること)
while true; do
  # TODO.md から次のタスクを取得
  TASK=$(head -n 1 TODO.md)
  [ -z "$TASK" ] && echo "タスクなし。終了。" && break

  # ヘッドレスモードでタスク実行
  claude -p "$TASK" \
    --max-turns 20 \
    --allowedTools "Read,Edit,Bash,Glob,Grep" \
    --output-format text

  # 完了したタスクを TODO.md から除去
  sed -i '1d' TODO.md

  # git にコミット
  git add -A && git commit -m "auto: $TASK"
done

主な関連フラグ(🟢 CLI Reference で確認済み):

フラグ説明
-p / --print非インタラクティブ(ヘッドレス)モードで実行し終了する
--max-turns Nエージェントループの最大ターン数を制限する(print mode のみ)。制限に達するとエラーで終了
--output-format text|json|stream-json出力フォーマット(text / JSON / ストリーミング JSON)
--allowedTools "Read,Edit,Bash"許可ツールを限定する(権限プロンプトなしで実行)
--dangerously-skip-permissions全ての権限確認をスキップ(--permission-mode bypassPermissions と同等)。サンドボックス必須
--max-budget-usd NAPI コストの上限を USD で設定(print mode のみ)
--barehooks・skills・プラグイン・MCP・メモリの自動検出をスキップし高速起動(スクリプト用)

(2) Claude Agent SDK — フル自律エージェントを自作

Agent SDK は Claude Code と同じツール実行ループをライブラリとして提供する。 Python パッケージ名 claude-agent-sdk、TypeScript パッケージ名 @anthropic-ai/claude-agent-sdk🟢 Agent SDK ドキュメントで確認済み

# Python での基本例
import asyncio
from claude_agent_sdk import query, ClaudeAgentOptions

async def run_agent(task: str):
    async for message in query(
        prompt=task,
        options=ClaudeAgentOptions(
            allowed_tools=["Read", "Edit", "Bash", "Glob", "Grep"],
            permission_mode="acceptEdits",
        ),
    ):
        if hasattr(message, "result"):
            print(message.result)

asyncio.run(run_agent("auth.py のバグを修正してください"))
// TypeScript での基本例
import { query } from "@anthropic-ai/claude-agent-sdk";

for await (const message of query({
  prompt: "auth.ts のバグを修正してください",
  options: {
    allowedTools: ["Read", "Edit", "Bash", "Glob", "Grep"],
    permissionMode: "acceptEdits",
  },
})) {
  if ("result" in message) console.log(message.result);
}

SDK は Claude Code CLI と同等の機能を持つ(hooks・サブエージェント・MCP・セッション再開等すべて利用可)。CLI はインタラクティブ開発向け、SDK は CI/CD・本番自動化向けという使い分けが公式推奨。

(3) Routines — Anthropic クラウドでの定期/イベント実行

Routines は設定したプロンプト・リポジトリ・コネクタをパッケージ化し、Anthropic のクラウドインフラで自動実行する機能。 PC が閉じていても動く。🟢 Routines ドキュメントで確認済み(Research Preview)

項目仕様
トリガー種別スケジュール(hourly/daily/weekly/cron)、API(HTTP POST)、GitHub イベント(PR・Release)— 複数組み合わせ可
ネットワークデフォルト環境は Trusted(パッケージレジストリ・クラウド API 等の標準アローリスト。任意ドメインは不可)。カスタム設定で拡張可
ブランチ制限デフォルトで claude/ プレフィックスブランチへのみ push 可。「Allow unrestricted branch pushes」で解除可
実行上限1日あたりの実行回数上限あり(具体的数値は非公開。claude.ai/settings/usage で確認可)。one-off 実行はカウント外
対象プランPro・Max・Team・Enterprise(Claude Code on the web が有効な場合)
作成方法Web UI(claude.ai/code/routines)または CLI コマンド /schedule

4. 「なるべく自動化する」実践レイヤー(弱 → 強)

以下の7レイヤーは弱い自動化から強い自動化へ向かうグラデーションである。 各レイヤーは組み合わせてよく、必ずしも最上位まで上げる必要はない。 「コードレビューだけ自動化したい」なら GHA-001 で十分、「24時間作業させたい」なら上位レイヤーへ。

自動化の強度(弱 → 強) Layer 1: hooks settings.json に PreToolUse / Stop 等を登録。harness が自動実行。インタラクティブ中でも動く Layer 2: slash command / skill 一連の作業を /command 1 つで呼び出し。既存ユーザーの手動起点が自動化への入口 Layer 3: /loop スキル インタラクティブセッション内で一定間隔のタスク繰り返し。例: /loop 5m /review Layer 4: ローカル cron + headless cron や Task Scheduler で claude -p を定期呼び出し。PC が起動中に限り動作 Layer 5: Routines(クラウド定期 / イベント) PC 不要。Anthropic クラウドで cron・API トリガー・GitHub イベントで自動実行 Layer 6: GitHub Actions(リポジトリ起点の反応型) PR / Issue 等のイベントで起動。GHA-001 参照 → cloud-integration.html Layer 7: Agent SDK(完全自律・長時間エージェント) Python / TypeScript で自前のエージェントループを構築。最大の柔軟性、最大の管理責任
図 3. Claude 自動化の7レイヤー(下 = 弱・手軽、上 = 強・要管理)

各レイヤーの要点

Layer 1: hooks

~/.claude/settings.json または .claude/settings.json"hooks" セクションに、 PreToolUse / PostToolUse / Stop 等のイベントに対してシェルコマンド・HTTP・MCP ツール・プロンプト・エージェントのいずれかを登録する。 Claude Code がライフサイクルの各点で自動実行する。インタラクティブセッション中でも動作。 🟢 Hooks ドキュメントで確認済み(30種類以上のイベントをサポート)

// .claude/settings.json の例: Edit/Write 後に lint を自動実行
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "npm run lint --silent",
            "timeout": 30
          }
        ]
      }
    ]
  }
}

Layer 3: /loop スキル

Claude Code の /loop スキルは、インタラクティブセッション内で指定した間隔でコマンドを繰り返し実行する。 例: /loop 5m /review(5 分ごとに /review を実行)。 セッションが開いている間だけ動作する点に注意。 🟡 スキル定義の動作は確認済みだが仕様詳細は未公開

Layer 5: Routines のトリガー組み合わせ例

# CLI での Routine 作成(スケジュール型)
/schedule daily PR review at 9am

# one-off 実行(カウント外、明日 9 時に 1 回だけ)
/schedule tomorrow at 9am, summarize yesterday's merged PRs

# API トリガー(curl で呼び出す例)
curl -X POST https://api.anthropic.com/v1/claude_code/routines/trig_01XXXXX/fire \
  -H "Authorization: Bearer sk-ant-oat01-xxxxx" \
  -H "anthropic-beta: experimental-cc-routine-2026-04-01" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{"text": "Alert: error rate exceeded threshold"}'

5. 注意点 — 24時間稼働の落とし穴

権限スキップの危険
--dangerously-skip-permissions(= --permission-mode bypassPermissions)は 全ての確認プロンプトをスキップする。意図しない破壊的操作(ファイル削除・git push --force 等)も止まらない。 必ず Docker コンテナ・VM・専用ディレクトリ等のサンドボックス内でのみ使用すること。
コスト管理
ループは API トークンを延々消費する。Claude Max サブスクリプションでもレート制限で停止する場合がある(Routines は1日の実行上限あり)。 従量制 API では高額化しやすい。--max-budget-usd フラグや Routines の予算設定を必ず使う。
リスク 対策
破壊的操作(rm -rf・force push 等) Docker / VM サンドボックス必須。--dangerously-skip-permissions は隔離環境限定
無限ループによるコスト爆発 --max-turns / --max-budget-usd でターン・コスト上限を設定。ループ回数の外側にも上限を設ける
暴走後の復旧困難 作業ディレクトリを git 管理下に置き、常に巻き戻せる状態にしておく
タスクが尽きず永久ループ 明確な完了条件(TODO.md が空になったら終了)と次タスク供給源を設計する
Routines が意図しないブランチに push デフォルトは claude/ プレフィックスブランチのみ(保護あり)。「Allow unrestricted」は慎重に
Routines のネットワーク外への通信 Trusted ポリシーのアローリスト外は 403 でブロックされる。環境設定でドメイン追加が必要

6. 用途別おすすめ

用途 おすすめ手段 参照 PR / Issue のコードレビュー・自動回答 GitHub Actions @claude(イベント駆動) → GHA-001 毎朝の定期作業(集計・Issue トリアージ・レポート) Routines(スケジュール)/ /schedule PC 不要 アラート検知 → 自動修正 PR 作成 Routines(API トリガー) 監視ツールから curl で起動 放置で進めたい長時間コーディング作業 headless + ループ(サンドボックス内) 権限管理に注意 本番品質の自律エージェント製品開発 Agent SDK(Python / TypeScript) 最大の制御性 ファイル変更時の自動テスト・フォーマット hooks(PostToolUse) インタラクティブ中でも動作
図 4. 用途別おすすめ手段

関連項目