Mac launchd × Claude API でブログ記事を自動生成する方法

Mac launchd × Claude API でブログ記事を自動生成する方法 AI・自動化

※本記事にはアフィリエイトリンクが含まれます

毎朝決まった時間にスクリプトを動かしたい時、cron より launchd を使う方が Mac には自然です。結論として、Mac で「毎朝9時に Claude API で原稿を生成して WordPress に下書き投稿する」のような定期処理は、launchd + シェルスクリプトだけで完結します。本記事では、その仕組みを構築する手順を紹介します。

結論: 構成図

毎朝9:00
   ↓ launchd が起動
   ↓
シェルスクリプト
   ├── Claude API で記事生成
   ├── 画像生成(Flux.1 など)
   └── WordPress REST API で下書き投稿
   ↓
Slack / メールで通知

STEP1: シェルスクリプトを書く

~/blog-auto/run.sh を作成:

#!/bin/bash
set -e
cd "$HOME/blog-auto"

# 環境変数読み込み
source .env

# 記事生成(Claude API を curl で呼ぶ)
RESPONSE=$(curl -s https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d "$(cat prompt.json)")

# WordPress に下書き投稿
echo "$RESPONSE" | jq -r '.content[0].text' > article.md
python3 post_to_wp.py article.md

権限を実行可能にします:

chmod +x ~/blog-auto/run.sh

STEP2: launchd の plist を作る

~/Library/LaunchAgents/com.knowkoto.daily.plist を作成:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.knowkoto.daily</string>
  <key>ProgramArguments</key>
  <array>
    <string>/bin/bash</string>
    <string>/Users/your-username/blog-auto/run.sh</string>
  </array>
  <key>StartCalendarInterval</key>
  <dict>
    <key>Hour</key>
    <integer>9</integer>
    <key>Minute</key>
    <integer>0</integer>
  </dict>
  <key>StandardOutPath</key>
  <string>/Users/your-username/blog-auto/log.txt</string>
  <key>StandardErrorPath</key>
  <string>/Users/your-username/blog-auto/error.log</string>
</dict>
</plist>

STEP3: launchd に読み込ませる

launchctl load ~/Library/LaunchAgents/com.knowkoto.daily.plist
launchctl start com.knowkoto.daily   # 動作テスト

解除するには launchctl unload。設定変更時は unload → load の順で。

注意: Mac がスリープしていると動かない

Mac のスリープ中は launchd が起動できません。対策:

  • pmset を使って自動起動: sudo pmset repeat wakeorpoweron MTWRFSU 08:55:00 で毎日 8:55 にスリープ解除
  • Mac mini を24時間稼働: 自宅サーバー化、消費電力 月¥200程度
  • クラウドに移植: GitHub Actions の cron で同じスクリプトを動かす(無料枠で十分)

1記事あたりのコスト

項目 コスト
Claude API(3,000字記事) 約 ¥8〜15
画像生成(Flux.1 schnell) 約 ¥0.5
WordPress REST API 無料
1記事合計 約 ¥10〜20

月30記事生成しても ¥600 以内。サーバー代より安いです。

完全自動公開は危険

「投稿まで自動化」ではなく「下書きまで自動化」がおすすめです。Google の Helpful Content System は、無編集の AI 量産記事を検出して圏外に飛ばします。生成後の5分チェック+人間の手による加筆が、SEO と読者信頼の両方に必須です。

クラウド移行(発展編)

Mac に依存しない構成にするなら:

まとめ

Mac の launchd は、定期処理の最初の選択肢として最適です。サーバーを立てずに、API を組み合わせて毎朝のタスクを自動化できます。本格化したらクラウドに移行する道筋もスムーズです。

合わせて読みたい関連記事

タイトルとURLをコピーしました