Outil CLI
lightpanda-io/browser avatar
lightpanda-io/browser

Lightpanda : un navigateur headless en Zig pour l'IA et l'automatisation

Lightpanda : le navigateur sans tête conçu pour l'IA et l'automatisation. Démarrer un serveur CDP Une fois le serveur CDP démarré, vous pouvez exécuter un script Puppeteer en configurant le navigateurWSEndpoint.

35 340 étoiles1 677 forksZigAGPL-3.0

En bref

De quoi s’agit-il ?
Lightpanda est un navigateur headless écrit de zéro en Zig. Le README couvre les chiffres de benchmark, les chemins d'installation, le mode agent, le serveur MCP et le statut bêta.
À qui s’adresse-t-il ?
Lightpanda atteint la bêta avec un serveur CDP, un mode agent qui exporte du PandaScript, un serveur MCP avec isolation des sessions et un benchmark publié face à Headless Chrome. CORS est la seule fonctionnalité que la liste marque comme non implémentée.
Puis-je l’utiliser commercialement ?
Oui, sous conditions strictes. AGPL-3.0 est une licence à copyleft réseau : si des personnes utilisent une version modifiée via un réseau, par exemple comme service hébergé, vous devez leur proposer son code source sous la même licence.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 1 jour.
En quel langage est-il écrit ?
Principalement Zig, d’après les statistiques de langage de GitHub.

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

ANALYSE OPEN SOURCE APPROFONDIE

Un navigateur en Zig, pas un fork

Le README présente d'emblée Lightpanda comme un nouveau navigateur écrit en Zig, explicitement pas un fork de Chromium ni un patch de WebKit. La section Pourquoi Lightpanda ? donne trois raisons : l'exécution de JavaScript est devenue indispensable pour le web moderne, faire tourner des navigateurs de bureau complets à grande échelle coûte cher, et l'objectif de performance imposait de repartir de zéro. Les dépendances documentées sont v8 pour JavaScript, libcurl pour le chargeur HTTP et html5ever pour l'analyse HTML, et le projet n'a pas de moteur de rendu graphique. Les métadonnées du dépôt indiquent Zig comme langage et AGPL-3.0 comme licence.

Le benchmark publié dans le README

Le README rapporte un benchmark de crawl mené sur une instance AWS EC2 m5.large, avec 933 pages web réelles demandées sur le réseau. Pour 100 pages, la mémoire de pointe est de 123MB pour Lightpanda contre 2GB pour Headless Chrome, et le temps d'exécution de 5 secondes contre 46, résumé dans le tableau comme environ 16 fois moins de mémoire et 9 fois plus rapide. Les détails se trouvent dans BENCHMARKS.md du dépôt demo lié, et le README ne décrit aucune reproduction indépendante. Ce sont les chiffres publiés par le projet lui-même, pas des résultats tiers.

Chemins d'installation : gestionnaires de paquets, nightly, Docker, WSL2

Le démarrage rapide liste Homebrew et le Arch User Repository comme sources de paquets nightly, plus des binaires nightly téléchargeables pour Linux et MacOS en x86_64 et aarch64. Il n'y a pas de binaire Windows natif ; le README oriente les utilisateurs Windows vers WSL2. Les images Docker couvrent Linux amd64 et arm64, et l'exemple démarre un conteneur qui expose le port 9222. Un avertissement est explicite : les binaires Linux de release sont liés à glibc, donc ils échouent sur les distributions basées sur musl comme Alpine, et le README suggère une image de base glibc ou une compilation depuis les sources.

Récupérer une URL ou servir du CDP

Deux commandes couvrent les flux de base. lightpanda fetch convertit une URL en HTML ou en markdown, avec des options pour robots.txt et pour l'attente, à savoir --wait-until, --wait-ms, --wait-selector et --wait-script. lightpanda serve démarre un serveur CDP sur un hôte et un port choisis, et le README montre un script Puppeteer qui se connecte via browserWSEndpoint à ws://127.0.0.1:9222. Les deux commandes d'exemple passent --obey-robots, donc la prise en charge de robots.txt est une option documentée, pas un comportement par défaut.

Mode agent et PandaScript

La commande lightpanda agent accepte une tâche en langage naturel ou via des commandes slash et pilote le navigateur depuis le même processus, si bien que chaque appel d'outil est une opération directe. Une session produit du PandaScript, du JavaScript vanilla avec un petit ensemble de primitives natives du navigateur, qui peut être sauvegardé avec /save puis rejoué avec lightpanda agent <script>.js ; le README qualifie ces scripts de déterministes et sans token, utilisables en production sans modèle à l'exécution. Les fournisseurs nommés sont Anthropic, OpenAI, Gemini, Google Vertex AI, Hugging Face et les modèles locaux via Ollama, et --no-llm lance une REPL de base sans LLM.

Serveur MCP avec sessions HTTP

Le serveur MCP communique via JSON-RPC 2.0 sur stdio, et il peut aussi écouter en HTTP lorsqu'on lui donne un port, les clients envoyant des POST à http://host:9223/mcp. Le README explique le modèle de sessions : un client qui initialise sans en-tête Mcp-Session-Id reçoit une session fraîche, deux clients envoyant le même id partagent un contexte de navigation, et les outils session_new, session_list et session_close gèrent les sessions explicitement, DELETE /mcp fermant une session. Une skill associée se trouve dans le dépôt séparé lightpanda-io/agent-skill.

Statut bêta, compilation et tests

Lightpanda est marqué comme bêta et en cours de développement. La liste des fonctionnalités marque comme implémentés le chargeur HTTP, l'analyseur HTML, le DOM, JavaScript via v8, les API DOM, Ajax, les cookies, le support proxy, l'interception réseau et le traitement de robots.txt ; CORS est le seul élément non coché, avec l'issue #2015 liée. La compilation exige Zig 0.15.2 ainsi que v8, libcurl et html5ever, et un build de snapshot v8 optionnel est documenté. Les tests comprennent des tests unitaires via make test, des tests de bout en bout contre le dépôt demo, et les Web Platform Tests via un runner Go dans le dépôt demo. La télémétrie est activée par défaut et désactivée avec LIGHTPANDA_DISABLE_TELEMETRY=true ; les core dumps peuvent être supprimés via une variable d'environnement ; et le projet est sous licence AGPL-3.0, que l'extrait décrit comme une licence copyleft conçue pour les logiciels serveur réseau.

Conclusion éditoriale

Lightpanda atteint la bêta avec un serveur CDP, un mode agent qui exporte du PandaScript, un serveur MCP avec isolation des sessions et un benchmark publié face à Headless Chrome. CORS est la seule fonctionnalité que la liste marque comme non implémentée.

Sources officielles

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Notes de la communauté

Notes de la communauté