Modèle / jeu de données
campfirein/byterover-cli avatar
campfirein/byterover-cli

ByteRover CLI : donner une mémoire versionnée aux agents de code

ByteRover CLI (brv) - The portable memory layer for autonomous coding agents (formerly Cipher)

4 963 étoiles454 forksTypeScriptNOASSERTION

En bref

De quoi s’agit-il ?
brv ajoute une couche de mémoire persistante et versionnée au-dessus de vos agents de codage, avec une arborescence de contexte synchronisable. Le point délicat n'est pas la fonction, c'est la licence.
À qui s’adresse-t-il ?
brv convient aux équipes qui veulent une arborescence de contexte versionnée, auto-hébergeable, et qui acceptent la licence Elastic 2.0. À éviter si vous avez besoin d'une licence OSI classique, ou si vous cherchez un simple index de dépôt.
Puis-je l’utiliser commercialement ?
À vérifier. La licence de ce dépôt n’entre pas dans les catégories que nous classons automatiquement : lisez son fichier LICENSE avant tout usage commercial.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 83 jours.
En quel langage est-il écrit ?
Principalement TypeScript, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 16 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Le problème : la mémoire d'un agent meurt à la fin de la session

Un agent de codage qui travaille sur un dépôt repart de zéro à chaque session. Il relit les fichiers, redécouvre les conventions, redemande les mêmes décisions d'architecture. La documentation de ByteRover CLI présente la solution sous cette forme : donner aux agents « persistent, structured memory », c'est-à-dire une mémoire persistante et structurée, organisée en arborescence de contexte. Le projet vise les développeurs qui utilisent plusieurs agents (Cursor, Claude Code, Windsurf, Cline, et 18 autres selon la liste du README) et qui veulent partager le même contexte entre eux et entre coéquipiers. Le problème adressé n'est donc pas la qualité du modèle, mais la conservation de ce que le projet sait déjà. C'est un problème réel dès qu'une base de code dépasse quelques milliers de lignes et que plusieurs personnes y travaillent avec des assistants différents.

Une arborescence de contexte, pas un index de fichiers

Le mécanisme central est l'arborescence de contexte. On y ajoute des connaissances avec la commande /curate, qui accepte une chaîne et une référence de fichier : /curate "Auth uses JWT with 24h expiry" @src/middleware/auth.ts. La connaissance est stockée dans l'arborescence, puis interrogeable par /query. Le README décrit aussi une « agentic map » qui sert à l'agent pour comprendre le dépôt, et 24 outils intégrés couvrant l'exécution de code, les opérations de fichiers, la recherche de connaissances et la gestion de mémoire. La différence avec un simple index vectoriel de dépôt tient au fait que l'unité stockée est une affirmation rédigée par un humain ou un agent, rattachée à un fichier source, et non un fragment de code découpé automatiquement. Cette couche s'insère dans le flux de travail de l'agent via MCP (Model Context Protocol), ce qui explique la compatibilité revendiquée avec plus de vingt agents de codage : chacun parle le protocole, brv fournit la mémoire.

Le versionnement Git appliqué au contexte

Le choix le plus intéressant du projet est d'appliquer un modèle Git à l'arborescence de contexte. Les commandes brv vc init, brv vc add, brv vc commit, brv vc log, brv vc branch, brv vc checkout, brv vc merge, brv vc clone, brv vc push, brv vc pull, brv vc fetch, brv vc remote, brv vc reset et brv vc config reproduisent la sémantique de Git. Concrètement, cela signifie que la connaissance projet devient un artefact à part entière : on peut la brancher, la fusionner, la relire dans un journal de commits, et savoir qui a modifié quoi. Le README signale explicitement que brv push et brv pull sont des commandes héritées, à remplacer par brv vc push et brv vc pull. Ce basculement indique que le projet considère désormais le versionnement comme le chemin principal, et non comme un ajout. Il existe aussi brv vc remote add et brv vc remote set-url, ce qui laisse penser qu'un remote autre que ByteRover Cloud est envisageable, mais le README ne documente pas ce cas et je ne peux pas le confirmer.

Mise en route : trois chemins, dont un sans Node.js

L'installation se fait par script shell, sans Node.js : curl -fsSL https://byterover.dev/install.sh | sh. Les plateformes annoncées sont macOS ARM64, macOS x64, Linux x64 et Linux ARM64. L'autre voie passe par npm et exige Node.js >= 20 : npm install -g byterover-cli. La vérification se fait avec brv --version, puis on lance brv dans le répertoire du projet. Le README affirme que le REPL s'auto-configure au premier lancement, sans configuration préalable. L'interface principale revendiquée n'est pas le terminal mais le tableau de bord : brv webui. Les commandes brv status, brv curate, brv curate view, brv query, brv review pending, brv review approve et brv review reject complètent le cycle. Le flux de revue mérite attention : les opérations de curation peuvent être approuvées ou rejetées, ce qui suppose qu'un agent peut proposer une connaissance sans qu'elle entre immédiatement dans l'arborescence.

Cloud optionnel, et ce que dit la licence

