概要
scheduled task は、指定した時刻と頻度で新しいセッションを自動的に開始する。日次のコードレビュー、依存関係の更新確認、カレンダーや受信箱をまとめる朝のブリーフィングのような繰り返し作業に使う。
Desktop の Routines ページからは、ローカルの scheduled task とリモートの routine の両方を作れる。ローカルのタスクは自分のマシンで動き、ファイルとツールに直接アクセスできるが、アプリが開いていてコンピュータが起きている間しか発火しない。 リモートの routine はコンピュータが落ちていてもクラウドで動き、API 呼び出しや GitHub イベントでも発火する。
仕様
3 つのスケジューリング手段の比較
| Cloud(routines) | Desktop(scheduled tasks) | /loop | |
|---|---|---|---|
| 実行場所 | 既定では Anthropic 管理のクラウド | 自分のマシン | 自分のマシン |
| マシンの起動が必要 | 不要 | 必要 | 必要 |
| セッションを開いておく必要 | 不要 | 不要 | 必要 |
| 再起動をまたぐ | する | する | 期限内なら --resume で復元 |
| ローカルファイルへのアクセス | 無い(新しい clone) | ある | ある |
| MCP サーバー | タスクごとに connector を設定 | 設定ファイルと connector | セッションから継承 |
| permission prompt | 無い(自律実行) | タスクごとに設定できる | セッションから継承 |
| スケジュールの自由度 | CLI の /schedule 経由 | あり | あり |
| 最短間隔 | 1 時間 | 1 分 | 1 分 |
作成
- Claude Desktop 1.1.5368 より前ではローカルの scheduled task を利用できない
- Code タブのサイドバーで Routines → New routine → Local。サイドバーに Routines が無い場合はアプリを更新し、組織のポリシーで routines が無効化されていないか確認する
| フィールド | 内容 |
|---|---|
| Name | タスクの識別子。小文字の kebab-case に変換され、ディスク上のフォルダ名になる。 タスク間で一意である必要がある |
| Description | 一覧に表示される短い要約 |
| Instructions | 実行時に Claude がすること。プロンプトボックスに書くのと同じ書き方をする。permission mode とモデルのピッカーを含み、その下で作業フォルダと隔離した worktree で動かすかを選ぶ |
| Schedule | 実行の頻度 |
- 保存にはフォルダの指定が必須。 未信頼のフォルダなら、保存前に信頼するかを尋ねられる
- 任意のセッションで言葉にしても作れる。「毎朝 9 時に走る日次コードレビューを設定して」で繰り返しのタスク、「明日 15 時にデプロイの確認をリマインドして」で発火後に自分を無効化する 1 回限りのタスクになる
スケジュールの選択肢
- Manual: スケジュール無し。Run now でのみ実行する。オンデマンドで叩くプロンプトの保存に使う
- Hourly: 毎時
- Daily: 時刻ピッカー。既定はローカル時刻の 9:00 AM
- Weekdays: Daily と同じで土日を飛ばす
- Weekly: 時刻ピッカーと曜日ピッカー
15 分ごと・毎月 1 日・将来の一度きり、のようにピッカーに無い間隔は、Desktop のセッションで平易な言葉で頼む。
実行のされ方
- アプリが開いている間、Desktop は毎分スケジュールを確認し、期限が来たタスクについて新しいセッションを開始する(手動で開いているセッションとは独立)
- API トラフィックをばらけさせるため、予定時刻の後に数分の遅延が入る。この遅延は決定的で、同じタスクは常に同じオフセットで開始する
- 発火するとデスクトップ通知が出て、サイドバーの Scheduled セクションに新しいセッションが現れる
- Claude は自分で始めたセッションと同じようにファイル編集・コマンド実行・コミット・PR 作成ができる。ただしデスクトップアプリのセッション面を通じたセッション間のメッセージ送受信はできない
- コンピュータがスリープしていた時刻の実行は飛ばされる。 アイドルスリープを防ぐには Settings の Desktop app → General で Keep computer awake を有効にする。ノートを閉じればスリープはする
取りこぼした実行
- アプリの起動時やコンピュータの復帰時に、直近 7 日間に取りこぼした実行がないかを確認する
- あれば、最も新しい取りこぼし 1 回分だけを追いかけて実行し、それより古いものは破棄する。追いかけ実行の開始時には通知が出る
- タスクのプロンプト側にガードを書く。 9 時のつもりのタスクが、一日中スリープしていた結果 23 時に走ることがある
permission
- タスクごとに permission mode を持つ(作成・編集時に設定する)。
~/.claude/settings.jsonの allow ルールも scheduled task のセッションに適用される - Manual モードのタスクが権限の無いツールを使おうとすると、承認するまで実行が止まる。 セッションはサイドバーに残るので後から答えられる
- 止まらないようにするには、作成後に Run now を押し、確認が出たら "always allow" を選ぶ。以後の実行は同じツールを確認なしで承認する。承認はタスクの詳細ページから確認・取り消しできる
- 組織が
askに設定した connector ツールと、requiresUserInteractionが付いた MCP ツールは毎回確認を求め、always-allow を提供しない。 これらを呼ぶ実行は毎回止まる
管理
Code タブの Routines 一覧でタスクをクリックすると詳細ページが開く。
-
Run now: 次の予定を待たずに即時実行する
-
Status: Active / Paused の切り替え。削除せずに停止・再開できる
-
Edit: 指示・スケジュール・フォルダなどを変更する
-
Review history: 過去の実行(飛ばされた実行を含む)を見る。飛ばされた項目にホバーすると理由が出る(コンピュータがスリープしていた、前回の実行がまだ動いていた、他の scheduled task が実行中だった)
-
Review allowed permissions: Always allowed パネルで保存済みのツール承認を確認・取り消す
-
Delete: タスクを削除し、作成したセッションをすべてアーカイブする。確認ダイアログの Also delete files on disk をチェックすると
~/.claude/scheduled-tasks/のSKILL.mdと関連データも消す -
一覧・作成・編集・一時停止は、任意の Desktop セッションで Claude に頼んでもできる。削除だけは詳細ページの Delete ボタンを使う
-
実行中のセッションから
update_scheduled_taskMCP ツールで自分のスケジュールやプロンプトを変更できる。 見つけたものに応じて自分を組み替えられる -
ディスク上のプロンプトは
~/.claude/scheduled-tasks/<task-name>/SKILL.md(CLAUDE_CONFIG_DIRを設定していればその下)。YAML frontmatter のnameとdescription、本文がプロンプト。変更は次回の実行から効く。スケジュール・フォルダ・モデル・有効状態はこのファイルに無い
制約・注意点
- 既定では作業ディレクトリの現在の状態(未コミットの変更を含む)に対して実行される。 各実行に隔離した git worktree を与えるには、作成時に worktree のトグルを有効にする
- アプリが動いていてコンピュータが起きている間しか実行されない。 落ちていても動かしたい、API 呼び出しや GitHub イベントで発火させたい場合はリモートの routine を使う
- 取りこぼしの追いかけは 1 回だけ。 6 日分飛ばした日次タスクは復帰時に 1 回走る
関連
facts/claude-code/desktop.mdfacts/claude-code/desktop-sessions.mdfacts/claude-code/permission-modes.mdfacts/claude-code/mcp.mdfacts/claude-code/settings.mdfacts/claude-code/headless.md