An open, self-hosted alternative to traditional HMI/SCADA panels. NEXT HMI runs in any browser, connects to your PLCs over OPC-UA, and ships with an in-browser editor so integrators build operator dashboards without leaving the runtime.
Author pages, wire datasources, and define alarms in the browser — or hand the whole job to a Claude agent. Every artifact is a plain file on disk, so the runtime, the editor, and the agent all read and write the same project.
A three-pane WYSIWYG editor with a live iframe preview. Edit pages, datasources, alarms, translations, and users — all under /config/*.
Pages, alarms, theme and translations are plain JSON/CSV on disk — no database, no binary. Diff it, back it up, copy the folder to move an install.
Drop a .tsx into custom-widgets/ and it's hot-compiled to a schema-driven widget — no Node toolchain, no rebuild of the core.
21+ composable wrappers — $var, $if, $switch, $loc and more — let any property react to live data without scripting.
An embedded MCP server exposes ~50 read/write tools, so an agent can build pages, datasources and alarms — with dry-run diffs guarding every destructive change.
An asyncua client pool subscribes, writes, and browses — with a viewport-aware fast/slow window so visible tags update first.
A single project branches layout by viewport class — phone, tablet, laptop — through $viewport, with no media-query CSS to maintain.
Drop an ESM bundle into external-libraries/ and import it from any widget through a generated import map — no core rebuild.
One build ships everything; a license token unlocks the extras — a historian that records and charts your tags, plus condition-based alarms with acknowledgement.
Traditional HMIs split static values, tag bindings, and expressions into separate property modes. NEXT treats binding as a first-class language: any property can be a literal or any of 21+ wrappers, and they nest recursively across i18n, conditional layout, viewport branching, and inter-widget data.
// colour the gauge from the live motor temperature "color": { "$if": { "cond": { "$compare": ["$var":"PLC1:motor1.temp", ">", 120] }, "then": "#e5484d", "else": "#2563eb" } }, "label": { "$loc": "MotorSpeed" }, "value": { "$var": "PLC:motor1.speed" }
Browsers connect over a single WebSocket. The FastAPI server holds the OPC-UA client pool and pushes live tag updates to every screen.
Any device with a browser renders pages and custom widgets — no install on the floor.
Serves pages, hosts the editor, and streams tag updates. Project data is plain JSON/CSV on disk.
Subscribe, write, and browse over OPC-UA through the asyncua client pool.
Run from source while you develop, from Docker on a server, or from a portable zip on a panel PC. Same runtime, same project folder.
Clone the repo and run the dev server with hot reload for both the runtime and your custom widgets.
One command brings up the server and serves the example project. Mount your own project folder to deploy.
Download a self-contained Mac or Windows build. Unzip, double-click, and the runtime is live — nothing to install.
What NEXT HMI is, how it connects to your machines, and how it differs from traditional HMI/SCADA panels.
NEXT HMI is a free, open-source, self-hosted HMI (Human-Machine Interface) and SCADA platform that runs entirely in the browser. It connects to PLCs over OPC-UA, streams live tag data to operator screens over a single WebSocket, and includes an in-browser editor for building dashboards without proprietary tooling.
Yes. NEXT HMI is open source under the Apache License 2.0. You can self-host it with no per-seat licences, no vendor lock-in, and full access to the source on GitHub.
NEXT HMI uses an asyncua OPC-UA client pool to subscribe to, write, and browse tags on your PLCs and field devices. A FastAPI server holds the connection pool and pushes live updates to every connected browser, with a viewport-aware fast/slow window so visible tags update first.
Traditional HMI panels require proprietary editors, per-device licences, and Windows-only runtimes. NEXT HMI runs in any browser, stores every project as plain JSON/CSV on disk (so it is Git-friendly and diffable), and uses a single composable expression language for every property instead of split tag/expression modes.
Yes. NEXT HMI ships with a built-in Model Context Protocol (MCP) server that exposes around 50 read/write tools. An AI agent can author pages, datasources, and alarms directly, with dry-run diffs guarding every destructive change.
You can run it three ways from the same project folder: from source with hot reload during development, from Docker with docker compose up on a server, or from a self-contained portable zip on a panel PC — unzip and double-click, nothing to install.
Clone the repo, open the editor, drop a widget on a page, and bind it to a live OPC-UA tag. No proprietary panels, no licences to manage.