{"id":29182541,"url":"https://github.com/yegor256/rssp","last_synced_at":"2025-08-12T13:42:17.544Z","repository":{"id":301549474,"uuid":"1009223415","full_name":"yegor256/rssp","owner":"yegor256","description":"RSS Puller (written entirely by Claude Code, I didn't touch a single line of code)","archived":false,"fork":false,"pushed_at":"2025-06-27T13:06:13.000Z","size":144,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-27T13:18:43.723Z","etag":null,"topics":["go","golang","rss"],"latest_commit_sha":null,"homepage":"","language":"Go","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/yegor256.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSES/MIT.txt","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}},"created_at":"2025-06-26T19:23:37.000Z","updated_at":"2025-06-27T13:06:16.000Z","dependencies_parsed_at":"2025-06-27T13:28:57.730Z","dependency_job_id":null,"html_url":"https://github.com/yegor256/rssp","commit_stats":null,"previous_names":["yegor256/rssp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/yegor256/rssp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yegor256%2Frssp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yegor256%2Frssp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yegor256%2Frssp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yegor256%2Frssp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yegor256","download_url":"https://codeload.github.com/yegor256/rssp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yegor256%2Frssp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263029214,"owners_count":23402354,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["go","golang","rss"],"created_at":"2025-07-01T20:06:37.944Z","updated_at":"2025-07-01T20:06:39.983Z","avatar_url":"https://github.com/yegor256.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RSS Stream Processor\n\n[![CI](https://github.com/yegor256/rssp/actions/workflows/ci.yml/badge.svg)](https://github.com/yegor256/rssp/actions/workflows/ci.yml)\n\nA smart RSS aggregator that helps you stay focused on news that matters. Instead of manually browsing through multiple RSS feeds and filtering irrelevant content, this tool monitors your favorite news sources, uses ChatGPT to intelligently filter and compress articles based on your interests, and outputs only the relevant news to a text file that you can read at your convenience or tail-follow in real-time.\n\n[Claude Code] wrote this code base for me. I didn't touch a single line of code.\n\nInstall it from sources:\n\n```bash\ngit clone https://github.com/yegor256/rssp.git\ncd rssp\ngo build -o rssp\n```\n\nThen, monitor a single RSS feed and save output to a file:\n\n```bash\nrssp --output feed.txt https://example.com/rss.xml\n```\n\nIt is advised to define `DIFFBOT_TOKEN` (from [Diffbot])\nand `OPENAI_API_KEY` (from [OpenAI]) environment variables.\n\n## How It Works\n\n1. The tool accepts one or more RSS feed URLs as command-line arguments\n2. It polls each feed every 30 seconds for new content\n3. New items are printed to stdout (or to a file if `--output` is specified) with timestamps\n4. Items are deduplicated using their GUID (or link if GUID is not available)\n5. When using `--output`, content is appended to the file, preserving existing content\n6. The tool runs continuously in the foreground until interrupted\n\n## How to Contribute\n\n```bash\nmake test           # Run all tests\nmake test-race      # Run tests with race detector\nmake test-coverage  # Generate coverage report\nmake build          # Build the binary\nmake clean          # Clean build artifacts\n```\n\n[Diffbot]: https://www.diffbot.com/\n[OpenAI]: https://openai.com/\n[Claude Code]: https://www.anthropic.com/claude-code\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyegor256%2Frssp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyegor256%2Frssp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyegor256%2Frssp/lists"}