x-twitter について
x-twitterは、認証済みユーザーのOAuth 1.0a資格情報でX API v2を操作するコマンドラインスキルです。投稿、アカウント、交流、フィード、モデレーション、分析、検索などを扱い、結果をJSONで返します。
主な機能
- 01投稿やスレッドの取得・検索
- 02投稿の作成・削除・いいね・リポスト
- 03ユーザー、フォロー、モデレーションの管理
- 04タイムライン、ブックマーク、メンションの確認
- 05トレンド、ニュース、反応の検索
活用シーン
- 01Xの投稿を検索・取得する
- 02スクリプトから投稿を公開・管理する
- 03メンション、ブックマーク、タイムラインを確認する
- 04トレンド、ニュース、投稿への反応を調べる
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alberduris/ skills --skill x-twitterインストール後、Claude Code で/x-twitterを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.env.exampledocs/blocked.mdbookmark.mdcommunity.mdcount.mddelete.mdfollow.mdfollowers.mdget.mdhide-reply.mdlike.mdlikers.mdme.mdmentions.mdmute.mdnews.mdpost.mdquotes.mdreplies.mdrepost.mdreposters.mdreposts-of-me.mdsearch-communities.mdsearch-news.mdsearch-users.mdsearch.mdthread.mdtimeline.mdtranscript.mdtrending.md詳細
認証済みユーザー自身の開発者認証情報(OAuth 1.0a、従量課金)を使用する X(Twitter)API v2 スキルです。すべてのコマンドは、単一のエントリーポイント node <base_directory>/x.ts <command> [flags] を経由します。Node.js 22.18 以降で直接実行でき、インストールやビルドは不要です。各コマンドには、フラグと動作の詳細なリファレンスを記載した専用のドキュメントファイルがあります。
[!OUTPUT] すべてのコマンドは、X のレスポンスである includes を data に統合し、ヒントを加えた 1 つの JSON オブジェクトを出力します。形式は { data, meta?, errors?, hints? } です。meta と errors は X が送信した内容そのままです。meta.next_token は --next-token に指定する値で、errors はデータの一部が取得できている場合も含め、何が欠けているのかを示します。hints は CLI が返す文字列の配列です。X から何も送信されなかった場合に限り、data はありません。フィールド名は X のものを使用します。
[!POSTS] 投稿を返すすべてのコマンド(get、search、thread、replies、quotes、mentions、timeline、bookmarks、reposts-of-me、me --pinned-tweet)は、x.com と同じ形式で投稿を表示します。形式は統一されており、author_id の代わりに author(id、name、username)が使われます。text は、人が読む全文です。長文投稿も含まれ、t.co リンクは展開され、投稿自身のメディアや引用先の投稿へのリンクは削除されます。media には、X が説明する添付写真や動画が格納されます(type、url、preview_image_url、duration_ms、variants、alt_text)。referenced_tweets には引用・リポストした投稿が全文で埋め込まれます。一方、返信先の投稿は { type: "replied_to", id } の形式のままで、返信先ユーザーは in_reply_to_user に格納されます。article には、X Article の title と全文の plain_text が格納されます。X が返さなかった参照先の投稿は { type, id } の形式のままで、その理由は errors に示されます。埋め込まれた投稿が参照する投稿は取得されません。そのため、{ type, id } の形式のままエラーもありません。引用した投稿へのリンクは埋め込まれた投稿の text からも削除されます。それらの投稿は get <id> で取得できます。
[!COMMANDS]
基本機能:
a) me — 認証済みユーザー自身のアカウントデータ(プロフィール、指標、認証情報)です。@docs/me.md。
b) search — クエリで投稿を検索します。重要:デフォルトでは過去 7 日間のみ検索します。全期間のアーカイブを検索するには --all を使用してください。スレッドや返信を読むために conversation_id: を指定して search を使用しないでください。代わりに thread または replies を使用してください。@docs/search.md。
c) get — ID を指定して 1 件以上の投稿を取得します。data は常に配列です。@docs/get.md。
d) post — 投稿、返信、引用投稿を作成します。@docs/post.md。
e) delete — 認証済みユーザーが所有する投稿を削除します。@docs/delete.md。
f) thread — 投稿を含む、会話の投稿者のスレッドを取得します。最初の投稿と、その投稿またはスレッド内の別の投稿に対する投稿者自身の返信が、古い順に並びます。他のユーザーの返信と、それらへの投稿者自身の返信は含まれません。7 日より前のスレッドには --all を使用してください。@docs/thread.md。
g) replies — 投稿への直接の返信を、新しい順に 1 ページずつ取得します。重要:デフォルトでは過去 7 日間のみ検索するため、それより古い投稿では、警告なしに返信が一部しか返されません。--all を使用してください。@docs/replies.md。
h) transcript — X が生成した字幕トラックから、投稿内の動画の文字起こしを取得します。X が字幕を公開していない動画には文字起こしがありません。@docs/transcript.md。
エンゲージメント:
i) like — 投稿をツイート ID で指定して「いいね」します。@docs/like.md。
j) unlike — 投稿への「いいね」を解除します。@docs/like.md。
k) repost — 投稿をリポスト(リツイート)します。@docs/repost.md。
l) unrepost — リポストを解除します。@docs/repost.md。
ソーシャル:
m) user — ユーザー名または ID でユーザーを検索します。@docs/user.md。
n) follow — ユーザー名または ID でユーザーをフォローします。@docs/follow.md。
o) unfollow — ユーザーのフォローを解除します。@docs/follow.md。
p) followers — ユーザーのフォロワー一覧を取得します。@docs/followers.md。
q) following — ユーザーがフォローしているアカウントの一覧を取得します。@docs/followers.md。
フィード:
r) timeline — ホームタイムライン(時系列の逆順です。アルゴリズムによる「おすすめ」フィードではありません)。結果は認証済みアカウント自身の投稿に大きく偏っており、ウェブクライアントの「フォロー中」タブの内容とは異なります。シグナルを改善するには、--exclude replies,retweets を使用してください。@docs/timeline.md。
s) mentions — あなたに言及している投稿です。@docs/mentions.md。
ブックマーク:
t) bookmarks — ブックマークの一覧です。ブックマークの追加や削除はできません。X では書き込みに OAuth 2.0 のユーザーコンテキストのみが受け付けられますが、サポート対象の認証情報にはそれがないためです。@docs/bookmark.md。
モデレーション:
u) mute — ユーザーをミュートします。@docs/mute.md。
v) unmute — ユーザーのミュートを解除します。@docs/mute.md。
w) muted — ミュートしたアカウントの一覧です。@docs/mute.md。
x) blocked — ブロックしたアカウントの一覧です。@docs/blocked.md。
y) hide-reply — 自分の投稿への返信を非表示にします。@docs/hide-reply.md。
分析:
z) likers — 投稿に「いいね」したユーザーです。@docs/likers.md。
aa) reposters — 投稿をリポストしたユーザーです。@docs/reposters.md。
ab) quotes — 投稿の引用ポストです。@docs/quotes.md。
ac) count — クエリに一致する投稿数を期間ごとに集計します。@docs/count.md。
ad) reposts-of-me — 他のユーザーがリポストした自分の投稿です。リポストしたユーザーは含まれません。reposters <id> で一覧表示できます。@docs/reposts-of-me.md。
検索:
ae) search-users — クエリでユーザーを検索します。@docs/search-users.md。
af) trending — トレンドトピック(全世界またはパーソナライズ済み)です。@docs/trending.md。
コミュニティ:
ag) search-communities — キーワード(名前、説明)でコミュニティを検索します。名前、説明、メンバー数、参加ポリシーのメタデータを返します。@docs/search-communities.md。
ah) community — ID でコミュニティを検索します。@docs/community.md。
ニュース:
ai) search-news — クエリでトレンドニュースを検索します。見出し、要約、カテゴリ、キーワード、関連する投稿を返します。@docs/search-news.md。
aj) news — ID でニュース記事を検索します。@docs/news.md。
アカウント:
ak) usage — 今回のサイクルで読み込んだ投稿数とプロジェクトの上限です。これは読み取りクォータであり、クレジット残高ではありません。残りの資金を確認することはできず、クレジットがなくなっても通常どおり機能します。@docs/usage.md。
[!CREDENTIALS] OAuth 1.0a の変数が4つ必要です:X_API_KEY、X_API_SECRET、X_ACCESS_TOKEN、X_ACCESS_TOKEN_SECRET。これらは、値が設定されている最初の場所から解決されます:a) cwd の .env.local、b) cwd の .env、c) スキルディレクトリ(<base_directory>)の .env.local、d) スキルディレクトリの .env、e) 環境変数。<base_directory>/.env.example に全変数の一覧があります。X Developer Console(Apps > Keys and tokens)から取得してください。条件によって必要となる変数は1つです:X_API_BEARER_TOKEN(OAuth 2.0 App-Only Bearer Token)。X Developer Console(Apps > Keys and tokens > Bearer Token)で生成します。3つのコマンドは OAuth 1.0a ではなくこのトークンで認証し、リクエストを送信する前に、このトークンがなければ失敗します:count(--all の指定の有無にかかわらず常に必要)、trending(デフォルトの全世界向け分岐で必要。--personalized はユーザーコンテキストのみを受け付けるため不要)、および usage。これらのエンドポイント(投稿数、使用量、場所別トレンド)は App-Only です。その他すべてのコマンドは、全アーカイブ検索(search --all、thread --all、replies --all)を含め、OAuth 1.0a のユーザーコンテキストで実行されます。これにより、connection_status や receives_your_dm などのユーザーコンテキストフィールドが返されます。