#06

繰り返し作業を自動化する

上級

Headlessモードとコマンドラインでの無人実行を学び、定期的な作業の自動化を実現します。

座学

この講座で学べること

  • -pオプションでClaude Codeを非対話的に1行で実行できることを理解する
  • --output-format jsonで出力をJSON形式にして他ツールと連携する方法を習得する
  • cronやタスクスケジューラと組み合わせた定期実行の設計方法を知る
  • 自分の業務で定型化できる作業を1つ特定してヘッドレス化を検討できる

Claude Codeのヘッドレスモード(`-p` オプション)を使うと、対話なしに1行のコマンドでClaude Codeにタスクを実行させられます。OSのタスクスケジューラ(Windows)やcron(Mac)と組み合わせると「毎朝9時に前日の作業ログを集計してレポートを作る」「毎週月曜に週次計画ファイルを自動生成する」といった完全自動化が実現できます。

ヘッドレスモードに向いている作業は「毎回同じ手順で実行できる定型作業」です。具体的には、毎日のレポート生成・定期的なファイル整理・決まったフォーマットへの変換・ログの集計・定型メールの下書き作成などが挙げられます。CLAUDE.mdやSkillsと組み合わせることで、より精度の高い出力を安定して得られます。

一方、ヘッドレスモードに向かない作業もあります。毎回内容が変わるクリエイティブな作業・人間の判断が必要な意思決定・重要なファイルの削除・途中で確認が必要な作業などです。自動化する前に「本当に毎回同じ手順でいいか?失敗したときのリスクは何か?」を確認してから設定しましょう。

`--output-format json` オプションを使うと出力をJSON形式に変換できます。他のシェルスクリプトやPythonスクリプトとパイプでつなぎやすくなるため、「Claude Codeで生成した内容を別ツールで処理する」ワークフローに役立ちます。また `--model` オプションでモデルを指定すれば、コスト最適化もできます(定型作業はHaiku、精度重視はSonnetなど)。

Headlessモードの仕組み

👤

コマンドを実行

claude -p "タスク"

🤖

Claude Codeが自動実行

画面操作なし・無人

📄

結果が出力される

テキスト or JSON

# 実行例

claude -p "今日の日付を含むメモファイルを作成してください" \

--output-format text

自動化に向いている作業・向いていない作業

✅ 向いている作業

  • 毎日のレポート生成
  • 定期的なファイル整理
  • 決まったフォーマットへの変換
  • ログの集計・サマリー作成

❌ 向いていない作業

  • 毎回内容が変わるクリエイティブな作業
  • 人間の判断が必要な意思決定
  • 重要なファイルの削除・変更
  • 対話が必要な作業
`--output-format json` オプションで出力をJSON形式にできます。他のスクリプトと組み合わせるときに便利です。

実践手順

ヘッドレスモードで基本実行を試す

-p オプションでClaude Codeを非対話的に実行します。

zsh
claude -p "今日の日付を教えてください"

出力形式を指定して実行する

JSON形式で出力することで、他のツールと連携しやすくなります。

zsh
claude -p "今日のTODOリストを3つ提案してください" --output-format json

定期実行の設定を検討する

Windowsはタスクスケジューラ、Macはcronを使って定期実行を設定できます。

zsh
# Mac: cronで毎朝9時に実行する例
0 9 * * * claude -p "今日のデイリーレポートを生成してwork/daily.mdに保存してください"

確認チェック

講座を終える前に、以下の項目を確認しましょう。

よくある質問

Q. claude -p を実行したら認証エラーが出ます

A. ヘッドレスモードでも認証は必要です。まず通常の `claude` コマンドを実行してログイン状態にしてから `claude -p` を実行してください。一度ログインすると認証情報がキャッシュされ、その後はヘッドレスモードでも動作します。

Q. cronで設定したのに自動実行されません

A. cronはフルパスでコマンドを指定する必要があります。`which claude` でclaudeコマンドのフルパスを確認してから設定してください。またcronはシェル設定(.zshrcなど)を読み込まないためPATHが通っていないことが多く、cronファイルの先頭に `PATH=/usr/local/bin:/usr/bin:/bin` を追記するのが定番の対処です。

Q. ヘッドレスモードでCLAUDE.mdは読み込まれますか?

A. はい、読み込まれます。`claude -p` を実行したフォルダのCLAUDE.mdが自動で読み込まれます。定期実行スクリプトはCLAUDE.mdがあるプロジェクトフォルダへcdしてから `claude -p` を実行するように設定してください。

関連講座

「確認チェック」の全項目にチェックを入れると完了できます