Help us improve
Share bugs, ideas, or general feedback.
From bopen-tools
Delivers AI-powered summaries and analysis of X/Twitter trends, social sentiment, discussions, and current events via xAI Grok API. Use for researching emerging tools, community opinions, and breaking news.
npx claudepluginhub b-open-io/claude-plugins --plugin bopen-toolsHow this skill is triggered — by the user, by Claude, or both
Slash command
/bopen-tools:x-researchThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
AI-powered research using xAI's Grok API. Returns **AI summaries with citations**, not raw tweet data.
Researches X/Twitter via xAI Grok API: account digests, thread/post analysis, trending topics, custom searches for Telegram post ideas.
Searches recent X/Twitter tweets (last 7 days) by query or operators like from:username, #hashtag, -is:retweet. Returns raw JSON via bash script using Twitter API v2.
Searches X (Twitter) for users, tweets, trending topics, and replies via the Felo X Search API. Use with explicit commands or when users ask about X/Twitter data.
Share bugs, ideas, or general feedback.
AI-powered research using xAI's Grok API. Returns AI summaries with citations, not raw tweet data.
Want raw tweets instead? Use these skills:
x-user-timeline- Raw tweets from a userx-tweet-search- Raw search resultsx-tweet-fetch- Raw single tweetx-user-lookup- User profile dataThese require
X_BEARER_TOKENinstead ofXAI_API_KEY.
USE THIS SKILL FOR:
DON'T USE FOR:
Check if the API key is set:
if [ -z "$XAI_API_KEY" ]; then
echo "ERROR: XAI_API_KEY is not set"
echo "1. Get API key from https://x.ai/api"
echo "2. Add to profile: export XAI_API_KEY=\"your-key\""
echo "3. Restart terminal and Claude Code"
exit 1
else
echo "XAI_API_KEY is configured"
fi
If unavailable, inform the user that XAI_API_KEY must be configured before using this skill.
Endpoint: https://api.x.ai/v1/responses
Recommended Model: grok-4-1-fast (specifically trained for agentic search)
Available Models:
grok-4-1-fast - Recommended for agentic search (auto-selects reasoning mode)grok-4-1-fast-reasoning - Explicit reasoning for complex researchgrok-4-1-fast-non-reasoning - Faster responses, simpler queriesAvailable Search Tools:
web_search - Searches the internet and browses web pagesx_search - Semantic and keyword search across X postscurl -s "https://api.x.ai/v1/responses" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $XAI_API_KEY" \
-d '{
"model": "grok-4-1-fast",
"input": [{"role": "user", "content": "[YOUR QUERY]"}],
"tools": [{"type": "web_search"}, {"type": "x_search"}]
}' | jq -r '.output[-1].content[0].text'
RESPONSE=$(curl -s "https://api.x.ai/v1/responses" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $XAI_API_KEY" \
-d '{
"model": "grok-4-1-fast",
"input": [{"role": "user", "content": "[YOUR QUERY]"}],
"tools": [{"type": "web_search"}, {"type": "x_search"}]
}')
# Extract usage stats
TOOL_CALLS=$(echo "$RESPONSE" | jq -r '.usage.num_server_side_tools_used // 0')
COST_TICKS=$(echo "$RESPONSE" | jq -r '.usage.cost_in_usd_ticks // 0')
COST_USD=$(echo "scale=4; $COST_TICKS / 1000000000" | bc)
echo "Tool calls: $TOOL_CALLS | Estimated cost: \$$COST_USD"
echo ""
echo "$RESPONSE" | jq -r '.output[-1].content[0].text'
"tools": [{
"type": "web_search",
"allowed_domains": ["github.com", "stackoverflow.com"],
"excluded_domains": ["pinterest.com"],
"enable_image_understanding": true
}]
allowed_domains - Restrict to these domains only (max 5)excluded_domains - Exclude these domains (max 5)enable_image_understanding - Analyze images found during search"tools": [{
"type": "x_search",
"allowed_x_handles": ["elikimonimus", "anthropaboris"],
"excluded_x_handles": ["spambot"],
"from_date": "2025-01-01",
"to_date": "2025-01-16",
"enable_image_understanding": true,
"enable_video_understanding": true
}]
allowed_x_handles - Only include posts from these accounts (max 10)excluded_x_handles - Exclude posts from these accounts (max 10)from_date / to_date - ISO8601 date range (YYYY-MM-DD)enable_image_understanding - Analyze images in postsenable_video_understanding - Analyze videos in postscurl -s "https://api.x.ai/v1/responses" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $XAI_API_KEY" \
-d '{
"model": "grok-4-1-fast",
"input": [{"role": "user", "content": "What is currently trending on X? Include viral posts and major discussions."}],
"tools": [{"type": "x_search"}]
}' | jq -r '.output[-1].content[0].text'
curl -s "https://api.x.ai/v1/responses" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $XAI_API_KEY" \
-d '{
"model": "grok-4-1-fast",
"input": [{"role": "user", "content": "What are developers saying about [TOPIC] on X? Include recent discussions and opinions."}],
"tools": [{"type": "x_search"}, {"type": "web_search"}]
}' | jq -r '.output[-1].content[0].text'
curl -s "https://api.x.ai/v1/responses" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $XAI_API_KEY" \
-d '{
"model": "grok-4-1-fast",
"input": [{"role": "user", "content": "Latest news and developments about [TOPIC]"}],
"tools": [{"type": "web_search"}]
}' | jq -r '.output[-1].content[0].text'
curl -s "https://api.x.ai/v1/responses" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $XAI_API_KEY" \
-d '{
"model": "grok-4-1-fast",
"input": [{"role": "user", "content": "What happened with [TOPIC] last week?"}],
"tools": [{
"type": "x_search",
"from_date": "2025-01-09",
"to_date": "2025-01-16"
}, {
"type": "web_search"
}]
}' | jq -r '.output[-1].content[0].text'
The response contains:
{
"output": [
{"type": "web_search_call", "status": "completed", ...},
{"type": "custom_tool_call", "name": "x_semantic_search", ...},
{
"type": "message",
"content": [{
"type": "output_text",
"text": "The actual response with [[1]](url) inline citations",
"annotations": [{"type": "url_citation", "url": "...", ...}]
}]
}
],
"citations": ["url1", "url2", ...],
"usage": {
"input_tokens": 11408,
"output_tokens": 2846,
"num_server_side_tools_used": 8,
"cost_in_usd_ticks": 429052500
}
}
Extracting content: jq -r '.output[-1].content[0].text'
Extracting citations: jq -r '.citations[]'
Search tools are currently FREE (promotional pricing).
Standard pricing when active:
Track costs via response.usage.cost_in_usd_ticks (divide by 1,000,000,000 for USD).
If the API returns an error:
grok-4-1-fast)tools array is properly formattedCommon errors:
"Internal error" - Usually wrong model name or malformed requestDEPRECATED (January 12, 2026): The old Live Search API using search_parameters is being deprecated. This skill uses the new agentic tool calling API which is faster and more capable.
Old format (deprecated):
{
"model": "grok-4-latest",
"messages": [...],
"search_parameters": {"mode": "on"}
}
New format (use this):
{
"model": "grok-4-1-fast",
"input": [...],
"tools": [{"type": "web_search"}, {"type": "x_search"}]
}