x-research について
x-researchは、X/Twitterの最近の議論を調べるエージェントスキルです。コマンドラインで検索を反復し、スレッドやリンク先を追跡して出典付きの概要を作成できます。絞り込み、ウォッチリスト、キャッシュにも対応します。
主な機能
- 01クエリや反応指標による検索
- 02プロフィール、投稿、スレッドの取得
- 03ウォッチリストによるアカウント追跡
- 04検索結果のキャッシュ
- 05JSONまたはMarkdownでの出力
活用シーン
- 01話題に関する最新のコミュニティの見解を確認
- 02技術的な議論やリンク先を追跡
- 03指定アカウントの投稿を監視
- 04市場調査用の出典付き資料を収集
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ trailofbits/ skills-curated --skill x-researchインストール後、Claude Code で/x-researchを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
data/watchlist.example.jsonreferences/x-api.mdscripts/pyproject.tomlx_api.pyx_cache.pyx_format.pyx_search.pyx_xai.py詳細
X リサーチ
X/Twitter 上でエージェント型リサーチを行います。リサーチの質問を対象を絞った検索に分解し、 反復的に絞り込み、スレッドを追い、リンク先のコンテンツを深掘りして、出典付きの 概要をまとめます。
X API の詳細(エンドポイント、演算子、レスポンス形式)については、
{baseDir}/skills/x-research/references/x-api.md を参照してください。
前提条件
- X API Bearer Token --
X_BEARER_TOKEN(またはXAI_API_KEY)環境変数を設定します - Python 3.11+ および uv(
pip install uvまたは https://docs.astral.sh/uv/)
CLI ツール
すべてのコマンドで、依存関係を自動管理するために uv run を使用します。
検索
uv run {baseDir}/skills/x-research/scripts/x_search.py search "<query>" [options]
オプション:
--sort likes|impressions|retweets|recent-- 並べ替え順(デフォルト: likes)--since 1h|3h|12h|1d|7d-- 期間の絞り込み(デフォルト: 過去 7 日間)--min-likes N-- いいね数の最小値で絞り込み--min-impressions N-- インプレッション数の最小値で絞り込み--pages N-- 取得するページ数。1~5(デフォルト: 1、1 ページあたり 100 件のツイート)--limit N-- 表示する結果の最大数(デフォルト: 15)--quick-- クイックモード: 1 ページ、結果は最大 10 件、自動ノイズフィルター、キャッシュ期間 1 時間--from-user <username>-- クエリ内のfrom:usernameの省略形--quality-- エンゲージメントの低いツイートを除外(いいね数 10 件以上、取得後に適用)--no-replies-- 返信を除外--save-- 結果を~/x-research-output/に保存--json-- JSON をそのまま出力--markdown-- リサーチ文書向けに Markdown 形式で出力
クエリにすでに含まれていない限り、自動的に -is:retweet を追加します。すべての検索で推定 API コストが表示されます。
例:
uv run {baseDir}/skills/x-research/scripts/x_search.py search "claude code" --sort likes --limit 10
uv run {baseDir}/skills/x-research/scripts/x_search.py search "from:anthropic" --sort recent
uv run {baseDir}/skills/x-research/scripts/x_search.py search "(cursor OR windsurf) AI editor" --pages 2 --save
uv run {baseDir}/skills/x-research/scripts/x_search.py search "AI agents" --quick
uv run {baseDir}/skills/x-research/scripts/x_search.py search "AI agents" --quality --quick
プロフィール
uv run {baseDir}/skills/x-research/scripts/x_search.py profile <username> [--count N] [--replies] [--json]
特定のユーザーの最近のツイートを取得します(デフォルトでは返信を除外します)。
スレッド
uv run {baseDir}/skills/x-research/scripts/x_search.py thread <tweet_id> [--pages N]
ルートツイート ID を指定して、会話スレッド全体を取得します。
単一のツイート
uv run {baseDir}/skills/x-research/scripts/x_search.py tweet <tweet_id> [--json]
ウォッチリスト
uv run {baseDir}/skills/x-research/scripts/x_search.py watchlist # Show all
uv run {baseDir}/skills/x-research/scripts/x_search.py watchlist add <user> [note] # Add account
uv run {baseDir}/skills/x-research/scripts/x_search.py watchlist remove <user> # Remove
uv run {baseDir}/skills/x-research/scripts/x_search.py watchlist check # Check recent
ウォッチリストは {baseDir}/skills/x-research/data/watchlist.json に保存されます。
キャッシュ
uv run {baseDir}/skills/x-research/scripts/x_search.py cache clear
有効期間は 15 分です。同一のクエリを再取得するのを避けます。
リサーチのループ(エージェント型)
(クイック検索だけではなく)深掘りリサーチを行う場合は、次のループに従います。
1. 質問をクエリに分解する
X の検索演算子を使って、リサーチの質問を 3~5 個のキーワードクエリに変換します。
- 中核となるクエリ: トピックを直接表すキーワード
- 専門家の見解: 特定した専門家を指定する
from: - 課題:
(broken OR bug OR issue OR migration)などのキーワード - 肯定的な兆候:
(shipped OR love OR fast OR benchmark)などのキーワード - リンク:
url:github.comまたは特定のドメインを指定するurl: - ノイズの削減:
-is:retweet(自動で追加)、必要に応じて-is:replyを追加 - スパムフィルター: 暗号資産関連のトピックでは
-airdrop -giveaway -whitelistを追加
2. 検索して抽出する
CLI で各クエリを実行します。実行後、次の点を確認します。
- 有益な情報か、ノイズか。演算子を調整する必要はあるか。
from:を指定して検索する価値のある重要人物はいるか。threadコマンドで追う価値のあるスレッドはあるか。WebFetchで深掘りする価値のあるリンク先のリソースはあるか。
3. スレッドを追う
エンゲージメントの高いツイートやスレッドの起点となるツイートがある場合:
uv run {baseDir}/skills/x-research/scripts/x_search.py thread <tweet_id>
4. リンク先のコンテンツを深掘りする
ツイートが GitHub リポジトリ、ブログ記事、ドキュメントにリンクしている場合は、WebFetch で取得します。次のリンクを優先します。
- 複数のツイートで参照されている
- エンゲージメントの高いツイートに含まれている
- 質問に直接関連する技術リソースを指している
5. 情報をまとめる
クエリごとではなく、テーマごとに情報をまとめます。
### [Theme/Finding Title]
[1-2 sentence summary]
- @username: "[key quote]" (NL, NI) [Tweet](url)
- @username2: "[another perspective]" (NL, NI) [Tweet](url)
Resources shared:
- [Resource title](url) -- [what it is]
6. 保存する
--save フラグを使用するか、手動で保存します。
絞り込みのヒューリスティクス
- ノイズが多すぎる場合:
-is:replyを追加し、--sort likesを使用して、キーワードを絞り込みます - 結果が少なすぎる場合:
ORを使って検索範囲を広げ、制限の厳しい演算子を削除します - スパムが結果にあふれている場合:
-$ -airdrop -giveaway -whitelistを追加します - 専門家の見解だけを得たい場合:
from:または--min-likes 50を使用します - 煽りよりも実質的な内容を重視する場合:
has:linksを指定して検索します
使用する場面
- あるトピックについて、開発者/専門家/コミュニティがどう考えているかを調査する
- 最新ニュースや製品の発売について、リアルタイムの見解を得る
- ライブラリ、フレームワーク、API に関する技術的な議論を探す
- 主要なアカウントの投稿をモニタリングする
- 競合分析や市場調査のために、出典のある証拠を集める
- 詳細な調査に入る前に、トピックの最新動向を手早く確認する
使用しない場面
- ツイートの投稿、返信、X アカウントの管理(読み取り専用ツールです)
- 7 日を超える過去の調査(最近の検索エンドポイントのみを使用します)
- X 以外のプラットフォームの検索(代わりにウェブ検索ツールを使用してください)
- ウェブ検索のほうが適切な結果を得られるタスク(X はリアルタイムの 意見、議論、最新ニュースに最適であり、参考資料の検索には向いていません)
コストに関する注意
X API は従量課金制です(投稿の読み取りは $0.005、ユーザーの検索は $0.01)。クイックモードでは、
検索あたりのコストを約 $0.50 未満に抑えられます。検索のたびに必ずコスト表示を確認してください。
キャッシュにより、重複課金を防ぎます。料金の詳細については references/x-api.md を参照してください。
ファイル構成
skills/x-research/
SKILL.md (this file)
scripts/
x_search.py (CLI entry point, run with uv)
x_api.py (X API wrapper)
x_cache.py (file-based cache, 15min TTL)
x_format.py (terminal + markdown formatters)
data/
watchlist.json (accounts to monitor)
cache/ (auto-managed)
references/
x-api.md (X API endpoint reference)