mcpField
X
x

x

github.com/acedatacloudマーケティング・グロース1763 回インストール今日更新
リポジトリ

x について

xは、twikitとユーザーのログインCookieを使って実際のXアカウントを操作するスキルです。タイムラインや検索、トレンドを参照でき、状態を変更する操作は試行実行が既定で、明示的な確認後に実行されます。

主な機能

  1. 01アカウント情報とタイムラインの取得
  2. 02投稿とユーザーの検索
  3. 03トレンドと投稿詳細の確認
  4. 04投稿とスレッドの公開
  5. 05いいね、リポスト、フォローの管理

活用シーン

  1. 01アカウントのホームタイムラインを確認
  2. 02Xの投稿やユーザーを検索
  3. 03確認後に投稿やスレッドを公開

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/acedatacloud/skills --skill x

インストール後、Claude Code で/xを入力して読み込まれたか確認します。

同梱ファイルscripts/x.py

詳細

x — 自分の Cookie を使って X(Twitter)を閲覧・投稿する

twikit を介して X の内部 Web API を使い、ユーザーが ACE 拡張機能で取得したログイン Cookie で認証して、ユーザーの 実際の X アカウントを操作します。公式 API キーは不要で、費用もかかりません。

2026-07-06 に実際に接続されたアカウントで、Cookie の読み込み、whoami、ツイート検索、ユーザー検索、ホームタイムライン、トレンド、ツイート詳細、投稿のドライランを E2E 検証済みです。実際の書き込みには引き続き明示的な確認が必要で、検証時には実行していません。

コネクターは Cookie jar を環境変数として渡します。

  • X_COOKIES — Cookie の JSON 配列(少なくとも auth_token と ct0 が必要です)。 シークレットです。アカウントに完全にアクセスできます。絶対に表示したり、出力したりしないでください。

セットアップ — 同梱 CLI を確認する

twikit はホスト型サンドボックスイメージにプリインストールされています。実行時に pip install しないでください。インポートに失敗した場合は、サンドボックスイメージに X スキルの依存関係がないことを報告し、終了してください。

python3 -c "import twikit" || { echo "sandbox missing twikit; deploy the sandbox skill dependencies image" >&2; exit 1; }
# $SKILL_DIR can point at another skill loaded this turn — anchor on our own
# script (re-run this setup at the top of every fresh-shell Bash block below).
X="$SKILL_DIR/scripts/x.py"; [ -f "$X" ] || X=$(find /tmp -maxdepth 8 -path '*/skills/*/scripts/x.py' 2>/dev/null | head -1)
[ -f "$X" ] || { echo "x script not found (SKILL_DIR=$SKILL_DIR)" >&2; exit 1; }
python3 "$X" whoami          # confirm the shipped CLI can read the authenticated account

読み取りコマンド(直接実行)

python3 $X whoami                                            # discover the authenticated account
python3 $X whoami --expect SCREEN_NAME                       # optional: assert a specific account
python3 $X search --query "ai agents" --product Latest --limit 20   # Top | Latest | Media
python3 $X search-users --query "openai" --limit 10
python3 $X timeline --limit 20                               # my home timeline
python3 $X user-tweets --user elonmusk --type Tweets --limit 20     # Tweets|Replies|Media|Likes
python3 $X tweet --id 1234567890123456789                    # single tweet detail
python3 $X trends --category trending --limit 20             # trending|for-you|news|sports|entertainment

--user には @screen_name(@ は省略可能)または数値 ID を指定できます。

まず接続を確認する

python3 $X whoami
# → {"id": "...", "screen_name": "<the connected handle>", "identity_verified": true, ...}

whoami は、認証済みアカウントのスクリーンネームを X のアカウント設定から読み取り、その後、公開プロフィールを解決します。これにより、ローカルの ID Cookie を信用せずに、X の Cloudflare にブロックされた UserByRestId エンドポイントを回避できます。

--expect <screen_name> は任意です。ユーザーが操作対象のアカウントを明示的に指定した場合に限り渡してください。接続中の Cookie が別のユーザーのものであれば、処理を中止します。期待するハンドルを推測してはいけません。通常は引数なしの whoami を使います。

