繰り返し作業を自動化する
上級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
自動化に向いている作業・向いていない作業
✅ 向いている作業
- ▶毎日のレポート生成
- ▶定期的なファイル整理
- ▶決まったフォーマットへの変換
- ▶ログの集計・サマリー作成
❌ 向いていない作業
- ▶毎回内容が変わるクリエイティブな作業
- ▶人間の判断が必要な意思決定
- ▶重要なファイルの削除・変更
- ▶対話が必要な作業
実践手順
ヘッドレスモードで基本実行を試す
-p オプションでClaude Codeを非対話的に実行します。
claude -p "今日の日付を教えてください"出力形式を指定して実行する
JSON形式で出力することで、他のツールと連携しやすくなります。
claude -p "今日のTODOリストを3つ提案してください" --output-format json定期実行の設定を検討する
Windowsはタスクスケジューラ、Macはcronを使って定期実行を設定できます。
# 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` を実行するように設定してください。
