OPENUI : générer des interfaces interactives avec l’IA
⏱️ Temps de lecture estimé : 4 minutes
https://github.com/thesysdev/openui
📌 OpenUI est un framework open source permettant aux intelligences artificielles de générer des interfaces graphiques interactives en temps réel, plutôt que de simples réponses textuelles. Son principe repose sur OpenUI Lang, un langage compact conçu pour produire des composants visuels progressivement, à mesure que le modèle génère sa réponse. L’intérêt est de transformer un chatbot en véritable interface applicative dynamique. Parmi ses fonctionnalités :
- Multi-framework : compatible React, Vue, Svelte et Angular.
- Génération en streaming : les interfaces apparaissent progressivement, sans attendre la réponse complète.
- Composants personnalisables : tableaux, graphiques, formulaires et éléments issus de votre propre Design System.
- Économie de tokens : jusqu’à 67 % de tokens en moins que certains formats JSON, selon les benchmarks du projet.
- Intégration aux agents IA : compatible LangChain, LangGraph et plusieurs assistants de développement.
Pour démarrer rapidement :
npx @openuidev/cli@latest create --name genui-chat-app
Un skill est également disponible pour les assistants de programmation :
npx skills add thesysdev/skills --skill openui
Les agents conversationnels restent souvent coincés dans le texte : des tableaux en Markdown, des formulaires décrits en JSON que l’application doit interpréter après coup. OpenUI prend le problème par l’autre bout. On définit une bibliothèque de composants (cartes, graphiques, formulaires), on en déduit automatiquement un prompt système, et le modèle n’a plus le droit d’improviser : il compose uniquement avec ce qui est enregistré, contrats de props typés avec Zod.
- ⚡ Rendu en streaming : l’interface apparaît token par token, pas une fois la réponse terminée
- 🪶 Jusqu’à 67 % de tokens en moins que du JSON équivalent selon les mesures du projet
- 🧩 Le modèle ne génère que les composants que vous avez enregistrés
- 🔌 Runtimes React, Vue 3, Svelte 5 et Angular, plus e-mail et React Native
- 🔧 Autofix répare en un appel d’API un flux OpenUI Lang invalide
Les chiffres donnent une idée du gain : sur sept scénarios d’interface, OpenUI Lang consomme 52,8 % de tokens en moins que json-render de Vercel et 51,7 % de moins que le format C1 de Thesys. Trois fois moins de tokens, donc environ trois fois moins d’attente à débit de génération égal. Un détail appelle quand même de la prudence : ces benchmarks sont publiés par Thesys, la société derrière le projet. La méthodologie est documentée et reproductible dans le dépôt, mais le juge est aussi partie.
La v1.0 ajoute de quoi rendre ces interfaces vivantes : variables réactives pour mettre l’écran à jour sans rappeler le modèle, requêtes et mutations pour brancher vos outils, et édition incrémentale où le modèle n’écrit que ce qui change. L’écosystème couvre l’essentiel : LangChain, LangGraph, Vercel AI SDK, AG-UI, un chat headless, et une passerelle compatible OpenAI où l’on apporte sa propre clé Anthropic, OpenAI ou Google. Vue, Svelte et Angular ont leurs runtimes officiels — rare sur ce terrain, où la plupart des projets ne visent que React.
Le Playground du site génère une interface en direct, sans installer quoi que ce soit. Côté code, une commande suffit : npx @openuidev/cli@latest create. Licence MIT, plus de 11 000 étoiles sur GitHub.
Mon avis : je trouve cette approche particulièrement intéressante pour l’avenir des interfaces conversationnelles. Plutôt que de concevoir des écrans figés, pourquoi ne pas laisser l’IA composer une interface adaptée à chaque besoin ? Face à des solutions comme json-render de Vercel, OpenUI mise notamment sur la légèreté de son langage et sa compatibilité avec plusieurs frameworks. Reste à vérifier la robustesse du rendu sur des applications complexes. Mais pour expérimenter les interfaces génératives et les futurs produits agentiques, c’est clairement un projet à explorer.
Je trouve l’approche saine : borner le modèle par une bibliothèque de composants est plus honnête, et plus rapide, que de lui laisser décrire du JSON libre qu’il faudra valider ensuite. La vraie question sera la tenue des interfaces générées sur des cas réels. Le Playground, lui, donne envie d’essayer.
Sources






