X Research
rohunvora/x-research-skill
General-purpose X/Twitter research agent. An agent skill from rohunvora/x-research-skill.
Searches X/Twitter for real-time perspectives, dev discussions, product feedback, breaking news, and expert opinions using the X API v2.
$ npx skills add trailofbits/skills-curated --skill x-research -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install trailofbits/skills-curated x-research --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/trailofbits/skills-curated.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/x-research/skills/x-research .claude/skills/x-research && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "x-research" agent skill from https://github.com/trailofbits/skills-curated/tree/main/plugins/x-research/skills/x-research into .claude/skills/x-research/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "x-research", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/trailofbits/skills-curated/tree/main/plugins/x-research/skills/x-researchType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add trailofbits/skills-curated --skill x-research -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install trailofbits/skills-curated x-research --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/trailofbits/skills-curated.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/x-research/skills/x-research .agents/skills/x-research && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "x-research" agent skill from https://github.com/trailofbits/skills-curated/tree/main/plugins/x-research/skills/x-research into .agents/skills/x-research/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "x-research", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add trailofbits/skills-curated --skill x-research -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install trailofbits/skills-curated x-research --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/trailofbits/skills-curated.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/x-research/skills/x-research .cursor/skills/x-research && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "x-research" agent skill from https://github.com/trailofbits/skills-curated/tree/main/plugins/x-research/skills/x-research into .cursor/skills/x-research/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "x-research", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/trailofbits/skills-curated.git --path plugins/x-research/skills/x-research--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add trailofbits/skills-curated --skill x-research -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install trailofbits/skills-curated x-research --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/trailofbits/skills-curated.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/x-research/skills/x-research .gemini/skills/x-research && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "x-research" agent skill from https://github.com/trailofbits/skills-curated/tree/main/plugins/x-research/skills/x-research into .gemini/skills/x-research/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "x-research", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install trailofbits/skills-curated x-researchInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add trailofbits/skills-curated --skill x-research -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/trailofbits/skills-curated.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/x-research/skills/x-research .github/skills/x-research && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "x-research" agent skill from https://github.com/trailofbits/skills-curated/tree/main/plugins/x-research/skills/x-research into .github/skills/x-research/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "x-research", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add trailofbits/skills-curated --skill x-research -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install trailofbits/skills-curated x-research --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/trailofbits/skills-curated.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/x-research/skills/x-research .opencode/skills/x-research && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "x-research" agent skill from https://github.com/trailofbits/skills-curated/tree/main/plugins/x-research/skills/x-research into .opencode/skills/x-research/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "x-research", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
x-researchSearches X/Twitter for real-time perspectives, dev discussions, product feedback, breaking news, and expert opinions using the X API v2.
X Research is an agent skill from trailofbits/skills-curated, published by the product's own GitHub organization. Searches X/Twitter for real-time perspectives, dev discussions, product feedback, breaking news, and expert opinions using the X API v2. Provides search with engagement sorting, user profiles, thread fetching, watchlists, and result caching. Use when: (1) user says "x research", "search x for", "search twitter for", "what are people saying about", "what's twitter saying", "check x for", "x search", (2) user needs recent X discourse on a topic (library releases, API changes, product launches, industry events), (3)…
Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 11 other files, including scripts and reference files (for example `data/watchlist.example.json`, `references/x-api.md` and `scripts/x_api.py`).
It sits in Writing & Content, covering Social media posts, Product launch strategy and Customer success. It works with X (Twitter). The repository describes itself as: Curated, community-vetted Claude Code plugin marketplace. The licence is CC-BY-SA-4.0.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 6d05be4. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
BashReadGrepGlobWriteWebFetchFrom allowed-tools in the SKILL.md frontmatter.
Ships 6 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
uvpipFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
docs.astral.shFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
X_BEARER_TOKENXAI_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
X Research loads about 1.9k tokens when it runs, and up to ~3k if it reads all its reference files. Until then it costs about 161 tokens; SKILL.md has 581 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Bash, Read, Grep, Glob, Write, WebFetchAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from trailofbits/skills-curated at commit 6d05be4, republished under its CC-BY-SA-4.0 licence (© trailofbits). 581 words, ~1,869 tokens.
.claude/skills/x-research/SKILL.md (or your agent's skills folder). This skill also uses 8 other files; get the full folder from GitHub.Agentic research over X/Twitter. Decompose research questions into targeted searches, iteratively refine, follow threads, deep-dive linked content, and synthesize sourced briefings.
For X API details (endpoints, operators, response format): read
{baseDir}/skills/x-research/references/x-api.md.
X_BEARER_TOKEN (or XAI_API_KEY) env varpip install uv or https://docs.astral.sh/uv/)All commands use uv run for automatic dependency management:
uv run {baseDir}/skills/x-research/scripts/x_search.py search "<query>" [options]Options:
--sort likes|impressions|retweets|recent -- sort order (default: likes)--since 1h|3h|12h|1d|7d -- time filter (default: last 7 days)--min-likes N -- filter by minimum likes--min-impressions N -- filter by minimum impressions--pages N -- pages to fetch, 1-5 (default: 1, 100 tweets/page)--limit N -- max results to display (default: 15)--quick -- quick mode: 1 page, max 10 results, auto noise filter, 1hr cache--from-user <username> -- shorthand for from:username in query--quality -- filter low-engagement tweets (min 10 likes, post-hoc)--no-replies -- exclude replies--save -- save results to ~/x-research-output/--json -- raw JSON output--markdown -- markdown output for research docsAuto-adds -is:retweet unless query already includes it. All searches display estimated API cost.
Examples:
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 --quickuv run {baseDir}/skills/x-research/scripts/x_search.py profile <username> [--count N] [--replies] [--json]Fetches recent tweets from a specific user (excludes replies by default).
uv run {baseDir}/skills/x-research/scripts/x_search.py thread <tweet_id> [--pages N]Fetches full conversation thread by root tweet 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 recentWatchlist stored in {baseDir}/skills/x-research/data/watchlist.json.
uv run {baseDir}/skills/x-research/scripts/x_search.py cache clear15-minute TTL. Avoids re-fetching identical queries.
When doing deep research (not just a quick search), follow this loop:
Turn the research question into 3-5 keyword queries using X search operators:
from: specific known experts(broken OR bug OR issue OR migration)(shipped OR love OR fast OR benchmark)url:github.com or url: specific domains-is:retweet (auto-added), add -is:reply if needed-airdrop -giveaway -whitelist for crypto-adjacent topicsRun each query via CLI. After each, assess:
from: specifically?thread command?WebFetch?When a tweet has high engagement or is a thread starter:
uv run {baseDir}/skills/x-research/scripts/x_search.py thread <tweet_id>When tweets link to GitHub repos, blog posts, or docs, fetch with WebFetch. Prioritize links that:
Group findings by theme, not by query:
### [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]Use --save flag or save manually.
-is:reply, use --sort likes, narrow keywordsOR, remove restrictive operators-$ -airdrop -giveaway -whitelistfrom: or --min-likes 50has:linksX API uses pay-per-use pricing ($0.005/post read, $0.01/user lookup). Quick mode
keeps costs under ~$0.50/search. Always check the cost display after each search.
Cache prevents duplicate charges. See references/x-api.md for full pricing.
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)© trailofbits, CC-BY-SA-4.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 8 other files (scripts, references) in plugins/x-research/skills/x-research of trailofbits/skills-curated.
Open the folder on GitHubat commit 6d05be4
X Research next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| X Research this skilltrailofbits/skills-curated | 512 | — | ~1.9k | Automated safety check: Notes | CC-BY-SA-4.0 | |
| X Researchrohunvora/x-research-skill | 1.2k | 1 repos | ~1.6k | Automated safety check: Pass | None | |
| Schedule Socialindranilbanerjee/digital-marketing-pro | 854 | 1 repos | ~3.4k | Automated safety check: Pass | MIT | |
| Launch Distributionamplitude/builder-skills | 159 | — | ~2.8k | Automated safety check: Pass | None | |
| Getxapi ConnectLeoYeAI/openclaw-marketing-skills | 1k | 1 repos | ~715 | Automated safety check: Pass | Custom licence | |
| X Twitter ConnectLeoYeAI/openclaw-marketing-skills | 1k | 1 repos | ~1.6k | Automated safety check: Pass | Custom licence |
rohunvora/x-research-skill
General-purpose X/Twitter research agent. An agent skill from rohunvora/x-research-skill.
indranilbanerjee/digital-marketing-pro
Schedule social posts to Twitter/X, Instagram, LinkedIn, TikTok, YouTube, and Pinterest through connected platform MCPs — generating per-platform copy variations, hashtag mixes, media-spec…
amplitude/builder-skills
Plan and execute multi-channel distribution for product launches across X/Twitter, Reddit, LinkedIn, Hacker News, and other platforms.
LeoYeAI/openclaw-marketing-skills
Connect GetXAPI to pull public X/Twitter marketing signals into OpenClaw workflows.
LeoYeAI/openclaw-marketing-skills
Connect TweetClaw to pull public X/Twitter marketing signals into OpenClaw workflows.
iamzifei/show-me-the-money
Social media management and community building automation. An agent skill from iamzifei/show-me-the-money.
trailofbits/skills-curated
Analyze git repositories to build a security ownership topology (people-to-file), compute bus factor and sensitive-code ownership, and export CSV/JSON for graph databases and visualization.
trailofbits/skills-curated
A skill your agent uses when the task involves reading, creating, or editing .docx documents, especially when formatting or layout fidelity matters; prefer python-docx plus the bundled…
trailofbits/skills-curated
A skill your agent uses when the agent is building or iterating on a web game (HTML/JS) and needs a reliable development + testing loop: implement small changes, run a Playwright-based test script…
trailofbits/skills-curated
A skill your agent uses when the user asks to create, scaffold, or edit Jupyter notebooks (.ipynb) for experiments, explorations, or tutorials; prefer the bundled templates and run the helper script…
trailofbits/skills-curated
A skill your agent uses when the task requires automating a real browser from the terminal (navigation, form filling, snapshots, screenshots, data extraction, UI-flow debugging) via playwright-cli…
trailofbits/skills-curated
Teaches the user a new skill or concept over multiple sessions, using the current directory as a stateful teaching workspace with lessons, learning records, and reference materials.
Works with
Searches X/Twitter for real-time perspectives, dev discussions, product feedback, breaking news, and expert opinions using the X API v2. X Research is an agent skill from trailofbits/skills-curated, published by the product's own GitHub organization. Searches X/Twitter for real-time perspectives, dev discussions, product feedback, breaking news, and expert opinions using the X API v2.
X Research fits situations like: user says x research; search twitter for; what are people saying about; whats twitter saying.
Run `npx skills add trailofbits/skills-curated --skill x-research -a claude-code`. Or copy the skill folder (plugins/x-research/skills/x-research in trailofbits/skills-curated) into .claude/skills/x-research in your project. Claude Code loads it when a task matches its description.
Run `npx skills add trailofbits/skills-curated --skill x-research -a codex`. Or copy the skill folder (plugins/x-research/skills/x-research in trailofbits/skills-curated) into .agents/skills/x-research in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add trailofbits/skills-curated --skill x-research -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/x-research, .gemini/skills/x-research, .github/skills/x-research and .opencode/skills/x-research in your project.
Going by SKILL.md and its folder, X Research needs Python for the scripts in its folder, the command-line tools its instructions call (uv and pip) and credentials named X_BEARER_TOKEN and XAI_API_KEY. Our summary lists: Python 3; A credential in X_BEARER_TOKEN; A credential in XAI_API_KEY. Its frontmatter pre-approves these tools: Bash, Read, Grep, Glob, Write, WebFetch.
SKILL.md names 1 domain. As links in the text: docs.astral.sh. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
X Research is published under the CC-BY-SA-4.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.9k tokens (SKILL.md is roughly 7.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.1k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with X Research: X Research (rohunvora/x-research-skill, 1.2k stars), Schedule Social (indranilbanerjee/digital-marketing-pro, 854 stars), Launch Distribution (amplitude/builder-skills, 159 stars) and Getxapi Connect (LeoYeAI/openclaw-marketing-skills, 1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
trailofbits (a GitHub organization, an official publisher) maintains it in trailofbits/skills-curated, which has 512 GitHub stars. The repository holds 24 skills in this directory. The repository was last updated on July 14, 2026.
Source: trailofbits/skills-curated on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.