Claude Code Routines完全実践ガイド — クラウド側で動く「予定されたClaude」
Claude Code Routinesはclaude.ai/codeのクラウド側で動く「予定されたClaude」。3つのトリガー(scheduled / API / GitHub event)で自走し、PR作成まで自律的に進められる。仕様・設定・料金・既存機能との使い分けを公式仕様ベースで整理します。
要点
Claude Code Routinesは、Anthropicの管理するクラウド側(claude.ai/code)で動く「予定されたClaude」です。2026年4月14日にresearch previewとして公開された機能で、ローカルマシンの起動状態に関係なく、決められたトリガーでClaude Codeセッションを自律的に走らせてPRまで作成できます。
本記事は次の4点を扱います。
- Routinesとは何か(claude.ai/code上で動く実体、CLIからは
/scheduleで操作) - 3つのトリガー(scheduled / API / GitHub event)の仕様
- 設定の作り方(Web / CLI / Desktopの3経路)と料金 / クオータ
- 既存機能(
/loop/ Desktop scheduled tasks / GitHub Actions)との使い分け
注意:Routinesはresearch preview(anthropic-beta: experimental-cc-routine-2026-04-01)なので、API shapeやヘッダーは将来変更の可能性があります。本記事は2026年5月9日時点の公式情報に基づきます。
Claude Code Routinesとは
公式定義は次の通り(出典:code.claude.com/docs/en/routines)。
A routine is a saved Claude Code configuration: a prompt, one or more repositories, and a set of connectors, packaged once and run automatically.
つまり「プロンプト + リポジトリ + connectorを1セットにして保存し、自動で実行できる」仕組みです。実体はclaude.ai/code(Anthropicのクラウド)で動き、CLI / Desktopアプリは設定UIとして機能します。
動作の場所
| 場所 | 役割 |
|---|---|
| claude.ai/code(Web) | Routinesが実際に走るクラウド環境。claude.ai/code/routines で新規作成 / 編集 / 履歴確認 |
| Claude Code CLI | /schedule コマンドでscheduled triggerを登録できる。API / GitHub triggerはWebから追加 |
| Claude Desktopアプリ | サイドバーのRoutinesで操作。Local / Remote選択肢があり、Remote = Routines、Local = Desktop scheduled task |
すべてのsurfaceが同じクラウドアカウントに書き込むため、どこで作っても他からも見える設計です。
Routineが含む構成要素
| 要素 | 説明 |
|---|---|
| Name | Routineの識別名 |
| Prompt | Claudeに渡される指示文。モデルセレクタ付き |
| Repositories | 操作対象のリポジトリ(複数可) |
| Environment | network設定 / 環境変数 / setup script |
| Triggers | scheduled / API / GitHubの組み合わせ |
| Connectors | Slack / Linear / Google Drive等のMCP connector |
| Permissions | branch push制限の解除有無など |
実行できること
公式ドキュメントによると、Routineセッションは「full Claude Code cloud session」として動作し、以下を承認プロンプトなしで自律的に実行できます。
- shellコマンド
- リポジトリ内にコミットされているSkills
- 設定したMCP connectorsの全ツール
- PR作成 / コメント投稿
デフォルトでは claude/-prefixのブランチにしかpushできない設計で、本番ブランチへの直接pushは禁じられています。Allow unrestricted branch pushes 設定で解除可能です。
3つのトリガー
Routinesは3種類のトリガーを組み合わせて起動できます。
トリガー 1: Scheduled trigger(時間ベース)
決まった時刻 / 周期で起動するトリガー。
プリセット: hourly / daily / weekdays / weekly
単発: 任意のfuture timestamp(/schedule tomorrow at 9am, ... のような自然言語入力可)
カスタムcron: /schedule update でcron式を設定
重要な制約: 最小間隔は1時間。これより短い間隔は拒否されます。タイムゾーンはローカル → UTCに自動変換され、routineごとに決まった数分の遅延(stagger)が掛かります。
CLIからの設定例:
/schedule daily PR review at 9am
/schedule clean up feature flag in one week
/schedule tomorrow at 9am, summarize yesterday's merged PRsトリガー 2: API trigger(HTTP POSTで発火)
外部システムからHTTPリクエストで起動するトリガー。CDパイプラインやモニタリングツールからの連携に使えます。
エンドポイント: POST /v1/claude_code/routines/{routine_id}/fire
認証: Routineごとに発行されるper-routine bearer token(sk-ant-oat01-... 形式、表示は1回のみ)
公式のcurl例(verbatim):
curl -X POST https://api.anthropic.com/v1/claude_code/routines/trig_01ABCDEFGHJKLMNOPQRSTUVW/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": "Sentry alert SEN-4521 fired in prod. Stack trace attached."}'リクエストボディの text はfreeform string、最大65,536文字。JSON構造ではなく単なる文字列としてClaudeに渡されます。
成功時のレスポンス:
{
"type": "routine_fire",
"claude_code_session_id": "session_01HJKLMNOPQRSTUVWXYZ",
"claude_code_session_url": "https://claude.ai/code/session_01HJKLMNOPQRSTUVWXYZ"
}トリガー 3: GitHub trigger(Pull Request / Releaseイベント)
GitHubの特定イベントで起動するトリガー。Claude GitHub Appのインストールが必須(/web-setup 単独では足りない)。
対応イベント:
- Pull request: opened / closed / assigned / labeled / synchronized等
- Release: created / published / edited / deleted
フィルタ: Author / Title / Body / Base branch / Head branch / Labels / Is draft / Is merged
フィルタ演算子: equals / contains / starts with / is one of / is not one of / matches regex
GitHub Actions内からfireする例(APIリファレンスより):
- if: failure()
env:
ROUTINE_FIRE_URL: ${{ secrets.ROUTINE_FIRE_URL }}
ROUTINE_FIRE_TOKEN: ${{ secrets.ROUTINE_FIRE_TOKEN }}
run: |
curl -X POST "$ROUTINE_FIRE_URL" \
-H "Authorization: Bearer $ROUTINE_FIRE_TOKEN" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: experimental-cc-routine-2026-04-01" \
-H "Content-Type: application/json" \
-d "{\"text\": \"CI failed: $GITHUB_WORKFLOW run $GITHUB_RUN_ID on $GITHUB_REF\"}"設定の作り方(3経路)
経路1: Web(claude.ai/code/routines)
新規作成 / 編集 / API token管理の正面玄関。Web UIで全trigger種別の設定が可能です。
経路2: CLI(/schedule コマンド)
Claude Code を起動して /schedule でscheduled triggerを作成できます。
/schedule list
/schedule update
/schedule runCLIから作成したroutineもWebに同期され、後からWebでtrigger種別を追加できます。
経路3: Desktopアプリ(サイドバーのRoutines)
DesktopアプリのサイドバーからRoutinesを選び、Local / Remoteを切り替えます:
- Remote = Routines(クラウドで動く)
- Local = Desktop scheduled task(ローカルマシンで動く)
料金とクオータ
Routinesはsubscription usage limitsを通常のinteractive sessionと同じく消費します(出典:routines docs)。
1日あたりのrun上限(per-account)
| プラン | 上限 |
|---|---|
| Pro | 5 / day |
| Max | 15 / day |
| Team / Enterprise | 25 / day |
One-off runs(単発のfuture timestamp実行)はdaily capにカウントされません(通常のsubscription usageは消費しますが、capには影響なし)。
daily cap到達後の挙動:
- Extra usageが有効な組織 → metered overageで続行
- 無効な場合 → reject(API triggerはHTTP 429で
Retry-Afterヘッダ付き)
Pro / Max / Team / Enterpriseプランで利用可。Freeプランでは利用できません。加えてClaude Code on the webが有効である必要があります。
/loop / Desktop scheduled tasksとの使い分け
Claude Codeにはscheduling系の機能が3つあり、それぞれ動作場所と最小間隔が異なります。
| 観点 | Routines(Cloud) | Desktop scheduled tasks | /loop |
|---|---|---|---|
| 実行場所 | Anthropic cloud | ローカルマシン | ローカルマシン(セッション内) |
| マシン起動必須 | 不要 | 必要 | 必要 |
| セッション維持必須 | 不要 | 不要 | 必要(--resume で復元可) |
| 再起動を跨ぐ永続性 | あり | あり | unexpiredのみ |
| ローカルファイルアクセス | なし(fresh clone) | あり | あり |
| MCP servers | triggerごとに設定 | config / connectors | セッション継承 |
| 権限プロンプト | なし(自律実行) | taskごと設定可 | セッション継承 |
| 最小間隔 | 1時間 | 1分 | 1分 |
使い分けの判断軸
- マシンを起動していなくても回したい → Routines(クラウド)
- ローカルファイル / 設定に直接触りたい → Desktop scheduled tasks
- 進行中セッションの内部で繰り返したい →
/loop
CLAUDE_CODE_DISABLE_CRON の役割
CLI環境変数 CLAUDE_CODE_DISABLE_CRON=1 を設定すると、CLI側のcron機能(/loop やcron tools)が無効になります。Routines自体はorganization adminの管理画面(claude.ai/admin-settings/claude-code)で組織全体の有効 / 無効を切り替えます。
6つの典型ユースケース(公式が示すもの)
公式docs(code.claude.com/docs/en/routines)が紹介しているシナリオ:
| ユースケース | トリガー | 動作 |
|---|---|---|
| Backlog maintenance | scheduled(毎晩) | バックログ整理、リファクタの提案PR |
| Alert triage | API(Sentry / DataDog等) | アラート受信時に修正案PRを起こす |
| Bespoke code review | GitHub pull_request.opened | 独自基準のコードレビュー |
| Deploy verification | API(CDパイプライン) | デプロイ後の動作確認 / ロールバック判断 |
| Docs drift | scheduled(週次) | コードとdocsの乖離を検出して同期PR |
| Library port | GitHub pull_request.closed + merged | SDK横展開(Pythonに入った変更をTSに移植) |
注意点 / 落とし穴
1. 「RoutinesはCLI機能」と思わない
Routinesの 実体はクラウド側(claude.ai/code)で、CLIは設定経路の1つにすぎません。CLI changelogにもRoutinesの追加エントリは存在しません(CLI側で先行追加された /loop / cron toolsがv2.1.71、CLAUDE_CODE_DISABLE_CRON がv2.1.72)。
2. daily capはper-account / per-day
「Pro 5 / Max 15 / Team・Enterprise 25」は同時実行上限ではなく、1日あたりのrun上限。同時実行については公式docsに明示なし。
3. text payloadはparsedされない
API triggerの text はfreeform stringとしてClaudeに渡るだけで、JSONとしてparseされません。「JSONで構造化データを送れます」と思って書くと意図通りに使われません。
4. branch pushのデフォルトは制限付き
Routineからのpushはデフォルトで claude/-prefixブランチに限定されます。本番ブランチへ直接pushしたい場合は Allow unrestricted branch pushes を有効化する必要がある(セキュリティ的にはデフォルトのままが安全)。
5. コミット / PRは本人扱い
Routineが起こすコミットやPRは接続済みGitHub identity / connectors経由で行われ、本人のアカウントとして記録されます。社内ガバナンス的には「自動でも自分の名前が付く」点を意識する必要があります。
6. green statusはインフラ正常を意味するだけ
Routineのrun status「green」はinfrastructure errorがなかったという意味で、promptのタスクが期待通り完了したことを保証するものではありません。実際にPR / 出力を確認する運用が必要です。
7. minimum schedule intervalは1時間
「30分おきに走らせたい」というニーズには応えられません。それより短い周期が必要なら /loop(ローカル / セッション内)かGitHub Actions cron(5分以上)かDesktop scheduled tasks(1分以上)を検討します。
8. APIはresearch preview
anthropic-beta: experimental-cc-routine-2026-04-01 ヘッダが必須で、将来のヘッダ更新(2つ前まで動作保証)あり。productionで使う場合は記事公開時のヘッダー値を本記事末の出典URLから最新確認することをおすすめします。
APIエラーコード(参考)
| HTTP | error type | 主な原因 |
|---|---|---|
| 400 | invalid_request_error | beta header欠落 / text > 65,536文字 / routineがpaused |
| 401 | authentication_error | token不一致 |
| 403 | permission_error | アカウントがendpointアクセス不可 |
| 404 | not_found_error | routine不在 |
| 429 | rate_limit_error | daily / usage limit到達(Retry-After付き) |
| 500 | api_error | サーバエラー |
| 503 | overloaded_error | 一時過負荷 |
まとめ
Claude Code Routinesは「ローカルPCを立ち上げなくても、決まったトリガーでClaude Codeが自律的に動く」クラウドベースの自動化機構です。GitHub Actions cronとの一番の違いは「Claudeのセッション(Skills / MCP / context)を丸ごと再現できる」点で、レビュー / 修正PR / docs drift検出のようなAI判断を伴う繰り返し作業に強みがあります。
最小1時間の制約があるため、より短い周期の自動化や、ローカル環境への直接アクセスが必要な作業はDesktop scheduled tasksや /loopを併用するのが王道です。
実運用での組み込み方は、本サイトのメディア運営記で扱うauto-merge botとの組み合わせや、Hooks実例カタログで扱う SubagentStop 通知などと相性が良いです。RoutinesがPRを作る → Hooksで通知 → 朝確認 → マージ、という24時間自走パイプラインが組めます。
仕様はresearch previewのため、運用前に必ず公式docsを確認してください。
関連する記事
Claude Code をもっと見る →Claude Codeで個人メディアを24時間自走させる — 運営の1日と内部構造
Claude Codeワークフロー — Ultraplan / Ultrareview / Checkpointingの使い分け
Claude Code導入を検討するCTO / Tech Leadのための評価軸6つ
Claude Code Worktree完全活用 — エージェント並列開発のための隔離戦略
Claude Codeのサブエージェント完全活用 — Taskツールで作る並列開発パターン
Claude Codeのメモリ三層構造 — CLAUDE.md / Settings / Skillsの使い分けと組み合わせ
Claude Code Hooks実例カタログ — 9つのユースケース別レシピと避けたい落とし穴
Claude CodeをDevContainerで安全に動かす完全実装 — sandbox設計と認証情報の遮断