A locally-run AI podcast that turns your X (Twitter) feed into a personalized daily audio briefing.
Every morning you get a ~10-minute episode: broad feed exploration, a deep dive on something relevant to your work, and speculative "what does this mean for you" moonshots — all in your own voice preferences, generated from your actual timeline.
- Scrapes your X home timeline (real Chrome via Playwright — no broken RSS bridges)
- Feeds the tweets + your personal context into Claude to write a two-host podcast script
- Synthesizes audio with ElevenLabs
- Serves a local RSS feed you can subscribe to in any podcast app
What you'll need:
- An Anthropic API key — sign up, add a few dollars of credit
- An ElevenLabs API key — free tier works
- Python 3.10+
Steps:
-
Install Python 3.10+ if you don't have it: python.org/downloads
-
Clone and install:
git clone https://github.com/jackmislinski/podex cd podex bash install.sh -
Open the setup UI:
source .venv/bin/activate && source .env && python3 -m podex.cli web
Then go to http://localhost:8000
-
In the setup wizard:
- Enter your name and X handle
- Paste your Anthropic and ElevenLabs API keys
- Hit Finish Setup, then Connect X Account and log in when the browser opens
-
Run your first episode from the dashboard, or:
podex run --config config.yaml
Takes 3–5 minutes. Subscribe to
http://localhost:8000/feed.rssin any podcast app.
- Local-first — everything runs on your machine, nothing is hosted
- Personalized — reads your Claude memory context (if you use Claude) or runs a quick onboarding chat
- Local RSS feed — subscribe in Overcast, Pocket Casts, Apple Podcasts, etc.
- Daily cron — one-click install so a fresh episode appears every morning
- Easy sharing —
bash install.shon any Mac, fill in API keys, done
| Section | Share | Purpose |
|---|---|---|
| Cold open | ~10% | Energetic tease of today's topics |
| Feed exploration | ~50% | Broad themes from your timeline, lightly personalized |
| Deep dive | ~25% | One topic most relevant to your current work/interests |
| Moonshots close | ~25% | Speculative life/career implications — "what does this mean for you" |
src/podex/
cli.py — CLI entry point (run, login, web, init, …)
pipeline.py — Orchestrates fetch → script → synth → publish
browser_scraper.py — Playwright-based X timeline scraper
prompts/podcast.py — Episode script prompt (4-section structure)
synthesizer.py — ElevenLabs + Google TTS
audio.py — Audio stitching with pydub
publisher.py — GCS upload + RSS generation (optional)
web/app.py — Local FastAPI web UI
web/templates/ — Jinja2 templates (dashboard + setup)
config.example.yaml — Annotated config template
install.sh — One-command installer
run-daily.sh — Cron runner script
Copy config.example.yaml to config.yaml and fill in your details, or use the web UI setup wizard which generates it for you.
MIT