ByteRover Cloud est présenté comme un ajout, pas comme un prérequis : « Everything works locally by default ». On s'y connecte avec brv login et une clé API. Le cloud apporte la synchronisation d'équipe, les espaces partagés, l'accès multi-machines, un LLM hébergé avec un quota gratuit limité, la gestion des membres et une infrastructure certifiée SOC 2 Type II. Le point qui doit arrêter la lecture est ailleurs. Le badge du README indique Elastic 2.0, alors que le champ license du dépôt porte NOASSERTION : GitHub n'a pas su classer la licence. Elastic 2.0 n'est pas une licence approuvée par l'OSI, et elle comporte des restrictions d'usage, notamment sur les services hébergés concurrents. Le README renvoie à un fichier LICENSE, mais son contenu n'est pas fourni ici. Je ne peux donc pas dire ce que ce fichier autorise réellement. Toute équipe qui envisage un usage commercial ou un service dérivé doit lire ce fichier avant d'installer quoi que ce soit. Ce n'est pas un détail administratif : c'est la question qui décide de l'adoption.

Les chiffres de benchmark sont ceux du projet

Le README annonce 96,1 % de précision globale sur LoCoMo (1 982 questions, 272 documents) et 92,8 % sur LongMemEval-S (500 questions, 23 867 documents), mesurés en LLM-as-Judge. Ces résultats proviennent du projet lui-même, qui précise que les benchmarks tournent sur le code de production du dépôt et non sur un prototype de recherche séparé. C'est une affirmation vérifiable en principe, mais elle n'est pas vérifiée ici. Deux réserves méthodologiques tiennent au matériel fourni. D'abord, ces deux benchmarks mesurent la mémoire conversationnelle à long terme, pas la mémoire d'un dépôt de code : la proximité entre les deux tâches n'est pas démontrée. Ensuite, un score LLM-as-Judge dépend du modèle juge, et le README ne précise pas lequel a été utilisé. Un chiffre de précision sur des conversations ne se transpose pas directement en gain de pertinence sur une base de code réelle.

La limite structurelle : la curation reste manuelle

Le point faible du modèle est dans le verbe : curate. Quelqu'un doit écrire l'affirmation, la rattacher au bon fichier, puis la valider via brv review approve. Rien dans le matériel fourni n'indique que cette étape soit automatique. Un agent peut la déclencher, mais la qualité de l'arborescence dépend alors de la qualité du jugement de l'agent, et une arborescence polluée produit de mauvaises réponses avec la même assurance qu'une arborescence propre. C'est le cas où brv est le mauvais outil : une petite base de code, un développeur seul, un projet dont les conventions tiennent en un fichier de configuration. Le coût de curation dépasse alors le bénéfice, et un simple fichier de règles suffit. Le projet lui-même oriente vers cette conclusion quand il écrit que la plupart des utilisateurs n'ont besoin que de brv webui, ce qui suppose une adoption réelle du tableau de bord et de la discipline de revue.

Face à un serveur MCP de recherche dans le dépôt

L'alternative la plus directe n'est pas un autre produit de mémoire, c'est un serveur MCP qui expose une recherche dans le dépôt : indexation des fichiers, recherche par similarité, réponse avec extraits de code. La différence d'approche est nette. Un serveur de recherche restitue ce que le code contient déjà, sans intervention humaine, et se met à jour à mesure que les fichiers changent. brv stocke des affirmations sur le code, qui survivent à une réécriture du fichier concerné et qui peuvent être partagées entre dépôts et entre machines. Le premier répond à la question « où est ce code ». Le second répond à « pourquoi ce code est ainsi ». Les deux ne se remplacent pas, et une équipe qui n'a besoin que de la première question n'a aucune raison d'ajouter une couche de curation. Inversement, un agent qui redemande chaque semaine pourquoi l'authentification utilise un JWT de 24 heures ne trouvera pas la réponse dans une recherche par similarité.

Coût de maintenance et rythme de publication

Le dépôt n'est pas archivé et la dernière poussée date du 25 juin 2026. Les versions récentes suivent un rythme serré : v3.16.1 le 27 mai 2026, v3.16.0 le 25 mai, v3.15.1 le 22 mai. Trois publications en cinq jours sur une mineure. Pour un outil qui s'installe globalement avec npm install -g byterover-cli, ce rythme implique des mises à jour fréquentes côté utilisateur, et un risque de dérive entre la version installée et la documentation en ligne. La surface à maintenir est large : 20 fournisseurs LLM, 24 outils d'agent, un tableau de bord web, une couche de versionnement et une synchronisation cloud. Chaque fournisseur peut changer son API, chaque agent peut changer son intégration MCP. C'est le profil d'un projet qui demande une veille active, pas d'une dépendance qu'on installe et qu'on oublie. Le fichier LICENSE reste, lui, la première chose à ouvrir.

Conclusion éditoriale

brv convient aux équipes qui veulent une arborescence de contexte versionnée, auto-hébergeable, et qui acceptent la licence Elastic 2.0. À éviter si vous avez besoin d'une licence OSI classique, ou si vous cherchez un simple index de dépôt. Vérifiez trois choses avant d'adopter : le fichier LICENSE, le comportement de brv vc remote add vers un remote non-ByteRover, et la latence de brv query sur votre propre dépôt.

Sources officielles

  1. campfirein/byterover-cli on GitHub
  2. Issues
  3. Project website
  4. README
  5. Releases
Notes de la communauté

Notes de la communauté