実際の認証エラーが発生した場合、Cookie の有効期限が切れています。ユーザーに https://studio.acedata.cloud/console/connectors で再接続してもらってください。Cloudflare によるブロックは別の問題です。Cookie を再接続しても解決しません。ID の確認には whoami を使ってください。その他のブロックされたエンドポイントには X_PROXY または公式 X API が必要です。Cloudflare によるブロックや認証エラーに対して、再試行を繰り返してはいけません。

404 は認証エラーではありません。 X の ID エンドポイントは、Cookie が正常でも、すべてのアカウントで約 4 回に 1 回 404 を返します。whoami は内部で再試行するため、それでも 404 が報告された場合は少し待ってから再度実行してください。ユーザーに再接続を求めてはいけません。

書き込みコマンド — 制限付き(末尾に --confirm がなければドライラン)

状態を変更するすべてのコマンド(post、thread、like、unlike、retweet、unretweet、follow、unfollow、delete)は、末尾に --confirm がなければ ドライラン になります。--confirm が有効になるのは 最後の引数として指定された場合のみ です。そのため、ツイート本文に単に「--confirm」が含まれていても、知らないうちに投稿されることはありません。必ずドライランの結果を表示し、正確な本文について明示的な「はい」を得てから、--confirm を付けて再実行してください。

python3 $X post --text "hello world"                          # dry-run
python3 $X post --text "hello world" --confirm                # LIVE tweet
python3 $X post --text "look at this" --media a.jpg,b.png --confirm     # up to 4 images (or 1 video)
python3 $X post --text "great point" --reply-to 123456 --confirm        # reply
python3 $X post --text "worth reading" --quote-url https://x.com/u/status/123 --confirm  # quote
python3 $X thread --text "1/2 first" --text "2/2 second" --confirm       # thread (2+ segments)
python3 $X like --id 123456 --confirm
python3 $X retweet --id 123456 --confirm
python3 $X follow --user elonmusk --confirm
python3 $X delete --id 123456 --confirm                        # delete one of MY tweets
  • 確認済みの post/thread は、ユーザーの実際のアカウントでただちに公開されます。 下書きの段階はありません。必ず正確な本文を事前に確認してください。
  • --media には、ファイルパスをカンマ区切りで指定します。X では、1 つのツイートにつき 画像は最大 4 枚、または 動画/GIF は 1 つ添付できます。スレッドの場合、メディアは 最初のセグメントにのみ添付されます。

注意事項

  • これはユーザー本人の実際のXアカウントです。 書き込みを行う前に必ず確認してください。投稿は即座に公開されます。
  • ライブでの書き込みはE2E検証されていません。 読み取りコマンドは2026-07-06に検証済みです。最初の確認済み書き込みは慎重に検証してください。
  • twikitはXの非公開APIをスクレイピングします。 Xが内部エンドポイントを変更すると動作しなくなる可能性があります。同梱スクリプトには、トランザクションIDの生成に使用される現在のondemand.s webpackチャンクマップに対応するAceDataCloud互換パッチが含まれています。Couldn't get KEY_BYTE indicesが再び表示された場合は、X/twikitの上流仕様変更として報告してください。この特定のエラーについて、ユーザーにCookieの再接続を求めてはいけません。
  • Xは現在、専用のUserMediaクエリに対して依存関係エラーを返します。CLIは通常のツイートタイムラインにフォールバックし、メディア投稿をローカルでフィルタリングします。この場合、レスポンスにはfallbackフィールドが含まれます。
  • 利用規約違反/レート制限/アカウント停止のリスクがあります。 これは公式APIではなくWeb APIを介して動作するため、高頻度の自動化によりアカウントにレート制限が適用されたり、停止されたりする可能性があります。人間らしい頻度に抑えてください。
  • X_COOKIESは絶対に出力しないでください。アカウントへの完全なアクセス権が含まれています。
  • DMは意図的にこのスキルでは公開されていません。

出力を記録する

公開に成功し、公開結果のURLを取得したら、ユーザーがこの成果物をMy Outputsで追跡できるよう、組み込みの publish_artifactツールを1回だけ呼び出してください。

publish_artifact(kind="message", channel="x", title="<title>", url="<the REAL returned URL>", status="delivered")

実際に返されたURLを使用してください。URLを捏造してはいけません。公開済みの項目ごとに1回のみ呼び出し、配信の確認後に限ります。公開に失敗した場合は呼び出しを省略するか、status="failed"を使用してください。 _shared/artifacts.mdを参照してください。

コメント