Skip to main content

OpenUI Specification

This repository contains a technology-independent specification for a Web UI framework. It also includes an Angular TypeScript generator that applies a UI description authored against the spec to an existing Angular workspace. The goal is to use the specification as the basis for a standard.

Developer docs

Contributor and developer entry points for this repository:

  • Contributing guide — repository map, local setup and validation.
  • Releasing — version rules, release validation and publishing.
  • Requirements — what the solution must provide.
  • Changelog — release notes, breaking changes, and upgrade guidance.
  • AGENTS.md — guidance for AI coding assistants.

OpenUI JSON packages

Both implementations bundle spec/openui.schema.json and spec/openui.json, and parse, model and validate documents with the same API and the same diagnostics. Validation runs the four stages of the conformance suite: grammar, document (globally unique ids and the spec version), catalog (every type is a known object type) and contract (every attribute value fits its declared value type).

Python

The openui-spec package requires Python 3.12 or newer and installs two command-line tools:

  • openui_spec validates and edits documents with validate, add, remove, and modify commands.
  • compare_openui_spec structurally compares two documents and emits a deterministic JSON changelog.
python -m pip install openui-spec
openui_spec validate --input document.json
openui_spec add --input document.json --parent root --object '{"id":"newTable","type":"Table"}'
compare_openui_spec reference.json updated.json --output changelog.json

The parse, model and validate API is the bin.openui_document module (parse, validate, validate_text, Document, Element, Attribute, Diagnostic).

TypeScript and Node.js

The @shlomoa/openui-spec package provides the typed OpenUiJson document API, the equivalent ng-openui-spec editing CLI, and the same parse, model and validate API as the Python package (parse, validate, validateText, Document, Element, Attribute, Diagnostic).

npm install @shlomoa/openui-spec
import { OpenUiJson } from "@shlomoa/openui-spec";

const document = OpenUiJson.load("input.json");
document.validate();
document.add("root", { id: "newTable", type: "Table" });
document.updateAttributes("newTable", { title: "Updated" });
document.save("output.json");
ng-openui-spec validate --input document.json

Essentials

  • An OpenUI document is a tree with a root id of root; every node has a unique camelCase id and an exact, case-sensitive catalog type.
  • Put non-hierarchical values in attrs and nested objects in children. An attribute key names its category, uses.<name>, produces.<name> or behaves.<name>, and its value is typed; see attributes and value types.
  • Editing commands revalidate the result and update --input in place. Pass --output to preserve the source document.
  • Values accepted by --object and --attrs can be inline JSON or paths to JSON files.

Documentation

Metadata

Release files for openui-spec 0.11.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for openui-spec 0.11.0
File Size Uploaded
openui_spec-0.11.0.tar.gz 1.0 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for openui-spec 0.11.0
File Interpreter ABI Platform
openui_spec-0.11.0-py3-none-any.whl Python 3 none any Details

Total release size: 2.2 MB

Release files / openui_spec-0.11.0.tar.gz

Download URL openui_spec-0.11.0.tar.gz
Size 1.0 MB
Tags Source
SHA-256 checksum
How to use checksums
7b11011b130867cd1d579f07fcc160cd8113e94576e3ccfa44debbaac3fce6c0
BLAKE2b-256 checksum
How to use checksums
6709959cd33edfccd6173bb18b44b3eb4d05392d10f64021c98047688a8fc9cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.

Transparency log

Release files / openui_spec-0.11.0-py3-none-any.whl

Download URL openui_spec-0.11.0-py3-none-any.whl
Size 1.2 MB
Tags Python 3
SHA-256 checksum
How to use checksums
5ef0a7aa9a06b5fbc2fb527df2c75f1a7a780384fc3aa1d36dbbc97feb22115f
BLAKE2b-256 checksum
How to use checksums
86d7aecafaf50678593f9347eab71fa115d85f30f868147e531fe82102a7e776
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.

Transparency log

Release history Release notifications | RSS feed

0.13.1

2 release files

0.13.0

2 release files

This release

0.11.0 This release

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page