Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

312 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NewsBucket

AboutFeaturesQuick Start & Information

About

Top language Repository size Commit activity per year License: PolyForm Noncommercial + GNU AGPL-3.0 Bitcoin BTC

NewsBucket fetches RSS feeds from sources you configure, groups articles covering the same story using an LLM, and publishes the result as JSON in this repository. Each cluster gets a title and summary, then translates into your target languages. Everything runs on GitHub Actions.

Features

  • Any feed, any topic. Drop a .txt file with RSS URLs into code/rss_input/ and the pipeline picks it up automatically. One file equals one output category.

  • LLM-powered clustering. Articles are grouped by topic. Only stories covered by at least 2 different outlets make the cut, ordered by how many outlets covered the story.

  • Multi-language output. Clusters are generated in one language, then translated to others. Swap the prompts in code/prompts/ to change source and target languages.

  • Zero infrastructure. The entire pipeline, fetch, cluster, translate, commit... runs on GitHub Actions free tier.

Quick Start & Information

Run locally

cd code
pnpm install

Add your RSS feed URLs to .txt files in code/rss_input/. Create a .env file in code/ with your API key:

OPENCODE_API_KEY=your-key

Then run the pipeline:

pnpm start      # fetch RSS feeds → rss_output/
pnpm ai         # cluster articles → rss_output_cluster/
pnpm translate  # translate clusters

Or fetch and cluster in one step: pnpm all.

Run on GitHub Actions

The pipeline lives in .github/workflows/update-news.yml.

Raw articles land in code/rss_output/ as JSON, one file per configured feed source. Clustered results land in code/rss_output_cluster/ as JSON arrays, with one file per source language and one per target language.

The prompts that drive the clustering and translation live in code/prompts/. Feed URLs go in code/rss_input/ as .txt files, one URL per line.


About

🗞️ Read RSS feeds, clusters duplicate stories with an LLM, and publishes translated JSON

Resources

Code of conduct

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages

Generated from SegoCode/template