Bon nombre des outils d'IA que votre équipe voudra adopter cette année se présentent de deux façons. La première est une page web : vous collez votre texte, vous téléversez votre dossier, vous obtenez le résultat. La seconde est une commande que vous installez et exécutez sur votre propre ordinateur. Même outil, même résultat, souvent le même auteur. On est tenté d'y voir deux niveaux de commodité, le facile et le technique. Ce sont plutôt deux réponses à une question plus simple : où vont vos fichiers pendant que l'outil travaille dessus ? Avec la version locale, nulle part. Avec la version hébergée, vers le serveur de quelqu'un d'autre, dans un endroit que vous n'avez pas choisi et qu'on ne vous dira peut-être pas.
Un outil, deux portes d'entrée.
Repomix empaquette un dépôt logiciel (le code d'un projet et les fichiers qui l'entourent) dans un seul fichier qu'un modèle d'IA peut lire d'un coup. Il est sous licence MIT, gratuit, et compte plus de 28 900 étoiles sur GitHub.[1] Un développeur s'en sert pour confier tout un projet à un assistant de programmation, ou pour comprendre un projet qu'il ne connaît pas avant de l'adopter.
Regardez le haut de son README : le premier appel à l'action est la version hébergée, « Use Repomix online! » (en anglais dans l'original ; utilisez Repomix en ligne !).[1] Entrez le nom d'un dépôt, choisissez un format, appuyez sur le bouton « Pack » (en anglais dans l'original ; empaqueter). Plus bas, la même capacité prend la forme d'une commande, npx repomix, qui s'exécute sur votre poste et qui est gratuite elle aussi. Il existe une extension de navigateur qui ajoute un bouton Repomix aux pages GitHub, et un mode serveur local qui permet à un agent de programmation d'appeler Repomix directement. Si l'on compte le site web deux fois (une fois avec l'adresse d'un dépôt, une fois avec un téléversement de vos propres fichiers) et qu'on ajoute l'option de la ligne de commande qui récupère elle-même un dépôt public, cela fait six façons pour une personne ou un agent de remettre ses fichiers à ce seul outil.
Cette forme n'a rien de propre à Repomix. Les convertisseurs de PDF, les outils de transcription, les générateurs de résumés de documents et les aides à la programmation sont souvent livrés en paire : une page pour qui veut un résultat tout de suite, et une installation locale pour qui se soucie de la destination de ses données. Repomix est un bon exemple parce que ses deux portes sont entièrement documentées, y compris le code serveur de la porte hébergée.
Où chaque surface s'exécute.
Voici les six surfaces côte à côte : où chacune s'exécute, ce qui quitte votre poste quand vous l'utilisez, et le verdict que nous appliquerions à des données de clients. Trois gardent les fichiers sur votre ordinateur. Une est une porte d'accès au site hébergé. Deux s'exécutent sur le site hébergé lui-même.
npx repomix votre ordinateur rien ; l'outil fonctionne hors ligne une fois installé[2] acceptable repomix --mcp votre ordinateur rien de la part de Repomix ; le fichier empaqueté va là où l'agent l'envoie ensuite acceptable, vérifiez le trajet de l'agent --remote votre ordinateur (il télécharge d'abord le dépôt) une requête vers GitHub pour un dépôt public acceptable pour les dépôts publics La deuxième rangée est celle que l'on lit de travers. Exécuter l'outil d'empaquetage en local garde l'empaquetage en local. Cela ne dit rien de l'étape suivante, et avec un outil d'IA l'étape suivante consiste presque toujours à envoyer le résultat à un modèle, qui est lui aussi hébergé pour la plupart des équipes. Un outil local réduit les endroits où vont vos données. Il ne clôt pas la question : l'endroit où le modèle s'exécute relève de la même question de Loi 25, et notre note sur le palier ouvert à un tiers du coût la traite pour les modèles hébergés.
Ce que la porte hébergée conserve réellement.
Il faut le reconnaître : Repomix documente ce que conserve son volet hébergé. Sa politique de confidentialité indique que, lorsque vous téléversez un fichier ZIP ou un dossier, « your files are temporarily stored on our servers for processing » puis sont « automatically deleted immediately after processing is complete » (en anglais dans l'original ; vos fichiers sont stockés temporairement sur nos serveurs pour le traitement, puis supprimés automatiquement dès la fin du traitement).[2] Le code du serveur est public et, sur ce point, il concorde avec la politique : les fichiers téléversés ne sont jamais mis en cache, et le fichier de sortie est supprimé une fois le résultat renvoyé.[3] Le site exécute aussi Google Analytics sur les pages vues et Cloudflare Turnstile, une vérification anti-robots qui « may collect browser and network signals » (en anglais dans l'original ; peut recueillir des signaux du navigateur et du réseau).[2]
Sur la conservation, la réponse est donc bonne. Ce que la politique ne dit pas, c'est où le traitement a lieu. Selon la configuration de déploiement publiée dans le dépôt, le serveur est déployé sur Google Cloud Run, dans la région us-central1, qui se trouve aux États-Unis.[3] C'est la configuration telle que publiée, pas une promesse. La politique ne s'engage sur aucune région, et nous n'avons pas confirmé où le service en production s'exécute.
Cet écart ne vise pas cet outil en particulier. Une bonne réponse sur la conservation et une réponse sur l'emplacement sont deux choses distinctes. « Supprimé immédiatement » veut dire que la copie ne reste pas. Si la configuration publiée est celle qui tourne, les fichiers ont tout de même été envoyés à un serveur dans un autre pays pour y être traités.
Trois questions avant de coller.
Nul besoin de lire du code source pour trancher. Trois questions, posées dans l'ordre, couvrent l'essentiel, pour Repomix comme pour tout outil qui offre une zone de collage.
La première question fait l'essentiel du travail. Si une version locale existe et fait le travail, les deux autres questions tombent. Avec Repomix, la commande locale est de toute façon la surface la plus complète : elle peut lire des dépôts privés grâce à l'accès git que vos développeurs ont déjà sur leur poste, ce que le site hébergé ne peut pas faire.[1]
La réponse à la deuxième question se trouve dans la politique de confidentialité, pas dans le marketing. Les pages d'accueil parlent de vitesse. La politique est l'endroit où un fournisseur s'engage sur ce qu'il conserve. S'il n'y en a pas, ou si elle ne couvre pas le contenu téléversé, c'est déjà votre réponse.
La troisième question est celle que les entreprises québécoises sautent. En termes généraux (c'est la position à partir de laquelle nous travaillons, pas un avis juridique) : la loi québécoise sur la protection des renseignements personnels dans le secteur privé, telle que modifiée par la Loi 25, exige une évaluation des facteurs relatifs à la vie privée avant qu'un renseignement personnel soit communiqué à l'extérieur du Québec, y compris à un fournisseur hors Québec qui ne fait que le traiter, ainsi qu'une entente écrite qui tient compte de cette évaluation.[6] Une courte durée de conservation ne change rien au fait que l'information a franchi la frontière. Notre note sur l'IA exécutée sur votre propre matériel pousse plus loin cette ligne, qui est la frontière du Québec, pas celle du Canada.
Et le code n'échappe pas à la règle parce que c'est du code. Les dépôts contiennent des renseignements personnels plus souvent que leurs propriétaires ne le pensent : des données de test copiées de la production, un export de clients versé au dépôt par erreur, des fichiers journaux, un fichier de configuration avec les coordonnées d'un client. Les documents confidentiels d'un client peuvent aussi être couverts par les clauses de confidentialité que vous avez signées avec lui, peu importe ce que dit la loi sur la vie privée.
Un fichier, un seul point de fuite.
Un autre risque vaut pour tout outil qui rassemble tout dans un seul fichier, quelle que soit la porte utilisée. Un dépôt empaqueté est pratique parce qu'il est complet. C'est aussi ce qui le rend risqué. Chaque fichier qui était éparpillé dans un projet, y compris celui qui contient un mot de passe, se retrouve maintenant dans un seul fichier facile à coller, à envoyer par courriel, à déposer dans un dossier partagé ou à joindre à une conversation de clavardage.
Repomix intègre une protection contre ce risque : il exécute Secretlint, un analyseur qui détecte les « files matching known credential formats » (en anglais dans l'original ; fichiers correspondant à des formats d'identifiants connus) et les exclut de la sortie.[1] C'est une aide réelle. C'est aussi, de l'aveu même du projet, « an additional heuristic safeguard », et sa documentation dit sans détour que « the access boundary is the workspace root, not the scan » (les deux citations en anglais dans l'original ; une protection heuristique supplémentaire, et la limite d'accès est la racine de l'espace de travail, pas l'analyse) : ce qui limite l'exposition, c'est le dossier que l'outil a le droit de lire, pas l'analyseur.[4] En clair, l'analyseur attrape les formats qu'il connaît. Un mot de passe dans un format qu'il ne reconnaît pas passe au travers. Et il cherche des identifiants, pas des renseignements personnels : les lignes de clients d'un fichier de test ne font pas partie de ce qu'il analyse.
Traitez donc le fichier empaqueté comme vous traiteriez la chose la plus sensible qu'il pourrait contenir.
- Choisissez ce qui entre, plutôt que de tout empaqueter.
Repomix accepte des motifs d'inclusion et d'exclusion, ainsi qu'un fichier d'exclusion. Empaquetez les dossiers dont la tâche a besoin, pas tout le projet avec ses données et ses journaux.
→ le fichier contient ce que la tâche exige, rien de plus - Relisez la sortie avant qu'elle ne bouge.
Cherchez-y l'évident : mots de passe, clés, adresses courriel, le nom d'un client. L'analyseur est un premier filtre, pas le dernier coup d'œil.
→ une personne l'a vu avant qu'un modèle ne le voie - Ne la laissez pas traîner.
Gardez-la hors des dossiers synchronisés et partagés, et supprimez-la quand la tâche est terminée. Un fichier oublié dans un dossier synchronisé dans le nuage est une façon facile de laisser ce genre d'exposition s'amorcer.
→ la copie vit aussi longtemps que la tâche
Pourquoi Repomix est un bon exemple.
Rien de ce qui précède n'est une critique de Repomix. C'est le contraire. Le projet documente ses propres limites mieux que la plupart des outils que nous examinons, et c'est exactement pourquoi il sert d'exemple. Il publie une politique de confidentialité qui traite séparément le site web, la ligne de commande et l'extension de navigateur. Il traite le fichier de configuration d'un dépôt téléchargé comme du code susceptible de s'exécuter, « comparable to running its Makefile » (en anglais dans l'original ; comparable à l'exécution de son Makefile), c'est-à-dire lancer à l'aveugle les commandes de construction d'un projet, et refuse de le charger par défaut.[4] Il décrit son propre mode bac à sable comme « an application-level confinement of the tool surface, not an OS-level sandbox » (en anglais dans l'original ; un confinement de la surface d'outils au niveau de l'application, et non un bac à sable au niveau du système d'exploitation).[1] Et il qualifie son analyseur de secrets d'heuristique au lieu de le vendre comme une protection.
Un outil qui vous dit où sont ses limites vous permet de prendre la décision de la fig 1 à partir de sa propre documentation. Beaucoup d'outils d'IA hébergés vous donnent une zone de collage et une promesse. Quand l'un d'eux vous offre une version locale, une politique de confidentialité qui sépare le site web des outils locaux, et son propre code serveur, utilisez la version locale pour tout ce qui est privé et gardez la version hébergée pour le contenu public. Notre examen en six portes montre la même habitude dans un exemple concret, un module d'IA qui a passé un contrôle de sécurité et que nous avons quand même refusé : le trajet des données du cas d'usage est l'une des portes.
Ce que cette note ne prétend pas.
Nous n'avons pas testé le service hébergé. Les énoncés sur la conservation, le cache et la région viennent de la politique de confidentialité de Repomix, ainsi que du code serveur et de la configuration de déploiement qu'il publie. La région est la configuration publiée, pas un déploiement confirmé, et une politique peut changer après notre lecture.
Pas un examen de sécurité de Repomix. Nous avons lu sa documentation et des parties de son code pour voir où chaque surface s'exécute. Nous n'avons pas audité l'outil, et rien ici ne dit qu'il est dangereux.
Six surfaces, pas toutes. Repomix offre aussi une GitHub Action (un flux de travail automatisé de GitHub), une bibliothèque de programmation et des modules d'extension pour un assistant de programmation. La fig 1 les laisse de côté : les modules exécutent les outils locaux de Repomix dans l'assistant de programmation, la bibliothèque s'exécute là où s'exécute votre propre code, et l'Action s'exécute là où s'exécute votre pipeline d'intégration continue, ce qui est une question de trajet des données en soi.
Les verdicts sont une position. « Dépôts publics seulement » et « pas pour des données de clients » sont les règles que nous appliquons. Une entreprise dont les données diffèrent, ou qui détient une évaluation signée pour un fournisseur donné, pourrait raisonnablement tracer la ligne ailleurs.
website/server du même dépôt : le gestionnaire de téléversement (téléversements jamais mis en cache, fichier de sortie supprimé), le cache partagé (résultats pour une adresse de dépôt gardés en mémoire pendant 10 minutes) et la configuration de déploiement (Google Cloud Run, région us-central1). Lu tel que publié ; le déploiement en production n'a pas été vérifié. Makefile. browser du même dépôt. Utilisé pour ce que fait le bouton (ouvrir le dépôt dans Repomix sur repomix.com) et la déclaration de confidentialité de l'extension. Si votre équipe songe à un outil d'IA qui offre à la fois une version hébergée et une version locale, décrivez-nous l'outil et le type de contenu que vous comptez y mettre (le type, pas le contenu lui-même) par le formulaire de contact. Nous vous répondrons gratuitement, par écrit, en vous disant quelle surface nous utiliserions et ce que nous n'y mettrions pas. Choisir et configurer des outils d'IA en fonction de l'endroit où vivent vos données fait partie de nos services en assistants et agents.