OPGuia
Dead simple OPC UA browser built with Python.
Quick Start
The fastest way to run OPGuia is with uv:
uvx opguia
Don't have uv? Install it with
curl -LsSf https://astral.sh/uv/install.sh | shor see the uv installation docs.
Or install with pip:
pip install opguia
opguia
A native desktop window opens automatically. Enter an OPC UA endpoint or let it auto-discover servers on your network.
Features
Browse & Inspect
- Auto-scan for OPC UA servers on standard ports (4840-4843, 48400-48401, 48010, 53530)
- Tree-table view with inline values, types, and status indicators
- Compact 26px rows — scan hundreds of variables at a glance
- Filter nodes by name
- Full node detail dialog with all OPC UA attributes
- Custom struct types resolved and decoded with per-field display
- Copy any attribute value to clipboard
Write
- Click-to-write for any writable variable with type validation
- Per-index inputs for array types (toggles for booleans, text inputs for numeric/string)
- Integer range checking, float validation, boolean parsing
Monitor
- Watch panel for live variable tracking
- Live time-series graphs per watched variable (ECharts)
- Configurable poll rate (0.1s to 2.0s)
Connect
- Connection profiles with per-profile settings (watched vars, tree root, expanded state)
- SSH port-forwarding tunnel support with password or key-based auth
- Live endpoint health pings on saved profiles
- Headless CLI mode for scripting (
opguia --headless)
Look & Feel
- Material Dark theme
- Native desktop window via pywebview
- Custom app icon on macOS and Windows
CLI Mode
Browse, read, and write without the GUI:
opguia --headless browse opc.tcp://localhost:4840
opguia --headless read opc.tcp://localhost:4840 "ns=2;s=MyVar"
opguia --headless write opc.tcp://localhost:4840 "ns=2;s=MyVar" 42
opguia --headless tree opc.tcp://localhost:4840
opguia --headless info opc.tcp://localhost:4840 "ns=2;s=MyVar"
Development
git clone https://github.com/KyleAlanJeffrey/opguia
cd opguia
uv sync # or: python -m venv .venv && pip install -e .
python main.py
Releasing
Releases trigger via GitHub Actions when a commit with title vX.Y.Z and body containing #release is pushed to main.
Metadata
Release files for opguia 1.9.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| opguia-1.9.1.tar.gz | 678.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| opguia-1.9.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 734.3 kB
Release files / opguia-1.9.1.tar.gz
| Download URL | opguia-1.9.1.tar.gz |
|---|---|
| Size | 678.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cf7ccb4c8db5df910ab901e7e6cba8d138cd6cd7ae30d672c0d4868bcdb3c33a
|
|
BLAKE2b-256 checksum How to use checksums |
2c7d13fc6ade8a7f4b9d5e2311a0e3cc4cf35cbe8d9b47384d20436f87bb886e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Mar 21, 2026.
Transparency logRelease files / opguia-1.9.1-py3-none-any.whl
| Download URL | opguia-1.9.1-py3-none-any.whl |
|---|---|
| Size | 55.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
50e97b6bb1bac023df3614503c425bd6d42545ea8d014222fc556c1975182d73
|
|
BLAKE2b-256 checksum How to use checksums |
2789d556c7007ad62c2267beb61f1b0a3fa3d69baaba8ca72574686e7055af3d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Mar 21, 2026.
Transparency log