Claude Code の自動化とは、人のいない時刻に Claude Code を非対話で起こし、仕事を 1 つ終わらせて閉じる形のことです。
- 時刻で起こす仕組み(OS の cron・launchd、Claude Code の Desktop・クラウドのスケジュール、
/loop)の違いと、向く仕事 - 非対話で起こす 1 行(
claude -p・--output-format・--max-turns・許可の設定)と、cron への書き方 - 起きた席が規則と道具を持っているかを、起動の 1 行目で確かめる手順(当社の時計の便の記録から)
時刻で起こす仕組みは 4 つ:どれも「起きた後」は同じ席
Claude Code を決まった時刻に動かす口は、Claude Code の外にある OS の時計(cron・launchd)と、Claude Code 自身が持つスケジュールの 3 つに分かれます。Claude Code の側は、クラウドで動くスケジュール、手元のマシンで動く Desktop のスケジュール、開いた会話の中で繰り返す /loop の 3 つです(公式のスケジュールの頁・2026-10-26 に見た)。
| 起こし方 | マシンが起きている必要 | 開いた会話が要るか | 道具(MCP)の出どころ | 向く仕事 |
|---|---|---|---|---|
OS の cron・launchd から claude -p を撃つ | ある | 要らない | 起動した作業フォルダの .mcp.json、または --mcp-config | 手元のファイル・手元の道具を使う、時刻の決まった 1 回きりの仕事 |
| Desktop のスケジュール済みタスク | ある | 要らない | 設定ファイルとコネクタ | 手元のファイルを使う定期の仕事を、画面から決めたい時 |
| クラウドのスケジュール(routines) | ない | 要らない | タスクごとに決めたコネクタ | マシンを閉じていても必ず動かしたい仕事(手元のファイルは見えない) |
/loop | ある | 要る | その会話から引き継ぐ | 作業中のデプロイや CI を、開いている間だけ見張る |
出典: https://code.claude.com/docs/ja/scheduled-tasks(2026-10-26 に見た・スケジューリングオプションの比較の表)と https://code.claude.com/docs/ja/headless(2026-10-26 に見た・-p が作業フォルダの .mcp.json に繋ぐこと)。cron・launchd の行は OS の一般の仕組みで、公式の比較の表には載っていません。
/loop は会話を閉じると止まるので、人のいない時刻の仕事には向きません。公式の頁も、無人で動かす時刻の仕事にはクラウドのスケジュール・GitHub Actions・Desktop のスケジュールを使うよう案内しています(公式のスケジュールの頁・2026-10-26 に見た)。この頁では、手元の道具をそのまま使える cron・launchd から claude -p を撃つ形を手順にします。
定期実行の手順:1 行を組み、時刻に掛け、1 行目を測る
手順 1: 非対話で 1 回きり走る 1 行を組む
Claude Code は -p(--print)を付けると、対話の画面を出さずに頼みを 1 回こなして終わります。成功すれば終了コード 0、失敗すれば 0 以外で終わるので、呼んだ側は終了コードで分けられます。認証が無いなど走り出した後の障害は、エラーではなく結果として標準出力に出ます(公式のプログラムで実行する頁・2026-10-26 に見た)。
claude -p "昨日の問い合わせを読み、返事の下書きを reports/ に書いて終える" \
--output-format json \
--max-turns 20 \
--permission-mode acceptEdits \
--allowedTools "Read,Edit,Bash(git status *)" \
--permission-prompts none
| フラグ | 無人の便で効くこと(公式の説明から) |
|---|---|
-p | 対話なしで答えを出して終わる |
--output-format | text(既定)・json(結果・セッション ID・費用などの付いた JSON)・stream-json(1 行ずつの JSON)から選ぶ |
--max-turns | 手番の数に上限を掛け、達したらエラーで終わる。既定では上限なし |
--allowedTools | 名前を挙げた道具を、確かめずに使わせる |
--permission-mode | acceptEdits・auto・dontAsk などで、会話全体の許可の土台を決める |
--permission-prompts none | 答える人がいない便で、確かめが要る呼び出しを待たずに断り、Claude に再試行しないよう伝える |
--bare | hook・スキル・MCP サーバー・CLAUDE.md の読み込みを飛ばして速く起きる。道具は --mcp-config で渡す |
出典: https://code.claude.com/docs/ja/cli-reference と https://code.claude.com/docs/ja/headless(どちらも 2026-10-26 に見た・CLI フラグの表と、ツールの自動承認・無人実行の節)
規則と道具を持たせて起こしたい便では、--bare を付けないか、付けるなら道具を --mcp-config で明示します。--bare を付けない -p は、対話の時と同じく作業フォルダの .claude/settings.json の hook と .mcp.json のサーバーを読みます(公式のプログラムで実行する頁・2026-10-26 に見た)。どのフォルダで起こすかで読まれる決まりが変わる点は、Claude Code の使い方に当社の記録をまとめています。
手順 2: cron・launchd で時刻に掛ける
cron の書式は、分・時・日・月・曜日の 5 つの欄に続けて、撃つ命令を書く一般の形です。平日の朝 6 時に作業フォルダへ移ってから起こすなら、次の 1 行になります。
# 分 時 日 月 曜日 命令
0 6 * * 1-5 cd "$HOME/work/inquiry" && /usr/local/bin/claude -p "…" --output-format json --max-turns 20 --permission-prompts none >> "$HOME/work/inquiry/logs/run.log" 2>&1
先に cd で作業フォルダへ移るのは、そのフォルダの .mcp.json と settings を読ませるためです。cron は端末と違う短い環境で動くので、claude は絶対の道で書き、出力はログに残します。Mac の launchd では、同じ命令を plist の ProgramArguments に置き、時刻を StartCalendarInterval で決めます。どちらも OS の仕組みなので、マシンが眠っていれば起きません。
手順 3: 起きた席が道具を持っているかを、起動の 1 行目で確かめる
ここがこの頁の芯です。--output-format stream-json の流れには、走り出しに system/init という 1 行が出て、使うモデル・道具・MCP サーバーとその状態(mcp_servers の name と status)が載ります。公式の頁も、この欄でサーバーが読み込まれなかったことを見つけて CI を落とす使い方を案内しています(公式のプログラムで実行する頁・2026-10-26 に見た)。
cd "$HOME/work/inquiry"
claude -p "道具の一覧を確かめるだけで終える" \
--output-format stream-json --verbose --max-turns 1 \
| jq 'select(.type == "system" and .subtype == "init") | .mcp_servers'
当社では、便のフォルダを作る時・移す時に、この 1 行目で使う道具が connected と出ているのを測ってから作業を閉じる決まりにしています(社の実測 2026-09-26)。claude mcp list でも確かめようとしましたが、承認待ちと出て、繋がっているかの判定には使えませんでした(社の実測 2026-09-26)。
| 便のフォルダを作る・移す時に見る物 | 無いと起きること |
|---|---|
.mcp.json(どの道具に繋ぐか) | 起きた便が道具を見つけられない |
| それを有効にする settings の 1 行 | 紙は在っても道具が繋がらない |
stream-json の 1 行目の mcp_servers が connected | 上の 2 枚が効いているかを、走らせる前に知れない |
出典: 社の実測 2026-09-26(非対話の便が道具を見つけられずに止まった件と、その後の決まり)
当社の記録:道具の無いフォルダで起きた便は、無音で止まった
非対話で起こす便の作業フォルダに MCP の設定(.mcp.json と、それを有効にする settings の 1 行)が無く、起きた便が道具を見つけられないまま約 30 分無音で止まり、時間切れになりました(社の実測 2026-09-26)。調べると、便の 5 つのフォルダのうち設定を持っていたのは 1 つだけで、その 2 枚を他のフォルダへ写して直しました(社の実測 2026-09-26)。
この時に分かったのは、起こす仕組みは「時刻に起こした」ところまでしか見ていない、ということです。席が規則と道具を持って起きたかは、起きた側の 1 行目を見ないと分かりません。そこで手順 3 の確かめを、フォルダを作る・移す時の締めに入れました。
役の決まった便は「席」で、そうでない便は 1 回きりで起こす
当社は、時刻で起こす便を 2 通りに分けています。役の決まった便(起こした時に役の本文が載る便)は予約で席として起こし、そうでない便は非対話の 1 回きりの起動(claude -p)で回します。予約を一括で非対話へ差し替えることはしません(社の決め 2026-09-29)。役の本文が要る仕事を claude -p の 1 行に押し込むと、上の記録のように、起きた席が何を持っているかが見えにくくなるからです。予約の起こし方そのもの(時刻・条件・合図)は、業務自動化の考え方の頁で分けています。
起こす仕組みの外に、起きた結果を見回る便を置く
時計の便は、止まっても画面を見る人がいません。当社では、定期便の点検の便が時計の便を見回り、9 件の不具合を見つけました(社の実測 2026-10-13)。見つかった不具合は次の種類でした(社の実測 2026-10-13)。
- 動かなかった
- 失敗が続いている
- 止めたまま放置されている
- 仕事が無い日なのに仕事が在る
- 本体のログインが切れている
その中には、道具を 1 度も使わずに認証のエラーで止まる回が 4 回続いた便がありました(社の実測 2026-10-13)。公式の説明どおり、走り出した後の認証の障害はエラーの画面ではなく結果として出るので、起こした側から見ると「起きて、終わった」ように見えます(公式のプログラムで実行する頁・2026-10-26 に見た)。だから、起こす仕組みとは別に、終了コード・結果・道具を使ったかを見回る便を 1 つ置きます。朝の便が起動直後の問いで止まった件は Claude Code のコマンドの頁に書いています。
起こす・確かめる・見回るの 3 つが揃うと、Claude Code は時刻で仕事を終わらせる AIエージェントとして回ります。道具の足し方は Claude Code の MCP、道具を使う前後に必ず走らせたい処理は Claude Code の hooks にまとめています。
よくある質問
Claude Code は定期実行できますか?
できます。手元のマシンなら OS の cron や launchd から claude -p を撃つか、Desktop のスケジュール済みタスクを使います。マシンを閉じていても動かしたい時はクラウドのスケジュールを使います(公式のスケジュールの頁・2026-10-26 に見た)。
Claude Code を cron で動かすには、どう書けばよいですか?
cron の 5 つの欄(分・時・日・月・曜日)の後に、作業フォルダへ cd してから claude -p "頼み" を撃つ命令を書きます。--output-format json と --max-turns を付け、出力はログへ残します。claude は絶対の道で書くと、cron の短い環境でも迷いません。
Claude Code のスケジュール機能と /loop は何が違いますか?
/loop は開いている会話の中で繰り返す物で、会話を閉じると止まります。クラウドと Desktop のスケジュールは会話を開いていなくても動き、再起動の後も残ります(公式のスケジュールの頁・2026-10-26 に見た)。
自動実行の途中で、許可の確かめで止まりませんか?
使う道具を --allowedTools で挙げ、--permission-mode で土台を決めておきます。答える人がいない便では --permission-prompts none を付けると、確かめが要る呼び出しを待たずに断って先へ進みます(公式のプログラムで実行する頁・2026-10-26 に見た)。
定期実行の便で MCP の道具が使えません。
起こした作業フォルダに .mcp.json と、それを有効にする settings が在るかを見ます。当社では、claude -p --output-format stream-json --verbose --max-turns 1 の 1 行目の mcp_servers で道具が connected と出るのを測ってから閉じています(社の実測 2026-09-26)。
出典
- Claude Code 公式「Claude Code をプログラムで実行する」https://code.claude.com/docs/ja/headless(2026-10-26 に見た・
-p・終了コード・--output-format・--bare・system/initのmcp_servers・ツールの自動承認・--permission-prompts none) - Claude Code 公式「CLI リファレンス」https://code.claude.com/docs/ja/cli-reference(2026-10-26 に見た・
--max-turns・--allowedTools・--permission-mode・--mcp-config・--verbose) - Claude Code 公式「スケジュールに従ってプロンプトを実行する」https://code.claude.com/docs/ja/scheduled-tasks(2026-10-26 に見た・クラウド・Desktop・
/loopの比較と、無人で動かす時の案内) - 社の実測 2026-09-26(非対話の便が道具を見つけられずに止まった件・フォルダを作る・移す時の確かめ)
- 社の決め 2026-09-29(時刻で起こす便を 2 通りに分けた)
- 社の実測 2026-10-13(定期便の点検の便が見つけた不具合)