Claude CodeでツイートをAI生成してXに自動投稿する方法

Claude Code ツイート自動生成 X 自動投稿のイメージ画像

Claude CodeとTweet Composer APIを組み合わせると、AIがツイート文を生成してXの下書きに自動保存するワークフローを構築できます。

  • 要点1: curlコマンド1行でAI生成ツイートをXの下書きUIに自動送信できる
  • 要点2: スレッド形式(複数ツイート連続)にも対応し、画像添付も可能
  • 要点3: 確認UIを経由する安全設計で、企業のSNS担当者でも運用できる

対象: X(Twitter)運用を自動化したい経営者・マーケター・SNS担当者

今日やること: 記事のStep 1を参考にAPIキーをKeychainに登録し、curlで疎通確認する

この記事の著者
川島陸

株式会社Nexa 代表取締役川島 陸

一橋大学経済学部卒業後、フォーティエンスコンサルティング株式会社(旧 株式会社クニエ)にて法人向けAI導入支援等を経験。独立後、AI系メディア運営やDify/n8nの導入支援を経て、株式会社Nexaを創業。法人向けAI研修・AI導入支援・AI関連メディア運営を手掛ける。

Claude Codeを使えば、ツイートの文章生成からXへの下書き保存まで、ワンコマンドで自動化できます。

「毎日のX投稿が追いつかない」「文体がブレる」「投稿を忘れる」——こうした課題は、AIとAPI連携の仕組みを一度組んでしまえば解決できます。

この記事では、あるメディア運用チームが実際に1から構築したツイート自動化ワークフローをもとに、Claude Code × Tweet Composer APIによる下書き自動投稿の仕組みと、3ステップの設定手順を解説します。

Claude CodeでXのツイートを自動化するとどう変わるか

自動化前後を比較すると、作業量と品質の両面で大きな差が生まれます。

手動運用の3つの課題

X(Twitter)の運用を手動で続けていると、次の3つの課題が積み重なっていきます。

①時間がかかるターゲットに刺さる文章を考え、140文字に収め、画像を用意し、投稿する——これを毎日こなすには、慣れても1投稿あたり15〜30分かかります。複数のアカウントを担当する場合はさらに倍増します。

②文体やトーンがブレる担当者が複数いる場合はもちろん、一人でも曜日や体調によって文体にばらつきが出ます。ブランドイメージを統一するためのチェック工数も生じます。

③投稿タイミングを逃す忙しい日には投稿を忘れ、アクティビティが途切れる。予約投稿ツールを使っていても、ネタ作りと文章作成が追いついていなければ本末転倒です。

AI自動化で解決できること

Claude Codeとツイート生成スキルを組み合わせると、これらの課題をまとめて解消できます。

課題 AI自動化による解決
文章作成の時間 AI生成で初稿を0秒で作成。確認・修正に集中できる
文体のブレ スタイルガイドをスキルに組み込み、常に一定の文体を維持
投稿タイミング 下書きUIに自動送信→好きなタイミングで確認・投稿
複数アカウント管理 アカウント切り替えをAPIパラメータで制御

重要なのは、「完全自動投稿(確認なしの自動送信)」にするのではなく、AIが下書きを作り→人間が確認して→投稿するという流れを維持することです。誤情報の拡散リスクや炎上を防ぐうえで、確認ステップは企業のSNS運用において不可欠です。

全体の仕組みと3つのコンポーネント

ツイート自動化ワークフローは、3つのコンポーネントで構成されています。

ツイート生成スキル → Tweet Composer API → 確認UI → X投稿

①ツイート生成スキル

Claude Codeのスキル(SKILL.md)として実装したツイート生成機能です。記事のURLやテキストを入力すると、140文字以内のツイート文やスレッド形式の複数投稿を自動生成します。

スキルには以下を組み込むことができます:- ブランドごとのスタイルガイド(語調・絵文字の使い方・ハッシュタグルールなど)- 過去の高エンゲージメントツイートのパターン- ツイートタイプの自動判定(情報共有型、問いかけ型、引用RT型など)

②Tweet Composer API(Cloudflare Workers版)

ツイート生成スキルから送られてきたツイート内容を受け取り、下書きとして保存するAPIサーバーです。

Cloudflare Workers上で動作するため、ローカルサーバーを立ち上げる必要がなく、常時稼働します。APIに対してPOSTリクエストを送るだけで、下書きが作成されブラウザで確認できるURLが返ってきます。

