JsonUI

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.

View on GitHub Docs (in preparation)

01 / What is JsonUI

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

Design philosophy: rules that can't be broken

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

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

Demo: a minimal UI definition

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.

Source: view.jsonui
json
{
  "type": "view",
  "children": [
    { "type": "text", "text": "Hello" },
    { "type": "button", "label": "Tap" }
  ]
}
iOS (SwiftUI)
swift
VStack {
  Text("Hello")
  Button("Tap") { /* action */ }
}
Android (Jetpack Compose)
kotlin
Column {
  Text("Hello")
  Button(onClick = { /* action */ }) {
    Text("Tap")
  }
}
Web (React)
tsx
<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

Learn more & get involved

  • Documentation

    The docs site is under construction. We'll link it here as soon as it's live.

    Docs (in preparation)

  • Feedback

    Feature requests and bug reports are welcome on GitHub Issues. For commercial use, reach out to TANOSYS.

    Contact us

Talking to us about commercial use?

We welcome inquiries about adopting, integrating, or customizing JsonUI.