Automated weekly Kindle newsletter powered by Claude Code. AI research agents collect articles daily across customizable topics, compile them into a readable EPUB book, and deliver to your Kindle every Sunday.
![]() |
![]() |
| Cover page with all topics | Full articles on Kindle — no links needed |
Mon-Sat: 6 AI agents research topics daily, collecting 10 articles each
Sunday: Articles compiled into EPUB → delivered to your Kindle
- Daily Collection — Research agents use web search to find the best articles published each day. Articles accumulate in a local store, deduped by URL. Each topic pauses at 10 articles.
- Sunday Compilation — All collected articles are proposed for your approval. After you approve, full article content is fetched, curated into 400-800 word readable pieces, formatted into an EPUB book, and emailed to your Kindle.
| # | Topic | Audience |
|---|---|---|
| 1 | English for Software Engineers | Non-native speakers in tech |
| 2 | AI Engineering News | CTO-level engineers |
| 3 | iOS Engineering | Professional iOS developers |
| 4 | Travel App Business | App founders/product leads |
| 5 | Singapore & Korea News | English-only, official publishers |
| 6 | C++ / C / Rust / Python | Systems & scripting engineers |
Topics are fully customizable — add your own with /add-topic.
- Claude Code CLI installed
- Python 3.12+
- An email account (Gmail, Yahoo, Outlook, iCloud)
- A Kindle device with a Send-to-Kindle email address
git clone https://github.com/ShawnBaek/kindle-weekly-letter.git
cd kindle-letterThen in Claude Code:
/setup-kindle
This will walk you through:
- Installing Python dependencies
- Configuring your email (SMTP + app password)
- Finding your Kindle email address
- Sending a test EPUB
- Setting up daily/weekly scheduling
/collect-now # Run daily collector immediately
/compile-now # Compile EPUB and send to Kindle now
| Command | Description |
|---|---|
/setup-kindle |
Full setup wizard (email, Kindle, scheduling) |
/add-topic [name] |
Add a custom research topic |
/sources list |
View all sources with vote counts |
/sources vote [topic] [source] |
Upvote a source |
/sources unvote [topic] [source] |
Downvote a source |
/sources add [topic] [name] [url] |
Add a new source |
/sources remove [topic] [name] |
Deactivate a source |
/collect-now |
Trigger daily article collection |
/compile-now |
Trigger EPUB compilation and delivery |
Each topic has a list of preferred sources in sources.json. Sources have vote counts that determine priority — higher voted sources are searched first.
# View sources
/sources list
# Add a source
/sources add ios "SwiftLee" "swiftlee.com"
# Vote for a source
/sources vote ai_news "Anthropic Blog"Edit sources.json directly for bulk changes. Agents also discover new sources beyond this list each week.
/add-topic Kubernetes
You'll be asked for:
- Topic name and audience
- Focus areas (3-5 subtopics)
- Preferred sources
- What to avoid
The skill creates the agent prompt, registers the topic, and updates the collectors.
| Provider | SMTP Host | Port | App Password |
|---|---|---|---|
| Gmail | smtp.gmail.com | 465 | Google Account → Security → App Passwords |
| Yahoo | smtp.mail.yahoo.com | 465 | Account Security → Generate app password |
| Outlook | smtp-mail.outlook.com | 587 | Microsoft Account → Security → App Passwords |
| iCloud | smtp.mail.me.com | 587 | appleid.apple.com → App-Specific Passwords |
If you want to install this as a Claude Code plugin:
/plugin marketplace add https://raw.githubusercontent.com/ShawnBaek/kindle-weekly-letter/main/marketplace.json
/plugin install kindle-letter
kindle-letter/
├── .claude/skills/ # Slash commands
├── prompts/ # AI agent prompts
│ ├── daily_collector.md # Daily orchestrator
│ ├── sunday_compiler.md # Sunday EPUB compiler
│ └── agent_*.md # Per-topic research agents
├── src/
│ ├── epub_builder.py # EPUB generation
│ ├── email_sender.py # SMTP email sender
│ ├── article_store.py # Article accumulator
│ └── config.py # Configuration
├── sources.json # Votable source list
├── templates/ # EPUB templates
├── styles/ # Kindle CSS
└── output/ # Generated EPUBs (gitignored)
MIT

