SNSの毎日投稿は、ネタ探しから文章作成まで手作業で行うと膨大な時間を消費し、継続が困難になりがちです。発信テーマの選定、推敲、ハッシュタグ選びなど、たった1つの投稿を形にするだけでも多くの労力が必要となります。
AIアシスタント「Claude」を活用すれば、投稿作成の手間を劇的に削減できます。運用にかかる時間を週数時間から数十分レベルへ圧縮可能です。
自動化の本当のゴールは、単なる時短ではありません。投稿作成による疲弊から解放され、フォロワーとの交流や関係構築に専念できる環境が整います。毎日のネタ探しに追われることなく、ビジネスの企画や分析といった本質的な仕事へ集中していきましょう。
安全で持続可能なシステムを組み上げ、SNS運用の劇的な効率化を実現します。
- 手動運用の限界とClaudeによる効率化
- Typefully MCPを用いた下書き自動作成手順
- tweepyによるスレッド投稿の実装コード
- CLAUDE.mdでの自動化手順と確認UIの設計
- Gemini APIによる画像自動生成と連携方法
- 定時実行の設定・Keychainによる安全なキー管理術
- レート制限回避策と独自の文体を再現するプロンプト
ClaudeでXを自動化するべき理由と2つの手法

専任のSNS担当者がいない環境では、発信の重要性を理解していてもリソース不足から運用が滞りがちです。この課題を解決するためには、Claudeの高度な文章生成能力と外部ツールを連携させた自動化が欠かせません。
APIキー不要で設定が簡単な「Typefully MCP」を利用した手法と、カスタマイズ性が高く無人運用も可能な「X API直接連携」という、特徴の異なる2つのアプローチを解説します。
手動運用における限界と時間的コスト
手作業でのX運用は、「今日は何を書こうか」と悩む精神的な負担に加え、文章の推敲などに1投稿あたり15〜30分もの時間を奪われます。
さらに、担当者のリソースやスケジュールに依存するため、最適な投稿タイミングを逃すリスクや、継続できずに発信が途切れてしまう懸念も生じます。
発信が続かない原因は意志の強さではなく、オペレーションの限界です。手作業に依存する限り、アカウントの成長スピードは鈍化してしまいます。
スキルに応じた2パターンのアプローチ
Claudeを用いた自動化には、プログラミングスキルや目的に合わせて選べる2つのルートが存在します。
| アプローチ | 対象ユーザー | 特徴・メリット |
| Typefully MCP連携 | 非エンジニア 投稿前に確認したい方 | わずか5分で設定完了。 ドラフトのスケジュール管理が容易 |
| X API直接連携 | エンジニア志向 完全自動化したい方 | Cronなどを活用し、ネタ収集から投稿までの完全無人化が可能 |
- Typefullyにおけるドラフト(下書き)の役割と管理メリット
-
Typefullyにおける「ドラフト(下書き)」とは、SNSへ投稿する前に作成される仮の保存データです。
Claudeから自動生成された文章がドラフトとして保存され、カレンダー形式の管理画面に配置されます。
人間が投稿内容の最終的な推敲や投稿スケジュールの微調整を手軽に行えるため、予期せぬ誤投稿や表現のブレを防ぐ安全弁として重宝します。
- Cron(クロン)とは?
-
Cronとは、LinuxやmacOSなどのOSに標準で備わっている自動タスクスケジューラー(定期実行ツール)です。
あらかじめ「毎日朝8時」などのスケジュールを専用の記述(crontab)で設定しておくことで、バックグラウンドで指定した日時にプログラムを自動起動させることができます。
手動でコマンドを実行する手間を完全に省けるため、無人運用を目指すシステム構築に不可欠なツールです。
API不要でClaudeからXの下書きを作る方法

