modbus-webui
v0.4.0
Published
Single-file Modbus Web UI with profiles, name tables, and shortcuts
Maintainers
Readme
modbus-webui
Single-file Modbus workbench — profiles, name tables, shortcuts.
What it is
A browser-based UI for Modbus devices. Runs fully client-side via the Web Serial API and modbus-webserial. No backend required.
Quick start
Use hosted app (GitHub Pages)
modbuswebui.dev
Offline/local use (no npm or npx)
- Download the latest
modbus-webui.htmlfrom the GitHub releases. - Open
modbus-webui.htmldirectly in a supported Chromium-based desktop browser. - Optional: host the same file on your internal/static server.
Optional CLI convenience
# serve the packaged HTML immediately
npx modbus-webui start
# or write the HTML to your cwd, then serve it
npx modbus-webui init
npx modbus-webui serve
# options:
# --port=5173
# init [filename] [--force]
# serve [filename] [--port=...]Security & privacy
- No Google Analytics or tracking scripts are injected into the app.
- No backend dependency: Modbus communication is from your browser to your selected serial port.
- Offline-capable: the same single HTML file can be used in fully isolated local environments.
- One-click download: use the in-app footer link to download
modbus-webui.htmlfor local reuse. - Self-hosting friendly: you can host a vetted static artifact in your own network.
Features
- Read / write coils and registers
- Profiles: per-device settings + saved write shortcuts
- Name tables: global sets covering coils, discrete inputs, holding and input registers
- Shortcuts: one-click saved writes
- Local persistence: everything stored in your browser
Basic usage
- Click Connect and choose your serial port.
- Set port parameters (baud, parity, etc.) and click Open.
- Use Read / Write panels to operate coils and registers.
- Save frequent actions as Shortcuts and run them from the Shortcuts panel.
- Use Name Tables to label addresses; Profiles keep device-specific setup.
Concepts
Profiles
- Hold your selected name-table set, connection settings, and write shortcuts.
- Changes apply immediately to the active profile. Switching profiles does not disconnect the port.
Name tables
- Stored globally; any profile can select a set to use.
- Cover all four areas: coils, discrete inputs, holding registers, input registers.
- Names are linked to addresses (enter as decimal or hex). Edit via the Name Tables modal or copy/paste a full set as JSON.
Storage & versioning
- All data is kept as a single library and saved to
localStorage(auto or manual save). - The stored data is versioned with a strong migration layer, so old library storage files are intended to stay migration-proof across app updates.
Browser support
- Requires Chromium-based desktop browsers with Web Serial enabled.
- You grant port access per session; after reload you may need to select the port again.
- The app will show a notice if Web Serial isn’t available.
Development
# install
npm i
# dev
npm run dev
# build (emits dist/modbus-webui.html)
npm run build