OPENUI : vos LLM génèrent de vraies interfaces, token par token
https://github.com/thesysdev/openui
📌 OPENUI est un framework open source de Generative UI édité par Thesys : au lieu de laisser un modèle répondre en texte ou en JSON verbeux, il lui fait streamer une interface structurée qui s’affiche en direct dans votre application. Le projet dépasse les 9 800 étoiles sur GitHub et arrive sous licence MIT.
Le problème est connu de quiconque a branché un LLM sur une interface. Le modèle renvoie du JSON, le JSON est lourd, et la réponse n’est affichable qu’une fois complète — pendant ce temps, l’utilisateur regarde un spinner. OpenUI attaque les trois points à la fois avec OpenUI Lang, un petit langage pensé pour le streaming : compact, parseable au fil des tokens, et limité aux composants que vous avez enregistrés.
Le principe tient en cinq étapes. Vous définissez une bibliothèque de composants — graphiques, formulaires, tableaux, mises en page —, le framework en déduit un prompt système, le modèle répond en OpenUI Lang, et le renderer construit l’interface progressivement pendant que les tokens arrivent. Les props sont typées avec des schémas Zod, et rien ne s’affiche en dehors des composants déclarés : la sortie du modèle reste sous contrôle.

- 🗣️ OpenUI Lang, un langage compact conçu pour streamer l’interface token par token
- 📉 Jusqu’à 67 % de tokens en moins que du JSON sur leurs benchmarks, 53 % en moyenne face au json-render de Vercel
- 🧩 Bibliothèques de composants intégrées : graphiques, formulaires, tableaux, mises en page
- 🔒 Rendu contrôlé : seuls les composants enregistrés peuvent être générés, props typées via Zod
- 📦 React supporté officiellement, plus Vue 3, Svelte 5 et Angular, et une couche agnostique pour le backend
- ✉️ Même fondation pour les assistants, les copilotes et les emails générés
Côté chiffres, les benchmarks du dépôt sont reproductibles : mesurés avec tiktoken et l’encodeur de GPT-5, OpenUI Lang consomme 4 800 tokens contre 10 180 pour json-render de Vercel et 9 948 pour le format JSON de Thesys C1, sur sept scénarios d’interface. Le tableau comparatif du projet avance aussi 4,9 secondes d’affichage à 60 tokens/s, contre 14,2 pour json-render ou A2UI de Google. Les comparaisons viennent de l’éditeur lui-même, mais la méthode et les scénarios sont dans le repo — de quoi rejouer la mesure avant de croire les courbes.
L’écosystème couvre large : @openuidev/react-lang pour le cœur, react-ui pour un chat complet prêt à l’emploi, react-headless pour brancher votre propre UI, une intégration LangChain/LangGraph pour les agents, et un browser-bundle pour embarquer le renderer sans étape de build. Pour essayer, une commande suffit : npx @openuidev/cli@latest create --name genui-chat-app, une clé OPENAI_API_KEY dans le .env, et le playground en ligne génère des interfaces en direct si vous voulez voir avant d’installer.
Nuance utile : React est le citoyen de première classe, les bindings Vue, Svelte et Angular restent maintenus par la communauté. Et OpenUI ne remplace ni votre modèle ni votre backend — il s’insère entre les deux, avec un peu de plomberie côté serveur à écrire.
Je trouve l’angle juste : la plupart des agents n’ont pas besoin de répondre en prose, ils ont besoin d’afficher des choses utilisables. Un langage intermédiaire compact, vérifiable et streamable est une réponse plus élégante que du JSON bavard. Tout est open source, sous MIT, avec même un skill prêt à installer pour Claude Code ou Cursor — de quoi essayer sans engager grand-chose.
Sources






