Claude 自動化の全体像 — 「なるべく自動化する」方法のすべて
更新日: 2026-05-29 / 出典: CLI Reference、 Hooks、 Agent SDK、 Routines(確認日 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つに過ぎない。
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) ヘッドレスモード + 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 N | API コストの上限を USD で設定(print mode のみ) |
--bare | hooks・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
~/.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. 用途別おすすめ
関連項目
- [GHA-001] GitHub Actions × Claude Code クラウド連携 — @claude メンション・認証3系統・OIDC 鍵レス認証の詳細。本ノートで述べた「タイプ A: イベント駆動」の具体実装。