一键导入
x-post-extractor
Extract high-quality X posts and threads from stream transcripts. Finds shareable moments, discoveries, and insights with media requests.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Extract high-quality X posts and threads from stream transcripts. Finds shareable moments, discoveries, and insights with media requests.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Browser automation using agent-browser CLI connected to a logged-in Chrome session via CDP. Use when asked to browse a website, fill forms, click buttons, take screenshots, scrape data, automate browser tasks, or any web interaction. Also use when asked to 'start chrome debugging', 'connect to chrome', or 'launch chrome for browser automation'.
Summarize X/Twitter feed quickly, including key links. Triggers: 'summarize my feed', 'what's on X', 'twitter summary', 'what's trending'
Posts tweets to X (Twitter) in AJ's voice. Use when asked to write a tweet, post to Twitter/X, compose a tweet, or share something on X. Handles both writing the tweet copy and posting it via browser automation.
Scrapes X/Twitter content from any profile or feed tab. Use when asked to scrape a specific Twitter user, get tweets from a profile, or extract X content beyond the Following feed.
Teaches the agent how to create new Agent Skills - the open standard for extending AI agent capabilities. Use this skill when asked to create, write, or develop new skills for AI agents.
Runs OpenAI Codex CLI agents in iTerm slots to work on GitHub issues. Use when asked to 'run codex on an issue', 'assign an issue to codex', 'spin up a codex agent', or 'have codex work on issue #N'.
| name | x-post-extractor |
| description | Extract high-quality X posts and threads from stream transcripts. Finds shareable moments, discoveries, and insights with media requests. |
Analyzes stream transcription files to extract high-quality X (Twitter) posts and threads, optimized for engagement using proven voice patterns.
When you have a stream transcription, ask Claude to extract posts:
User: "Extract X posts from my stream"
You will automatically:
parsed.jsonx_posts_output/ folder with copy-paste ready files| Input | Required | Description |
|---|---|---|
| Stream transcript | Yes | Timestamped transcript (parsed.json or out.json) |
| Stream title/topic | Yes | Context for relevance filtering |
| Stream recording access | Yes | For screenshot/clip extraction |
When user asks to extract X posts, follow this exact sequence:
parsed.json exists in current directoryout.json or *.json with sentences array)python .claude/skills/clipper/scripts/parse_transcription.py <transcription> > parsed.jsonparsed.json in windows (100-200 sentences at a time)For each high-scoring moment:
For each post, automatically fetch the required media:
mkdir -p x_posts_outputpython .claude/skills/media-fetcher/scripts/capture_screenshot.py "<url>" --output x_posts_output/
ffmpeg -y -ss <start_time> -i "<video_file>" -t <duration> -c:v libx264 -c:a aac -preset fast x_posts_output/<post_number>_<topic>_clip.mp4
python .claude/skills/media-fetcher/scripts/fetch_logos.py "<domain>" --output x_posts_output/
Create x_posts_output/ folder with:
.txt file per post with plain text (no escape characters)
01_topic_name.txt, 02_topic_name.txt, etc.Output Structure:
x_posts_output/
├── README.md # All posts with copy-paste blocks
├── 01_topic_name.txt # Post 1 text
├── 01_topic_name_clip.mp4 # Post 1 video clip
├── screenshot_or_logo.png # Post 1 image
├── 02_topic_name.txt # Post 2 text
├── 02_topic_name_clip.mp4 # Post 2 video clip
└── ...
1. Discovery Moments (high engagement potential)
2. Result Statements (proof of value)
3. Comparison Signals (context and positioning)
4. Problem→Solution Arcs (narrative hooks)
When reading the transcript:
Rank each detected moment by presence of these signals (highest to lowest):
| Priority | Signal | Weight | Example |
|---|---|---|---|
| 1 (Highest) | Tool name + specific result | 5 | "Cursor completed the entire function in 2 seconds" |
| 2 | Comparison to known tool | 4 | "This beats ChatGPT for coding tasks" |
| 3 | Metric or number | 3 | "Went from 500ms to 50ms load time" |
| 4 | Strong reaction word | 2 | "Whoa, that's actually incredible" |
| 5 (Lowest) | General discovery energy | 1 | "This is pretty cool" |
Priority Mapping:
Do NOT extract moments that are:
Use Single Post when:
Use Thread when:
Create x_posts_output/ folder with copy-paste ready files:
.txt)Each post gets its own text file with plain text ready to copy:
01_aide_cursor_alternative.txt:
Aide just autocompleted an entire function on first try.
Free. Open source. Runs locally.
Another Cursor alternative worth watching.
Check it out: [link]
The README contains all posts in code blocks for quick copying:
# X Posts - [Stream Title]
## Post 1: Aide (HIGH PRIORITY)
**Copy this:**
\```
Aide just autocompleted an entire function on first try.
Free. Open source. Runs locally.
Another Cursor alternative worth watching.
Check it out: [link]
\```
**Media:**
- Video clip: `01_aide_clip.mp4`
- Screenshot: `aide.com.png`
---
## Post 2: [Next Topic]
...
For threads, create a single file with all tweets separated by ---:
02_cursor_alternatives_thread.txt:
1/ Tested 3 Cursor alternatives this week.
One of them is mass sleeping on.
Here's what I found
---
2/ Aide
Free, open source, runs locally.
Autocomplete is surprisingly good—completed entire functions without context.
---
3/ [Next tweet]
...
Before finalizing any extraction, verify:
For Single Posts:
For Threads:
When processing a full stream:
Since transcripts can be large, analyze in overlapping windows:
parsed.json metadata for total sentencesx_posts_output/ with text files, media, and READMEScan complete! Analyzed 4400 sentences (6.7 hours).
Moments detected: 15
- Discovery moments: 6
- Result statements: 4
- Comparisons: 3
- Problem→Solution: 2
After scoring and deduplication:
- High priority: 3
- Medium priority: 1
- Skipped: 11 (off-topic, duplicate, incomplete)
Generating posts and fetching media...
Fetching media:
✓ Screenshot: year-in-code.com.png
✓ Screenshot: openrouter.ai.png
✓ Logo: xiaomi_com.png
✓ Video clip: 01_github_wrapped_clip.mp4 (15s)
✓ Video clip: 02_open_router_clip.mp4 (35s)
✓ Video clip: 03_playwright_mcp_clip.mp4 (25s)
Output saved to x_posts_output/:
- 4 text files (copy-paste ready)
- 3 video clips
- 3 images (screenshots + logos)
- README.md with summary
This skill works alongside:
parsed.json input formatTypical workflow:
1. User runs transcription → out.json
2. Run x-post-extractor → x_posts_output/ with:
- Copy-paste ready text files
- Video clips extracted from stream
- Screenshots captured automatically
- Logos fetched for mentioned companies
3. User copies text, attaches media, posts to Twitter
What gets fetched automatically:
brew install ffmpeg)pip install playwright && playwright install chromium).mp4, .webm, .mkv) for clip extraction"No moments found": The stream may lack strong discovery/result moments. Try lowering the score threshold or look for teaching moments instead.
"Too many moments": Increase score threshold to 4+ or be more aggressive with deduplication.
"Posts feel generic": Ensure you're capturing specific tool names and metrics, not just reaction words.