Cloudflare ouvre le code de Kitesurf, un navigateur sans état pour agents d'IA

Published · AI Daily — AI-assisted deep research, methodology & disclosure

Cloudflare a ouvert le code de Kitesurf sur GitHub sous licence Apache 2.0. C'est un navigateur sans état pour agents d'IA, qui tourne entièrement sur Workers. Il analyse le HTML, applique le CSS, exécute le JavaScript et produit des captures sans conteneur, et prend en charge CDP pour Puppeteer.

Cloudflare ouvre le code de Kitesurf, un moteur de navigateur sans état pour les agents d'IA

Cloudflare a annoncé sur son blog que Kitesurf est désormais open source sur GitHub, sous licence Apache 2.0. Kitesurf est un navigateur sans état destiné aux agents d'IA, qui fonctionne entièrement sur Cloudflare Workers. L'article est signé par Celso Martinho, Rui Figueira, Bernardo Pereira et Luís Duarte. L'article officiel le présente comme un moteur de navigateur léger pour les agents, et non comme un cadre complet et éprouvé de bacs à sable isolés multi-locataires.

Une promesse tenue

Cloudflare a présenté Kitesurf en août, puis a publié une suite en septembre avec la prise en charge de WebMCP, de nouvelles API et une meilleure compatibilité. Les deux fois, l'équipe a promis d'ouvrir le code, afin que les développeurs puissent faire tourner leur propre moteur de navigateur sur leur propre compte Cloudflare. Cette publication tient la promesse. On peut lire le code, l'exécuter en local, le modifier et déployer sa propre instance sur Cloudflare Workers.

Ce qu'est Kitesurf

La description officielle est précise. Kitesurf fonctionne entièrement sur Cloudflare Workers. Il analyse le HTML, applique le CSS, exécute le JavaScript des pages et produit des captures d'écran, le tout sans conteneur de navigateur. Il prend en charge le protocole Chrome DevTools, ou CDP, de sorte que des clients comme Puppeteer peuvent s'y connecter.

L'objectif principal est de donner aux agents d'IA un navigateur léger et efficace. Il doit charger des sites, exécuter du JavaScript et interagir avec les pages en consommant moins de processeur et de mémoire qu'un navigateur complet comme Chromium, et il doit s'adapter à la demande sur le réseau mondial de Workers de Cloudflare.

Le contenu du dépôt

Kitesurf s'appuie sur la plateforme et les API pour développeurs de Cloudflare, ainsi que sur un ensemble de paquets Rust open source compilés en WebAssembly. Blitz fournit l'analyse du HTML, le DOM, la mise en page et le rendu. Stylo fournit l'analyse du CSS, la cascade et les styles calculés. Boa exécute le JavaScript dans WebAssembly, mais seulement en dernier recours, quand le code ne peut pas tourner dans les Dynamic Workers. Les bibliothèques Linebender gèrent la mise en forme du texte et les graphismes 2D, et Krilla produit les sorties PDF. Ces projets gardent leurs propres licences, et le fichier NOTICE du dépôt consigne les mentions des tiers.

La conception comprend trois parties. Le moteur, appelé Engine, gère les sessions de navigation et les connexions des clients, PageScript exécute la page et son JavaScript, et PageRenderer dessine le résultat. Les paquets, dont le moteur, le noyau Rust, les adaptateurs du DOM, le moteur de rendu et l'outil en ligne de commande de Kitesurf, se trouvent dans des dossiers séparés du répertoire packages du dépôt, ce qui permet de voir comment les pièces s'assemblent.

L'exécuter en local

Il faut d'abord vérifier les prérequis de compilation du dépôt, puis le cloner, installer les dépendances avec pnpm et lancer le moteur avec pnpm run dev. La première compilation traite le noyau Rust et ses dépendances, il faut donc patienter. Les suivantes réutilisent le cache. Wrangler démarre ensuite un serveur de développement local à l'adresse 127.0.0.1:8787. On peut ouvrir cette adresse dans Chrome DevTools pour essayer une page, ou s'en servir par programme. L'article montre un script Node.js qui connecte puppeteer-core au point d'accès WebSocket local devtools/browser, ouvre une page et enregistre une capture. Il suggère aussi de pointer son banc d'agents vers le port CDP local pour laisser l'agent prendre le contrôle total de Kitesurf.