「Xの自動投稿」と聞くと、APIキーの取得や複雑な認証作業を想像して挫折してしまう人も少なくありません。
SNS予約管理ツール「Typefully」が提供する公式MCP(Model Context Protocol)を使えば、難しい技術的ハードルは不要となります。Claude CodeにTypefullyを連携させるだけで、直接管理画面上に投稿ドラフト(下書き)を自動生成し、スケジュールへ組み込めます。
まずは設定に5分もかからない、最も手軽な方法から試していきましょう。
詳細については、以下の見出しで解説します。
Typefully MCPの接続手順
連携のセットアップは非常にシンプルです。
Typefully公式サイトでアカウントを作成します(無料プランで問題ありません)。
次に設定画面を開き、Claudeと連携するための専用「MCP接続URL」をコピーして控えておきます。
PCのターミナルを起動し、以下の追加コマンドを実行しましょう。
Bash
claude mcp add typefully --transport http --url "コピーしたURL"
ターミナルでclaude mcp listと入力し、リストに「typefully」が表示されているか確認してください。
正しく表示されていれば、Claudeが自動的にTypefullyを操作できる状態へ移行します。
下書き生成を依頼する実用プロンプト例
接続完了後は、Claude Codeのチャット画面から指示を出すのみです。例えばブログ更新の告知スレッドを作成したい場合は、以下のプロンプトを活用できます。
以下のブログ記事の要点をまとめ、X向けの3連スレッドにしてTypefullyに下書き保存してください。
・記事タイトル:〇〇
・要点:〇〇、〇〇、〇〇
・条件:カジュアルな口調で。1ツイート目は共感を呼ぶ問題提起、2ツイート目で具体的な解決策、3ツイート目で記事へのリンクとアクションを促す構成にすること。
指示を出すだけで、Claudeが構成を組み立てて管理画面にスレッド形式の下書きを生成します。
あとは管理画面で最終確認し、「スケジュール」を押すだけで予約投稿が完了します。ブラウザを開かずにドラフトが用意されるため、作業効率は劇的に向上していくはずです。
X API直接連携でClaudeとXを繋ぐ自動投稿スクリプト

「投稿内容の最終確認だけは自分の手で行いたい」という人には外部ツール連携が便利ですが、「決まった時間に、完全に無人で自動投稿を回したい」という本格的な運用を目指すなら、X API(v2)との直接連携が欠かせません。
Pythonの「tweepy」ライブラリを活用し、最新のセキュリティ要件であるOAuth 2.0 PKCE認証を用いて、単発のツイートからスレッド投稿までを安全かつ確実に自動投稿する実装手順を解説します。
詳細については、以下の見出しで解説します。
1.X Developer Portalでのアプリ登録
X Developer Portalにアクセスし、新規アプリを登録してください。
アプリの権限設定(App permissions)を開き、デフォルトの「Read」から「Read and Write(書き込み権限)」に変更して保存します。
アプリの「User authentication settings」を有効にし、アプリの種類を「Web App, Automated App or Bot」に指定します。
次に、認証処理で使用する「Callback URI」(例:http://localhost:8080/)を入力して保存してください。
設定完了後に画面へ表示される「Client ID」と「Client Secret」をコピーし、安全な場所に保管します
Pythonスクリプトを実行し、ターミナルに表示されるURLへブラウザでアクセスしてください。
画面の指示に従ってアプリ連携を許可し、リダイレクトされた先のURLをターミナルに入力することで、プログラム用のアクセス権(リフレッシュトークン)を取得できます。
取得したアクセストークンを用いて、Pythonスクリプトから自動投稿を実行します。
スレッド(連投)で投稿する場合は、前回のツイートIDを参照してループ処理を回していきましょう。
2.OAuth 2.0 PKCEでの初回認証
APIキーを取得したからといって、すぐにプログラムから投稿できるわけではありません。
X API v2で「あなた自身のアカウント」としてツイートを送信するには、OAuth 2.0 PKCEという仕組みを使ったユーザー認証(User Context)が求められます。
実行手順は非常に単純です。Pythonスクリプトを実行して一度だけブラウザを開き、画面上でアプリの連携を「許可」する作業のみとなります。結果として、プログラムが代わりに投稿するための「アクセス権(トークン)」を安全に取得・保存できるようになります。
具体的なPythonの認証コード例は以下の通りです。
Python
import tweepy
# クライアントIDとシークレットの設定(Developer Portalから取得)
CLIENT_ID = "YOUR_CLIENT_ID"
CLIENT_SECRET = "YOUR_CLIENT_SECRET"
REDIRECT_URI = "YOUR_CALLBACK_URL"
oauth2_handler = tweepy.OAuth2UserHandler(
client_id=CLIENT_ID,
redirect_uri=REDIRECT_URI,
scope=["tweet.read", "tweet.write", "users.read", "offline.access"],
client_secret=CLIENT_SECRET
)
# 認証URLの発行
auth_url = oauth2_handler.get_authorization_url()
print(f"以下のURLにブラウザでアクセスし、認証後にリダイレクトされたURLを入力してください:\n{auth_url}")
authorization_response = input("リダイレクトされたURLを入力してください: ")
# トークンの取得と保存
access_token = oauth2_handler.fetch_token(authorization_response)
print("トークンの取得に成功しました。")
print(access_token)
この処理を一度実行することで、有効期限の切れない「リフレッシュトークン」を入手できます。
3.tweepyによるツイート・スレッド投稿
認証が完了すれば、あとはPythonから投稿の指示を出すだけです。
複雑な認証周りの処理は「Tweepy」というライブラリが自動で管理してくれるため、コードは非常にシンプルに保てます。
単発のツイートはもちろん、情報量の多い長文を発信したい場合は、一つ前のツイートID(in_reply_to_tweet_id)を参照してループ処理を回すことで、文脈の繋がった「スレッド投稿」も簡単に自動化できます。
以下はスレッド投稿を行うPythonコードのサンプルです。
Python
import tweepy
# OAuth 2.0でのクライアント初期化(認証トークンを渡す)
client = tweepy.Client(access_token="取得したaccess_token")
tweets = [
"1/3 ClaudeとPythonを連携させることで、Xの投稿を自動化できます。",
"2/3 スレッド投稿では、前のツイートIDを引き継いで返信の形で繋げていきます。",
"3/3 この仕組みを活用し、日々の発信プロセスを効率化しましょう。"
]
previous_tweet_id = None
for i, tweet_text in enumerate(tweets):
if i == 0:
# 最初のツイート
response = client.create_tweet(text=tweet_text)
else:
# 2回目以降は前回のツイートにぶら下げる
response = client.create_tweet(
text=tweet_text,
in_reply_to_tweet_id=previous_tweet_id
)
previous_tweet_id = response.data["id"]
print(f"投稿成功: {previous_tweet_id}")
数行のスクリプトが、あなたの専属SNS運用担当者として24時間休まず働いてくれるようになります。
CLAUDE.mdを使った自動運用の手順書設計

Claude Codeを使ってX運用を自動化する際、毎回同じプロンプトを入力するのは非効率です。そこで活用したいのが、AIへの指示書となる「CLAUDE.md」や「SKILL.md」を用いたタスクの定型化です。
プロジェクトフォルダ内にマークダウンファイルを配置しておくだけで、Claude Codeが自律的に手順を読み取ります。「いつ、どのような基準で、どのスクリプトを実行するか」を毎回正確に再現できる仕組みを構築していきましょう。
詳細については、以下の見出しで解説します。
CLAUDE.mdに記述する実行手順
手順書となる「CLAUDE.md」には、AIが迷わず作業できるよう具体的な実行フローを明文化します。
以下のような流れを定義しましょう。
- 指定されたファイルから投稿ネタを読み込む
- 過去の投稿傾向や140文字以内というルールに従ってツイートを生成する
- 用意しておいたPythonスクリプトを実行して投稿する
プロセスを細かくテンプレート化することで、ブレのない安定したクオリティの投稿を生成し続けることが可能になります。
以下は、CLAUDE.mdに記述する設定内容の例です。
Markdown
# X Auto-Posting Workflow
## Roles and Constraints
- Generate X posts based on the draft notes in `drafts/` directory.
- Strictly adhere to the 140-character limit per tweet.
- Use a friendly and professional tone.
## Workflow Commands
- Test generation: `python generate_draft.py`
- Post to X: `python post_tweet.py`
事故を防ぐ「ターミナル承認UI」の実装
AIにSNS運用を任せる上で最も避けるべき事態は、ハルシネーション(AIの事実誤認)や不適切な文面のまま、システムが勝手に発信してしまう事故です。
リスクを未然に防ぐため、CLAUDE.mdのルールには必ず「投稿前にターミナル上でプレビューを表示し、人間の承認(y/n)を求める」という一節を組み込みましょう。
自動生成された内容に対し、最後に人間が対話形式で「GOサイン」を出すフローを挟むことで、自動化の恩恵を受けつつ誤爆のリスクを排除した安全な運用が実現します。
以下は、Pythonスクリプトに組み込むユーザー承認処理のコード例です。
Python
def ask_for_approval(text):
print("\n--- 投稿プレビュー ---")
print(text)
print("----------------------\n")
choice = input("この内容でXに投稿しますか? (y/n): ").strip().lower()
if choice == 'y':
return True
else:
print("投稿をキャンセルしました。")
return False
投稿処理の直前にこのロジックを挟み込むだけで、誤動作による不要な発信を確実に防げます。
Gemini API連携で画像付きX投稿の自動化

タイムライン上でユーザーのスクロールを止め、エンゲージメント率を劇的に高めるためには画像の存在が不可欠です。
文字だけの投稿から一歩進み、より視覚的なインパクトを与えるために、Googleの画像生成AI「Gemini API」を自動化システムに組み込んでいきましょう。
テキストの自動生成からアイキャッチ画像の作成、そしてXへのアップロードまでをすべてシームレスに連携させる高度な仕組みを構築できます。
詳細については、以下の見出しで解説します。
Gemini APIによる画像生成コード
投稿に添えるアイキャッチ画像を自動生成するスクリプトを用意しましょう。
プログラムを起動すると、ツイートの文章から「おまかせで自動的に関連イラストを作る仕組み」が実行されます。
Googleが提供する高品質な画像生成AIモデルを利用し、ツイートの本文をプログラムへ読み込ませることで、トピックにマッチした16:9のアイキャッチ画像が自動完成する設計です。
生成された画像データは、Xへアップロードする前の準備として、PC(ローカル環境)で一時保存しておきましょう。
具体的なPythonコードは以下の通りです。
Python
import os
import base64
from google import genai
from google.genai import types
# 1. APIを使うための準備
os.environ["GEMINI_API_KEY"] = "YOUR_GEMINI_API_KEY"
client = genai.Client()
# 2. 自動生成させたい画像の指示文(プロンプト)の作成
tweet_text = "AIツールを導入して日々の業務を10倍効率化するロードマップ"
prompt = f"Create a modern, high-tech eye-catching flat design illustration for a blog post titled: '{tweet_text}'. Aspect ratio 16:9."
# 3. Geminiの画像生成AIモデルへの送信
response = client.models.generate_content(
model="gemini-3-pro-image-preview",
contents=prompt,
config=types.GenerateContentConfig(
response_modalities=["image", "text"]
)
)
# 4. 生成された画像データの一時保存
for part in response.candidates.content.parts:
if part.inline_data and part.inline_data.mime_type.startswith("image/"):
data = part.inline_data.data
if isinstance(data, str):
data = base64.b64decode(data)
with open("temp_image.jpg", "wb") as f:
f.write(data)
print("画像の自動生成と保存が完了しました。")
X API v1.1経由のメディア投稿処理
作成した画像をスクリプトからXへ投稿する際、1つだけ技術的な注意点が存在します。最新のX API v2にはメディアファイルを直接アップロードする機能が用意されていません。
Pythonスクリプト内では、以下の2段階処理を実装していきましょう。
- X API v1.1での事前アップロード
旧バージョンであるX API v1.1を経由して画像を事前アップロードし、固有のメディアIDを取得する - X API v2でのツイート送信
取得したメディアIDを、v2のツイート投稿機能に紐付けて送信する
Python
import os
import tweepy
from dotenv import load_dotenv
load_dotenv()
# API v1.1用の認証(メディアアップロード用)
auth = tweepy.OAuth1UserHandler(
consumer_key=os.getenv("X_API_KEY"),
consumer_secret=os.getenv("X_API_SECRET"),
access_token=os.getenv("X_ACCESS_TOKEN"),
access_token_secret=os.getenv("X_ACCESS_TOKEN_SECRET")
)
api_v1 = tweepy.API(auth)
# 画像のアップロードを実行し、メディアオブジェクトを取得
media = api_v1.media_upload(filename="temp_image.jpg")
# API v2用のクライアントでツイート(メディアを紐付け)
client_v2 = tweepy.Client(
consumer_key=os.getenv("X_API_KEY"),
consumer_secret=os.getenv("X_API_SECRET"),
access_token=os.getenv("X_ACCESS_TOKEN"),
access_token_secret=os.getenv("X_ACCESS_TOKEN_SECRET")
)
response = client_v2.create_tweet(
text="自動生成された画像付きの投稿テストです!",
media_ids=[media.media_id]
)
print("画像付きポストの送信に成功しました。")
バージョンごとの役割を組み合わせることで、画像付き投稿の完全自動化がスムーズに実現します。
CronとLaunchAgentによるXの自動運用

スクリプトが完成しても、毎日手作業でコマンドを実行していては真の自動化とは言えません。
「毎朝決まった時間にAIへ投稿を作らせ、そのまま発信する」という完全無人化を実現するためには、OS標準のタスクスケジューラーを利用します。
LinuxやmacOSで広く使われている「Cron」、およびmacOS環境においてより安定した動作が期待できる「LaunchAgent」を用いた定時実行の環境構築方法と、安全なシステム運用に欠かせない認証キーの管理術を解説します。
詳細については、以下の見出しで解説します。
crontabおよびLaunchAgentの設定
定時実行の定番ツールである「Cron」を使えば、「0 8 * * *」(毎日朝8時実行)のような簡潔な記述でスクリプトの自動起動をスケジュールできます。
ただし、Cron経由の実行では通常のターミナルと環境変数が異なるため、コマンド実行前に必ず.envファイルを読み込ませる記述が欠かせません。
以下は、crontabに設定する一例です。
Bash
0 8 * * * cd /path/to/project && export $(cat .env | xargs) && /usr/bin/python3 post_tweet.py >> cron.log 2>&1
また、macOSを利用している場合は、実行が安定しやすい独自のスケジューラー「LaunchAgent」の利用が最適です。
専用のXML形式ファイル(plist)を作成して ~/Library/LaunchAgents/ をディレクトリに配置し、システムに登録するだけで、より確実な定期投稿パイプラインが完成します。
macOS Keychainを用いた安全なAPIキー管理
自動化システムを構築する際、最も警戒すべき課題はAPIキーの漏洩です。
認証キーをPythonコード内に直接書き込んでしまうと、誤ってGitHubなどの公開リポジトリへアップロードした瞬間、悪意のあるボットにキーを抜き取られて悪用される致命的な事故につながります。
リスクを根本から排除するため、macOS環境であれば標準のパスワード管理機能「Keychain」を活用していきましょう。
Python標準の subprocess モジュールを使用してOSのコマンドを呼び出すことで、セキュアな領域から安全にキーを取得することが可能です。
Python
import subprocess
# キーチェインからキーを安全に取得する関数
def get_keychain_password(account_name):
result = subprocess.run(
["security", "find-generic-password", "-s", "x-api-key", "-a", account_name, "-w"],
capture_output=True, text=True
)
return result.stdout.strip()
# スクリプト内での読み取り
API_KEY = get_keychain_password("x-auto-post-key")
API_SECRET = get_keychain_password("x-auto-post-secret")
ターミナルからキーを安全に登録し、スクリプト実行時のみOSのセキュア領域からキーを読み出して処理を行う実装にすることで、運用上のセキュリティレベルを格段に引き上げられます。
X自動化をClaudeで行う注意点

ClaudeとAPIを駆使すれば高度な自動化が可能になる一方、一歩間違えればアカウントの凍結やセキュリティ事故につながる危険性も潜んでいます。
「APIキーの漏洩」「AIの暴走による炎上」「レート制限エラー(429)」「最新料金プランの認識不足」という4つの代表的なトラブルパターンと、確実な予防策を解説します。
安全な仕組みづくりこそが、長期的な自動運用の土台となります。
キーの漏洩と推敲なしの「無人完全自動」のリスク
自動化システムを構築する際、絶対に避けるべき2つの致命的なミスが存在します。
1.APIキーのコード直書き
誤ってGitHubなどの公開領域へコードをプッシュした瞬間、悪意あるプログラムにキーを抜き取られる危険が生じます。
必ず.envファイルやOSのKeychain機能を利用して安全に管理しましょう。
2.推敲なしの完全自動投稿
AIは時に事実と異なる内容(ハルシネーション)を生成するため、生成物をそのまま発信すると炎上やブランド毀損のリスクが高まります。
「投稿前に人間が一度目を通し、承認してから送信する」安全弁を必ず運用フローへ組み込んでください。
レート制限対応とXのAPI料金プラン
プログラムが高速で処理を繰り返すと、X APIの「レート制限(リクエスト上限)」に引っかかり、429エラー(Too Many Requests)が発生します。
エラーを無視してアクセスを続けるとアカウントが一時停止されるリスクがあるため、検知時は自動的に数十秒の待機時間(スリープ処理)を挟む設計が欠かせません。
また、X APIの料金体系は完全従量課金制が導入されています。
| プラン | 主な仕様 |
| Freeプラン | 月500投稿が可能 (ただし読み取り不可) |
| 従量課金/ Basic | 他者のポスト自動収集や本格運用向け (最低5ドルのチャージ、または月額約1.5万円のBasic移行が必要) |
自分の声をClaudeに再現させるプロンプト設計

自動化システムが完成しても、生成される文章が「いかにもAIが書きました」という無機質なトーンでは、フォロワーの心は離れてしまいます。
自動化を真に成功させる鍵は、自分自身の「声」や「価値観」をAIに憑依させるプロンプト設計です。
過去の投稿データから専用の「AI人格プロファイル」を構築し、読者の反応を引き出す黄金テンプレートに則って、高品質なスレッドを自動生成するプロンプトテクニックを解説します。
過去の投稿を学習させたシステムプロンプトの作成
自分の文体や口調を自力で言語化するのは至難の業ですが、Claudeの分析力を活かせば簡単に解決できます。
以下の手順に沿って、あなた専用のシステムプロンプトを作成していきましょう。
Xの管理画面から、自身の過去投稿データ(データアーカイブやアナリティクスのCSVファイル)をダウンロードしてください。
取得したファイルをClaudeのチャット画面、またはプロジェクトフォルダ内に読み込ませます。
Claudeに対して「ファイルのデータを分析し、よく使う語尾や言い回しのクセ、投稿の構成パターンを抽出して、私の声で書くためのシステムプロンプトを作ってください」と指示を出しましょう。
自分では気づかなかった特徴をAIが正確に言語化するため、完成したプロンプトをシステム設定などに適用してください。
フォロワーが読んでも違和感のない、あなた専用の「AIライター」が誕生します。
フック・核心・CTAで構成するバイラルプロンプト
文体が整ったら、次は「読まれる構造」をプロンプトへ組み込みます。
SNSで拡散(バイラル)されやすい投稿には、共通する黄金の型が存在します。
| 要素 | 構成 | 役割・期待する効果 |
| フック | 1ツイート目 | 読者のスクロールを指止めする |
| 核心 | 2ツイート目 | 具体的なノウハウや価値を提供する |
| CTA | 3ツイート目 | 共感や次のアクション(フォロー・リンククリック)を促す |
この3連スレッド構成のフレームワークと「AI人格」を掛け合わせた指示書を用意しましょう。
どのようなトピックを扱っても、安定してエンゲージメントの高いスレッドを自動生成し続けることが可能になります。
まとめ:ClaudeでX自動化を始める3ステップ
X運用の自動化を成功させる最大のポイントは、いきなり完璧な無人システムを目指すのではなく、小さく始めて段階的に環境を拡張していく姿勢です。
今日から確実に行動へ移せる3つのステップを紹介します。
- ステップ1:Typefully連携で最小構成を試す
-
まずは複雑なAPI設定が不要な「Typefully MCP」を導入していきましょう。
5分程度で初期設定を済ませ、「今日のトピックを3連スレッドにして下書き保存して」とClaudeに指示を出すだけで、AIによる自動生成の利便性をその日のうちに体感できます。
- ステップ2:自作スクリプトでの投稿に挑戦する
-
AIの生成に慣れてきたら、次のステップとしてX Developer PortalでAPIキーを取得し、Python(tweepyライブラリなど)を用いた独自の投稿スクリプトを作成します。
最初は自分の目で確認しながら手動でスクリプトを実行し、意図通りに投稿が処理されるかテストを繰り返していきましょう。
- ステップ3:定時実行で運用を仕組み化する
-
スクリプトが安定して動くようになったら、CronやLaunchAgentを使って「毎日決まった時間に自動実行される」環境を構築します。
「AIが生成し、人間が最終確認して投稿する」という安全なハイブリッド運用を維持しつつ、日々の投稿作成から解放される快適な自動化システムを完成させてください。


コメント