Skills search-x

Search X/Twitter in real-time using Grok or X API. Find tweets, trends, and discussions with citations.

install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/blueberrywoodsym/x-twitter-search" ~/.claude/skills/openclaw-skills-search-x && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/blueberrywoodsym/x-twitter-search" ~/.openclaw/skills/openclaw-skills-search-x && rm -rf "$T"
manifest: skills/blueberrywoodsym/x-twitter-search/SKILL.md
source content

Search X

Real-time X/Twitter search with two modes:

  1. xAI Grok (default) — AI-powered search with x_search tool, up to 30 days
  2. X API (
    --x-api
    ) — Native X search, up to 7 days, pay-per-use

Setup

Option 1: xAI API (default)

export XAI_API_KEY="xai-YOUR-KEY"

Get your key at: https://console.x.ai

Option 2: X API (native)

export X_BEARER_TOKEN="YOUR-BEARER-TOKEN"

Get your token at: https://console.x.com

Note: X API uses pay-per-usage pricing. No subscription needed.

Commands

Basic Search (xAI Grok)

node {baseDir}/scripts/search.js "AI video editing"

Native X API Search

node {baseDir}/scripts/search.js --x-api "AI video editing"
node {baseDir}/scripts/search.js --x-api --max 50 "trending topic"  # More results

Filter by Time

node {baseDir}/scripts/search.js --days 7 "breaking news"
node {baseDir}/scripts/search.js --days 1 "trending today"
node {baseDir}/scripts/search.js --x-api --days 7 "news"  # X API max is 7 days

Filter by Handles

node {baseDir}/scripts/search.js --handles @elonmusk,@OpenAI "AI announcements"
node {baseDir}/scripts/search.js --exclude @bots "real discussions"

Output Options

node {baseDir}/scripts/search.js --json "topic"        # Full JSON response
node {baseDir}/scripts/search.js --compact "topic"     # Just tweets, no fluff
node {baseDir}/scripts/search.js --links-only "topic"  # Just X links

Example Usage in Chat

User: "Search X for what people are saying about Claude Code" Action: Run search with query "Claude Code"

User: "Find tweets from @remotion_dev in the last week" Action: Run search with --handles @remotion_dev --days 7

User: "What's trending about AI on Twitter today?" Action: Run search with --days 1 "AI trending"

User: "Search X for Remotion best practices, last 30 days" Action: Run search with --days 30 "Remotion best practices"

How It Works

xAI Grok Mode (default)

Uses xAI's Responses API (

/v1/responses
) with the
x_search
tool:

  • Model:
    grok-4-1-fast
    (optimized for agentic search)
  • Up to 30 days of history
  • AI-powered result formatting with citations
  • Returns real tweets with URLs

X API Mode (--x-api)

Uses X's native search API (

/2/tweets/search/recent
):

  • Up to 7 days of history
  • Pay-per-usage pricing (no subscription)
  • Raw tweet data with metrics
  • Up to 100 results per query

Response Format

Each result includes:

  • @username (display name)
  • Tweet content
  • Date/time
  • Engagement metrics (X API mode)
  • Direct link to tweet

Environment Variables

xAI Mode:

  • XAI_API_KEY
    - Your xAI API key (required for default mode)
  • SEARCH_X_MODEL
    - Model override (default: grok-4-1-fast)
  • SEARCH_X_DAYS
    - Default days to search (default: 30)

X API Mode:

  • X_BEARER_TOKEN
    - Your X API Bearer Token
  • TWITTER_BEARER_TOKEN
    - Alternative env var name

Security & Permissions

What this skill does:

  • Calls xAI's
    /v1/responses
    endpoint (Grok mode) or X's
    /2/tweets/search/recent
    endpoint (X API mode)
  • Returns public tweet data with URLs and citations
  • All requests go only to
    api.x.ai
    or
    api.x.com

What this skill does NOT do:

  • Does not post, like, retweet, or modify any X/Twitter content
  • Does not access your X/Twitter account or DMs
  • Does not read config files or access the local filesystem
  • Does not send credentials to any third-party endpoint
  • Cannot be invoked autonomously by the agent (
    disable-model-invocation: true
    )

Review

scripts/search.js
before first use to verify behavior.