Repolode
fabriziosalmi

fabriziosalmi/UglyFeed

Uses LLMs to rewrite, filter and evaluate aggregated RSS feeds, then serves the result as a new RSS feed for fun, research and learning.

Stars
324
Forks
21
Open issues
5
Last commit
yesterday

What is it?

UglyFeed retrieves items from source RSS feeds, groups them by similarity, and rewrites each item with a large language model. It then filters and evaluates the generated content, converts the results to a valid RSS feed, and serves that feed over HTTP or publishes it to a GitHub or GitLab repository.

The pipeline runs through a Streamlit web UI or Docker container. Supported LLM backends include OpenAI, Anthropic, Groq, Google Gemini and local Ollama models, and any OpenAI-compatible server can be used by changing the API URL. The project also includes a set of prompt templates, including one for translating feeds into other languages.

The project is positioned as an experimental tool for generating synthetic news, so its output is intentionally unreliable and should not be read as factual reporting. It is useful for studying how LLM-rewritten content behaves, building test datasets, or exploring feed automation.

Key features

  • 01Aggregates RSS feed items and groups them by similarity.
  • 02Rewrites content with OpenAI, Anthropic, Groq, Gemini or Ollama models.
  • 03Converts processed items into a valid RSS feed and serves it over HTTP.
  • 04Publishes the generated feed to GitHub or GitLab.
  • 05Provides a Streamlit web UI and ships with ready-to-use prompt templates.

Use cases

  • Experimenting with how LLM-rewritten news content reads and behaves.
  • Building synthetic news datasets, such as for fake news detection research.
  • Translating feeds into another language with the bundled translation prompt.
  • Studying automated feed curation pipelines.

Quick start

  1. 1

    Start the UglyFeed container with Docker

    docker run -p 8001:8001 -p 8501:8501 -v /path/to/local/feeds.txt:/app/input/feeds.txt -v /path/to/local/config.yaml:/app/config.yaml fabriziosalmi/uglyfeed:latest
  2. 2

    Open the Configuration page and set your source feeds, LLM API and model

  3. 3

    Run the scripts from the Run scripts page, then view or serve the XML feed

Things to know

  • You need access to an LLM API, such as OpenAI, Ollama, Groq, Anthropic or Gemini, to rewrite content.
  • The project is licensed under AGPL-3.0, which requires derivative works to be open-sourced under the same license.

In collections

Topics

#llm#rss#rss-aggregator#summarization#translation#streamlit#content-generation#journalism#news#newsfeed

FAQ

What is UglyFeed?
Uses LLMs to rewrite, filter and evaluate aggregated RSS feeds, then serves the result as a new RSS feed for fun, research and learning. UglyFeed retrieves items from source RSS feeds, groups them by similarity, and rewrites each item with a large language model. It then filters and evaluates the generated content, converts the results to a valid RSS feed, and serves that feed over HTTP or publishes it to a GitHub or GitLab repository.
Is UglyFeed free to use? What license does it have?
UglyFeed is open source under the AGPL-3.0 license. Check the license terms before using it in commercial products.
Is UglyFeed still maintained?
Actively maintained. The last commit to UglyFeed was on Nov 5, 2026.
What can I use UglyFeed for?
Experimenting with how LLM-rewritten news content reads and behaves. Building synthetic news datasets, such as for fake news detection research. Translating feeds into another language with the bundled translation prompt. Studying automated feed curation pipelines.
How do I install UglyFeed?
Start the UglyFeed container with Docker: docker run -p 8001:8001 -p 8501:8501 -v /path/to/local/feeds.txt:/app/input/feeds.txt -v /path/to/local/config.yaml:/app/config.yaml fabriziosalmi/uglyfeed:latest Open the Configuration page and set your source feeds, LLM API and model Run the scripts from the Run scripts page, then view or serve the XML feed
Where can I get UglyFeed?
The source code and installation instructions are on GitHub: https://github.com/fabriziosalmi/UglyFeed

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects