XUL-J

Describe it. Watch it stream.

A language model writes the interface as XUL-J operations, one JSON line at a time. Each line is checked against the protocol schema and rendered as it arrives. Afterwards the model acts as the app's backend: your clicks go back to it, and it answers with updates.

Bring your own OpenRouter key: sign in or paste one. It stays in your browser and is sent only to openrouter.ai.