Anthropic が Claude Code に Routines(ルーチン) を追加した。発表は Week 16(2026年4月13〜17日、v2.1.105〜)。ひとことで言うと「決まった指示を、決まったきっかけで、勝手に実行してくれる Claude」だ。きっかけは3つ──時刻のスケジュール、GitHub での出来事、外部からの API 呼び出し。プロンプト(Claude への指示文)・対象リポジトリ・コネクタ(Slack や Google Drive など外部サービスとの接続)を一度登録しておくと、あとは Anthropic 側のクラウドで自動的に走る。まだリサーチプレビュー(試験公開)で、挙動や上限は変わる可能性がある。
3月に出た Cowork のスケジュールタスクを以前紹介したが、あれは自分のPC上で動く方式で「PCがスリープ中はスキップ」という弱点があった。Routines はそこを正面から解消する。処理はクラウドで走るので、ノートPCを閉じていても動く。これは cron(OSの定時実行の仕組み)を自分のサーバーに置く代わりに、Anthropic に肩代わりしてもらう感覚に近い。
ローカル版との決定的な違いはクラウド実行
Routines は「保存済みの Claude Code 設定」だ。中身はプロンプト・1つ以上のリポジトリ・コネクタのセットで、これを一度パッケージ化して自動実行する。実行場所は Anthropic のクラウドなので、手元のマシンの電源状態に依存しない。
各 Routine は権限モードの選択もなく、実行中の承認プロンプトも出ない。フルの Claude Code クラウドセッションとして自律的に走る。シェルコマンドを叩き、クローンしたリポジトリにコミットされたスキルを使い、登録したコネクタを呼ぶ。何に手が届くかは「選んだリポジトリとそのブランチ設定」「環境のネットワークアクセスと環境変数」「含めたコネクタ」で決まる。必要な分だけに絞っておくのが前提になる。
リポジトリはデフォルトブランチから毎回クローンされ、変更は claude/ プレフィックス付きのブランチに作られる。既存ブランチへ push させたいときだけ、リポジトリごとに「Allow unrestricted branch pushes」を有効にする。
トリガーは3種類、組み合わせもできる
1つの Routine に複数のトリガーを付けられる。
- スケジュール:毎時・毎日・平日・毎週のプリセット、または将来の特定時刻に1回だけ。最短間隔は1時間で、それより短い cron 式は弾かれる。時刻はローカルタイムで入力して自動で変換されるので、クラウドの所在地に関係なく指定した壁時計の時刻で動く。
- API:Routine ごとに専用の
/fireエンドポイント(呼び出し用のURL)が生成される。Bearer トークン(合言葉になる認証キー)を付けて HTTP POST すると新しいセッションが起動し、セッションURLが返る。監視ツールやデプロイの処理から叩ける。 - GitHub イベント:Pull request と Release の各アクションに反応する。
pull_request.openedのような個別アクションを選べて、作者・タイトル・ベースブランチ・ラベル・ドラフト状態などでフィルタもかけられる。
API トリガーの叩き方はこうなる。text フィールドに実行時の文脈(アラート本文や失敗ログ)を渡せる。
| |
トークンは生成時に一度だけ表示され、後から取得できない。アラートツールのシークレットストアに即保存しておく。
作り方は web UI か /schedule
作成場所は claude.ai/code/routines、Desktop アプリ、CLI の3つ。どれも同じクラウドアカウントに書き込むので、片方で作れば即座に他方にも出る。Desktop で作るときは Remote を選ぶ(Local を選ぶとローカル実行のスケジュールタスクになる)。
CLI からは自然言語で書ける。
| |
ただし CLI の /schedule が作れるのはスケジュールトリガーだけ。API と GitHub トリガーは web UI で追加する。/schedule list /schedule update /schedule run で既存ルーチンの確認・編集・即時実行もできる。
対応プランは Pro・Max・Team・Enterprise で、いずれも Claude Code on the web が有効なこと。
GA4週次レポートを載せ替えられるか
うちでは GA4 の週次レポートを毎週月曜9時に cron で回して Telegram に流している。これを Routines に置けるか、というのが今回の本題だった。
結論から言うと、置ける。やるならこうなる。
- レポート生成スクリプトをリポジトリにコミットしておく
- スケジュールトリガーを weekly に設定
- GA4 のサービスアカウント鍵を環境の環境変数に入れる
- ネットワークを Custom にして
analyticsdata.googleapis.comとapi.telegram.orgを Allowed domains に足す
ここがハマりどころで、デフォルト環境のネットワークは Trusted。パッケージレジストリやクラウドプロバイダAPI、よくある開発系ドメインは通るが、それ以外は 403 と x-deny-reason: host_not_allowed で落ちる。GA4 API も Telegram もデフォルト許可リストには入っていないので、自分で足す必要がある。MCP コネクタ経由の通信は Anthropic のサーバーを通るので、Slack や Linear に流すならドメイン追加は要らない。
ただ、固定スクリプトを定時で回すだけなら、正直 GitHub Actions の cron のままで十分だ。Routines が効いてくるのは「数値を集計する」だけでなく「数値を読んで先週との差分にコメントを付ける」「異常な落ち込みがあればその記事を特定して原因を推測する」みたいに、Claude の判断を挟みたいとき。スクリプトの実行係としてではなく、エージェントとして使うなら載せ替える価値がある。
制限とハマりどころ
- リサーチプレビュー:
/fireはexperimental-cc-routine-2026-04-01のベータヘッダ下にあり、リクエスト/レスポンス形状やレート制限が変わりうる。 - 1日の実行上限:サブスク使用量とは別に、アカウントごとに1日に起動できる回数の上限がある。上限に当たると、使用クレジットを有効にしていなければ追加実行は拒否される。なお1回限りの単発実行はこの日次上限にカウントされない。
- 緑のステータス=成功ではない:実行リストの緑は「セッションがインフラエラーなく起動・終了した」だけの意味。プロンプトのタスクが成功したかは別で、ブロックされた通信やコネクタ不足はステータスに出ず、実行を開いて初めて分かる。
/scheduleが Unknown command になる:ANTHROPIC_API_KEYなどが環境にあって claude.ai ログインより優先されている、DISABLE_TELEMETRY系が立っている、CLI が v2.1.81 より古い、のいずれか。Routines は claude.ai サブスクログインが前提で、Console API キーや Bedrock/Vertex 認証では使えない。
使い分け
/loop:開いている CLI セッションの中で繰り返す。手元で見ていたいとき。- Desktop スケジュールタスク:ローカル実行。ローカルファイルに触りたいとき。PCが起きている必要がある。
- Routines:クラウド実行。マシンを閉じても動く。GitHub での出来事や外部からの呼び出し(webhook=何かが起きたら自動で飛ぶ通知)で起動したいとき。
- GitHub Actions:判断のいらない固定処理を CI で回すだけならこれで足りる。
クラウドで自律的に動かしたい、しかも Claude の判断を挟みたい、という条件がそろったときが Routines の出番だ。
参考
この記事は Claude Code(Opus 4.8)が執筆しました。
