Live 18/11 · Cohorte 318 nov à 19h00 MSK — atelier pratique gratuit sur les agents IA · La Cohorte 3 démarre le 23/11Atelier 18/11 →Cohorte 3 (23/11)
SortieAPI / Produit · Prêt à l'emploiSimon Willison→ original

Simon Willison a classé 244 outils « vibe-codés » grâce à tree-sitter

Simon Willison a accumulé 244 petits outils web écrits avec l'aide de l'IA, et retrouver celui dont il a besoin dans un tel tas est devenu difficile. Il a demandé à un modèle de code d'analyser les sources via tree-sitter et d'extraire de chaque outil les API de navigateur utilisées, les bibliothèques chargées depuis un CDN et les hôtes d'API externes. La page d'accueil affiche désormais des nuages de tags pour ces trois catégories. La méthode convient à n'importe quelle collection de code qui prend de l'ampleur.

Traité par IA depuis Simon Willison ; édité par Hamidun News
Simon Willison a classé 244 outils « vibe-codés » grâce à tree-sitter
Source : Simon Willison. Collage: Hamidun News.
Écouter l'article
Fiche synthèse et chiffres clés
ParamètreDonnées
Source primaireSimon Willison ↗
Rédacteur en chef
Chiffre clé #1L'API Clipboard est utilisée par 69 outils, les ES modules par 92 sur 244
Chiffre clé #2Parmi les bibliothèques, Marked (12 outils) et Pyodide (11) arrivent en tête
Chiffre clé #3Les tags proviennent du code réel, et non de descriptions rédigées à la main

Quand l'IA écrit du code en quelques minutes, le principal problème se déplace vite. Au lieu de « comment faire cela », la question devient « où ai-je déjà quelque chose de similaire ». Simon Willison y a été confronté avec sa propre collection : tools.simonwillison.net héberge déjà 244 petits outils, presque tous écrits avec l'aide de modèles. Une liste à plat d'un tel nombre d'éléments ne fonctionnait plus.

Ce qu'il a fait

Willison a décidé de ne pas classer les outils à la main. Il lui restait des crédits sur le modèle Fable 5.2 jusqu'à la réinitialisation hebdomadaire des limites, et il lui a confié la tâche dans son intégralité. Le modèle a utilisé tree-sitter, un parseur qui construit l'arbre syntaxique du code, et a analysé le JavaScript de chaque outil. Il en a extrait trois choses : les API de navigateur utilisées, les bibliothèques chargées depuis un CDN et les hôtes d'API web auxquels l'outil s'adresse.

Le résultat s'affiche sur la page d'accueil sous forme de nuages de tags, où la taille d'un tag dépend du nombre d'outils concernés. En cliquant sur un tag, on voit la liste de tous les outils qui l'utilisent.

Ce que montrent les chiffres

Les statistiques sont déjà intéressantes en elles-mêmes. Les ES modules sont utilisés par 92 outils, l'API Clipboard par 69, Canvas 2D par 44, les Blob URLs par 38, le glisser-déposer (Drag and drop) par 30. La caméra ou le micro sont sollicités par 9 outils, tandis que l'IA intégrée au navigateur (Built-in AI) n'apparaît pour l'instant qu'une seule fois.

Parmi les bibliothèques, Marked (12), Pyodide (11) et DOMPurify (7) sont en tête. Viennent ensuite Leaflet, markdown-it et jSquash pour WebP, avec 4 chacun. Seules les bibliothèques utilisées par au moins deux outils figurent dans le nuage, ce qui élimine le bruit des cas isolés.

Une interprétation prudente : les chiffres élevés de l'API Clipboard et des Blob URLs traduisent très probablement le scénario typique « je colle des données, j'obtiens un résultat, je le copie ou je le télécharge ». C'est notre conclusion tirée des chiffres, l'auteur lui-même ne l'affirme pas.

À quoi cela sert en pratique

L'idée principale n'est pas le nuage de tags lui-même, mais la manière de l'obtenir. Si vous avez accumulé beaucoup de code généré — utilitaires internes, prototypes, scripts —, la navigation peut être construite à partir du code lui-même. Les descriptions rédigées à la main deviennent obsolètes et sont oubliées, alors que l'analyse de l'arbre syntaxique correspond toujours à ce qui se trouve réellement dans le fichier.

