{"id":47995591,"url":"https://github.com/sripwoud/colporteur","last_synced_at":"2026-04-04T11:55:51.012Z","repository":{"id":340778627,"uuid":"1166759367","full_name":"sripwoud/colporteur","owner":"sripwoud","description":"Convert email newsletters into Atom feeds","archived":false,"fork":false,"pushed_at":"2026-03-12T17:26:05.000Z","size":229,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-03-12T17:53:13.134Z","etag":null,"topics":["cli","imap","mail","newsletter","rss","rust","selfhost","systemd-service"],"latest_commit_sha":null,"homepage":"http://colporteur.sripwoud.xyz/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sripwoud.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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":"2026-02-25T15:20:52.000Z","updated_at":"2026-03-12T17:23:49.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/sripwoud/colporteur","commit_stats":null,"previous_names":["sripwoud/colporteur"],"tags_count":7,"template":false,"template_full_name":"sripwoud/agnostic-template","purl":"pkg:github/sripwoud/colporteur","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sripwoud%2Fcolporteur","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sripwoud%2Fcolporteur/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sripwoud%2Fcolporteur/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sripwoud%2Fcolporteur/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sripwoud","download_url":"https://codeload.github.com/sripwoud/colporteur/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sripwoud%2Fcolporteur/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31398770,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["cli","imap","mail","newsletter","rss","rust","selfhost","systemd-service"],"created_at":"2026-04-04T11:55:50.383Z","updated_at":"2026-04-04T11:55:50.999Z","avatar_url":"https://github.com/sripwoud.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ch1 align=\"center\"\u003e\u003ca href=\"https://colporteur.sripwoud.xyz\"\u003eColporteur\u003c/a\u003e\u003c/h1\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://crates.io/crates/colporteur\"\u003e\n    \u003cimg src=\"https://img.shields.io/crates/v/colporteur\" alt=\"Crates.io\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003e Convert email newsletters into Atom feeds\n\nColporteur connects to IMAP mailboxes, fetches emails from configured senders, sanitizes the HTML, and writes Atom XML feed files. Subscribe to your newsletters with any feed reader.\n\n## Features\n\n- **IMAP native** -- connects directly to any IMAP mailbox, no forwarding rules needed\n- **HTML sanitization** -- strips tracking pixels, scripts, and styles while preserving content\n- **Atom feeds** -- generates standard Atom XML consumable by any feed reader\n- **Multi-account** -- pull newsletters from multiple IMAP accounts into separate feeds\n- **Dry-run mode** -- preview what would be fetched before writing anything\n- **JSON output** -- machine-readable output for scripting and automation\n\n## Quick Start\n\nInstall colporteur from a [pre-compiled binary](https://github.com/sripwoud/colporteur/releases/latest) or via cargo:\n\n```bash\ncargo install colporteur\n```\n\nGenerate a sample config:\n\n```bash\ncolporteur init\n```\n\nEdit `~/.config/colporteur/config.toml` with your IMAP accounts and feeds, then:\n\n```bash\ncolporteur test    # verify IMAP connection\ncolporteur fetch   # fetch and generate feeds\ncolporteur list    # show feed sync state\n```\n\n## Documentation\n\nFull documentation available at [colporteur.sripwoud.xyz](https://colporteur.sripwoud.xyz):\n\n- [Installation](https://colporteur.sripwoud.xyz/#/getting-started/installation) - Detailed setup guide\n- [Quick Start](https://colporteur.sripwoud.xyz/#/getting-started/quick-start) - Step-by-step walkthrough\n- [CLI Reference](https://colporteur.sripwoud.xyz/#/cli-reference) - All commands documented\n- [Configuration](https://colporteur.sripwoud.xyz/#/configuration) - Config file format and options\n- [How It Works](https://colporteur.sripwoud.xyz/#/how-it-works/email-processing) - Email processing pipeline\n\n## Requirements\n\n- An IMAP-accessible email account with newsletters\n\n## Develop\n\n| Feature                                        | With                                                                                   | Configuration                                          |\n| ---------------------------------------------- | -------------------------------------------------------------------------------------- | ------------------------------------------------------ |\n| Continuous Integration                         | [GitHub Workflow](https://docs.github.com/en/actions/using-workflows)                  | [.github/workflows](./.github/workflows)               |\n| Conventional Commits                           | [convco](https://github.com/convco/convco)                                             | [.convco](./.convco)                                   |\n| Conventional PR Titles                         | [action-semantic-pull-request](https://github.com/amannn/action-semantic-pull-request) | [semantic-pr.yml](./.github/workflows/semantic-pr.yml) |\n| Documentation                                  | [docsify](https://docsify.js.org/)                                                     | [docs/](./docs)                                        |\n| Formatting                                     | [dprint](https://dprint.dev/)                                                          | [.dprint.jsonc](./.dprint.jsonc)                       |\n| Git Hooks                                      | [hk](https://hk.jdx.dev/)                                                              | [hk.pkl](./hk.pkl)                                     |\n| Tasks Runner, Environment \u0026 Runtime Management | [mise](https://mise.dev/)                                                              | [mise.toml](./mise.toml)                               |\n\n```bash\n./setup       # install mise and setup repository\nmise run      # run tasks interactively\n```\n\n## Community\n\n- [Documentation](https://colporteur.sripwoud.xyz)\n- [Report Issues](https://github.com/sripwoud/colporteur/issues)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsripwoud%2Fcolporteur","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsripwoud%2Fcolporteur","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsripwoud%2Fcolporteur/lists"}