主な機能:- ツイート配列またはMarkdown形式での受信- スレッド形式(複数ツイート連続)のサポート- 画像データの受け渡し(X APIのメディアアップロードに対応)- ドラフトIDとブラウザURLの返却

③X API(OAuth 2.0 PKCE認証)

実際にXへ投稿するためのAPI接続です。OAuth 2.0 PKCEという認証方式を使います。

OAuth 2.0 PKCEとは、ブラウザを使った認証フローで、アプリがXアカウントへのアクセス権を安全に取得する仕組みです。一度認証すれば、以降はトークンを使って自動投稿できます。

認証で取得できる権限の種類:- tweet.read: ツイートの読み取り(Bearer Tokenで可能)- tweet.write: ツイートの投稿・削除(OAuth 2.0 PKCEが必要)- users.read: ユーザー情報の取得

投稿操作には必ずtweet.writeスコープが必要です。設定時に注意してください。

\ Claude Codeの導入、何から始めればいいかわかります /

法人向けClaude Code個別指導の無料相談はこちら

ステップ1 — Tweet Composer APIへの接続設定

実際の設定手順を説明します。まずTweet Composer APIへの接続設定から始めます。

APIキーをmacOS Keychainに登録する

APIキーをコードや設定ファイルに直接書き込むのはセキュリティリスクがあります。macOSのKeychain(キーチェーン)を使って安全に管理します。

# APIキーをKeychainに登録security add-generic-password \  -s "TWEET_COMPOSER_API_KEY" \  -a "tweet-composer" \  -w "your-api-key-here"# 登録確認security find-generic-password \  -s "TWEET_COMPOSER_API_KEY" \  -w

Keychainとは、macOSに標準搭載されたパスワード管理機能です。ターミナルからコマンドでパスワードを読み書きでき、Claude CodeのスキルからAPIキーを安全に参照できます。

curlコマンドで接続テスト

APIキーを登録したら、curlコマンドで疎通確認を行います。

# APIキーをKeychainから取得API_KEY=$(security find-generic-password -s "TWEET_COMPOSER_API_KEY" -w)# テスト送信curl -X POST https://[your-composer-endpoint]/api/compose \  -H "Content-Type: application/json" \  -H "X-API-Key: $API_KEY" \  -d '{    "title": "テスト下書き",    "tweets": ["これはテスト投稿です。Claude Codeから自動送信しました。"]  }'

成功すると以下のようなレスポンスが返ってきます:

{  "id": "draft_12345",  "url": "https://[your-composer-endpoint]/?select=12345",  "tweet_count": 1,  "status": "created"}

返ってきたurlをブラウザで開くと、送信したツイートが下書きUIに表示されます。

ステップ2 — ツイートをAPI経由で送信する

接続確認ができたら、実際のツイート送信方法を説明します。

単発ツイートを送信する

最もシンプルな形式です。tweets配列に1つのツイートを入れて送信します。

API_KEY=$(security find-generic-password -s "TWEET_COMPOSER_API_KEY" -w)curl -X POST https://[your-composer-endpoint]/api/compose \  -H "Content-Type: application/json" \  -H "X-API-Key: $API_KEY" \  -d '{    "title": "新記事のお知らせ",    "tweets": [      "【新記事】Claude Codeを使ったSEO自動化の全手順を解説しました。KW選定からWP公開まで10ステップで完結します。詳細はこちら → https://example.com/article #ClaudeCode #SEO"    ]  }'

スレッド(複数ツイート連続)を送信する

tweets配列に複数の要素を入れると、スレッド形式で下書きが作成されます。

curl -X POST https://[your-composer-endpoint]/api/compose \  -H "Content-Type: application/json" \  -H "X-API-Key: $API_KEY" \  -d '{    "title": "Claude Code活用tips スレッド",    "tweets": [      "Claude Codeを3ヶ月使って気づいた、生産性が10倍上がる使い方を7つ紹介します🧵",      "1/ SKILL.mdの設計が命。スキルに目的・入力・手順・出力を明確に書くと、再利用性が格段に上がります。",      "2/ 複数スキルをチェーンするときは、前のスキルの出力ファイルを次のスキルの入力として使う設計にするとスムーズです。",      "7/ まとめると、Claude Codeは「やること」を明確に言語化するツール。SKILL.mdを育てるほど、自動化の範囲が広がります。"    ]  }'

