À propos du projet

OpenUI est un framework open-source conçu pour créer des applications d'interface utilisateur générative, où les modèles d'IA produisent des interfaces structurées et interactives plutôt que du texte brut. Au cœur du projet se trouve OpenUI Lang, un langage compact et orienté streaming, spécialement conçu pour la sortie d'interfaces générées par modèle. Le framework est agnostique en matière de rendu ; il n'est lié à aucun framework frontend spécifique, bien qu'il offre un support officiel pour React ainsi que des liaisons maintenues par la communauté pour Vue 3 et Svelte 5. Le flux de travail central est simple : les développeurs définissent ou réutilisent une bibliothèque de composants (graphiques, formulaires, tableaux, mises en page, etc.). OpenUI génère ensuite une invite système à partir de cette bibliothèque, qui est envoyée à un LLM. Le modèle renvoie un flux de sortie OpenUI Lang vers le client, où un moteur de rendu analyse et affiche progressivement l'interface au fur et à mesure de l'arrivée des jetons. Cette conception centrée sur le streaming permet aux utilisateurs de voir l'interface se construire en temps réel, sans attendre une réponse complète. Un différenciateur clé est l'efficacité des jetons. Des benchmarks réalisés avec tiktoken (encodeur GPT-5) sur sept scénarios d'interface montrent qu'OpenUI Lang utilise jusqu'à 67 % moins de jetons que les formats équivalents basés sur JSON, avec une réduction moyenne d'environ 52,8 % par rapport à Vercel's JSON-Render et de 51,7 % par rapport à Thesys C1 JSON. Une moindre consommation de jetons se traduit par une latence réduite, des coûts API inférieurs et un temps de premier pixel plus rapide. Le projet est organisé en monorepo avec plusieurs packages. @openuidev/lang-core fournit l'analyse, la génération d'invites et l'évaluation runtime agnostiques du framework, sans dépendance à React, Vue ou Svelte. @openuidev/react-lang gère les runtimes de rendu React, les définitions de bibliothèques de composants et la génération d'invites. @openuidev/react-headless propose une gestion d'état de chat sans tête et des adaptateurs de streaming pour les équipes souhaitant intégrer leur propre interface. @openuidev/react-ui offre des mises en page de chat prédéfinies et deux bibliothèques de composants intégrées pour accélérer le déploiement. @openuidev/react-email ajoute des définitions de composants React Email pour les emails générés par modèle. @openuidev/langchain s'intègre aux agents LangChain et LangGraph, diffusant OpenUI via AG-UI. @openuidev/browser-bundle fournit un bundle précompilé pour CDN, iframe et intégrations sans build. @openuidev/cli aide à structurer de nouveaux projets et à générer des invites système ou des schémas JSON à partir de définitions de bibliothèques. Les contrats de composants sont définis avec des schémas Zod, offrant des propriétés typées et une structure dès le départ. Le framework prend en charge la récupération de données intégrée, la sortie multiplateforme (web, mobile, email) et un formatage de sortie cohérent. Un Playground est disponible sur openui.com/playground pour expérimenter en direct avec la bibliothèque de composants par défaut. OpenUI inclut également une compétence Agent qui s'intègre aux assistants de codage IA tels que Claude Code, Codex, Cursor et Copilot, couvrant la conception de bibliothèques de composants, la syntaxe OpenUI Lang, la génération d'invites système, le Renderer, les packages SDK et le débogage des sorties LLM malformées. Le projet est sous licence MIT et maintenu par Thesys, disposant d'une communauté Discord active et d'une liste croissante d'adeptes.