Skip to article frontmatterSkip to article content

Twitter’s API is expensive, rate-limited, and controlled. You can’t easily:

tweet_rss solves all of this. It’s a self-hosted Django application that:

  1. Scrapes tweets via a Nitter frontend (no Twitter API needed)

  2. Stores everything in a local SQLite database

  3. Serves RSS feeds of your curated user lists

  4. 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 / admin

Add 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:

  1. “Why is this user worth following?”

  2. “Why should this user be avoided?”

  3. “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:

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:

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.

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:

  1. Pattern Recognition: identify recurring themes (minimalism, teaching, anti-bloat philosophy) across thousands of tweets

  2. Contradiction Detection: find the gap between “vibe coding” advocacy and hand-written project admissions

  3. Character Synthesis: construct a psychological profile (with 99% likelihood of being innacurate)

  4. 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 prompts

Some prompt ideas:

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.