C
ChaoBro

OpenUI: Открытый стандарт для генеративного UI

OpenUI: Открытый стандарт для генеративного UI

Написание фронтенд-кода с помощью ИИ уже два года остаётся неудобной темой.

Вы даёте GPT или Claude описание, он выдаёт HTML + Tailwind, выглядит прилично, но компоненты не синхронизируют состояние, нет доступности, а адаптивные брейкпоинты не контролируются тонко. Использовать можно, но в продакшен не положишь.

thesysdev/openui решает не вопрос «может ли ИИ писать UI», а вопрос «в каком формате ИИ должен писать UI».

Проблема не в способности генерировать, а в формате вывода

Сейчас все инструменты AI-кодирования генерируют UI одинаково: перевод текст-в-текст. Промпт → HTML/JSX → рендер. У этого конвейера три структурных дефекта.

Первый — неверифицируемость. ИИ выдаёт строку кода — вы можете только запустить и посмотреть. Нет промежуточного представления для статического анализа, диффа или отката.

Второй — несовместимость. Кнопка, сгенерированная инструментом A, и форма от инструмента B будут конфликтовать по стилям. Потому что нет общего слоя описания UI.

Третий — неитеративность. Вы говорите ИИ «поменяй синий на красный», и он перегенерирует весь компонент. Инкрементальные обновления? Не существуют.

Подход OpenUI — извлечь описание UI из строки кода и определить структурированный, машиночитаемый промежуточный слой. Думайте о JSON Schema для API-документации — OpenUI хочет стать протокольным слоем для генеративного UI.

Как это выглядит

Основа репозитория — декларативный формат описания UI с древовидной структурой, похожей на AST, для компонентов, свойств, событий и стилевых ограничений. Модели ИИ не должны напрямую выдавать JSX или HTML — они выводят описания в формате OpenUI, а движок рендеринга преобразует их в конкретные реализации для целевой платформы.

Проект ещё на ранней стадии (4 523 звезды, 309 форков), и демо в README довольно простые. Но проблема решается правильная — инструменты AI-кодирования перешли от «может ли он писать код» к «может ли он писать поддерживаемый код», и UI-слой — это последняя нестандартизированная область в этой цепочке.

Кому это важно

Если вы используете Cursor, Claude Code или Copilot для фронтенд-разработки, это направление стоит отслеживать. Не потому что вы можете использовать это сегодня, а потому что когда крупный инструмент кодирования примет подобный стандарт, ваш рабочий процесс с промптами изменится с «описание + метод проб и ошибок» на «описание → структурированный вывод → автоматический рендеринг».

Роль фронтенд-инженеров тоже изменится: не ручное написание компонентов, а определение правил ограничений на уровне описания OpenUI, позволяя ИИ генерировать в этих границах. Это похоже на миграцию от ручного CSS к Tailwind и затем к CSS-in-JS — только на этот раз движущая сила — ИИ.

Риски

Проект на стадии v0, протокол не стабилен, сообщество небольшое. Самый очевидный риск: если OpenAI или Anthropic создадут свой проприетарный формат генеративного UI, открытый стандарт может быть обойден. Исторически в битвах «стандарт против платформы» платформы побеждают чаще.

Но на стадии v0 направление как минимум правильное.

Как начать

git clone https://github.com/thesysdev/openui.git
cd openui
# Проверьте примеры и документацию

В репозитории есть базовый CLI-инструмент и примеры рендеринга. Не ожидайте готовности к продакшену, но если вы строите цепочки инструментов AI-кодирования, изучение дизайна протокола будет полезным.


Источники: