OpenBiliClaw : un agent de découverte de contenu qui construit son propre profil utilisateur en local
本地私有、开源的自进化跨平台 AI 内容发现 Agent:先理解你,再主动从 B站、小红书、抖音、YouTube、X、知乎、Reddit、微博等平台与开放 Web 寻找内容。(支持 deepseek harness 插件) | Local-first open-source cross-platform AI content discovery agent: understands you, then proactively finds content across Bilibili, Xiaohongshu, Douyin, YouTube, X, Zhihu, Reddit, Weibo and the open web.(support deepseek harness plugin)
En bref
- De quoi s’agit-il ?
- OpenBiliClaw est un agent Python sous licence MIT qui apprend vos goûts depuis un navigateur instrumenté, puis va chercher du contenu sur Bilibili, Xiaohongshu, Douyin, YouTube, X, Zhihu, Reddit, Weibo et le web ouvert. Le backend reste sur votre machine, dans SQLite, et l'interface s'ouvre sur le port 8420.
- À qui s’adresse-t-il ?
- OpenBiliClaw convient aux utilisateurs qui acceptent d'installer une extension de navigateur et un backend local pour obtenir des recommandations qui traversent plusieurs plateformes, et qui veulent que leurs signaux restent dans un fichier SQLite chez eux. Il ne convient pas à qui cherche une recommandation sans installation, ni à une équipe qui voudrait un service partagé multi-utilisateurs : le projet se décrit comme un agent pour une seule personne.
- Puis-je l’utiliser commercialement ?
- Oui. MIT est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
- Est-il encore maintenu ?
- Oui. Le dépôt a reçu de nouveaux commits au cours des dernières 24 heures.
- En quel langage est-il écrit ?
- Principalement Python, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Le problème visé : des recommandations cloisonnées et pilotées par des objectifs qui ne sont pas les vôtres
Le README développe un argument précis. Un système de recommandation est décrit comme un intermédiaire qui pondère une dizaine d'objectifs (taux de clic, taux d'achèvement, probabilité de like, durée de session, rétention, santé de l'écosystème des créateurs, revenus publicitaires) pour produire un score de tri. Le projet affirme que ces pondérations sont fixées par la plateforme et que la satisfaction de l'utilisateur y entre comme moyen, pas comme fin. À cela s'ajoute un second constat, plus concret : chaque plateforme ignore ce que vous faites ailleurs. Le README prend l'exemple de quelqu'un qui consulte du contenu sur les claviers mécaniques pendant trois ans sur Bilibili, sans que Xiaohongshu en sache rien.
La cible est donc l'utilisateur individuel, pas l'équipe. Le nom vient de Bili pour Bilibili et Claw pour griffe, et le projet n'a couvert que Bilibili jusqu'à la version 0.3.0 avant de s'étendre. Le README précise que le dépôt a été archivé ? Non, il est actif. La licence est MIT.
Comment l'agent relie vos signaux à des sources distantes
Le mécanisme repose sur deux composants qui communiquent en local. Une extension de navigateur, publiée sur le Chrome Web Store sous l'identifiant cdfjfkdjjhdaccbldipkjhpibnfbiamg, s'installe dans le navigateur où vous êtes déjà connecté à vos comptes. Un backend Python écoute sur 127.0.0.1:8420 et conserve les données dans SQLite. L'extension fournit les signaux issus de votre navigation réelle, ce qui évite de redemander des identifiants aux plateformes qui exigent une session authentifiée.
Le README distingue deux familles de sources. Linux.do, Bangumi, V2EX, Weibo et GitHub sont accessibles en découverte publique. GitHub est lu par l'API REST officielle en anonyme, et un nom d'utilisateur public suffit à utiliser les dépôts mis en étoile comme signal d'initialisation ; le PAT est présenté comme optionnel, pour augmenter le quota et vérifier l'identité. Les sources qui demandent un état connecté réutilisent l'extension installée.
Le profil se construit par accumulation : le README indique que les actions « j'aime », « pas intéressé » et les retours en conversation modifient les recommandations suivantes. L'agent est décrit comme auto-évolutif, ce qui signifie ici que le profil psychologique se précise au fil de l'usage, pas qu'un modèle est réentraîné. La page d'accueil du projet mentionne aussi un plugin DSH qui expose 22 outils Agent Bridge dans DeepSeek Harness, et un client Flutter séparé dans le dépôt OpenBiliClaw-mobile qui se connecte au même backend.
Mise en route : extension, paquet desktop, puis une URL locale
Le README résume le parcours en quatre étapes. La première consiste à installer l'extension depuis le Chrome Web Store, ou à télécharger le zip de la dernière release pour une installation manuelle ; le README note que la version du store peut avoir quelques jours de retard sur les fonctionnalités les plus récentes. La deuxième consiste à installer le backend : un paquet macOS .dmg ou Windows .exe, qui tourne ensuite dans la barre de menus ou la zone de notification.
Deux variantes de paquet existent par plateforme. La version allégée, par défaut, télécharge automatiquement le modèle vectoriel bge-m3 au premier lancement. La variante suffixée -with-embedding embarque bge-m3, environ 1,1 Go, pour un fonctionnement hors ligne immédiat. Le choix dépend donc de la qualité de votre connexion, pas d'une différence fonctionnelle annoncée.
La troisième étape est la connexion d'une source : se connecter à Bilibili dans le navigateur instrumenté, Bilibili étant la source d'initialisation par défaut, ou choisir Xiaohongshu, Douyin, YouTube, X, Zhihu, Reddit, Linux.do, V2EX, Weibo ou GitHub. La quatrième est l'ouverture de l'interface sur http://127.0.0.1:8420/web. Le README mentionne une variante mobile accessible via un QR code de l'extension, sur http://<IP locale>:8420/m/, à enregistrer sur l'écran d'accueil.
Pour une installation depuis les sources, le README donne une commande à coller dans un assistant de code, qui pointe vers docs/agent-install.md et insiste sur l'usage de curl plutôt que d'un outil de récupération web. La configuration du tailnet passe par deux commandes, openbiliclaw tailnet build-helper puis openbiliclaw tailnet enable, la première exigeant Go 1.26.6. Le mot de passe de l'application se définit avec openbiliclaw set-password. Les identifiants tailnet sont décrits comme conservés uniquement en local jusqu'au redémarrage suivant, hors de config.toml, des réponses API et des journaux.
Ce que le modèle local ne fait pas
Le point le plus fragile est l'accès aux plateformes. Le README ne décrit pas d'API officielle pour Bilibili, Xiaohongshu, Douyin, YouTube, X, Zhihu, Reddit ou Weibo : il indique que les sources en état connecté réutilisent l'extension installée. Cela signifie que la collecte dépend d'un navigateur ouvert et connecté, et qu'une modification du DOM ou des protections côté plateforme peut casser une source sans préavis. C'est une contrainte structurelle, pas un défaut corrigible par une option de configuration.
Deuxièmement, le projet se présente comme un agent pour une seule personne. Rien dans le matériel fourni ne décrit de comptes multiples, de séparation des profils ou de déploiement serveur partagé. Le port 8420 est lié à la machine locale, et le README recommande d'activer un mot de passe applicatif lorsqu'on expose l'interface via un tailnet. Un foyer ou une petite équipe qui voudrait un backend commun n'a pas de chemin documenté ici.
Troisièmement, l'installation du modèle vectoriel crée une dépendance réseau au premier lancement dans la version allégée. Sur une machine sans accès sortant, seul le paquet -with-embedding est utilisable, ce qui suppose d'accepter environ 1,1 Go de téléchargement initial. Enfin, la qualité du profil dépend entièrement des signaux fournis : un utilisateur qui navigue peu ou qui refuse d'installer l'extension n'obtiendra qu'un profil très grossier.
Face à un lecteur de flux ou à un moteur de recommandation classique
L'alternative la plus proche n'est pas un autre agent, mais un lecteur de flux comme FreshRSS ou Miniflux couplé à des flux RSS. La différence d'approche est nette : un lecteur de flux attend que vous vous abonniez explicitement à des sources, et il affiche tout ce qui est publié dans l'ordre chronologique ou par dossier. Il ne construit aucun modèle de vos goûts et ne va rien chercher ailleurs. OpenBiliClaw fait l'inverse : il ne vous demande pas de choisir des sources, il déduit un profil à partir de votre navigation et va chercher du contenu sur des plateformes qui, pour la plupart, n'exposent pas de flux RSS exploitable.
Cette différence a un coût direct. Un lecteur de flux est un service stable dont le contrat d'entrée est un format normalisé. OpenBiliClaw dépend d'une extension qui lit des pages et d'un backend qui interroge des plateformes sans API publique documentée. En échange, il couvre des surfaces qu'un lecteur de flux ne touche pas : recommandations Bilibili, notes Xiaohongshu, vidéos Douyin, fils Reddit, dépôts GitHub mis en étoile. Le choix se fait donc entre la stabilité d'un format ouvert et la couverture de plateformes fermées.
Un autre point de comparaison est le client natif du même auteur, OpenBiliClaw-mobile, en Flutter. Ce n'est pas un concurrent mais une seconde interface : il se connecte au même backend local et ajoute les favoris, le « à regarder plus tard » et un historique de 30 jours. Le README précise que les clients Web, Linux, macOS et Windows de ce client Flutter ne bénéficient pas de la fonctionnalité tailnet intégrée, contrairement aux applications Android et iOS.
Versionnage, licence et charge de mise à jour
Le dépôt publie trois artefacts sous le même numéro de version : openbiliclaw-v0.3.220, extension-v0.3.220 et desktop-v0.3.220, tous datés du 9 septembre 2026. Ce versionnage synchronisé signifie que l'extension, le backend et le paquet desktop sont conçus pour avancer ensemble. Un utilisateur qui installe l'extension depuis le Chrome Web Store et le backend depuis une release GitHub peut donc se retrouver, pendant quelques jours, avec deux composants décalés. Le README signale explicitement ce décalage possible.
La licence est MIT, ce qui autorise la modification et la redistribution avec conservation de l'avis de licence. Le README encourage d'ailleurs la personnalisation profonde par installation depuis les sources. Aucune clause supplémentaire n'apparaît dans le matériel fourni, mais je ne peux pas vérifier le contenu du fichier LICENSE ni l'existence de licences tierces pour les modèles ou les dépendances. Il faut le lire avant toute redistribution.
Le coût de maintenance réel tient à trois choses : suivre les mises à jour de l'extension, car les plateformes modifient leurs pages ; conserver la compatibilité des versions entre extension et backend ; et gérer le stockage du modèle bge-m3 si vous choisissez la variante hors ligne. Le rythme de publication observé, plusieurs artefacts le même jour, suggère un projet actif, mais ce n'est pas une preuve de stabilité à long terme et je ne dispose d'aucune donnée sur la fréquence des ruptures de compatibilité.
Conclusion éditoriale
OpenBiliClaw convient aux utilisateurs qui acceptent d'installer une extension de navigateur et un backend local pour obtenir des recommandations qui traversent plusieurs plateformes, et qui veulent que leurs signaux restent dans un fichier SQLite chez eux. Il ne convient pas à qui cherche une recommandation sans installation, ni à une équipe qui voudrait un service partagé multi-utilisateurs : le projet se décrit comme un agent pour une seule personne. Avant d'adopter, vérifiez deux points précis : la version de Python requise (le badge indique 3.11+) et le mode d'installation du modèle d'embedding, car le paquet par défaut télécharge bge-m3 au premier lancement alors que la variante -with-embedding l'embarque déjà.
Notes de la communauté