Bitterbot-desktop social-data
Search and fetch social media data from Twitter/X, Reddit, and Hacker News.
install
source · Clone the upstream repo
git clone https://github.com/Bitterbot-AI/bitterbot-desktop
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/Bitterbot-AI/bitterbot-desktop "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/social-data" ~/.claude/skills/bitterbot-ai-bitterbot-desktop-social-data && rm -rf "$T"
manifest:
skills/social-data/SKILL.mdsource content
Social Data
Access social media content from multiple platforms. Some require API keys, some are free.
Hacker News (free, no key)
Top Stories
curl -s "https://hacker-news.firebaseio.com/v0/topstories.json" | head -c 200
Returns array of item IDs. Fetch individual items:
curl -s "https://hacker-news.firebaseio.com/v0/item/12345678.json"
Search (via Algolia, free)
curl -s "https://hn.algolia.com/api/v1/search?query=rust+programming&tags=story&hitsPerPage=10"
:tags
,story
,comment
,ask_hn
,show_hnpoll
:numericFilters
(Unix timestamp)created_at_i>1700000000- Response:
array withhits[]
,title
,url
,author
,pointsnum_comments
Front Page
curl -s "https://hn.algolia.com/api/v1/search?tags=front_page&hitsPerPage=30"
Reddit (free, no key for public data)
Subreddit Posts
curl -s "https://www.reddit.com/r/programming/hot.json?limit=10" \ -H "User-Agent: bitterbot/1.0"
Sort options:
hot, new, top, rising
For top: add ?t=hour|day|week|month|year|all
Search Reddit
curl -s "https://www.reddit.com/search.json?q=rust+async&sort=relevance&limit=10" \ -H "User-Agent: bitterbot/1.0"
Post Comments
curl -s "https://www.reddit.com/r/programming/comments/POST_ID.json" \ -H "User-Agent: bitterbot/1.0"
Response is array of two listings:
[0] = post, [1] = comments tree.
User Profile (public)
curl -s "https://www.reddit.com/user/USERNAME/submitted.json?limit=10" \ -H "User-Agent: bitterbot/1.0"
Twitter/X (requires API key)
Requires
TWITTER_BEARER_TOKEN env var (from X Developer Portal).
Search Recent Tweets
curl -s "https://api.twitter.com/2/tweets/search/recent?query=from:elonmusk&max_results=10&tweet.fields=created_at,public_metrics" \ -H "Authorization: Bearer $TWITTER_BEARER_TOKEN"
Query operators:
— tweets by userfrom:username
— replies to userto:username
— hashtag search#hashtag
— exact match"exact phrase"
— exclude retweets-is:retweet
— language filterlang:en
— tweets with mediahas:media
User Lookup
curl -s "https://api.twitter.com/2/users/by/username/elonmusk?user.fields=public_metrics,description,created_at" \ -H "Authorization: Bearer $TWITTER_BEARER_TOKEN"
User Timeline
curl -s "https://api.twitter.com/2/users/USER_ID/tweets?max_results=10&tweet.fields=created_at,public_metrics" \ -H "Authorization: Bearer $TWITTER_BEARER_TOKEN"
Tips
- Always include
header for Reddit (they block default agents).User-Agent - Reddit JSON endpoints append
to any Reddit URL..json - HN Algolia API is the most reliable for search; Firebase API for real-time data.
- Twitter free tier allows 500K tweets/month read access.
- For rate-limited APIs, cache results and avoid repeated identical queries.
- Use
for HTML pages,web_fetch
+exec
for JSON APIs.curl