social-fetch
When you or another skill needs to fetch the content of a social media post by URL — tweet, X thread, LinkedIn post, Instagram post, TikTok video, Bluesky post, Reddit thread, Mastodon status, Threads post, Hacker News thread.
Install / Use
npx skills add coreyhaines31/makerskills --skill social-fetchInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
MarketingSupported Platforms
Our assessment of social-fetch
social-fetch scores 84/100 on our quality scale, 446th of 595 Marketing skills we index.
Its SKILL.md is 7.3 KB long, well organised into 10 sections with 1 code example: a thorough specification that gives an agent plenty to work with.
It has 824 GitHub stars, a meaningful sign that others use it.
Maintenance, license and trust
- The repository was last updated 31 days ago, so social-fetch is actively maintained.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
social-fetch compared with similar skills
All 4 of these similar skills score higher than social-fetch; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| social-fetch (this skill)by coreyhaines31 | 84 | 824 | 31d ago | SKILL.md |
| Agent-Reachby Panniantong | 100 | 92.4k | 21d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 74.5k | today | CLAUDE.md |
| Scraplingby D4Vinci | 100 | 86.0k | today | MCP Server |
| crawl4aiby unclecode | 100 | 84.8k | 1d ago | MCP Server |
Frequently asked questions
- How do I install social-fetch?
- Run
npx skills add coreyhaines31/makerskills --skill social-fetch. The install tabs above show the steps for each supported agent. - Which AI agents does social-fetch work with?
- It is written for Zed, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is social-fetch safe to use?
- It is MIT-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is social-fetch still maintained?
- The repository was last updated 31 days ago, so social-fetch is actively maintained.
Skill content
View source on GitHubname: social-fetch description: "When you or another skill needs to fetch the content of a social media post by URL — tweet, X thread, LinkedIn post, Instagram post, TikTok video, Bluesky post, Reddit thread, Mastodon status, Threads post, Hacker News thread. Returns normalized structured data (author, posted_at, text, engagement counts, media URLs, replies if requested) regardless of platform. Tries strategies in order: direct API (Bluesky, Mastodon, HN, Reddit), agent-browser with modal dismissal (LinkedIn, X preview), Wayback Machine (older posts), paid APIs (ScrapeCreators / Apify — only if env keys present). Triggers on "/social-fetch <url>," "fetch this tweet," "fetch this post," "what does this LinkedIn say," "read this thread," "pull this post." Used by deep-research (citing specific posts), jab-hook (inspiration account analysis), business-brainstorm (competitor / operator commentary)." metadata: version: 0.1.1
/social-fetch — Pull any social post by URL
Normalized fetcher for social posts across platforms. Detects platform from URL, tries strategies in order, returns the same JSON shape regardless of source.
Step 1 — Detect platform
| URL pattern | Platform |
|---|---|
| x.com/<user>/status/<id> or twitter.com/<user>/status/<id> | x (Twitter) |
| linkedin.com/posts/<slug> or linkedin.com/feed/update/urn:li:activity:<id> | linkedin |
| linkedin.com/in/<handle> (profile, recent activity) | linkedin-profile |
| instagram.com/p/<id> or instagram.com/reel/<id> | instagram |
| tiktok.com/@<user>/video/<id> | tiktok |
| bsky.app/profile/<handle>/post/<rkey> | bluesky |
| reddit.com/r/<sub>/comments/<id>/... | reddit |
| <mastodon-instance>/@<user>/<id> (e.g. mastodon.social, hachyderm.io) | mastodon |
| threads.net/@<user>/post/<id> | threads |
| news.ycombinator.com/item?id=<id> | hn |
| youtube.com/watch?v=<id> or youtu.be/<id> | → defer to watch-video |
If the URL doesn't match any pattern, ask the user what platform it is.
Step 2 — Pick strategy chain
Read references/strategies.md for the per-platform strategy chain. Each platform has 2–5 strategies tried in order.
Key principles:
- Free strategies first (direct APIs, agent-browser)
- Paid only as fallback (ScrapeCreators / Apify) — and only if the env key is set
- Bluesky / Mastodon / HN / Reddit are free + reliable (public APIs)
- X / LinkedIn / Instagram / TikTok / Threads need paid or scraping fallback for full data
Step 3 — Execute strategy
For each strategy in the chain:
- Try it
- If success: parse → normalize → return
- If failure (404, 402, auth wall, empty response): note the failure and try the next strategy
After exhausting the chain, return a clear error: which strategies were tried, why each failed, and what's needed to unlock (e.g., "Add $SCRAPECREATORS_API_KEY for X — see references/auth-keys.md").
Step 4 — Normalize output
Return this shape regardless of platform (see references/output-schema.md for the full spec + platform-specific examples):
{
"platform": "x",
"url": "https://x.com/example/status/1234567890",
"fetched_at": "2026-06-17T14:35:00Z",
"raw_source": "scrapecreators",
"author": {
"handle": "@example",
"name": "the user Ganim",
"verified": true
},
"posted_at": "2026-06-17T16:53:00Z",
"text": "The 80/20 of a useful AI second brain: ...",
"media": [],
"engagement": {
"likes": 51,
"reposts": 13,
"replies": 9,
"bookmarks": 7,
"views": 32700
},
"is_thread": true,
"thread": [],
"replies": []
}
Fields with no equivalent on a platform (e.g., bookmarks on Mastodon) get null, not 0. Missing data is different from zero data.
Step 5 — Optional enrichments
Based on flags / asks:
| Flag | Behavior |
|---|---|
| --with-replies | Fetch top-level replies (1 hop). Costs extra API quota. |
| --thread | If the post is part of a thread by the same author, fetch the whole thread. |
| --raw | Include the raw API/scrape response in the output (for debugging) |
| --media | Download media files (images/videos) to ~/Documents/social-fetches/<platform>-<id>/ |
Default: just the post itself, no replies, no media download (just URLs).
Step 6 — Cache (optional)
If ~/Documents/social-fetches/_cache/ exists, cache successful fetches there by {platform}-{id}.json for 24h. Saves API quota when the same post is referenced repeatedly across skills.
Skip cache if --no-cache flag is set or for --with-replies / --thread (likely-stale).
Composes with
deep-research— cite specific posts in research briefs. When research surfaces a relevant tweet/post URL, fetch and include in the brief.jab-hook— pull recent posts from inspiration accounts for deeper format analysis (currently uses agent-browser inline; should call this skill instead).business-brainstorm— pull competitor / operator commentary as evidence during scoring.second-brain— capture a post intoraw/with thetweet-/bookmark-prefix; the structured output makes for cleaner raw files than a screenshot or copy-paste.watch-video— for YouTube URLs (or any video — Loom, Vimeo, Riverside, MP4), route there instead.
Known limits
- X: free strategies return tweet preview only (text, author, basic engagement). Full thread + replies need
$SCRAPECREATORS_API_KEYor$APIFY_API_TOKEN. - LinkedIn: agent-browser works for profile recent-activity (after dismissing the modal). Specific post URLs (
linkedin.com/posts/...) often need paid fallback. - Instagram / TikTok / Threads: heavy anti-bot. Paid fallback strongly recommended.
- Bluesky / Mastodon / HN / Reddit: free + reliable.
- Private / deleted posts: nothing helps. Try Wayback Machine for deleted content.
If a platform consistently fails on free strategies and the user uses it often, prompt to set up the paid key (see references/auth-keys.md).
Notes on quality
- Strategy chain, not single-source. Every platform has a fallback ladder (native oEmbed → agent-browser → SCS API → Apify). If one step fails, degrade gracefully to the next. Never fail hard on the first attempt.
- Structured output over screenshots. Downstream skills (jab-hook, deep-research, second-brain) need JSON with author + text + engagement fields, not an image. Even when the underlying strategy is a screenshot, extract text before returning.
- Cache aggressively, invalidate honestly. 24h TTL on
~/Documents/social-fetches/_cache/prevents API burn when the same post is referenced across multiple skills in a session.--with-replies/--threadskip cache because replies age fast. - Respect paid-key economics. ScrapeCreators / Apify calls cost real money. Prompt before hitting paid strategies if the user hasn't confirmed they want depth. Free strategies first, always.
- Media download is opt-in. Default is post text only;
--mediadownloads images/videos. Silent media downloads eat disk quickly. - Private / deleted content is a hard stop. No strategy chain rescues private accounts or deleted posts. Suggest Wayback Machine for deleted content and stop.
- Rate-limits are per-platform. X free strategies hit rate limits fast; LinkedIn agent-browser burns session fingerprints. Space out calls in loops or the workflow degrades to worse-than-manual.
Related Skills
Agent-Reach
92.4kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
74.5kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
Scrapling
86.0k🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
crawl4ai
84.8kOpen-source web crawler and scraper for LLMs and AI agents: any website into clean, LLM-ready Markdown. Run it yourself, or use Crawl4AI Cloud with one key.
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