dify-base-tweet-writerのmd出力を直接送る

Claude CodeのスキルでMarkdown形式のツイート原稿を出力している場合、mdパラメータにそのままファイル内容を渡せます。

MD_CONTENT=$(cat ~/Desktop/tweet-draft.md)curl -X POST https://[your-composer-endpoint]/api/compose \  -H "Content-Type: application/json" \  -H "X-API-Key: $API_KEY" \  -d "{    \"title\": \"$(date +%Y-%m-%d) ツイート下書き\",    \"md\": \"$(echo $MD_CONTENT | sed 's/"/\\"/g')\"  }"

APIサーバー側でMarkdownを解析し、## ツイート本文## スレッド2などのセクション区切りを検出して、ツイート配列に変換します。既存のツイート生成スキルを変更せずにそのまま連携できるのがメリットです。


Claude Codeの導入や活用方法について、個別にご相談いただけます。「どの業務から自動化すればいいか」「自社のSNS運用に組み込む方法を知りたい」といった段階から対応しています。

Claude Code個別指導の無料相談はこちら →


\ 業務自動化のお悩み、プロが30分で整理します /

法人向けClaude Code個別指導の無料相談はこちら

ステップ3 — Claude CodeのSkillとして登録する

毎回curlコマンドを手打ちするのは非効率です。SKILL.mdとして登録し、スキル名を呼ぶだけで動くようにします。

SKILL.mdの構造

以下のようなSKILL.mdを作成します(~/.claude/skills/tweet-composer-sender/SKILL.md):

---name: tweet-composer-senderdescription: ツイートテキストをTweet Composer APIに送信して下書きを作成するスキル---# Tweet Composer Sender## 入力- ツイートテキスト(直接入力 or mdファイルパス)- タイトル(省略可。デフォルト: 今日の日付)## 手順1. APIキーをKeychainから取得   `security find-generic-password -s "TWEET_COMPOSER_API_KEY" -w`2. 入力がmdファイルの場合はファイルを読み込む3. POST /api/compose に送信4. レスポンスのURLを表示

