OPC UA Commander ๐
July 8, 2026 ยท View on GitHub
A premium, interactive, terminal-based visual OPC UA client explorer. Built on top of the powerful node-opcua stack and curses-based blessed UI.
No bulky heavy GUI dependencies required. It is fast, lightweight, and perfect for remote diagnostics, embedded gateways, or developer console workflows.

๐ Key Features
๐ฒ Interactive Address Space Explorer Tree
- Visual Node Tree: Fluid, keyboard-driven navigation through the entire OPC UA hierarchical Address Space (Objects, Variables, Types, and Views).
- Dynamic Node Expand/Collapse: Smoothly expand and contract branches dynamically to discover child nodes and complex structures on-the-fly.
๐ Full Attribute & Property Inspector
- Live Details: Displays all standard attributes of the currently selected node (including Node ID, BrowseName, DisplayName, Description, DataType, Value, NodeClass, AccessLevel, UserAccessLevel, Historizing, and more).
- Attribute Writing: Edit and write new values to Variable attributes directly from the interactive UI.
๐ Dynamic Reference Explorer
- Bi-directional Browsing: Explore all references linked to the selected node. Toggle views to show only Forward references, Backward references, or All references.
๐ฏ Powerful GoTo Node ID Back-Search & Locate (New!)
No more manually clicking and expanding deeply nested folders! Simply press / or f to focus the search bar:
- Standard Resolution: Type a standard Node ID like
ns=2;s=MyVariableand press Enter. The client automatically performs a server-wide hierarchical parent lookup, expands the tree levels, scrolls, and selects the target node. - Alternative Formats: Supports
nsi=2;s=MyVariable(shorthand for namespace index). - Dynamic Namespace URI Resolution (
nsu=): Search using Namespace URIs likensu=http://samples.org/UA/MyNamespace;s=MyVariable. The client automatically queries the server'sNamespaceArraynode at runtime, maps the URI to its integer index, and resolves it! - UX Color Indicators:
- Yellow: Recognized as a valid Node ID pattern while typing.
- Green / White: Successfully navigated to.
- Orange: The node exists, but the server does not support inverse browsing (or cannot trace the parent hierarchy back to the root folder).
- Red: The node does not exist or failed to resolve.
- Instant Clear: Press
Ctrl-Uto instantly clear the search box!
๐งญ Smart Node History & Jump Navigation
- Tracks your browsing history as you explore.
- Easily jump backwards (
Left Arrowon collapsed root orBackspace) and jump forwards through your visited paths for lightning-fast comparisons.
๐ Engineering Units & EURange Enrichment
- Automatically reads associated
EURangeandEngineeringUnitscompanion properties. - Enhances the displayed
Valueattribute on-the-fly (e.g., displaying42.5 ยฐC). - Adds a distinct
EURangeattribute line (e.g.,[ 0, 100 ]) for clear engineering context.
๐๏ธ HasSubtype Mode Filtering
- When exploring type hierarchies inside the
Typesfolder, toggle Subtype Mode to restrict navigation to subtype structures (HasSubtypereferences) instead of mixing in standard instances, keeping your types tree clean and organized.
๐ Real-time Variable Monitoring & Subscriptions
- Hit
mon any Variable node to instantly subscribe and start monitoring it in real-time. Live transactions and updates stream directly into your Monitored Items panel.
โก Remote Server Method Calls
- Execute server-side methods directly from the curses-based command UI. Allows inputting parameters and seeing returned values.
๐ Secure Connections & Security Profiles
- Full support for anonymous connections as well as Username/Password authentication.
- Configurable with various Message Security Modes (
None,Sign,SignAndEncrypt) and Security Policies (Basic128Rsa15,Basic256,Basic256Sha256,Aes128_Sha256_RsaOaep, etc.).
๐ฅ๏ธ Built-in Logger Console
- Live transaction, message size, subscription events, renewal logs, and error diagnostic reporting inside a separate, clearable log panel.
๐ ๏ธ Installation & Usage
๐ฆ Via npm (Global)
npm install -g opcua-commander
opcua-commander -e opc.tcp://localhost:26543
Note for Ubuntu/Linux users experiencing EACCES permission errors:
sudo npm install -g opcua-commander --unsafe-perm=true --allow-root
๐๏ธ Via Snap Store
sudo snap install opcua-commander
opcua-commander -e opc.tcp://localhost:26543
๐ณ Via Docker
Build the docker image:
docker build . -t opcua-commander
Run the docker image:
docker run -it opcua-commander -e opc.tcp://localhost:26543
๐ ๏ธ From Source
git clone https://github.com/node-opcua/opcua-commander.git
cd opcua-commander
npm install
npm run build
node bin/opcua-commander -e opc.tcp://localhost:26543
๐น Interactive Keyboard Shortcuts
Address Space Explorer Tree
Arrow Up / Down: Navigate through tree items.Arrow Right / +: Expand folder.Arrow Left / -: Collapse folder.for/: Activate Search/Filter Bar.m: Monitor current node.H: View history/attributes panel.r: Refresh current node children.qorCtrl-C: Quit.
Search Bar (Active Mode)
F3: Next string match (standard search).Shift-F3: Previous string match (standard search).Ctrl-U: Instantly clear the entire search box.Enter: Apply search, or execute GoTo Node ID search if Node ID format is matched.Escape: Cancel search and close the search bar.
๐ค Contributing
Contributions, bug reports, and suggestions are always welcome! Feel free to open issues or pull requests on GitHub.
๐ Created & Maintained by Sterfive
opcua-commander and the underlying node-opcua stack are proudly designed, developed, and maintained by Sterfive, the leading expert organization in industrial IoT, OPC UA technology, custom client/server integrations, and professional support.
Need professional support, custom industrial IoT features, or enterprise-grade OPC UA guidance? Visit sterfive.com or reach out for expert consulting services.
License: MIT