Skip to content

jackmis610/podex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PodeX

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.

How it works

  1. Scrapes your X home timeline (real Chrome via Playwright — no broken RSS bridges)
  2. Feeds the tweets + your personal context into Claude to write a two-host podcast script
  3. Synthesizes audio with ElevenLabs
  4. Serves a local RSS feed you can subscribe to in any podcast app

Getting your first episode

What you'll need:

Steps:

  1. Install Python 3.10+ if you don't have it: python.org/downloads

  2. Clone and install:

    git clone https://github.com/jackmislinski/podex
    cd podex
    bash install.sh
  3. Open the setup UI:

    source .venv/bin/activate && source .env && python3 -m podex.cli web

    Then go to http://localhost:8000

  4. 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
  5. Run your first episode from the dashboard, or:

    podex run --config config.yaml

    Takes 3–5 minutes. Subscribe to http://localhost:8000/feed.rss in any podcast app.

Features

  • 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 sharingbash install.sh on any Mac, fill in API keys, done

Episode structure

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"

Project layout

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

Configuration

Copy config.example.yaml to config.yaml and fill in your details, or use the web UI setup wizard which generates it for you.

License

MIT

About

Local-first AI podcast from your X feed — personalized daily briefing powered by Claude + ElevenLabs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors