grokSearch the web and X (Twitter) using xAI's Grok API with real-time access, citations, and image understanding
Install via ClawdBot CLI:
clawdbot install castanley/grokSearch the web and X (Twitter) using xAI's Grok API with real-time internet access, citations, and optional image/video understanding.
Do NOT use for:
export XAI_API_KEY="your-xai-api-key-here"
Get your API key from: https://console.x.ai/
The agent will automatically choose the right tool based on the user's query:
User: "What's the latest news about AI regulation?"
ā Uses web_search
User: "What are people saying about OpenAI on X?"
ā Uses x_search
Search the web using xAI's Grok API.
Parameters:
query (required): Search query stringmodel (optional): Model to use (default: "grok-4-1-fast-reasoning")allowed_domains (optional): Array of domains to restrict search (max 5)excluded_domains (optional): Array of domains to exclude (max 5)enable_image_understanding (optional): Enable image analysis (default: false)Returns:
content: The search response textcitations: Array of sources with url, title, and snippetusage: Token usage statisticsSearch X (Twitter) using xAI's Grok API.
Parameters:
query (required): Search query stringmodel (optional): Model to use (default: "grok-4-1-fast-reasoning")allowed_x_handles (optional): Array of X handles to search (max 10, without @)excluded_x_handles (optional): Array of X handles to exclude (max 10, without @)from_date (optional): Start date in ISO8601 format (YYYY-MM-DD)to_date (optional): End date in ISO8601 format (YYYY-MM-DD)enable_image_understanding (optional): Enable image analysis (default: false)enable_video_understanding (optional): Enable video analysis (default: false)Returns:
content: The search response textcitations: Array of X posts with url, title, and snippetusage: Token usage statisticsThis skill uses the xAI Responses API (/v1/responses endpoint).
async function search_web(options) {
const { query, model = 'grok-4-1-fast-reasoning',
allowed_domains, excluded_domains, enable_image_understanding } = options;
const tool = { type: 'web_search' };
if (allowed_domains) tool.allowed_domains = allowed_domains;
if (excluded_domains) tool.excluded_domains = excluded_domains;
if (enable_image_understanding) tool.enable_image_understanding = true;
const response = await fetch('https://api.x.ai/v1/responses', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${process.env.XAI_API_KEY}`
},
body: JSON.stringify({
model,
input: [{ role: 'user', content: query }],
tools: [tool]
})
});
const data = await response.json();
return {
content: data.output[data.output.length - 1].content,
citations: data.citations
};
}
async function search_x(options) {
const { query, model = 'grok-4-1-fast-reasoning',
allowed_x_handles, excluded_x_handles, from_date, to_date,
enable_image_understanding, enable_video_understanding } = options;
const tool = { type: 'x_search' };
if (allowed_x_handles) tool.allowed_x_handles = allowed_x_handles;
if (excluded_x_handles) tool.excluded_x_handles = excluded_x_handles;
if (from_date) tool.from_date = from_date;
if (to_date) tool.to_date = to_date;
if (enable_image_understanding) tool.enable_image_understanding = true;
if (enable_video_understanding) tool.enable_video_understanding = true;
const response = await fetch('https://api.x.ai/v1/responses', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${process.env.XAI_API_KEY}`
},
body: JSON.stringify({
model,
input: [{ role: 'user', content: query }],
tools: [tool]
})
});
const data = await response.json();
return {
content: data.output[data.output.length - 1].content,
citations: data.citations
};
}
const result = await search_web({
query: "latest AI regulation developments"
});
const result = await search_web({
query: "UN climate summit latest",
allowed_domains: ["un.org", "gov.uk", "grokipedia.com"]
});
const result = await search_x({
query: "new iPhone reactions opinions"
});
const result = await search_x({
query: "AI thoughts",
allowed_x_handles: ["elonmusk", "cstanley"],
from_date: "2025-01-01"
});
const result = await search_x({
query: "Mars landing images",
enable_image_understanding: true,
enable_video_understanding: true
});
allowed_domains to limit to specific domains (max 5)excluded_domains for known bad sources (max 5)allowed_x_handles to focus on specific accounts (max 10)excluded_x_handles to filter noise (max 10)export XAI_API_KEY="your-key-here"
Search queries using reasoning models (e.g. grok-4-1-fast-reasoning) can take 30-60+ seconds to return, especially when the model performs multiple web or X searches. If the search is lagging, inform the user that results are still loading and ask them to type "poll" to check for the completed response.
Generated Feb 26, 2026
Startups can use the web search to gather current market trends, competitor analysis, and regulatory updates, while X search helps monitor social sentiment and discussions around their industry, enabling data-driven product decisions.
PR agencies can leverage X search to track real-time public reactions and trending topics during events, and web search to verify facts and gather news updates, allowing for swift and informed crisis response strategies.
Financial analysts can use web search to pull real-time stock prices, economic reports, and news from trusted domains, while X search provides insights into market sentiment and reactions from key influencers.
Researchers and students can employ web search to access up-to-date articles, documentation, and recent studies, with X search offering supplementary data on public discourse and emerging topics in their field.
E-commerce businesses can utilize X search to monitor customer feedback, trending product discussions, and competitor mentions, and web search to track industry news and verify product information from specific websites.
Offer this skill as a paid API service for developers and businesses needing real-time search capabilities, with tiered pricing based on usage limits and advanced features like image understanding.
Provide consulting services to integrate this skill into existing systems for industries like PR or finance, offering custom setups, training, and ongoing support for optimized search workflows.
Develop a white-label platform that uses this skill to deliver search-driven analytics dashboards to clients, allowing them to monitor web and social data with branded reports and insights.
š¬ Integration Tip
Ensure the XAI_API_KEY is securely stored as an environment variable and test the skill with sample queries to verify real-time access and citation accuracy before deployment.
Use CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
Gemini CLI for one-shot Q&A, summaries, and generation.
Research any topic from the last 30 days on Reddit + X + Web, synthesize findings, and write copy-paste-ready prompts. Use when the user wants recent social/web research on a topic, asks "what are people saying about X", or wants to learn current best practices. Requires OPENAI_API_KEY and/or XAI_API_KEY for full Reddit+X access, falls back to web search.
Check Antigravity account quotas for Claude and Gemini models. Shows remaining quota and reset times with ban detection.
Manages free AI models from OpenRouter for OpenClaw. Automatically ranks models by quality, configures fallbacks for rate-limit handling, and updates opencla...
Manages free AI models from OpenRouter for OpenClaw. Automatically ranks models by quality, configures fallbacks for rate-limit handling, and updates openclaw.json. Use when the user mentions free AI, OpenRouter, model switching, rate limits, or wants to reduce AI costs.