Twitter’s API is expensive, rate-limited, and controlled. You can’t easily:
Archive your favorite follows
Build custom RSS feeds of curated accounts
Export tweet history for analysis
Run LLM experiments on someone’s tweet corpus
tweet_rss solves all of this. It’s a self-hosted Django application that:
Scrapes tweets via a Nitter frontend (no Twitter API needed)
Stores everything in a local SQLite database
Serves RSS feeds of your curated user lists
Exports to YAML for LLM pipelines and analysis
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Nitter │ --> │ Scraper │ --> │ Database │
│ (Twitter │ │ (nodriver) │ │ (SQLite) │
│ proxy) │ │ │ │ │
└─────────────┘ └─────────────┘ └─────────────┘
│
┌─────────────────────────┼─────────────────────────┐
│ │ │
v v v
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ RSS Feeds │ │ Django Admin│ │ YAML Export │
│ /rss/slug/ │ │ /admin/ │ │ → LLM │
└─────────────┘ └─────────────┘ └─────────────┘Quick Start¶
# Clone and configure
git clone https://github.com/ayghri/tweet_rss && cd tweet_rss
cp .env.example .env
# Edit .env: set NITTER_INSTANCE to your Nitter URL
# Run with Docker
docker-compose up -d
# Access admin at http://localhost:8000/admin/
# Default: admin / adminAdd users, create lists, subscribe to RSS. Done.
Real Power: LLM Analysis¶
Here’s where it gets interesting. Export a user’s tweet history and feed it to your favorite LLM with targeted prompts:
# Export tweets
curl http://localhost:8000/export/karpathy.yaml > tweets.yaml
# Feed to your LLM of choice with prompts like:
# - "Why is this user worth following?"
# - "What are the red flags about this user?"
# - "Synthesize a balanced assessment"This unlocks a new form of due diligence on the people whose opinions shape your worldview.
Case Study: Andrej Karpathy¶
To demonstrate the power of this workflow, we scraped ~2 years of Andrej Karpathy’s tweets (January 2024 - December 2025) and ran them through Gemini 3.0 Pro with three prompts:
“Why is this user worth following?”
“Why should this user be avoided?”
“Synthesize the for/against”
The results are fascinating and reveal how LLMs; combined with the benefit of hindsight; can surface insights you’d never catch by doom-scrolling.
FOR: The Visionary Teacher¶
Gemini’s positive assessment painted Karpathy as a “Tier-1 Signal”:
1. The Track Record is Undeniable¶
“His predictive accuracy is nearly perfect. He called the shift from ‘Chatbots’ to ‘Coding Agents’ months before the industry pivoted.”
The model identified that Karpathy correctly predicted:
The shift from chat-based AI to autonomous coding agents
The rise of efficient “Nano” models running on-device
The emergence of “Vibe Coding” as a dominant workflow
GPT-5 and Gemini 3 capabilities before public release
2. The “Builder-Philosopher” Archetype¶
“A deep technical expert capable of writing C/CUDA kernels who retains a childlike sense of wonder, balanced by specific ethical and aesthetic principles.”
Key traits identified:
The Teacher: Releases tutorials and explains complex concepts publicly
Minimalist: Advocates for “bacterial code”—small, efficient, self-contained
Intellectually Honest: Admits mistakes publicly, corrects his own stances
Whimsical yet Serious: Uses humor to make terrifying technology approachable
AGAINST: The Merchant of “Slop”¶
When prompted for a critical evaluation, Gemini delivered a scathing counterargument:
1. The “Vibe Coding” Hypocrisy¶
“For all his tweets about ‘digital factorio’ and letting AI agents write everything, he admitted that his own passion project was ‘basically entirely hand-written’ because the agents ‘didn’t work well enough.’”
The critique: He sells the dream of automated coding to millions of followers while he himself reverts to hand-writing C/CUDA when performance actually matters.
2. The Influencer Pivot¶
“Since leaving OpenAI, he hasn’t shipped a production-grade model or product. He tweets for more than 1,200 over the two years, releases ‘toy’ repositories (1,000 lines of educational code), and engages in ‘engagement farming’ with polls and memes.”
“By normalizing ‘hallucinations’ as funny personality quirks and advocating for ‘discardable’ code, he is encouraging a culture of ‘Slop.’ Junior developers following his advice risk becoming helpless ‘prompt jockeys’ who cannot debug the AI-generated code they create.”
The charge: He transitioned from an engineer in the arena to a commentator in the stands. He can afford to “vibe” because he’s a master of fundamentals; his followers cannot.
The Synthesis: Compass, Not Map¶
When asked to balance both sides, Gemini produced this verdict:
“Is he a signal or noise? It depends on what you need.”
Listen to Him For the “Why”¶
His intuition on where technology is going is unmatched. When he talks about code architecture, treat it as best practice. When he talks about model capabilities, treat it as fact (he likely has early access).
Ignore Him on the “How”¶
His workflow advice (“let the AI do it”) is dangerous for anyone who doesn’t possess his level of foundational knowledge.
Personal verdict¶
When you look at someone’s vacation photos on Instagram (hiking a dangerous ridge or eating exotic street food) you see selected moments of optional risk: they can take those risks because they have a return ticket or a health insurance. Karpathy’s tweets are like Instagram reels.
He advocates letting the AI write 90% of the code while you just supervise.
His “vacation”: when the AI hallucinates a subtle bug in a C++ kernel, he spots it instantly because he has spent 15 years writing C++ kernels. He enjoys the “vibe” like a Grandmaster watching a novice play.
Our “survival”: if a junior developer follows this advice, they are letting the AI write code they do not understand.
A good analogy would be like a professional Formula 1 driver suggests you drive with your eyes closed on your usual route.
Verdict: Exercise caution when following professional influencers. Their curated experiences are often impractical for the standard traveler.
The bigger picture¶
Running an LLM over someone’s tweet corpus surfaces insights that are hard to get from casual scrolling and noisy interactions. For instance:
Pattern Recognition: identify recurring themes (minimalism, teaching, anti-bloat philosophy) across thousands of tweets
Contradiction Detection: find the gap between “vibe coding” advocacy and hand-written project admissions
Character Synthesis: construct a psychological profile (with 99% likelihood of being innacurate)
Predictive Assessment (my favorite): use hindsight as ground truth to validate historical takes.
This kind of analysis would have taken me days of cummulative work and going through hundreds of tweets.
Try It Yourself¶
# 1. Deploy tweet_rss
docker-compose up -d
# 2. Add your target user in the admin panel
# 3. Wait for scraping to complete
# 4. Export the YAML
curl http://localhost:8000/export/<username>.yaml > tweets.yaml
# 5. Feed to your LLM with your own promptsSome prompt ideas:
“What does this person believe about X topic? Cite specific tweets.”
“How has this person’s opinion on Y evolved over time?”
“What are the contradictions in this person’s public statements?”
“Is this person worth following? Build the case for and against.”
Conclusion¶
A Twitter archive; combined with modern LLMs; enables a new kind of due diligence on public figures.
Built with Django, nodriver, and a healthy distrust of centralized APIs.