3行でいうと
- 人がいない場所で動かす道は、大きく4つです。コマンド1回で終わる
claude -p、プログラムに組み込むAgent SDK、GitHubの出来事で動くGitHub Actions、時刻やAPI呼び出しで動くroutines(と、手元で動く類似の機能)です。 - どの道でも「承認する人がいない」ことが前提になります。何を自動で許可するか(
--allowedTools、--permission-mode)、何回まで・いくらまで動かすか(--max-turns、--max-budget-usd)を、実行する側が先に決めます。 - 定期実行は、動く場所で選びます。パソコンが止まっていても動かすならクラウドのroutines、手元のファイルが要るならDesktopの予定タスク、作業中の見張りなら
/loopです。routinesは、公式が「research preview」と表示しています。
この記事は、実際に使って確かめた記録ではありません。運営者はClaude Codeを入れていますが、使い心地はこの記事には書いていません。この記事は、2026年10月16日に公式ドキュメントを読んでまとめたものです。コマンドとフラグの名前は、公式ページに書かれているとおりに写しました。バージョン条件や上限の数字は、変わることがあります。
先に結論
- まず
claude -p。 画面を使わず、質問を1つ渡して答えを受け取る道です。ほかの3つの土台でもあります。公式は、Agent SDKの「CLI版」と位置づけています。 - プログラムの中に入れるなら、Agent SDK。 PythonとTypeScriptのパッケージが用意され、承認のやり取りや結果のデータを、コードで扱えます。
- GitHubの中で動かすなら、GitHub Actions。
@claudeとコメントすると反応する形と、決まったプロンプトを実行する形があります。 - 決まった時刻に動かすなら、置き場所で選ぶ。 クラウド、Desktop、
/loopの3つがあり、パソコンの電源、ローカルファイルの要否、最短間隔が違います。
前提:言葉をそろえる
- 非対話(ひたいわ)モード:人が途中で答えず、1回の依頼で最後まで走って終わる実行のしかたです。
-p(--printの短縮形)を付けます。 - ヘッドレス:画面や人の操作なしで動くことです。公式のページ名は「Run Claude Code programmatically」です。
- 承認(パーミッション):ファイルの編集やコマンドの実行の前に、Claude Codeが人に許可を求める仕組みです。自動化では、聞く相手がいないので、事前のルールで決めます。
- CI:コードの変更のたびに、テストなどを自動で走らせる仕組みです。
道1:claude -p(コマンド1回で完結)
公式の例は、次の形です。
claude -p "Find and fix the bug in auth.py" --allowedTools "Read,Edit,Bash"
成功すると終了コード0、失敗すると0以外で終わるので、スクリプトで分岐できます。標準入力から文章を流し込むこともできます(公式の例は、ビルドのログを渡して原因を説明させる形です)。標準入力の上限は10MBで、超えるとエラーで終わります。
出力の形は --output-format で選びます。text(既定)、json、stream-json(1行ずつのJSONで、リアルタイム向け)です。json にすると、結果の文章のほかに、セッションID、使用量、total_cost_usd(費用の推計)が付きます。決まった形のデータが欲しいときは --json-schema を併用し、結果は structured_output の欄に入ります。
前の会話を引き継ぐには --continue(直近)または --resume(IDで指定)を使います。
自動で動かすときの3つのつまみ
- 何を許可するか。
--allowedToolsに、承認なしで使ってよい道具を並べます。"Bash(git diff *)"のように、コマンドの先頭だけを許す書き方があります。--permission-modeで全体の基準も選べます。公式は、dontAsk(承認が要るものはすべて拒否する。固く閉じたCI向け)やacceptEdits(ファイル編集を自動で許す)などを紹介しています。 - 誰も答えられないとき。
--permission-prompts noneを付けると、承認が要る操作は拒否され、Claudeには「承認できる人がいない」と伝わります(v2.1.259以降)。 - どこまで動かすか。
--max-turnsは動作の回数の上限、--max-budget-usdは推計の費用の上限です。どちらも-pのときだけ使えます。費用は手元の推計で、請求と違うことがあり、上限を少し超えることもある、と公式は書いています。
裸モード --bare
--bare を付けると、フック、スキル、プラグイン、MCPサーバー、自動メモリ、CLAUDE.mdを自動では読みません。どの機械でも同じ結果にしたいCIやスクリプト向けで、公式は、スクリプトやSDKの呼び出しにはこのモードを推奨し、将来のリリースで -p の既定になる予定だと書いています。ただし、裸モードはサブスクのログイン(OAuth)を読みません。ANTHROPIC_API_KEY か apiKeyHelper で認証します。
動きの細部(公式のheadlessページ)
- SIGTERMで止めたとき:終了コード143で終わり、途中のターンの結果は記録されません。ターンを終わらせてから止めたいときは、SIGINTか、SDKの
interrupt()を先に使う、とあります。 - バックグラウンドの作業:Claudeが裏で開発サーバーなどを動かしても、
claude -pはバックグラウンドの作業が終わるまで待ちます。待ちが5秒続き、標準エラー出力が端末につながっているときは、「Waiting for background work to finish」で始まる行が標準エラー出力に出ます(jsonやstream-jsonの出力では、標準出力が端末でないときだけ出ます)。既定では、動きのない状態が10分続くと打ち切られます(ただし、メインの会話でClaudeが始めたバックグラウンドのコマンドが動いている間は、この10分では打ち切られず、終了または時間制限まで待ちます。バックグラウンドのサブエージェントとワークフローは、完了まで待ちます)。 - 使えない組み合わせ:
--bgは-pと併用できません。 - ストリーム出力:
--output-format stream-jsonに--verboseと--include-partial-messagesを付けると、トークンごとの出力が流れます。最後の行が結果です。 - スラッシュコマンド:ユーザーが呼ぶスキルとカスタムコマンドは使えます。
/loginのような端末専用の組み込みコマンドは使えません。
道2:Agent SDK(プログラムの中に組み込む)
公式は、Agent SDKを、Claude Codeと同じ道具、エージェントのループ(考える、道具を使う、結果を見る、を繰り返す流れ)、文脈の管理を、PythonとTypeScriptで使えるようにしたもの、と説明しています。パッケージ名は、TypeScriptが @anthropic-ai/claude-agent-sdk、Pythonが claude-agent-sdk です。どちらも、Claude Codeの本体(ネイティブのバイナリ)を同梱するため、多くの環境で別に入れる必要はありません。
認証は、APIキー(ANTHROPIC_API_KEY)が基本で、Bedrock、Agent Platform、Foundryの環境変数でも動かせます。SDKは .env ファイルを自動では読みません。公式の注意として、第三者の開発者が、自分の製品にclaude.aiのログインや使用枠を提供することは、事前の承認がない限り認められていない、とあります。この点は、次の記事(組み込みの考え方)でもう一度扱います。
道3:GitHub Actions
anthropics/claude-code-action は、GitHubのワークフローの中でClaude Codeを動かす公式のアクションです。公式の導入は2通りです。Claude Codeの中で /install-github-app を実行する簡単な設定と、アプリのインストール、秘密情報の登録、ワークフローファイルのコピーを自分で行う手動の設定です。どちらもリポジトリの管理者権限が要ります。
認証に使う秘密情報は、リポジトリのSecretsに ANTHROPIC_API_KEY(APIキー)または CLAUDE_CODE_OAUTH_TOKEN(claude setup-token で作るサブスクのトークン)を登録します。複数のリポジトリで共有するなら、OAuthトークンは作った人のサブスクに結びつくので、APIキーのほうが向く、と公式は書いています。
動き方は2つです。ワークフローに prompt を書かなければ、@claude という呼びかけに反応する「対話モード」です。prompt を書くと、呼びかけを待たず、GitHubの出来事(コメント、PR、schedule のcronなど)で動く「自動化モード」になります。公式の例は、anthropics/claude-code-action@v1 を使い、claude_args でCLIの引数(--max-turns、--model、--allowedTools など)を渡す形です。
誰でも起動できるわけではありません。公式は、実行の前に2つの確認を挙げています。Issueとプルリクエストのイベントでは、起動した人にリポジトリの書き込み権限があること(schedule のように人が起こさないイベントでは、この確認は省かれます)、起動した主体が人間であること(ボットは allowed_bots に載せない限り拒否される)です。
クラウド経由(Bedrock、Agent Platform、Foundry)でも動かせ、その場合は use_bedrock: "true" のような入力と、OIDC(ワークフローごとに短命の証明書を発行する仕組み)で認証し、長期の鍵をリポジトリに置かずに済みます。GitLab CI/CDにも同様の連携があり、公式は、こちらはベータ版で、GitLabが保守している、と書いています。
費用は2種類です。GitHubの実行時間と、APIのトークンです。公式は、--max-turns やワークフローのタイムアウト、同時実行の制限で抑えるよう勧めています。
道4:決まった時刻に動かす(3つの選択肢)
公式は、定期実行の選択肢を、次の表で比べています。
| クラウド(routines) | Desktop(予定タスク) | /loop |
|
|---|---|---|---|
| 動く場所 | Anthropicのクラウド(既定) | 自分のパソコン | 自分のパソコン |
| パソコンの電源 | 不要 | 必要 | 必要 |
| 開いたセッション | 不要 | 不要 | 必要 |
| 手元のファイル | 触れない(毎回新しく複製) | 触れる | 触れる |
| 承認の確認 | なし(自律的に動く) | タスクごとに設定 | セッションを引き継ぐ |
| 最短の間隔 | 1時間 | 1分 | 1分 |
routinesは、プロンプト、1つ以上のリポジトリ、コネクタ(外部サービスとのつなぎ)をまとめて保存し、自動で走らせる仕組みです。契機(トリガー)は3種類で、スケジュール、API(専用のURLにベアラートークン付きでPOSTする)、GitHubの出来事(PRやリリースなど)です。Pro、Max、Team、Enterpriseのプランで使え、claude.ai/code/routines またはCLIの /schedule で作ります。公式のページには、routinesは「research preview」で、動作、上限、APIが変わることがある、と表示されています。
/loop は、開いているセッションの中で、プロンプトを繰り返します。たとえば /loop 5m check the deploy のように間隔を付けます。セッションにひもづき、繰り返しの予定は作成から7日で自動的に消えます。
routinesの上限と注意(公式のroutinesページ、10月16日時点の表示)
- 実行回数の上限:スケジュール実行は、アカウントごとに1時間あたり100回です。「Run now」とAPI呼び出しは、routineごとに1時間あたり30回までです。上限を超えた操作の扱いは、種類で違います。
- 自律的に動く:権限モードを選べず、シェルコマンドの実行や、含めたコネクタの書き込みを、承認なしで行います。公式は、リポジトリ、環境のネットワーク、コネクタを、必要なものだけに絞るよう書いています。
- 自分の名前で動く:routinesはあなたの個人アカウントのもので、チームには共有されません。コミットやPRはあなたのGitHubのユーザーとして残ります。
- ブランチ:Claudeは、プロンプトで別のブランチを指示しない限り、
claude/で始まる名前のブランチに変更を置きます。 - 成功の表示:実行一覧の緑色は、セッションが始まって異常なく終わったことを示すだけで、依頼した作業が成功したことは意味しません、と公式は書いています。
- APIの呼び出し:
/fireのURLは、ベータ用のヘッダーexperimental-cc-routine-2026-04-01が必要で、中身が変わることがあると書かれています。 - 条件:
/scheduleは、claude.aiのサブスクのログインが必要です。APIキーやクラウド経由では使えません。
使い方の見立て(ここからは僕らの見立てです)
- 「1回の質問を自動化」なら
claude -pから。小さく始められ、承認の範囲も手元で決められます。公式がこの順番を勧めているわけではありません。 - GitHubに作業が集まっているなら、GitHub Actionsを先に。呼びかけの入口と履歴がGitHub側に残ります。
- 作業の中身が自社のサービスや社内データに触れるなら、routinesのコネクタの範囲を最初に絞る。ここは公式の注意から導いた僕らの整理です。
気をつけること
- この記事は、実際に使って確かめた記録ではありません。運営者はClaude Codeを入れていますが、使い心地はこの記事には書いていません。公式ドキュメントを読んだ範囲です。
- 信頼していないフォルダで
-pを動かす危険。 公式の権限のページによると、claude -pとSDKは、フォルダの信頼を確認するダイアログを出しません。--bareなしでは、そのフォルダの設定ファイルにあるフック、.mcp.jsonのMCPサーバーが、確認なしで動きます。他人が書いたリポジトリでは、--bareや--setting-sources userなどで読み込みを絞るよう、公式が勧めています。 - 費用の数字(
total_cost_usd、--max-budget-usd)は手元の推計で、請求の根拠にはなりません。請求はConsoleなどで確かめます。 - バージョン条件(例:
--permission-promptsはv2.1.259以降)や上限の数字は、2026年10月16日の公式の記載です。routinesの機能や上限は、公式が変わることがあると書いています。 - GitLab CI/CDは、公式の説明の範囲だけ触れました。細かい設定は読んでいません。
- 料金の金額は、変わりやすいので書いていません。
- 取得したページは、WebFetchが返したページ本文を読んだものです。長い引用はせず、言い換えています。
出典
- Run Claude Code programmatically(Claude Code Docs、10月16日確認)
- CLI reference(Claude Code Docs、10月16日確認)
- Claude Code GitHub Actions(Claude Code Docs、10月16日確認)
- Automate work with routines(Claude Code Docs、10月16日確認)
- Run prompts on a schedule(Claude Code Docs、10月16日確認)
- Agent SDK overview(Claude Code Docs、10月16日確認)
- Agent SDK quickstart(Claude Code Docs、10月16日確認)
- Claude Code GitLab CI/CD(Claude Code Docs、10月16日確認)
- Configure permissions(Claude Code Docs、10月16日確認)