Communitygithub.com

LocoreMind/locoagent

X.com(Twitter)プラットフォーム操作のためのエージェントブラウザプレイブック。ブラウズ、エンゲージメント、コンテンツ作成、ソーシャルグラフ、プロフィール、ナビゲーション、リスト操作をカバーし、テスト済みのステップバイステップのエージェントブラウザコマンドを提供します。

locoagent とは?

このスキルは、AIエージェント(特に agent-browser フレームワーク)が X.com (Twitter) 上で自動操作を実行するための詳細なプレイブックです。ブラウズ、いいねやリツイートなどのエンゲージメント、テキストや画像付きツイートの投稿、フォロー/アンフォローなどのソーシャルグラフ操作、プロフィール編集、ナビゲーション、リスト管理の7つの主要セクションから構成され、各操作には前提条件、具体的な agent-browser コマンド、検証方法、既知の問題が文書化されています。agent-browser 0.24.0 と Chrome CDP でテスト済みであり、デスクトップとモバイルウェブの両方をサポートします。開発者はこのプレイブックを参照することで、X.com 上での複雑で信頼性の高い自動化ワークフローを迅速に構築できます。このスキルは、ソーシャルメディア管理、コンテンツ収集、分析、エンゲージメント戦略の自動化に特に有用です。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/LocoreMind/locoagent/tree/HEAD/skills/x-com

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

X.com (Twitter) — エージェントブラウザプレイブック

x.com 上の agent-browser 向けプラットフォーム固有の操作シーケンス。 各操作は、前提条件、ステップバイステップの agent-browser コマンド、検証方法、既知の落とし穴を文書化しています。

ステータス: すべてのセクション(1~7)をテストし、文書化済み。 テスト環境: agent-browser 0.24.0、ポート9222のChrome CDP、アカウント @mashijiann。 最終更新: 2026-05-06


目次


デバイスターゲット: デフォルトではデスクトップChromeに対して操作を実行します。 モバイルウェブ画面を操作するには、.env ファイルで DEVICE_PROFILE=ios|android を設定するか、agent-browser コマンドの前に -p ios|android を付けます。アクションをログに記録する際は、出典として --device <target> を渡します(重複排除には影響しません。いいねはアカウントレベルです)。

1. ブラウズと読み取り

1.1 ホームタイムラインを開く

目標: ホームタイムラインに移動し、読み込みが完了したことを確認する。

前提条件: ログイン済み(Cookie付きのChrome CDPセッション)。

手順:

agent-browser open https://x.com/home

検証:

# タイトルに「Home / X」が含まれていること
agent-browser get title
# URL が https://x.com/home であること
agent-browser get url
# スナップショットに「Your Home Timeline」リージョンと「For you」タブが表示されること
agent-browser snapshot -i -c -s '[role="region"]'

主要要素:

  • ナビゲーションサイドバー: navigation "Primary" — Home、Search and explore、Notifications、Direct Messages、Grok、Premium、Bookmarks、Profile へのリンクを含む
  • タイムラインタブ: tab "For you"(デフォルトで選択)、tab "Following"、場合によりカスタムタブ
  • 作成エリア: textbox "Post text" — ホームページ上のインライン作成
  • アカウントボタン: button "Account menu" — ログイン中のユーザー名を表示
  • タイムラインリージョン: region "Your Home Timeline" — ツイート article 要素を含む

既知の問題:

  • なし

1.2 特定のツイートをURLで開く

目標: ツイートに直接移動し、その内容を読む。

