GenUI is a native Swift workspace for generative user interfaces. Agents produce declarative A2UI messages, clients validate them against an allowed catalog, and SwiftUI renders the resulting surfaces without executing agent-generated code.
This repository is the architecture and workspace hub. Product code remains in independent repositories pinned here as Git submodules. The offline component Playground is a root-owned developer tool so it can exercise several packages together without creating another release dependency.
GenUI is experimental software. The renderer and local demos work, while the hosted gateway still lacks production authentication, rate limiting, and session-resume guarantees.
— native iOS clientapps/genui-ios
— native macOS workspace, migrated fromapps/genui-macos
genui-demo
— offline component gallery with macOS and iOS hostsapps/genui-playground
— A2UI state, binding, and SwiftUI rendererpackages/genui-kit
— shared design system and component catalogspackages/genui-components-swift
— cloud agent client SDKpackages/genui-agent-client-swift
— transitional local tool-call bridgepackages/genui-bridge-swift
— versioned client/backend contractprotocol/genui-agent-protocol
— provider-independent agent runtimebackend/genui-agent-runtime-ts
— Cloudflare deployment and durable sessionsbackend/genui-cloudflare-agent
genui-bridge-swift
remains in the workspace while its validation and A2UI tooling responsibilities move to the cloud runtime. It can be removed after the macOS application no longer depends on it.
Clone the complete workspace in one command:
git clone --recurse-submodules https://github.com/kiliczsh/genui.git
cd genui
For an existing clone:
git submodule sync --recursive
git submodule update --init --recursive
The required GenUI dependencies are public. A complete recursive clone can be performed over anonymous HTTPS; private credentials are only needed for maintainer-only operations.
- Xcode matching the checked-in iOS 26 and macOS 26 projects
- Swift 6 capable toolchain (some packages retain Swift 5.9 manifests)
- Node.js 20 or newer for the TypeScript runtime and Cloudflare gateway
- npm and Wrangler for local gateway development
Initialize the workspace and build the API-key-free Playground:
make bootstrap
make playground-build
Open apps/genui-playground/GenUIPlaygroundMobileApp.xcodeproj
, select the
shared MobileApp
scheme, and run it on an iOS simulator. The gallery is fixture-driven and does not connect to an agent or network service.
Useful workspace commands:
make help
make status
make backend-check
make apps-build
make check
Start the local Cloudflare gateway with:
make dev
Provider configuration remains in the gateway's ignored .dev.vars
file; use
the checked-in .dev.vars.example
as the template. Ollama and llama.cpp can be used without a hosted OpenAI API key when their models support tool calling.
Each submodule has its own history and remote. Commit and push changes inside the child repository first, then commit the updated submodule pointer in this repository.
cd packages/genui-kit
git switch main
git pull
cd ../..
git add packages/genui-kit
git commit -m "Update genui-kit"
The root repository owns the workspace Makefile, concise cross-repository guidance, and the Playground. It does not copy source code from the independent application, package, protocol, or backend repositories.
The repository layout and initial submodule links are established. Core package builds, native application builds, deterministic runtime smoke checks, and the offline Playground are working. Open-source licensing, anonymous dependency resolution, release tags, and production gateway safeguards are still in progress.