J’ai réécrit en Bun + TypeScript un script Python qui résume la structure d’un projet et le contenu de ses fichiers.
Références d’origine
- Comment faire lire tout le code source d’un dépôt à un LLM
- Un script Python qui résume automatiquement la structure d’un projet et le contenu des fichiers pour tout injecter dans Claude 3
Déclencheur et contexte
- Je suis peu à l’aise avec Python
- Je voulais m’exercer à réimplémenter en JS/TS quelque chose écrit par quelqu’un d’autre dans un autre langage
- Je suis plutôt à l’aise avec JS et TS
- Je voulais un CLI capable de rassembler le contenu d’un dépôt dans un seul fichier pour un LLM
- Je voulais le distribuer comme binaire portable exécutable sur plusieurs plateformes
Code source
Stack technique
| Langage | TypeScript |
| Gestionnaire | Bun |
| Runtime JS | Bun |
| Linter/Formatter | Biome |
| Éditeur | VS Code |
Point de blocage / sujet non résolu
J’ai eu du mal à obtenir le comportement voulu avec l’API Glob intégrée à Bun, et j’ai finalement utilisé minimatch.
Points clés de l’implémentation
- Single File Executable : utiliser l’option
--compilede Bun pour générer un binaire exécutable - Gestion des glob : filtrer les fichiers avec minimatch
- Sortie pour LLM : regrouper la structure du projet et le contenu des fichiers dans un seul fichier markdown
Résumé
Cette réimplémentation du script Python m’a permis d’approfondir mes connaissances en TypeScript et en Bun.
Comme l’outil peut être distribué sous forme de binaire exécutable, Node.js n’a pas besoin d’être installé, ce qui facilite l’usage sur plusieurs plateformes.
Si vous voulez faire lire tout un dépôt à un LLM, cet outil permet de générer facilement le contexte nécessaire.
hsb.horse