SKILL.mdについて補足すると、Claude Codeのカスタムスキルを定義するためのMarkdownファイルです。~/.claude/skills/以下に配置することで、Claude Codeが認識します。スキルには「何を入力として受け取り」「どんな手順で実行するか」「何を出力するか」を自然言語で記述します。(Claude Code Skillsの設計パターン →

CLAUDE.mdへの登録方法

CLAUDE.md(~/.claude/CLAUDE.md)にスキルの説明を追記することで、Claude Codeがスキルを自動認識します。

### Tweet Composer Senderツイートテキストまたはmd出力をTweet Composerに送信して下書きを作成するスキル。- スキルファイル: `~/.claude/skills/tweet-composer-sender/SKILL.md`- エンドポイント: https://[your-composer-endpoint]/api/compose- 認証: APIキー(Keychain: `TWEET_COMPOSER_API_KEY`)

登録後は、Claude Codeに「このツイートをTweet Composerに送って」と話しかけるだけで、スキルが自動的に起動し、APIへの送信・URLの返却まで実行します。

他のスキルとの連携も可能です。たとえば「記事のツイートを作成して送って」という1コマンドで、ツイート生成スキル→tweet-composer-sender→URLの表示、という流れを自動実行できます。(スキルチェーンの設計方法 →

確認UIの使い方と安全な投稿フロー

APIから返ってきたURLをブラウザで開くと、Tweet Composerの確認UIが表示されます。

リアルタイムプレビューで確認する

UIは3パネル構成です:

パネル 機能
左パネル(下書きリスト) 作成された下書きの一覧。クリックで選択
中央パネル(エディタ) ツイートの編集。スレッド追加・削除
右パネル(プレビュー) X風のリアルタイムプレビュー

エディタでテキストを変更すると、右パネルのプレビューがリアルタイムで更新されます。文字数カウンター(140文字上限の表示)もあるため、長すぎる場合はエディタで調整できます。

画像を添付する

ツイートに画像を添付する場合、エディタ下部の画像ボタンから追加できます。追加した画像はプレビューパネルにも反映されます。

# 画像付きツイートをAPIで送信する場合curl -X POST https://[your-composer-endpoint]/api/compose \  -H "Content-Type: application/json" \  -H "X-API-Key: $API_KEY" \  -d '{    "title": "画像付き投稿",    "tweets": ["新しいダッシュボードができました。詳細は下記の画像をご覧ください。"],    "images": [      {        "tweet_index": 0,        "base64": "[base64エンコードされた画像データ]",        "mime_type": "image/png"      }    ]  }'

APIで画像データを送る場合は、画像ファイルをbase64エンコードしてimages配列に含めます。tweet_indexでどのツイートに画像を紐付けるかを指定します。

確認後に投稿する

確認UIで内容を確認・編集したら、「投稿する」ボタンを押します。確認モーダルが表示され、最終確認を促します。

ポイント完全自動投稿(確認なしにそのままXに送信)の実装も技術的には可能ですが、企業のSNS運用では推奨しません。AIが生成したテキストには情報の誤りや文脈の不適切さが含まれる可能性があります。「AIが生成→人間が確認→投稿」のフローを維持することで、炎上やブランドリスクを回避できます。

\ AI活用の「次の一手」を一緒に考えませんか /

法人向けClaude Code個別指導の無料相談はこちら

よくある質問

Q. X APIの無料プランでも使えますか?

X APIの無料プランでは月1,500回まで投稿できます。1日に数投稿程度であれば無料枠で十分です。ただし、無料プランでは読み取りAPIの利用が制限されており、「競合アカウントのツイートを取得して分析する」などの機能には有料プランが必要です。

Q. 完全自動投稿(確認なしの自動送信)はできますか?

技術的には可能です。Tweet Composer APIのauto_post: trueパラメータを設定すると、確認UIを経由せずに直接Xに投稿できます。ただし、企業での利用では「確認ステップあり」の設計を強く推奨します。Claude Codeのcronジョブと組み合わせて「毎朝AIが下書きを作成→担当者がスマホで確認→投稿」という半自動化フローが、安全性と効率を両立する現実的な方法です。

Q. 複数のXアカウントを切り替えて使えますか?

対応しています。アカウントごとにOAuth 2.0トークンを別ファイルで管理し、API送信時にaccount_idパラメータでアカウントを指定します。

# アカウントを指定して送信curl -X POST https://[your-composer-endpoint]/api/compose \  -H "X-API-Key: $API_KEY" \  -d '{    "account_id": "account_a",    "tweets": ["アカウントAからの投稿"]  }'

テストアカウントで動作確認してから本番アカウントに切り替えるフローが安全です。

Q. スレッド形式で何ツイートまで送れますか?

X APIの仕様上、1スレッドに連結できるツイート数に技術的な上限はありませんが、実用的には25ツイート以内を推奨します。それ以上になる場合は、内容の分割や記事へのリンクで代替するほうがエンゲージメントが高い傾向があります。

まとめ

Claude CodeとTweet Composer APIを組み合わせることで、ツイートの自動生成から下書き保存まで、シンプルなワークフローで実現できます。

ポイントを振り返ります:

  1. 3コンポーネントの理解: ツイート生成スキル / Tweet Composer API / X API の役割分担を明確にする
  2. APIキーはKeychainで安全管理: コードや設定ファイルに直接書かない
  3. curlで疎通確認→SKILL.md登録: 動作確認してからスキル化する
  4. 確認UIを経由する安全設計: AIが生成→人間が確認→投稿のフローを維持する

まずはStep 1のAPIキー登録と疎通確認から始めてみてください。curlでレスポンスが返ってくれば、あとは文章生成とスキル登録を積み上げるだけです。

X運用の自動化は「書く時間を削る」ためではなく、「一定のクオリティを維持しながら継続投稿できる仕組みを作る」ために使うのが、長期的に効果が出るアプローチです。


Claude Codeの導入・活用をサポートします

株式会社Nexaでは、Claude Codeを活用した業務自動化の個別指導・企業研修を提供しています。X運用の自動化から記事制作・データ分析まで、業種・職種に合わせた実践的なカリキュラムで支援します。「何から始めればいいかわからない」という段階からご支援いたします。

Claude Code個別指導の詳細・無料相談はこちら →




関連記事

AIの力で、ビジネスを次のステージへ

まずはお気軽にご相談ください。貴社に最適なAI活用プランをご提案します。

Claude Codeのプロに無料相談 30秒で日程調整完了