Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI News Digest

License: MIT Python 3.10+ Platform Cost

Your own AI analyst reads the internet every morning so you don't have to.

A local tool that automatically builds you a daily briefing on AI, agents, tech, finance, and business — pulled from RSS feeds, Hacker News, Reddit, and optionally X/Twitter — and critically analyzed (not just summarized) by whatever AI you already have or prefer: a free local model via Ollama, a cloud API you already pay for (OpenAI/ChatGPT, Anthropic/Claude), or a free-tier cloud option (Groq, OpenRouter), or any local server that speaks the standard chat-completions format (LM Studio, llama.cpp server, vLLM). Pick one in the setup script — no code changes needed either way.

It doesn't just list headlines — it's prompted to act like a skeptical analyst: it cross-references sources, flags unverified claims as speculation, deduplicates repeat stories across runs, and writes one tight briefing instead of a firehose.

What it does

  1. Fetches from RSS feeds (OpenAI, Anthropic, Google, Meta blogs, arXiv, TechCrunch, The Verge, VentureBeat, Ars Technica, Wired, Reuters, FT), Hacker News, Reddit (r/singularity, r/LocalLLaMA, r/MachineLearning, r/artificial, r/OpenAI), and optionally X/Twitter (your choice of accounts + search terms).
  2. Analyzes everything using whichever AI backend you configured — filters noise, merges corroborating stories, flags speculation, and writes a structured briefing.
  3. Delivers it via email and/or Telegram, on whatever schedule you set.
  4. Remembers the last digest so it doesn't repeat itself if you run it more than once a day (optional, on by default).

Choosing an AI backend

setup.py asks you to pick one interactively, but here's the honest comparison:

Option Cost Setup Analysis quality
Ollama (local) Free forever Install Ollama + pull a model Good with a decent model (14B+); depends on your hardware
Groq / OpenRouter (via openai_compatible) Free tier available Free account + API key Better than most local setups, still $0
OpenAI / ChatGPT (via openai_compatible) Pay-as-you-go API key (separate from a ChatGPT subscription) Strong
Anthropic / Claude Pay-as-you-go API key (separate from a claude.ai subscription) Strong

Any of these work with zero code changes — it's purely a .env setting (AI_PROVIDER=ollama / openai_compatible / anthropic), and setup.py writes it for you based on what you pick.

Honest caveats up front

  • X/Twitter has no free official API anymore. This uses twscrape, an unofficial library that logs in as a real X account to read posts. It works today, but it's not sanctioned by X and can break when X changes things internally (fix: pip install -U twscrape). Use a secondary account if you're cautious. X is entirely optional — leave it unconfigured and everything else still works great off RSS + HN + Reddit, which in practice surface most things that blow up on X anyway, just with some delay.
  • If you go the local-model route, analysis quality depends on your model. A local 7-14B model is genuinely useful but won't match a frontier cloud model's judgment. Bigger (well-resourced) local models = better analysis, if your machine can run them. Switch to a cloud provider any time if you want sharper analysis instead.

Requirements

  • Python 3.10+
  • macOS, Linux, or Windows
  • One of: Ollama installed with a model pulled (for the free local option), or an API key for whichever cloud provider you'd rather use (OpenAI, Groq, OpenRouter, Anthropic, etc.)

Setup (same steps regardless of OS)

git clone https://github.com/slymp3/ai-news-digest.git
cd ai-news-digest
python3 -m venv venv
source venv/bin/activate      # Windows: venv\Scripts\activate
pip install -r requirements.txt
python3 setup.py

setup.py is interactive and does the rest for you:

  • Asks which AI backend you want (Ollama, OpenAI-compatible, or Anthropic) and validates/configures it
  • Walks you through email and/or Telegram delivery and writes your .env file
  • Detects your OS and sets up daily automatic scheduling for you (launchd on macOS, cron on Linux, Task Scheduler on Windows) — using your real paths automatically, no manual editing required

That's it. Test a manual run any time with:

python3 main.py

Configuration

Everything lives in .env (created from .env.example by setup.py, or copy it yourself and edit by hand):

Setting Purpose
AI_PROVIDER ollama, openai_compatible, or anthropic
OLLAMA_HOST, OLLAMA_MODEL Used when AI_PROVIDER=ollama; leave model blank to auto-detect
OPENAI_COMPATIBLE_BASE_URL, _API_KEY, _MODEL Used when AI_PROVIDER=openai_compatible (OpenAI, Groq, OpenRouter, LM Studio, etc.)
ANTHROPIC_API_KEY, ANTHROPIC_MODEL Used when AI_PROVIDER=anthropic
SMTP_*, DIGEST_TO_EMAIL Email delivery
TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID Telegram delivery (optional)
DEDUP_ENABLED Set false to disable cross-run deduplication
X_USERNAME etc. Optional X/Twitter live pulling (see caveats above)
X_WATCHLIST, X_SEARCH_TERMS Which accounts/topics to track on X

Sources themselves (RSS_FEEDS, REDDIT_SUBS) are edited directly in config.py. The analysis behavior/prompt is in synthesize.py's SYSTEM_PROMPT — edit freely to change what it prioritizes or how it writes.

Running more than once a day

setup.py will ask if you want a second daily run time (e.g. morning + evening) and sets both up automatically. With DEDUP_ENABLED=true (default), the second run of the day won't re-explain stories from the first unless something genuinely changed.

Manual scheduling (if you skipped it in setup.py, or want to adjust it later)

macOS (launchd)
launchctl list | grep ainewsdigest        # check current status
launchctl unload ~/Library/LaunchAgents/com.ainewsdigest.scheduler.plist
launchctl load ~/Library/LaunchAgents/com.ainewsdigest.scheduler.plist

Edit the .plist file directly (~/Library/LaunchAgents/com.ainewsdigest.scheduler.plist) to change run times, then unload/load again.

Linux (cron)
crontab -l    # view current schedule
crontab -e    # edit manually

This tool's entries are wrapped in # ai-news-digest-start / # ai-news-digest-end markers so re-running setup.py safely replaces just its own lines.

Windows (Task Scheduler)

Open Task Scheduler → look for tasks named AINewsDigest_1, AINewsDigest_2, etc. Right-click → Properties → Triggers to change run times.

Troubleshooting

  • "Could not reach Ollama" (if using AI_PROVIDER=ollama): make sure the Ollama app/service is running, or run ollama serve manually to see errors.
  • "No Ollama models found": ollama pull qwen2.5:14b (or any model you prefer).
  • "Unknown AI_PROVIDER" error: check .env — it must be exactly ollama, openai_compatible, or anthropic.
  • Cloud API errors (openai_compatible/anthropic): double-check the API key and model name in .env; the error message includes the response body from the provider to help pinpoint what's wrong.
  • Email not arriving: double-check you used an app password (not your real password), and check spam.
  • twscrape errors: pip install -U twscrape, or just leave X unconfigured.
  • Scheduled run didn't fire: check digest_log.txt and digest_error_log.txt in the project folder.

License

MIT — see LICENSE. Use it, fork it, change it, ship it.

About

Local, provider-agnostic tool that reads RSS/HN/Reddit/X daily and sends you one critically-analyzed AI/tech/finance briefing — free via Ollama, or bring your own OpenAI/Claude/Groq key.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages