About OpenWebHMI

An open-source, web-first SCADA/HMI platform for small and mid-size industrial systems. The product core is AGPL-3.0-only, the wire-protocol packages are MPL-2.0, and development happens in public on GitHub.

Mission

Industrial automation has been locked behind closed source and per-server licenses for decades. There is no equivalent open-source platform with reach comparable to Inductive Automation Ignition or Rockwell FactoryTalk Optix. Most open-source HMIs are toy-scale, abandoned, or single-language stacks that don't address the SCADA + HMI surface seriously.

OpenWebHMI's goal is a credible open-source platform a small or mid-size plant could actually run — without a JVM, without per-server licensing. Rust handles the plant-facing core, TypeScript handles the designer and browser runtime, and CPython workers provide an automation surface without placing Python in the control path.

How it's built

The project is built with explicit human direction and AI-assisted implementation. The workflow is public, reviewable, and durable:

  • Claude — design, architecture, and code review.
  • Codex (GPT) — development, debugging, refactoring.
  • The maintainer — steers product direction, accepts work, and runs hardware validation.

Every task brief, working note, code review, and merge verdict lives in docs/agents/tasks/ as a versioned markdown file. The protocol is documented in docs/agents/README.md. Anyone can read the project's full development history, review by review, by reading the repo.

Contributing

Contributions are welcome. The main contribution surfaces are drivers, components, and script libraries; packaging and distribution contracts for third-party extensions continue to mature before 1.0.

  • Drivers (Rust) implementing the Driver trait.
  • Components (TypeScript / React) declaring a propsSchema that drives the designer's property panel automatically.
  • Script libraries (Python) exercising the system.* standard library within the documented host.

Read docs/contributing.md for the PR workflow and quality bar.

License

OpenWebHMI's product core is AGPL-3.0-only; only the Rust and TypeScript wire-protocol packages are MPL-2.0. Commercial use remains permitted under those terms. There is no alternative commercial license, activation server, module fee, or per-server fee. Revisions through a8cbdbc keep their prior MIT grant; it has not been revoked.

License map and canonical terms ↗ · Transition FAQ ↗

User-created plant projects and process data are not claimed by the project. Software copied into a project remains governed by its license. OpenWebHMI™ is an unregistered mark; the project does not use ®.

Maintainer

Sergio Gallegos · repo owner · sergiogallegos.net

Sponsorship is open via GitHub Sponsors. Project sponsors get acknowledgement on this page once the program launches.

Status

Pre-alpha. The architecture, roadmap, and feature scope are committed, and the implementation is progressing quickly. Don't deploy this anywhere that matters yet. A 24-hour validation run against a physical Rockwell PLC is the binding real-hardware gate before 1.0; other protocol claims remain limited to their recorded test evidence.