This pulls down Twitter/X content without needing auth or dealing with JavaScript, which is handy when you want Claude to read a thread or article. The newer fetch_article.py script is the real win here: it grabs all the images from X Articles, downloads them locally, and builds proper Markdown with frontmatter and image references ready for your PKM setup. If you just need text, the Jina API route works fine. I like that it handles the annoying parts of archiving tweet content, especially the long-form articles where you actually want those embedded images saved alongside the text instead of dealing with dead links later.
npx -y skills add daymade/claude-code-skills --skill twitter-reader --agent claude-codeInstalls into .claude/skills of the current project.
Fetch Twitter/X post and article content with full media support.
For X Articles with images, use the new fetch_article.py script:
uv run --with pyyaml python scripts/fetch_article.py <article_url> [output_dir]
Example:
uv run --with pyyaml python scripts/fetch_article.py \
https://x.com/HiTw93/status/2040047268221608281 \
./Clippings
This will:
twitter-cli (likes, retweets, bookmarks)jina.ai APIattachments/YYYY-MM-DD-AUTHOR-TITLE/Fetching: https://x.com/HiTw93/status/2040047268221608281
--------------------------------------------------
Getting metadata...
Title: 你不知道的大模型训练:原理、路径与新实践
Author: Tw93
Likes: 1648
Getting content and images...
Images: 15
Downloading 15 images...
✓ 01-image.jpg
✓ 02-image.jpg
...
✓ Saved: ./Clippings/2026-04-03-文章标题.md
✓ Images: ./Clippings/attachments/2026-04-03-HiTw93-.../ (15 downloaded)
For simple text-only fetching without authentication:
# Single tweet
curl "https://r.jina.ai/https://x.com/USER/status/TWEET_ID" \
-H "Authorization: Bearer ${JINA_API_KEY}"
# Batch fetching
scripts/fetch_tweets.sh url1 url2 url3
uv (Python package manager)export JINA_API_KEY="your_api_key_here"
# Get from https://jina.ai/
output_dir/
├── YYYY-MM-DD-article-title.md # Main Markdown file
└── attachments/
└── YYYY-MM-DD-author-title/
├── 01-image.jpg
├── 02-image.jpg
└── ...
https://x.com/USER/status/ID (posts)https://x.com/USER/article/ID (long-form articles)https://twitter.com/USER/status/ID (legacy)Full-featured article fetcher with image download:
uv run --with pyyaml python scripts/fetch_article.py <url> [output_dir]
Simple text-only fetcher using Jina API:
python scripts/fetch_tweet.py <tweet_url> [output_file]
Batch fetch multiple tweets (Jina API):
scripts/fetch_tweets.sh <url1> <url2> ...
Old workflow:
curl "https://r.jina.ai/https://x.com/..."
# Manual image extraction and download
New workflow:
uv run --with pyyaml python scripts/fetch_article.py <url>
# Automatic image download, complete Markdown
juliusbrussee/caveman
mattpocock/skills
shadcn/improve
obra/superpowers
forrestchang/andrej-karpathy-skills
vercel-labs/skills