Déployer sur son propre compte

Une fois les modifications et les tests terminés en local, on peut déployer le moteur sur son propre compte Cloudflare et l'utiliser à la place des API gérées de Browser Run que fournit Cloudflare. Un forfait Workers payant est nécessaire, car Kitesurf utilise les Dynamic Workers pour créer des Workers isolés pour les pages. Depuis la racine du dépôt, il suffit de lancer pnpm run deploy.

Contribuer et état actuel

Comme pour les autres projets open source de Cloudflare, les forks et les contributions sont bienvenus. L'équipe est claire : Kitesurf est en plein développement. L'effort porte actuellement sur la compatibilité, que l'on suit grâce aux résultats des Web Platform Tests, ainsi que sur la fiabilité et l'efficacité. Les contributeurs doivent lire d'abord le guide de contribution, ouvrir un ticket avec un cas minimal ou une piste de solution, puis obtenir l'aval d'un mainteneur avant de proposer une demande de fusion. Les correctifs ciblés, accompagnés de tests, de preuves claires et d'un périmètre défini, se relisent plus facilement que de grandes réécritures. Une contribution n'est pas forcément du code. Une petite page qui reproduit un défaut de rendu, un flux d'automatisation en échec ou une correction de documentation aident aussi.

Points à garder en tête

La licence Apache 2.0 est permissive, mais les composants dont Kitesurf dépend, comme Blitz, Stylo et Boa, gardent leurs propres licences. Les entreprises doivent consulter le fichier NOTICE avant l'adoption. Le déploiement exige un forfait Workers payant, et les développeurs individuels devraient donc vérifier le coût avant d'expérimenter. Comme le projet évolue vite, les interfaces et le comportement peuvent changer, et les flux critiques doivent être couverts par des tests de régression. Kitesurf préfère exécuter le JavaScript des pages dans les Dynamic Workers et ne bascule vers Boa dans WebAssembly qu'en cas de nécessité. Les chemins d'exécution peuvent donc différer d'une page à l'autre, ce qui compte lors du débogage.

La suite

L'équipe renvoie les lecteurs vers le blog et le journal des modifications de Cloudflare, ainsi que vers la page d'accueil officielle du projet, où sont publiés les résultats de compatibilité avec les standards issus des Web Platform Tests et les mesures de performance. Elle invite aussi à discuter sur Discord. Les auteurs concluent en disant qu'ils construisent un navigateur pour les agents et qu'ils aimeraient de l'aide pour l'améliorer.

Sources

FAQ

Qu'est-ce que Kitesurf ?

Kitesurf est un navigateur sans état pour agents d'IA, proposé par Cloudflare, qui fonctionne entièrement sur Cloudflare Workers. Il analyse le HTML, applique le CSS, exécute le JavaScript des pages et produit des captures sans conteneur de navigateur, avec prise en charge de CDP.

Comment l'exécuter ou le déployer ?

Il faut cloner le dépôt GitHub, installer les dépendances avec pnpm et lancer pnpm run dev pour démarrer un serveur local à l'adresse 127.0.0.1:8787, auquel Puppeteer peut se connecter. Pour déployer sur son compte, on lance pnpm run deploy ; un forfait Workers payant est requis pour les Dynamic Workers.

Kitesurf est-il prêt pour la production ?

Cloudflare indique que le projet est en plein développement et vise la compatibilité, la fiabilité et l'efficacité, avec un suivi dans les Web Platform Tests. Il faut tester le moteur sur ses propres sites cibles, prévoir des tests de régression pour les flux critiques et lire les mentions de licences tierces.