artwist-polyakov/polyakov-claude-skills/x-research
Claude Code and agent skill by artwist-polyakov/polyakov-claude-skills
- community
Checking that the SKILL.md file is still in the repository.
X/Twitter research via xAI Grok API with x_search tool. Digests, thread analysis, trending topics, custom search. Designed for finding Telegram post ideas from X discussions. Triggers: x research, twitter research, x digest, twitter digest, что в твиттере, дайджест твиттера, тренды x, trending x, analyze tweet, анализ твита, x search, поиск в твиттере.
Install
npx vskill@latest install artwist-polyakov/polyakov-claude-skills/x-researchSKILL.md
x-research
Research X/Twitter via xAI Grok API. Grok's x_search tool searches X in real-time and returns synthesized analysis with citations.
Перед запуском
Перед любым запуском скриптов создай рабочую копию скилла в /home/claude/x-research и работай уже из неё:
prepare_runtime.sh копирует скилл и, если есть config/.env, нормализует его через sed -i: некавыченные значения с пробелами оборачиваются в кавычки в рабочей копии. Не выводи содержимое .env в ответ; при ошибке формата подскажи пользователю, какие строки нужно заключить в кавычки.
Config
Get an xAI API key at console.x.ai, then:
Edit config/.env: paste your key into XAI_API_KEY, configure accounts and topics. Quote any value that contains spaces so the file stays shell-compatible. Шаг подготовки также чинит некавыченные значения с пробелами в скопированном .env.
Without `.env`: skill works with explicit --accounts, --query, --topics.
With `.env`: digests and trending ready out of the box.
Category registry (same pattern as telegram-channel-parser):
Agent algorithm for digest/trending:
- Read
config/.env - Parse
X_CATEGORIESto get available categories - For each:
X_ACCOUNTS_<ID>= handles,X_TOPICS_<ID>= topics,X_ACCOUNTS_<ID>_LABEL= name - Match user request to category label or use
X_DEFAULT_CATEGORY - Pass to script via
--accounts/--topics
Priority: --accounts/--topics explicit > category from .env > agent asks.
Details: config/README.md.
Philosophy
- Live-first — every call makes a fresh API request. Real-time data, never stale.
- Artifact store — each run saves an immutable snapshot in
cache/runs/. Use--prefer-cacheto reuse. - Structured output — digest/trending/search return JSON with individual items for machine consumption.
- Context hygiene — stdout limited to 30 lines. Full data in artifact file.
- Config-driven model — model set in
.env, auto-fallback if unavailable.
Workflow
Digest of subscribed accounts
Returns: structured items (author, date, summary, engagement, URL, topic) + Telegram post ideas.
Analyze a post/thread/topic
Returns: main thesis, key arguments, community reaction, sentiment, interesting findings, Telegram post angles.
Trending topics
Returns: structured items (topic, summary, sentiment, key voices, engagement) + Telegram post ideas.
Custom search
Returns: structured items + narrative summary + Telegram post ideas.
Reuse previous results
Scripts
| Script | Description | Key params | |
|---|---|---|---|
digest.sh | Digest of subscribed accounts | --category, --accounts, --period | |
analyze.sh | Deep analysis of post/thread/topic | --query, --url, --period | |
trending.sh | Trending topics by interests | --category, --topics, --period | |
search.sh | Custom search query | --query, --accounts, --period | |
find_latest.sh | Find latest cached artifact | --script, --category, --query, --period |
Common parameters
| Param | Required | Default | Description | |
|---|---|---|---|---|
--accounts | no | from .env | X handles, comma-separated (without @) | |
--category | no | from .env | Category ID from X_CATEGORIES | |
--period | no | today | Time range: 1h, today, yesterday, week, Nd | |
--query | varies | — | Search query or post description | |
--topics | no | from .env | Topics for trending, comma-separated | |
--url | no | — | X post URL for analyze | |
--limit | no | 30 | Max output lines | |
--prefer-cache | no | — | Use latest cached artifact if available | |
--refresh | no | — | Force live request (default behavior) |
Artifact store
Each run saves a JSON artifact in cache/runs/ with full metadata:
Index: cache/index.jsonl — one JSON line per run for fast lookup.
API limits
- x_search: max 10 handles per
allowed_x_handles(auto-batched if more) - Rate limits: tier-based, see docs.x.ai/developers/rate-limits
- Tool pricing: x_search invocations billed separately from tokens
- Model fallback: if primary model unavailable (HTTP 422/400), auto-retry with
grok-4.20-reasoning
Limitations
- Only public posts (x_search does not access private/protected accounts)
- x_search is a server-side Grok tool — we get synthesized analysis, not raw post data
- Structured JSON output depends on model compliance; fallback to plain text if parsing fails
- No DM access, no analytics data (only public engagement metrics)
Advanced scenarios: references/API_REFERENCE.md
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingplugins/x-research/skills/x-research/SKILL.md
Popularity
- Repository stars
- 134
- Repository forks
- 34
- 7-day trend score
- 25
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 25 May 2026, 5 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/artwist-polyakov/polyakov-claude-skills/x-research)