Unbiased, fact-based global news from 30+ sources across the political spectrum.
- Fetches articles daily from The Guardian API, NYT API, and 27 RSS feeds spanning international, US, UK, Asia-Pacific, and Global South sources
- Analyses each article with Claude AI, generating a structured fact-file (event, actors, context, impact, significance, outlook)
- Synthesises the most globally significant 10 events from all fact-files
- Displays them in a clean, elegant daily bulletin in your browser
You need one required key and two optional ones:
- Go to https://console.anthropic.com
- Sign up / log in
- Click API Keys → Create Key
- Copy the key (starts with
sk-ant-...) - Add credits to your account (billing → $5 minimum)
- Go to https://open-platform.theguardian.com/access/
- Click Register for a developer key
- Fill in the form (free tier available)
- You'll receive the key by email
- Go to https://developer.nytimes.com/get-started
- Create an account and a new App
- Enable the Article Search API
- Copy your API key
Note: The app works without Guardian and NYT keys — it will still fetch from all 27 RSS feeds.
pip install -r requirements.txtRequires Python 3.11+.
macOS / Linux:
export ANTHROPIC_API_KEY="sk-ant-your-key-here"
export GUARDIAN_API_KEY="your-guardian-key" # optional
export NYT_API_KEY="your-nyt-key" # optionalWindows (Command Prompt):
set ANTHROPIC_API_KEY=sk-ant-your-key-here
set GUARDIAN_API_KEY=your-guardian-key
set NYT_API_KEY=your-nyt-keyPermanent (recommended): Add the export lines to your ~/.bashrc, ~/.zshrc, or use a .env file with python-dotenv.
cd newsfeed
python backend/pipeline.pycd newsfeed
python server.pyThen open http://localhost:5000
cd newsfeed
python scheduler.pyThis runs the pipeline automatically at 06:00 UTC daily and serves the web frontend.
| Component | Cost |
|---|---|
| Claude API (80 articles × fact-file + synthesis) | ~$0.15–0.40 per day |
| Guardian API | Free (developer tier) |
| NYT API | Free (500 req/day) |
| RSS feeds | Free |
Total: ~$5–12/month at daily use.
newsfeed/
├── backend/
│ ├── fetcher.py # Fetches from APIs + RSS
│ ├── factfile.py # Claude fact-file generation
│ ├── synthesiser.py # Synthesises top 10 events
│ └── pipeline.py # Orchestrates everything
├── frontend/
│ └── index.html # Web GUI
├── data/ # Auto-created, stores daily bulletins
├── server.py # Flask web server
├── scheduler.py # Daily auto-run + server
└── requirements.txt
- Change topics: Edit
TOPICSinfetcher.py - Add/remove RSS feeds: Edit
RSS_FEEDSdict infetcher.py - Change refresh time: Edit
REFRESH_HOUR_UTCinscheduler.py - Change number of events: Edit the synthesis prompt in
synthesiser.py - Max articles processed: Edit
max_articlesinpipeline.py