Claude CodeをCLIで日常的に使っていて、深夜PRレビューや週次レポートといった繰り返し作業をAnthropicクラウド側に任せたい人向け
OSSの自分のGitHubプロジェクトで毎週月曜朝に先週マージされたPRをまとめさせる、副業の週次レポート草案を日曜夜に作らせる、機能スイッチを2週間後に1回だけ片付けさせる、といった「ノートパソコンを閉じてても走り続けてほしい繰り返し作業」をCLIから組みたい場面で叩く。<code>/loop</code>と違ってクラウドで動くので電源を切ってても進む
「毎週月曜の朝9時にこの作業をやっておいてほしい」をAnthropicのクラウド側に任せるためのコマンドです。CLIで叩くと、Claude Codeに対話で要件を渡して「ルーティン」を1個作って、自分のアカウントに保存できます。
保存したルーティンはAnthropic側のサーバーで動くので、ノートパソコンを閉じてても、電源を切ってても、指定した時刻になれば勝手に走ります。私のメインの使い道はOSS運用で、毎週月曜の朝9時に「先週マージされたPRをまとめてリリースノート草案を書いて」を自動で叩かせる、みたいな感じです。
噛み砕くと
イメージは「Anthropic側の倉庫にバイトさんを1人雇って、毎週月曜9時にこの紙を見て動いて、と渡す」のに近いです。雇い主の自分が寝てても、出張で家にいなくても、月曜9時になれば倉庫のバイトさんは出勤して紙の通りに動きます。
ただし倉庫にあるのは、毎回GitHubから新しく取り直したプロジェクトのファイル一式だけ。自分のノートパソコンの中身は見えません。だから「ローカルのcredentials.jsonを読んで」みたいな指示は無理。読ませたいものはGitHubに上がっている必要があります。
大事な前提:これはクラウド側で走る別物。手元の/loopとは住所が違う
Claude Codeにはスケジュール系のやり方が大きく3つあります。/scheduleはその中の1つで、Anthropicのクラウドで動くタイプ。間違って覚えると「/loopでやればよかったのに/scheduleを使ってローカルファイル読めなくて詰む」みたいな事故が起きるので、最初に3者の違いを頭に入れます。
| 項目 | /schedule(クラウド) | Desktop scheduled tasks | /loop |
|---|---|---|---|
| 動く場所 | Anthropicのサーバー | 自分のパソコン | 自分のパソコン |
| パソコンの電源 | 切ってても動く | ついてる必要あり | ついてる必要あり |
| Claude Codeを開いている必要 | 不要 | 不要 | 必要 |
| ローカルファイル | 見えない(毎回新しく取り直す) | 見える | 見える |
| 最短の実行間隔 | 1時間 | 1分 | 1分 |
「自分のMacの中の家計簿アプリを毎日いじってほしい」みたいなのは/scheduleでは無理で、Desktopの方を使う話。逆に「いま開いてる作業セッションの中で、5分おきにビルドの状況を見ておいて」は/loop。今回扱う/scheduleは「自分が寝ても出張行っても、毎週月曜9時に走り続けてほしい」用です。
「OSSの自分のプロジェクトで、毎週月曜9時にPR要約とリリースノート草案を出す」を実演する
題材はGitHubに置いてある自分のOSSのプロジェクト。仮にclaudia-sample-repoとします。毎週月曜の朝9時に、先週マージされたPRを全部読んで要約させて、簡単なリリースノートの草案までドラフトしてもらう、というルーティンを/scheduleで組みます。
ステップ1: Claude Codeのセッションを1つ開いて/scheduleを叩く
普通にclaudeでセッションを起動し、自然言語で要件を渡します。コマンドの後ろに何も書かず対話形式で組み立てる手もありますが、最初から1行で要件を渡す方が早いです。
$ claude
> /schedule every Monday at 9am, summarize last week's merged PRs in claudia-sample-repo and draft a release note
Claudeが「ルーティンを作りますね」と言いながら、これからどんな確認をしていくかを案内してくれます。
ステップ2: GitHub連携の有無を確認される(初回だけ)
このアカウントでまだ/scheduleを使ったことがなかったら、GitHub連携が済んでいないと指摘されて、/web-setupを叩いてくれと案内されます。指示に従って/web-setupを実行し、ブラウザで対象プロジェクトへのアクセスを許可します。
> GitHub access is required for /schedule routines.
> Run /web-setup to connect your GitHub account.
ここで初心者が勘違いしがちな点。/web-setupはGitHubからファイルを取ってくる用の認証だけを足すコマンドで、後で出てくる「GitHubのイベントで起動する仕掛け」とは別物です。/web-setupを済ませてもGitHubイベント起動は付かない。これはWebの画面でClaude GitHub Appを別途インストールする話です。
ステップ3: 対象プロジェクト・実行環境・コネクタを確認される
Claudeが順番に聞いてきます。「どのプロジェクトを対象にしますか」「実行環境はどれを使いますか」「Slackなどのコネクタはどれを含めますか」。今回はclaudia-sample-repoだけ指定、環境はDefault、コネクタは外部に投稿しないので全部外しました。
> Repositories: claudia-sample-repo (default branch: main)
> Environment: Default (Trusted network access)
> Connectors: none
> OK?
ステップ4: 走る時刻を確認される
「every Monday at 9am」と書いたので、Claudeが自分のローカル時刻を基準に解釈して、世界共通時刻に変換した結果を見せてきます。日本時間で月曜9時を指定したら、内部では日曜0時UTCを意味する、という具合。
> Schedule: Every Monday at 09:00 (Asia/Tokyo)
> Stagger: routine will fire a few minutes after 09:00 to avoid traffic spikes
> Save?
「stagger」というのは、Anthropic側で全ユーザーが同じ時刻にドカッと走り始めないように、ルーティンごとに固定の数分ずらしを入れる仕組み。月曜9時きっかりではなく9時数分過ぎに走り始めることがある、ということ。きっかり9時に動くと思って業務に組み込むと外します。
ステップ5: /schedule listで確認して/schedule runで即時テストする
保存できたら、まず一覧を見て、想定通りに登録されているか確認します。
> /schedule list
続けて、月曜まで待たずに動作確認したいので、即時実行を1回だけ叩いておきます。
> /schedule run
これが地味に大事。一発目で「フレッシュに取り直した状態だけだとプロンプトの情報が足りない」「Slackコネクタを外したらPR要約の投げ先が無くなって出力先が消えた」みたいな抜けが発覚することが多い。月曜の朝に黙って動いて「何も結果がない」状態にならないよう、ここで必ず1回試走させます。
ステップ6: 不満があれば/schedule updateで直す
プロンプトの修正・cron式の差し替え・対象プロジェクトの追加は、全部CLIから/schedule updateで対話的にできます。
> /schedule update
> Which routine? > weekly-pr-summary
> What to change? > prompt
ちなみに「2時間ごと」みたいなプリセットにない頻度を組みたい時は、最初にWebフォームかCLIの対話で一番近いプリセット例えばhourlyを選んでおいて、後から/schedule updateでcron式を直接書く流れになります。ここで設定できる最短は1時間で、1時間より短い間隔のcron式は弾かれます。「30分ごと」をどうしてもやりたかったら/loopかDesktop側の話。
つまり/scheduleは何をしてくれるのか
- やってくれる: クラウド側に「毎週月曜9時に動くClaude Code作業セット」を1個保存して、こちらの電源状態に関係なく走らせ続ける
- やってくれる: 自然言語で「明日の朝9時に昨日マージされたPRをまとめて」と渡せば、その一回だけ走る予約も組める
- やってくれる: 既存ルーティンの一覧表示
/schedule list、編集/schedule update、即時実行/schedule runの管理操作 - やってくれない: GitHubイベント例えばPRが開いたら走る・Releaseで走るなどや、HTTPで叩いて起動するAPI起動の追加。これはWebの
claude.ai/code/routinesでしか組めない - やってくれない: ローカルパソコンのファイルへのアクセス。毎回GitHubから取り直したものしか見えないので、ローカルだけにあるファイルは参照不可
- 意味が薄い場面: 30分おきにビルドを見張る、みたいな1時間より短い間隔の用途。最短1時間制限に引っかかるので、
/loopかDesktopの方を使う
使いどころ3シナリオ(具体題材で再現)
シナリオ1: OSS運用で「毎週月曜朝にリリースノート草案を準備しておきたい」とき
今回の実演そのまま。claudia-sample-repoで先週マージされたPRをgit logとGitHub APIで拾わせて、変更内容ごとにグループ分けして、Markdownのリリースノート草案までドラフトさせます。月曜9時にClaude.aiの自分のセッション一覧に新しい走行結果が増えているので、確認して微修正、必要ならPR化、というルーティン。これを手動でやると毎週20分くらい吸われるので、初回の組み立てだけ頑張ればあとは寝てる間に出てくる感じになります。
シナリオ2: 副業で受けてる週次レポート案件で「日曜夜に翌週分の素案を作っておきたい」とき
クライアントのGitHubプロジェクトを対象に、日曜21時に「先週の変更履歴と、自分のメモ用プロジェクトにあるweekly-report-template.mdを読んで、今週分のレポート草案を書いて」を組みます。月曜朝に出社してClaude.aiを開くと、たたき台ができている。受託先に提出するのは自分の責任なので、ルーティンに最終投稿までやらせず「ドラフトだけ作る」で止めるのが安全。コネクタは外しておきます。
シナリオ3: 「2週間後にこの機能スイッチを片付けたい」をその場で予約しておきたいとき
これは一回限り実行の使い方。新機能のローンチ前に「ローンチして2週間後、もう問題なさそうならFEATURE_NEW_UIの機能スイッチを消すPRを開いて」をその場で予約します。
> /schedule in 2 weeks, open a cleanup PR that removes the FEATURE_NEW_UI flag in claudia-sample-repo
Claudeが「2週間後の具体的な日時はXXXXです。よろしいですか」と確認してくれて、その時刻に1回だけ走って終わり。終わったルーティンは自動で「Ran」のマークがついて、勝手に止まります。一回限り実行は日次のルーティン回数制限には数えられないので、こういう「未来の自分への置き手紙」用に気軽に使えます。
初心者が踏みやすい落とし穴
/loopと混同する。/loopはClaude Codeを開いてる間だけ走るローカルの繰り返しで、最短1分。/scheduleはクラウドで走るルーティンで、最短1時間でローカルファイルは見えない。「Claude Codeを閉じても走り続けてほしいか」が分かれ目- ローカルファイルが見えると思い込む。ルーティンは毎回GitHubから取り直すので、自分のMacの中だけにあるファイルや、GitHubに上がっていないファイルは参照できない。読ませたい情報はGitHub側に保存しておく必要がある
- 30分間隔とか15分間隔を組もうとして弾かれる。クラウド側の最短間隔は1時間で、これより短いcron式は拒否される。短い間隔が必要なら
/loopかDesktop scheduled tasksに切り替える - GitHubイベントで起動するルーティンをCLIで組もうとする。
/scheduleはスケジュール起動のルーティンしか作れない。「PRが開いたら走る」「リリースで走る」みたいな起動条件や、HTTPで叩いて起動するAPI起動は、Webのclaude.ai/code/routinesで既存ルーティンを編集して追加する - 9時きっかりに動くと思い込む。Anthropic側で全ユーザーが一斉に走らないようstaggerが入っていて、9時数分過ぎに走り始めることがある。後続業務に組み込むなら「9時15分には結果が出てる前提」くらいの余裕で予定を組む
- 会社のアカウントだとそもそも禁止されている場合がある。Team/Enterpriseプランの管理者が組織全体で
Routinesをオフにしていると、/scheduleを叩いても「Routines are disabled by your organization's policy」で蹴られる。これはローカル設定では上書きできないので、管理者に依頼する話になる - 個人アカウント単位で、チーム共有はされない。自分が作ったルーティンは自分のClaude.aiアカウントだけに紐づく。チームメイトに共有はされず、自分のアカウントの日次ルーティン実行枠を消費する。「共有のCI的なもの」と勘違いしてチームの自動化を載せると見えなくなる
- research preview扱い。仕様・上限・APIは変わる可能性がある。本番運用に組み込む時は、変わったら作り直す前提でドキュメントを残しておく方が安全
書き方
/schedule
/schedule <自然言語で書いた要件>
/schedule list
/schedule update
/schedule run
やってみるとこうなる
入力
/schedule every Monday at 9am, summarize last week's merged PRs in claudia-sample-repo and draft a release note
出力例
> Schedule: Every Monday at 09:00 (Asia/Tokyo)
> Repositories: claudia-sample-repo (default branch: main)
> Environment: Default (Trusted network access)
> Connectors: none
> Stagger: routine will fire a few minutes after 09:00 to avoid traffic spikes
> Save? (y/n)
このページに出てきた言葉
- ルーティン
- Anthropicが提供する「決まった時刻に勝手に走るClaude Code作業セット」の名前。プロンプト・対象プロジェクト・実行環境・走らせるタイミングをまとめて1個に固めたもの
- cron式
- 「いつ走らせるか」を5つの数字で表現する古くからある書き方。<code>0 9 * * 1</code>で「毎週月曜の朝9時0分」を意味する。<code>/schedule</code>では1時間より短い間隔は弾かれる
- stagger
- 全ユーザーが同じ時刻に一斉に動かないよう、ルーティンごとに固定の数分ずらしを入れるAnthropic側の仕掛け。指定した時刻きっかりではなく数分過ぎに走り始めることがある
- コネクタ
- Claude.ai側に登録できる外部サービスとの接続。Slack、Linear、Google Driveなど。ルーティンに含めるとそのサービスへ読み書きできるようになる
- /web-setup
- Claude CodeにGitHub読み書き権限を許可するためのコマンド。ルーティンの初回作成時にGitHub未連携だと案内される。これはGitHubからファイルを取ってくる用の認証だけで、GitHubイベントでルーティンを起動する仕掛けは別操作
- fresh clone
- GitHubに置いてあるプロジェクト一式を毎回まっさらな状態で取り直すこと。<code>/schedule</code>のルーティンは毎回これをやるので、ローカルだけにあるファイルは見えない
- research preview
- Anthropicが「試験提供中」を意味する呼び方。仕様・上限・APIは変更される可能性があるので、本番運用に組む時は変更前提でドキュメントを残す方が安全