From essentials
Fetches tweets, X articles, and Reddit posts via proxy APIs. Automatically activates when user provides Twitter/X or Reddit URLs.
How this skill is triggered — by the user, by Claude, or both
Slash command
/essentials:link-readerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Read content from URLs that block direct web fetching by routing through proxy APIs.
Read content from URLs that block direct web fetching by routing through proxy APIs.
URL patterns: twitter.com/*/status/*, x.com/*/status/*, twitter.com/*/article/*, x.com/*/article/*
Proxy: FxTwitter API (api.fxtwitter.com)
Steps:
/trq212/status/1234567890)https://api.fxtwitter.com{path} using WebFetchThe response JSON has shape: { tweet: { text, author, likes, retweets, ... } }
Format as:
**@{author.screen_name}** ({author.name})
{tweet.text}
{if media.photos: list image URLs}
{if media.videos: list video thumbnail URLs}
{if quote: show quoted tweet inline, indented}
Likes: {likes} · Retweets: {retweets} · Views: {views}
{created_at}
When tweet.article is present, the tweet is an article (long-form post). The article content uses Draft.js block format.
The article object contains:
title — article titlecover_image — hero image metadata (use original_img_url)content.blocks[] — array of content blockscontent.entityMap — links and media referenced by blocksConverting blocks to markdown:
Each block has a type and text:
unstyled → plain paragraphheader-one → # headingheader-two → ## headingheader-three → ### headingblockquote → > quotecode-block → fenced code blockunordered-list-item → - list itemordered-list-item → 1. list itematomic → look up in entityMap for embedded media/linksResolving entity ranges:
Each block may have entityRanges: [{ key, offset, length }]. Look up content.entityMap[key]:
type: "LINK" → wrap the text span in [text](url) using data.urltype: "IMAGE" → insert Resolving inline styles:
Each block may have inlineStyleRanges: [{ style, offset, length }]:
BOLD → **text**ITALIC → *text*CODE → `text`Format the full article as:
# {article.title}
**@{author.screen_name}** · {article.created_at}
{converted markdown content}
---
Likes: {likes} · Retweets: {retweets} · Views: {views}
URL patterns: reddit.com/r/*/comments/*, old.reddit.com/r/*/comments/*
Proxy: Append .json to the Reddit URL path
Steps:
https://www.reddit.com/.../.json to the path[0].data.children[0].data → the post[1].data.children[*].data → top-level commentsFormat as:
**r/{subreddit}** · u/{author} · {score} points
# {title}
{selftext_html or selftext, or url if link post}
---
Top comments:
**u/{comment_author}** ({score} pts)
{comment body}
Show the top 5 comments by default. Offer to show more if the user asks.
To extend this skill for a new platform:
npx claudepluginhub tinetti/claude-plugins --plugin essentials2plugins reuse this skill
First indexed Jul 14, 2026
Fetches tweets, X articles, and Reddit posts via proxy APIs. Automatically activates when user provides Twitter/X or Reddit URLs.
Fetches and normalizes social media post content from X, LinkedIn, Instagram, TikTok, Bluesky, Reddit, Mastodon, Threads, and Hacker News by URL. Returns structured data (author, text, engagement, media) regardless of platform.
Fetches Twitter/X post and article content with full images, metadata, and engagement metrics. Downloads images to local attachments and generates Markdown with YAML frontmatter.