Explore on GitHub
Code, issues, and releases for every repository in the ecosystem.
An agent-driven UI development platform.
JsonUI is built for a world where AI agents write UI code. A spec-first workflow paired with specialized agents for UI generation and verification, and a CLI, generates native UI, UI tests, and documentation for iOS (SwiftUI / UIKit), Android (Jetpack Compose / XML), and Web (React + Tailwind) from a single spec.
01 / What is JsonUI
Instead of providing a shared abstraction layer, JsonUI takes the spec (JSON) as the source of truth and generates native code for each platform. There's no runtime bridge or custom runtime — the native performance and expressiveness of each platform stay intact.
The generation target isn't just UI code. From the same JSON definition, JsonUI produces UI tests, documentation, typed previews, and snippets in one pass — making it structurally hard for spec and implementation to drift apart.
02 / Philosophy
Letting AI generate code comes with a fundamental problem: output drifts even when the spec is identical. No amount of prompt tuning fully removes the probabilistic variance in LLM outputs.
JsonUI's approach is not to ask the AI to follow rules but to make them unbreakable. A JSON schema defines the UI, and a CLI deterministically generates code, tests, and docs. The AI's job is limited to "how to write the schema" — it never generates the code itself.
On top of that, specialized AI agents divide the labor of schema design, review, and refactoring. Each agent has its operations restricted at the tool level and literally cannot touch areas outside its responsibility. The result: repeatable, consistent output from the same requirements.
Don't ask the AI to follow rules — build a structure where they can't be broken.
03 / Ecosystem
JsonUI spans multiple repositories, all published on TaiKim's GitHub (developed and maintained personally by TANOSYS's lead engineer).
| Category | Repository | Purpose |
|---|---|---|
| Core library | SwiftJsonUI | iOS (SwiftUI + UIKit) |
| Core library | KotlinJsonUI | Android (Jetpack Compose + XML) |
| Core library | ReactJsonUI | Web (React + Tailwind CSS) |
| CLI | jsonui-cli | Unified CLI bundling sjui / kjui / rjui / jsonui-test / jsonui-doc |
| AI agents | JsonUI-Agents-for-claude | Agents for Claude Code |
| AI agents | JsonUI-Agents-for-Codex | Agents for the OpenAI Codex CLI |
| Test drivers | jsonui-test-runner-ios | iOS (XCUITest) |
| Test drivers | jsonui-test-runner-android | Android (UIAutomator) |
| Test drivers | jsonui-test-runner-web | Web (Playwright) |
| Dev tooling | swiftjsonui-helper | VS Code extension (completion / hover) |
04 / Demo
Here's a minimal JSON definition alongside the code generated for each platform. For the full templates and mappings, see the README in each repository.
{
"type": "view",
"children": [
{ "type": "text", "text": "Hello" },
{ "type": "button", "label": "Tap" }
]
} VStack {
Text("Hello")
Button("Tap") { /* action */ }
} Column {
Text("Hello")
Button(onClick = { /* action */ }) {
Text("Tap")
}
} <div className="flex flex-col"> <span>Hello</span> <button type="button">Tap</button> </div>
These snippets are illustrative — they are not guaranteed to exactly match the current CLI output. For the live output of each platform, refer to the README and samples in the matching repository.
05 / Get involved
Code, issues, and releases for every repository in the ecosystem.
The docs site is under construction. We'll link it here as soon as it's live.
Docs (in preparation)
Feature requests and bug reports are welcome on GitHub Issues. For commercial use, reach out to TANOSYS.
We welcome inquiries about adopting, integrating, or customizing JsonUI.