activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
Xpersona Agent
Search X/Twitter and the web, chat with Grok models (text + vision), and analyze X content using xAI's API. Use when: searching X posts/threads, web research via Grok, chatting with Grok, analyzing voice patterns, researching trends, or checking post quality. Triggers: grok, xai, search x, search twitter, x search, ask grok, grok chat, analyze voice, x trends. --- name: xai-plus description: | Search X/Twitter and the web, chat with Grok models (text + vision), and analyze X content using xAI's API. Use when: searching X posts/threads, web research via Grok, chatting with Grok, analyzing voice patterns, researching trends, or checking post quality. Triggers: grok, xai, search x, search twitter, x search, ask grok, grok chat, analyze voice, x trends. metadata: openclaw: emo
git clone https://github.com/mischasigtermans/openclaw-xai-plus.gitOverall rank
#32
Adoption
2 GitHub stars
Trust
Unknown
Freshness
Apr 14, 2026
Freshness
Last checked Apr 14, 2026
Best For
Contract is available with explicit auth and schema references.
Not Ideal For
xai-plus is not ideal for teams that need stronger public trust telemetry, lower setup complexity, or more explicit contract coverage before production rollout.
Evidence Sources Checked
editorial-content, capability-contract, runtime-metrics, public facts pack
Key links, install path, reliability highlights, and the shortest practical read before diving into the crawl record.
Overview
Search X/Twitter and the web, chat with Grok models (text + vision), and analyze X content using xAI's API. Use when: searching X posts/threads, web research via Grok, chatting with Grok, analyzing voice patterns, researching trends, or checking post quality. Triggers: grok, xai, search x, search twitter, x search, ask grok, grok chat, analyze voice, x trends. --- name: xai-plus description: | Search X/Twitter and the web, chat with Grok models (text + vision), and analyze X content using xAI's API. Use when: searching X posts/threads, web research via Grok, chatting with Grok, analyzing voice patterns, researching trends, or checking post quality. Triggers: grok, xai, search x, search twitter, x search, ask grok, grok chat, analyze voice, x trends. metadata: openclaw: emo Published capability contract available. No trust telemetry is available yet. 2 GitHub stars reported by the source. Last updated 4/15/2026.
Trust score
Unknown
Compatibility
OpenClaw
Freshness
Apr 14, 2026
Vendor
Mischasigtermans
Artifacts
0
Benchmarks
0
Last release
Unpublished
Install & run
git clone https://github.com/mischasigtermans/openclaw-xai-plus.gitSetup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Public facts grouped by evidence type, plus release and crawl events with provenance and freshness.
Public facts
Vendor
Mischasigtermans
Protocol compatibility
OpenClaw
Auth modes
api_key
Machine-readable schemas
OpenAPI or schema references published
Adoption signal
2 GitHub stars
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Parameters, dependencies, examples, extracted files, editorial overview, and the complete README when available.
Captured outputs
Extracted files
0
Examples
6
Snippets
0
Languages
typescript
Parameters
bash
# Via clawdbot config (recommended) clawdbot config set skills.entries.xai-plus.apiKey "xai-YOUR-KEY" # Or environment variable export XAI_API_KEY="xai-YOUR-KEY"
bash
# Via config clawdbot config set skills.entries.xai-plus.model "grok-3" # Or environment variable export XAI_MODEL="grok-3"
bash
node {baseDir}/scripts/grok_search.mjs "query" --xbash
# Last 7 days
node {baseDir}/scripts/grok_search.mjs "Claude AI" --x --days 7
# Specific date range
node {baseDir}/scripts/grok_search.mjs "AI agents" --x --from 2026-01-01 --to 2026-01-31bash
# Only from specific accounts
node {baseDir}/scripts/grok_search.mjs "AI news" --x --handles @AnthropicAI,@OpenAI
# Exclude accounts
node {baseDir}/scripts/grok_search.mjs "GPT" --x --exclude @spam1,@spam2bash
# JSON (default, agent-friendly)
node {baseDir}/scripts/grok_search.mjs "query" --x
# Links only
node {baseDir}/scripts/grok_search.mjs "query" --x --links-only
# Human-readable text
node {baseDir}/scripts/grok_search.mjs "query" --x --textEditorial read
Docs source
GITHUB OPENCLEW
Editorial quality
ready
Search X/Twitter and the web, chat with Grok models (text + vision), and analyze X content using xAI's API. Use when: searching X posts/threads, web research via Grok, chatting with Grok, analyzing voice patterns, researching trends, or checking post quality. Triggers: grok, xai, search x, search twitter, x search, ask grok, grok chat, analyze voice, x trends. --- name: xai-plus description: | Search X/Twitter and the web, chat with Grok models (text + vision), and analyze X content using xAI's API. Use when: searching X posts/threads, web research via Grok, chatting with Grok, analyzing voice patterns, researching trends, or checking post quality. Triggers: grok, xai, search x, search twitter, x search, ask grok, grok chat, analyze voice, x trends. metadata: openclaw: emo
Search X (Twitter), search the web, chat with Grok models (including vision), and analyze X content patterns using xAI's API.
Get your xAI API key from console.x.ai.
# Via clawdbot config (recommended)
clawdbot config set skills.entries.xai-plus.apiKey "xai-YOUR-KEY"
# Or environment variable
export XAI_API_KEY="xai-YOUR-KEY"
The scripts check these locations in order:
XAI_API_KEY env var~/.clawdbot/clawdbot.json → env.XAI_API_KEY~/.clawdbot/clawdbot.json → skills.entries.xai-plus.apiKey~/.clawdbot/clawdbot.json → skills.entries["grok-search"].apiKey (fallback)Override the default model (grok-4-1-fast):
# Via config
clawdbot config set skills.entries.xai-plus.model "grok-3"
# Or environment variable
export XAI_MODEL="grok-3"
Model priority:
--model flag (highest priority)XAI_MODEL env var~/.clawdbot/clawdbot.json → env.XAI_MODEL~/.clawdbot/clawdbot.json → skills.entries.xai-plus.modelgrok-4-1-fastSearch X posts and threads with optional filters.
Basic search:
node {baseDir}/scripts/grok_search.mjs "query" --x
With date filter:
# Last 7 days
node {baseDir}/scripts/grok_search.mjs "Claude AI" --x --days 7
# Specific date range
node {baseDir}/scripts/grok_search.mjs "AI agents" --x --from 2026-01-01 --to 2026-01-31
Filter by handles:
# Only from specific accounts
node {baseDir}/scripts/grok_search.mjs "AI news" --x --handles @AnthropicAI,@OpenAI
# Exclude accounts
node {baseDir}/scripts/grok_search.mjs "GPT" --x --exclude @spam1,@spam2
Output formats:
# JSON (default, agent-friendly)
node {baseDir}/scripts/grok_search.mjs "query" --x
# Links only
node {baseDir}/scripts/grok_search.mjs "query" --x --links-only
# Human-readable text
node {baseDir}/scripts/grok_search.mjs "query" --x --text
JSON output schema:
{
"query": "search query",
"mode": "x",
"results": [
{
"title": "@handle",
"url": "https://x.com/handle/status/123",
"snippet": "Post text...",
"author": "@handle",
"posted_at": "2026-01-15T10:30:00Z"
}
],
"citations": ["https://x.com/..."]
}
Search the web via Grok.
node {baseDir}/scripts/grok_search.mjs "TypeScript best practices 2026" --web
JSON output schema:
{
"query": "search query",
"mode": "web",
"results": [
{
"title": "Page title",
"url": "https://example.com/page",
"snippet": "Description...",
"author": null,
"posted_at": null
}
],
"citations": ["https://example.com/..."]
}
| Flag | Description | Example |
|------|-------------|---------|
| --x | Search X/Twitter | Required for X search |
| --web | Search the web | Required for web search |
| --days N | Last N days (X only) | --days 7 |
| --from YYYY-MM-DD | Start date (X only) | --from 2026-01-01 |
| --to YYYY-MM-DD | End date (X only) | --to 2026-01-31 |
| --handles a,b | Only these accounts (X only) | --handles @user1,@user2 |
| --exclude a,b | Exclude accounts (X only) | --exclude @spam |
| --max N | Max results | --max 20 |
| --model ID | Override model | --model grok-3 |
| --json | JSON output (default) | - |
| --links-only | Just URLs | - |
| --text | Human-readable | - |
| --raw | Include debug output | - |
See references/search-patterns.md for advanced query patterns and optimization tips.
Ask Grok anything.
node {baseDir}/scripts/chat.mjs "What is quantum computing?"
With model override:
node {baseDir}/scripts/chat.mjs --model grok-3 "Explain transformers in ML"
JSON output:
node {baseDir}/scripts/chat.mjs --json "What is TypeScript?"
JSON schema:
{
"model": "grok-4-1-fast",
"prompt": "What is TypeScript?",
"text": "TypeScript is...",
"citations": ["https://..."]
}
Analyze images with Grok.
node {baseDir}/scripts/chat.mjs --image ./screenshot.png "What's in this image?"
Multiple images:
node {baseDir}/scripts/chat.mjs --image ./pic1.jpg --image ./pic2.jpg "Compare these"
Supported formats: JPG, PNG, WebP, GIF
| Flag | Description | Example |
|------|-------------|---------|
| --model ID | Model to use | --model grok-2-vision-1212 |
| --image PATH | Attach image (can repeat) | --image ./pic.jpg |
| --json | JSON output | - |
| --raw | Include debug output | - |
See references/models.md for model comparison and capabilities.
Analyze X content for voice patterns, trends, and post quality.
Analyze an account's voice and writing patterns.
node {baseDir}/scripts/analyze.mjs voice @username
Custom date range:
# Last 60 days
node {baseDir}/scripts/analyze.mjs voice @username --days 60
JSON output schema:
{
"handle": "@username",
"analyzed_posts": 150,
"voice": {
"tone": "casual, technical",
"personality": ["curious", "direct", "helpful"],
"perspective": "practitioner sharing lessons",
"energy_level": "medium"
},
"patterns": {
"sentence_structure": ["short declarative", "occasional fragments"],
"vocabulary": ["technical", "accessible"],
"formatting_quirks": ["line breaks for emphasis", "minimal punctuation"],
"recurring_phrases": ["here's the thing", "turns out"]
},
"topics": ["AI", "software engineering", "startups"],
"best_posts": [
{
"url": "https://x.com/username/status/123",
"text": "Post text...",
"why": "Authentic voice, specific example"
}
],
"anti_patterns": ["never uses em-dashes", "avoids numbered lists"]
}
Research trends and discussions about a topic.
node {baseDir}/scripts/analyze.mjs trends "AI agents"
JSON output schema:
{
"topic": "AI agents",
"trends": [
{
"pattern": "Shift from chatbots to autonomous agents",
"description": "Discussion focuses on...",
"example_posts": ["https://x.com/..."]
}
],
"perspectives": [
{
"viewpoint": "Agents will replace most SaaS",
"supporters": ["@user1", "@user2"]
}
],
"hashtags": ["#AIAgents", "#AutonomousAI"],
"key_accounts": ["@researcher1", "@founder2"],
"posting_angles": [
{
"angle": "Practical implementation challenges",
"hook": "Everyone talks about AI agents. Nobody talks about...",
"target_audience": "Engineers building with AI"
}
]
}
Check a draft post or existing post for AI signals and platform flag patterns.
Check draft text:
node {baseDir}/scripts/analyze.mjs post "Your draft post text here"
Check existing post:
node {baseDir}/scripts/analyze.mjs post --url "https://x.com/user/status/123"
JSON output schema:
{
"post_text": "Your post...",
"ai_detection_score": 3,
"ai_signals": [
"Contains em-dash",
"Ends with engagement bait question"
],
"platform_flag_score": 2,
"platform_risks": [
"Generic question could trigger spam filter"
],
"quality_score": 7,
"suggestions": [
"Replace em-dash with period or comma",
"Remove 'What do you think?' closer",
"Add specific personal detail"
]
}
Scoring:
| Flag | Description | Example |
|------|-------------|---------|
| --days N | Date range for analysis | --days 60 |
| --url URL | Analyze existing post | --url https://x.com/... |
| --model ID | Override model | --model grok-3 |
| --json | JSON output | - |
| --raw | Include debug output | - |
See references/analysis-prompts.md for detailed prompt structures and scoring criteria.
List available xAI models.
node {baseDir}/scripts/models.mjs
Output:
grok-2-vision-1212
grok-3
grok-4-1-fast
grok-4-fast
JSON output:
node {baseDir}/scripts/models.mjs --json
Quick model comparison:
| Model | Speed | Quality | Vision | Best For | |-------|-------|---------|--------|----------| | grok-4-1-fast | Fast | Good | No | Default (search, chat, analysis) | | grok-4-fast | Fast | Good | No | Alternative fast model | | grok-3 | Slower | Best | No | Complex reasoning, detailed analysis | | grok-2-vision-1212 | Medium | Good | Yes | Image analysis |
See references/models.md for detailed model capabilities and use cases.
For X searches, the tool automatically deduplicates tweet URLs, preferring canonical /@handle/status/id over /i/status/id format.
Override the default model for any operation:
# Search with grok-3 for better quality
node {baseDir}/scripts/grok_search.mjs "complex query" --x --model grok-3
# Chat with vision model
node {baseDir}/scripts/chat.mjs --model grok-2-vision-1212 --image pic.jpg "Describe"
# Analysis with grok-3 for deeper insights
node {baseDir}/scripts/analyze.mjs voice @username --model grok-3
Add --raw to any command to see the full API response:
node {baseDir}/scripts/grok_search.mjs "query" --x --raw
# Find recent discussions
node {baseDir}/scripts/grok_search.mjs "Claude Sonnet 4.5" --x --days 3
# Get trend analysis
node {baseDir}/scripts/analyze.mjs trends "Claude Sonnet 4.5"
# Study the target account
node {baseDir}/scripts/analyze.mjs voice @target_account --days 30
# Check your draft
node {baseDir}/scripts/analyze.mjs post "Your draft here"
# Search web for context
node {baseDir}/scripts/grok_search.mjs "TypeScript 5.7 features" --web
# Ask follow-up
node {baseDir}/scripts/chat.mjs "What are the key TypeScript 5.7 improvements?"
# Analyze screenshot
node {baseDir}/scripts/chat.mjs --image ./code.png "Review this code"
Common errors and solutions:
Missing API key:
Missing XAI_API_KEY
→ Set XAI_API_KEY environment variable or add to ~/.clawdbot/clawdbot.json
Invalid mode:
Must specify --web or --x
→ Add --web or --x flag to search command
Image format error:
Unsupported image type
→ Use JPG, PNG, WebP, or GIF format
API error:
xAI API error: 401 Unauthorized
→ Check API key is valid and active
grok-4-1-fast) is fast and good for most tasksgrok-3 for complex analysis or when quality matters more than speedNo results from X search:
Voice analysis incomplete:
--days to get more post historyAPI rate limits:
Use the analysis tools to improve your X content:
# Research before writing
node {baseDir}/scripts/analyze.mjs trends "your topic"
node {baseDir}/scripts/grok_search.mjs "your topic" --x --days 7
# Study voice patterns
node {baseDir}/scripts/analyze.mjs voice @target_account
# Check draft before posting
node {baseDir}/scripts/analyze.mjs post "$(cat draft.txt)"
Use the JSON output to:
Machine endpoints, contract coverage, trust signals, runtime metrics, benchmarks, and guardrails for agent-to-agent use.
Machine interfaces
Contract coverage
Status
ready
Auth
api_key
Streaming
No
Data region
global
Protocol support
Requires: openclew, lang:typescript
Forbidden: none
Guardrails
Operational confidence: medium
curl -s "https://www.xpersona.co/api/v1/agents/mischasigtermans-openclaw-xai-plus/snapshot"
curl -s "https://www.xpersona.co/api/v1/agents/mischasigtermans-openclaw-xai-plus/contract"
curl -s "https://www.xpersona.co/api/v1/agents/mischasigtermans-openclaw-xai-plus/trust"
Operational fit
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Raw contract, invocation, trust, capability, facts, and change-event payloads for machine-side inspection.
Contract JSON
{
"contractStatus": "ready",
"authModes": [
"api_key"
],
"requires": [
"openclew",
"lang:typescript"
],
"forbidden": [],
"supportsMcp": false,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": "https://github.com/mischasigtermans/openclaw-xai-plus#input",
"outputSchemaRef": "https://github.com/mischasigtermans/openclaw-xai-plus#output",
"dataRegion": "global",
"contractUpdatedAt": "2026-02-24T19:44:09.549Z",
"sourceUpdatedAt": "2026-02-24T19:44:09.549Z",
"freshnessSeconds": 19553849
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://www.xpersona.co/api/v1/agents/mischasigtermans-openclaw-xai-plus/snapshot",
"contractUrl": "https://www.xpersona.co/api/v1/agents/mischasigtermans-openclaw-xai-plus/contract",
"trustUrl": "https://www.xpersona.co/api/v1/agents/mischasigtermans-openclaw-xai-plus/trust"
},
"curlExamples": [
"curl -s \"https://www.xpersona.co/api/v1/agents/mischasigtermans-openclaw-xai-plus/snapshot\"",
"curl -s \"https://www.xpersona.co/api/v1/agents/mischasigtermans-openclaw-xai-plus/contract\"",
"curl -s \"https://www.xpersona.co/api/v1/agents/mischasigtermans-openclaw-xai-plus/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"OPENCLEW"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_OPENCLEW",
"generatedAt": "2026-10-09T03:21:39.406Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "OPENCLEW",
"type": "protocol",
"support": "unknown",
"confidenceSource": "profile",
"notes": "Listed on profile"
},
{
"key": "repeat",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
}
],
"flattenedTokens": "protocol:OPENCLEW|unknown|profile capability:repeat|supported|profile"
}Facts JSON
[
{
"factKey": "vendor",
"label": "Vendor",
"value": "Mischasigtermans",
"category": "vendor",
"href": "https://github.com/mischasigtermans/openclaw-xai-plus",
"sourceUrl": "https://github.com/mischasigtermans/openclaw-xai-plus",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-04-15T05:21:22.124Z",
"isPublic": true,
"metadata": {}
},
{
"factKey": "traction",
"label": "Adoption signal",
"value": "2 GitHub stars",
"category": "adoption",
"href": "https://github.com/mischasigtermans/openclaw-xai-plus",
"sourceUrl": "https://github.com/mischasigtermans/openclaw-xai-plus",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-04-15T05:21:22.124Z",
"isPublic": true,
"metadata": {}
},
{
"factKey": "docs_crawl",
"label": "Crawlable docs",
"value": "6 indexed pages on the official domain",
"category": "integration",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true,
"metadata": {}
},
{
"factKey": "protocols",
"label": "Protocol compatibility",
"value": "OpenClaw",
"category": "compatibility",
"href": "https://www.xpersona.co/api/v1/agents/mischasigtermans-openclaw-xai-plus/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/mischasigtermans-openclaw-xai-plus/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-02-24T19:44:09.549Z",
"isPublic": true,
"metadata": {}
},
{
"factKey": "auth_modes",
"label": "Auth modes",
"value": "api_key",
"category": "compatibility",
"href": "https://www.xpersona.co/api/v1/agents/mischasigtermans-openclaw-xai-plus/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/mischasigtermans-openclaw-xai-plus/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:44:09.549Z",
"isPublic": true,
"metadata": {}
},
{
"factKey": "schema_refs",
"label": "Machine-readable schemas",
"value": "OpenAPI or schema references published",
"category": "artifact",
"href": "https://github.com/mischasigtermans/openclaw-xai-plus#input",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/mischasigtermans-openclaw-xai-plus/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:44:09.549Z",
"isPublic": true,
"metadata": {}
},
{
"factKey": "handshake_status",
"label": "Handshake status",
"value": "UNKNOWN",
"category": "security",
"href": "https://www.xpersona.co/api/v1/agents/mischasigtermans-openclaw-xai-plus/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/mischasigtermans-openclaw-xai-plus/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true,
"metadata": {}
}
]Change Events JSON
[
{
"eventType": "docs_update",
"title": "Docs refreshed: Sign in to GitHub · GitHub",
"description": "Fresh crawlable documentation was indexed for the official domain.",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true,
"metadata": {}
}
]Sponsored
Ads related to xai-plus and adjacent AI workflows.