RSSMonster

Interface en trois panneaux : dossiers et flux à gauche, articles non lus triés par recommandation au centre, article ouvert à droite.

Boîte de réception RSS, analyse sémantique en option

RSSMonster est un lecteur RSS auto-hébergé écrit en Node.js et Vue 3. La lecture reste celle d'un lecteur de flux ordinaire, tri chronologique compris, en trois panneaux ou en flux d'articles complets. Une fois l'analyse sémantique activée, RSSMonster travaille après la collecte : il repère les doublons, regroupe les articles qui rapportent un même fait et classe le reste selon l'intérêt personnel ou l'ampleur de la couverture. Chaque compte garde ses abonnements et son état de lecture. Le serveur se déploie par Docker Compose, sur SQLite ou MySQL, et une application de bureau Electron existe pour Windows, macOS et Linux.

Events et tris dont les signaux restent visibles

  • Events : par défaut, un Event se crée dès que deux articles concordent, et une option du serveur exige qu'ils viennent d'au moins deux flux. La détection des doublons est un traitement distinct, qui sépare une copie syndiquée d'un article écrit par un autre média.
  • Tris explicables : Recommended s'appuie sur des centres d'intérêt appris des retours de lecture (les Interest Islands), que l'on peut consulter et mettre en sourdine. Top Stories fait remonter les sujets couverts par beaucoup de sources. Les signaux qui composent un classement sont affichés, et la documentation prévient que ni la note de qualité ni FeedTrust ne vérifient les faits.
  • Smart Folders et actions : une recherche comme @today unread:true sort:desc s'enregistre en dossier qui se remplit seul. Les actions appliquent des expressions régulières aux articles entrants pour les taguer, les marquer lus, les masquer ou corriger leur score.
  • Sites sans flux : un flux HTML + XPath extrait titres, liens, contenu et dates d'une page rendue côté serveur, avec un aperçu avant enregistrement.
  • Clients tiers et flux générés : import et export OPML, API Fever et Google Reader (Fever ne transmet qu'un exemplaire de chaque doublon connu), flux RSS privés à jeton tirés d'une recherche, et un point d'accès MCP (/mcp, jeton JWT) pour les agents IA.

Inférence requise pour les Events, image Docker calée sur master

Le regroupement par événement exige un service d'inférence. Un Event se forme d'abord par similarité entre embeddings, et un article sans embedding n'en rejoint aucun. Le profil SQLite que lance docker compose up -d désactive embeddings, classifications et assistant. Le profil complet ajoute MySQL 8.4, un service d'inférence et un worker IA, puis télécharge au premier lancement Qwen3, Qwen3.5 et ModernBERT, qui tournent sans clé OpenAI. Le profil SQLite peut aussi viser une inférence distante.

Le projet vise les gros volumes de flux qui se recoupent. Sa page de comparaison s'adresse aux lecteurs dont le problème n'est plus de s'abonner, mais de s'y retrouver dans ce que produisent leurs flux. Elle oriente vers Miniflux pour une lecture minimale, FreshRSS pour la maturité et les extensions, Feedbin pour un service géré.

L'image Docker est construite depuis master, sans tag de version. Sur Docker Hub, rssmonster/rssmonster ne porte que latest et un tag sha- par commit. latest est reconstruite après chaque commit de master qui passe la CI, et la documentation demande d'épingler un tag sha- en production, faute de quoi un docker compose pull peut changer l'application et migrer la base.

Dernière version publiée : 2.3.0, le 9 septembre 2026. C'est la sixième depuis le 1er août ; le dernier commit date du 25 octobre. Master prépare une 2.4.0 (OpenID Connect, webhooks, lecture hors ligne) que le README et la documentation décrivent déjà. Le mainteneur principal signe 2 066 commits, le contributeur humain suivant 15. La politique de sécurité ne couvre que la dernière version, et son adresse de signalement privé est restée un espace réservé (<your-email>). L'application de bureau 2.3.0 rafraîchit les flux à la main, sans fonctions d'IA, et ses installeurs ne sont pas signés.