前提条件: ツイートのURL(例: https://x.com/user/status/123456)を用意する。

手順:

agent-browser open "https://x.com/<username>/status/<tweet_id>"

検証:

# タイトルに作成者の名前とツイート内容のプレビューが含まれていること
agent-browser get title
# URL がツイートURLと一致すること
agent-browser get url
# スナップショットにツイート記事が全文とエンゲージメントボタンとともに表示されること
agent-browser snapshot -i -c -s 'article'

主要要素(ツイート詳細ページ):

  • ツイート記事: article — 全文、作成者情報、エンゲージメント統計を含む
  • 作成者リンク: link "<表示名> Verified account"、link "@<ユーザー名>"
  • タイムスタンプ: link "<時間> · <日付>"(例: "2:30 PM · May 5, 2026")
  • 表示回数: link "<N> Views"
  • エンゲージメントボタン: button "N Reply. Reply"、button "N reposts. Repost"、button "N Likes. Like"、button "N Bookmarks. Bookmark"、button "Share post"
  • 購読ボタン: button "Subscribe to @<ユーザー名>"

既知の問題:

  • なし

1.3 キーワードでツイートを検索

目標: キーワードまたはクエリに一致するツイートを検索し、結果を読む。

前提条件: ログイン済み。

手順:

# 「トップ」結果の場合(デフォルト):
agent-browser open "https://x.com/search?q=<url_encoded_query>&src=typed_query"

# 「最新」結果の場合:
agent-browser open "https://x.com/search?q=<url_encoded_query>&src=typed_query&f=live"

# 「ユーザー」結果の場合:
agent-browser open "https://x.com/search?q=<url_encoded_query>&src=typed_query&f=user"

# 「メディア」結果の場合:
agent-browser open "https://x.com/search?q=<url_encoded_query>&src=typed_query&f=image"

検証:

# タイトルに「<query> - Search / X」が含まれていること
agent-browser get title
# アクティブなタブを確認
agent-browser snapshot -i -c -s '[role="tablist"]'
# 検索結果のツイートを読む
agent-browser snapshot -i -c -s 'article'

主要要素:

  • 検索タブ: tab "Top"、tab "Latest"、tab "People"、tab "Media"、tab "Lists"
  • f URLパラメータでタブを制御: 省略 = Top、live = Latest、user = People、image = Media
  • 戻るボタン: button "Back" — 前のページに戻る
  • 各結果はタイムラインツイートと同じ構造の article 要素

既知の問題:

  • クエリ文字列をURLエンコードする(スペース→ %20 など)
  • 認証されていないセッションでは「ログイン壁」が表示される可能性がある
  • Xの高度な検索演算子が使用可能: from:user、since:2026-01-01、min_faves:100 など

1.4 ユーザープロフィールを表示

目標: ユーザーのプロフィールに移動し、自己紹介と複数の最近のツイートを読む。

前提条件: ユーザー名またはプロフィールURLを用意する。

手順:

# 1. プロフィールに移動
agent-browser open "https://x.com/<username>"

# 2. 初期スナップショット — 通常は固定ツイート(ある場合)のみ表示
agent-browser snapshot -i -c -s 'article'
# 警告: 最初の記事は通常固定ツイートであり、最新の投稿ではありません。
# 実際の最近の投稿を見るには、下にスクロールする必要があります。

# 3. 下にスクロールして最近の投稿を読み込む(固定ツイートとプロフィールヘッダーの先)
agent-browser scroll down 3000
agent-browser wait 2000
agent-browser snapshot -i -c -s 'article'
# これで最初の最近の(固定されていない)投稿が表示されるはずです

# 4. さらにスクロールして投稿を読み込み — 必要に応じて繰り返す
agent-browser scroll down 3000
agent-browser wait 2000
agent-browser snapshot -i -c -s 'article'

検証:

# タイトルに「<DisplayName> (@<username>) / X」が含まれていること
agent-browser get title
# URL が https://x.com/<username> であること
agent-browser get url

主要パターン — 複数の投稿を閲覧:

# ユーザープロフィールからN個の投稿を閲覧するには、このスクロールループを使用:
# 各スクロール+待機サイクルで、仮想リストのため約1件の新しい投稿が表示される
for i in $(seq 1 N); do
  agent-browser scroll down 3000
  sleep 2  # または: agent-browser wait 2000
  agent-browser snapshot -i -c -s 'article'
  # 表示されている記事を処理
 done

既知の問題:

  • 重要: 初期ページ表示は通常、固定ツイートのみを表示します。最近の投稿を見るには下にスクロールする必要があります。 エージェントは固定ツイートを唯一のコンテンツと誤認することがよくあります。
  • Xは仮想化リストを使用しており、ビューポート内の1~2の記事のみがDOMに存在します。スクロールし過ぎた記事はDOMから削除されます。
  • 3000pxのスクロール量+2秒の待機で、確実に次のバッチが読み込まれます
  • 固定ツイートには記事の説明の先頭にテキスト "Pinned" があります — これを使用して識別しスキップします
  • プロフィールにはタブがあります: Posts、Replies、Highlights、Media、Likes — デフォルトは「Posts」で返信は除外されます。投稿+返信の場合は https://x.com/<username>/with_replies を使用します。

1.5 ツイートスレッド/返信を読む

目標: ツイートを開き、完全なスレッドとその下の返信を読む。

前提条件: ツイートのURLを用意する。

手順:

# 1. ツイートを開く
agent-browser open "https://x.com/<username>/status/<tweet_id>"

# 2. 下にスクロールして返信を読み込む
agent-browser scroll down 800

# 3. 返信を読む(メインツイートの下に追加のarticle要素として表示される)
agent-browser snapshot -i -c -s 'article'

検証:

# 複数のarticle要素が存在するはず — 最初がメインツイート、残りが返信
agent-browser snapshot -i -c -s 'article'

既知の問題:

  • 返信はページ分割される場合がある — button "Show more replies" を探してクリックする
  • 「Show probably spam」セクションが表示される場合がある — スキップする
  • スレッドコンテキスト(親ツイート)はメインツイートの上に表示される
  • 引用ツイートクリックトラップ: 返信またはタイムラインエントリが引用ツイートの場合、記事本文をクリックすると、引用ツイートの詳細ページではなく引用元の元の投稿に移動します。正しいツイートに移動するには、代わりにタイムスタンプリンクをクリックしてください。詳細はセクション3.4の既知の問題を参照。

1.6 通知を読む

目標: 通知タブを開き、最近の通知を読む。

前提条件: ログイン済み。

手順:

agent-browser open https://x.com/notifications

検証:

# タイトルに「Notifications / X」が含まれていること
agent-browser get title
# URL が https://x.com/notifications であること
agent-browser get url

主要要素:

  • 通知タブ: All、Verified、Mentions
  • サイドバーリンクに未読数が表示される: link "Notifications (N unread notifications)"

既知の問題:

  • 通知にはサブタブあり: All、Verified、Mentions

1.7 DM(ダイレクトメッセージ)を読む

目標: DMを開き、最近のメッセージを読む。

前提条件: ログイン済み。

手順:

# 注意: /messages は /i/chat にリダイレクトされる
agent-browser open https://x.com/messages

検証:

# URL は https://x.com/i/chat になる(自動リダイレクト)
agent-browser get url

既知の問題:

  • URL が /messages から /i/chat にリダイレクトされる
  • DM UIはビューポートに応じてサイドパネルまたは全画面になる
  • 一部のDM機能にはX Premiumが必要な場合がある

2. エンゲージメント — コンテンツへの反応

2.1 ツイートにいいね

目標: 特定のツイートにいいねをする。

前提条件: ツイートが表示されているページ上(タイムライン、ツイート詳細、検索結果)。

手順:

# 1. スナップショットで対象ツイートのいいねボタンを見つける
agent-browser snapshot -i -c -s 'article'
# 探すもの: 対象記事内の button "N Likes. Like"(まだいいねしていない)

# 2. いいねボタンをクリック
agent-browser click <like_button_ref>

検証:

# 再度スナップショット — ボタンテキストが「Like」から「Liked」に変わること
agent-browser snapshot -i -c -s 'article'
# 探すもの: button "N Likes. Liked"

要素の識別:

  • いいねしていない: button "N Likes. Like" — テキストが . Like で終わる
  • 既にいいね済み: button "N Likes. Liked" — テキストが . Liked で終わる
  • いいね数Nはいいね後に1増加する

既知の問題:

  • レート制限: Xは急ないいねを制限する可能性がある
  • 状態変更後、ボタン参照が変わる場合がある(新しい参照を取得するために再スナップショット)

2.2 いいねを解除

目標: 以前いいねしたツイートからいいねを削除する。

前提条件: ツイートが既にいいね済みであること。

手順:

# 1. スナップショットでLikedボタンを見つける
agent-browser snapshot -i -c -s 'article'
# 探すもの: button "N Likes. Liked"

# 2. 同じボタンをクリックしていいねを解除
agent-browser click <liked_button_ref>

検証:

# ボタンテキストが「Liked」から「Like」に戻ること
agent-browser snapshot -i -c -s 'article'
# 探すもの: button "N Likes. Like"

要素の識別:

  • 同じボタンがLike/Liked状態を切り替える
  • 状態間で参照が変わる場合がある — 常に再スナップショットする

既知の問題:

  • なし

2.3 リツイート(リポスト)

目標: ツイートを自分のタイムラインにリポストする。

前提条件: ツイートが表示されているページ上。

手順:

# 1. スナップショットでリポストボタンを見つける
agent-browser snapshot -i -c -s 'article'
# 探すもの: button "N reposts. Repost" [expanded=false]

# 2. リポストボタンをクリック — これによりアクション自体ではなくドロップダウンメニューが開く
agent-browser click <repost_button_ref>

# 3. スナップショットでドロップダウンメニュー項目を確認
agent-browser snapshot -i -c -s '[role="menuitem"]'
# 表示されるもの: menuitem "Repost" と menuitem "Quote"

# 4. 「Repost」メニュー項目をクリックしてリポストを実行
agent-browser click <repost_menuitem_ref>

検証:

# スナップショット — ボタンテキストが「Repost」から「Reposted」に変わること
agent-browser snapshot -i -c -s 'article'

要素の識別:

  • リポストボタン: button "N reposts. Repost" [expanded=false]
  • ドロップダウン項目: menuitem "Repost" と menuitem "Quote"
  • リポスト後: ボタンは button "N reposts. Reposted" になる

既知の問題:

  • 2ステップ操作: ボタンをクリックするとドロップダウンが開き、その後メニュー項目をクリックする必要がある
  • アクションせずにドロップダウンをキャンセル/閉じるには:

…[翻訳のため省略]

関連スキル