{"id":40960404,"url":"https://github.com/bryanpaget/ai-rss-summarizer","last_synced_at":"2026-01-22T05:42:45.310Z","repository":{"id":265870150,"uuid":"896250733","full_name":"bryanpaget/ai-rss-summarizer","owner":"bryanpaget","description":"The RSS Prediction App is a system that processes data from RSS feeds to provide summaries and trend predictions. Using AI-powered techniques, it helps users stay informed about key developments and anticipate future trends. The app is designed for deployment in a containerized, scalable environment like Kubernetes.","archived":false,"fork":false,"pushed_at":"2025-12-14T20:36:30.000Z","size":46,"stargazers_count":0,"open_issues_count":7,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-17T08:40:46.645Z","etag":null,"topics":["llm","rss"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bryanpaget.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-11-29T21:59:21.000Z","updated_at":"2024-12-06T21:29:45.000Z","dependencies_parsed_at":"2024-12-01T10:03:11.585Z","dependency_job_id":null,"html_url":"https://github.com/bryanpaget/ai-rss-summarizer","commit_stats":null,"previous_names":["bryanpaget/ai-rss-summarizer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bryanpaget/ai-rss-summarizer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bryanpaget%2Fai-rss-summarizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bryanpaget%2Fai-rss-summarizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bryanpaget%2Fai-rss-summarizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bryanpaget%2Fai-rss-summarizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bryanpaget","download_url":"https://codeload.github.com/bryanpaget/ai-rss-summarizer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bryanpaget%2Fai-rss-summarizer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28656557,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["llm","rss"],"created_at":"2026-01-22T05:42:45.252Z","updated_at":"2026-01-22T05:42:45.300Z","avatar_url":"https://github.com/bryanpaget.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# AI RSS Summarizer\n\nAn AI-powered RSS feed summarizer with trend prediction. Fetch articles from multiple RSS feeds, generate summaries, and analyze trending topics.\n\n## Features\n\n- **RSS Feed Ingestion**: Fetch and store articles from multiple RSS feeds\n- **Summarization**: Generate concise summaries (simple extractive or LLM-powered)\n- **Trend Detection**: Categorize articles and identify trending topics\n- **CLI Interface**: Easy-to-use command-line interface\n\n## Quick Start\n\n### Installation\n\n```bash\n# Clone the repository\ngit clone https://github.com/bryanpaget/ai-rss-summarizer.git\ncd ai-rss-summarizer\n\n# Create virtual environment\npython -m venv venv\nsource venv/bin/activate  # On Windows: venv\\Scripts\\activate\n\n# Install dependencies\npip install -e .\n```\n\n### Basic Usage\n\n```bash\n# Fetch articles from configured feeds\nrss fetch\n\n# Generate summaries for articles\nrss summarize\n\n# Analyze trending topics\nrss trends\n\n# List recent articles\nrss list\n\n# Show database statistics\nrss stats\n```\n\n### Add a New Feed\n\n```bash\nrss add-feed https://example.com/feed.xml\n```\n\nOr edit `config/feeds.txt` directly.\n\n## CLI Commands\n\n| Command | Description |\n|---------|-------------|\n| `rss fetch` | Fetch articles from all configured RSS feeds |\n| `rss summarize` | Generate summaries for unsummarized articles |\n| `rss trends` | Analyze and display trending topics |\n| `rss list` | List fetched articles |\n| `rss stats` | Show database statistics |\n| `rss add-feed URL` | Add a new RSS feed |\n\n### Options\n\nMost commands support these options:\n\n- `--db`, `-d`: Path to database file (default: `articles.db`)\n- `--limit`, `-n`: Limit number of items to process\n- `--help`: Show command help\n\n### LLM Summarization\n\nFor better summaries using AI models:\n\n```bash\n# Install LLM dependencies\npip install transformers torch\n\n# Use LLM for summarization\nrss summarize --llm\n```\n\nNote: First run will download the model (~1.5GB).\n\n## Project Structure\n\n```\nai-rss-summarizer/\n├── src/\n│   ├── __init__.py\n│   ├── cli.py           # CLI entry point (Typer)\n│   ├── rss.py           # RSS feed fetching\n│   ├── storage.py       # SQLite storage layer\n│   ├── summarizer.py    # Summarization backends\n│   └── trends.py        # Trend detection\n├── config/\n│   └── feeds.txt        # RSS feed URLs\n├── tests/\n│   ├── test_storage.py\n│   ├── test_rss.py\n│   ├── test_summarizer.py\n│   └── test_trends.py\n├── pyproject.toml\n├── requirements.txt\n└── README.md\n```\n\n## Development\n\n### Running Tests\n\n```bash\npip install -e \".[dev]\"\npytest\n```\n\n### Code Style\n\n```bash\nruff check src/ tests/\nruff format src/ tests/\n```\n\n## Configuration\n\n### Feed Sources\n\nEdit `config/feeds.txt` to add or remove RSS feeds. One URL per line, comments start with `#`.\n\n```text\n# Tech News\nhttps://news.ycombinator.com/rss\nhttps://feeds.arstechnica.com/arstechnica/technology-lab\n\n# World News\nhttp://feeds.bbci.co.uk/news/rss.xml\n```\n\n### Trend Categories\n\nTrend categories are defined in `src/trends.py`. Edit `TREND_CATEGORIES` to customize.\n\n## Roadmap\n\nSee [Issue #7](https://github.com/bryanpaget/ai-rss-summarizer/issues/7) for the full project roadmap.\n\n### MVP (Current)\n- [x] RSS feed fetching\n- [x] SQLite storage\n- [x] Simple summarization\n- [x] Trend detection\n- [x] CLI interface\n\n### Future\n- [ ] FastAPI web interface\n- [ ] Advanced LLM integration\n- [ ] Docker containerization\n- [ ] Kubernetes deployment\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## License\n\nMIT License - see LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbryanpaget%2Fai-rss-summarizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbryanpaget%2Fai-rss-summarizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbryanpaget%2Fai-rss-summarizer/lists"}