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
Drivertrait. - Components (TypeScript / React)
declaring a
propsSchemathat 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.