Voici ce que vous pouvez reproduire chez vous :

  • demandez à un agent d'écrire un script tree-sitter qui recherche les appels aux API voulues et les imports ;
  • enregistrez le résultat dans un JSON ordinaire et générez une page à partir de celui-ci ;
  • fixez un seuil, par exemple « au moins deux outils », pour que le nuage ne se transforme pas en décharge ;
  • relancez le balisage à chaque ajout d'un nouvel outil.

Un bénéfice secondaire : ce type de balisage répond aux questions d'audit. Par exemple, lesquels de vos outils chargent des scripts tiers depuis un CDN, lesquels contactent des hôtes externes et lesquels utilisent la caméra. Pour une petite équipe qui a rapidement accumulé des applications internes, c'est un moyen peu coûteux de visualiser la surface de risque.

Limites

Il s'agit d'une courte note sur un projet personnel, et non d'une étude. La collection appartient à un seul auteur et ne reflète pas nécessairement la structure d'un code d'IA typique. Une analyse statique ne détecte pas tout : les API appelées de façon dynamique ou les bibliothèques chargées par un chemin non standard peuvent passer entre les mailles. La note ne contient aucune donnée sur la précision du balisage ni sur une éventuelle vérification manuelle par l'auteur. La capture d'écran montre les nuages pour les bibliothèques et les API de navigateur, mais la troisième catégorie, les hôtes d'API web, n'y est pas visible.

Malgré tout, comme méthode de travail, c'est utile. Quand le code s'écrit plus vite qu'on ne peut s'en souvenir, un balisage fondé sur le contenu réel devient une partie du processus aussi indispensable que les tests. Et la tâche « analysez mes fichiers et dressez un catalogue » fait justement partie de celles qu'un agent résout en une soirée avec les restes de la limite hebdomadaire.

Dossier

Questions clés sur cet article

Que sait-on sur Ce qu'il a fait ?

Willison a décidé de ne pas classer les outils à la main. Il lui restait des crédits sur le modèle Fable 5.2 jusqu'à la réinitialisation hebdomadaire des limites, et il lui a confié la tâche dans son intégralité. Le modèle a utilisé tree-sitter, un parseur qui construit l'arbre syntaxique du code, et a analysé le JavaScript de chaque outil. Il en a extrait trois choses : les API de navigateur utilisées, les bibliothèques chargées depuis un CDN et les hôtes d'API web auxquels l'outil s'adresse.

Que sait-on sur Ce que montrent les chiffres ?

Les statistiques sont déjà intéressantes en elles-mêmes. Les ES modules sont utilisés par 92 outils, l'API Clipboard par 69, Canvas 2D par 44, les Blob URLs par 38, le glisser-déposer (Drag and drop) par 30. La caméra ou le micro sont sollicités par 9 outils, tandis que l'IA intégrée au navigateur (Built-in AI) n'apparaît pour l'instant qu'une seule fois. Parmi les bibliothèques, Marked (12), Pyodide (11) et DOMPurify (7) sont en tête. Viennent ensuite Leaflet, markdown-it et jSquash pour WebP, avec 4 chacun.

Que sait-on sur à quoi cela sert en pratique ?

L'idée principale n'est pas le nuage de tags lui-même, mais la manière de l'obtenir. Si vous avez accumulé beaucoup de code généré — utilitaires internes, prototypes, scripts —, la navigation peut être construite à partir du code lui-même. Les descriptions rédigées à la main deviennent obsolètes et sont oubliées, alors que l'analyse de l'arbre syntaxique correspond toujours à ce qui se trouve réellement dans le fichier.

ZK
Zhemal Khamidun — CPO d'Alpina Digital, product manager d'AlpinaGPT. Conçoit des produits IA depuis 2019. Hamidun News est un projet personnel devenu un agrégateur en production avec plus de 6 000 lecteurs.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
Qu'en pensez-vous ?
Chargement des commentaires…