OPC UA Modeler — VS Code Extension
Intelligent YAML authoring for OPC UA Information Models
Powered by the OPC UA Modeler toolchain from Sterfive.
What is this?
OPC UA (IEC 62541) models are the backbone of industrial interoperability — but
authoring raw NodeSet2.xml files is painful. OPC UA Modeler lets you write
your information model in a clean, human-readable YAML dialect and generates the
standard NodeSet2 XML from it.
This extension brings the full intelligence of the OPC UA Modeler engine
directly into VS Code via the Language Server Protocol (LSP), so you get
real-time feedback as you type — no round-trip to a compiler, no guessing at
type names.
Features
✅ Real-time Diagnostics
Errors and warnings appear inline as you type, sourced from two layers:
| Layer |
What it catches |
Speed |
| JSON Schema validation |
Structural mistakes — wrong key names, bad types, missing required fields |
Instant |
| Semantic validation |
OPC UA logic errors — invalid type references, broken organizedBy paths, duplicate initializer entries, invalid promotedToMandatory members |
~500 ms after typing stops |
🔮 Context-Aware Completions
The completion engine understands the semantics of every field in the YAML DSL:
typeDefinition: — suggests all instantiatable ObjectTypes and VariableTypes from the live OPC UA Address Space (standard + imported namespaces)
subtypeOf: — filters by the correct type category (ObjectType, VariableType, DataType…)
dataType: — lists all scalar built-in types and Structure subtypes
optionals: / promotedToMandatory: — resolves the optional members of the enclosing type definition
organizedBy: — walks the virtual node tree to suggest valid browse paths
initializers: — suggests variable paths reachable from the instance type, complete with their data types and enum values
🔍 Hover Documentation
Hover over an initializers: variable path to see its DataType and, for
enumeration types, the list of valid enum values — without leaving the editor.
⚡ Quick-Fix Code Actions
When a organizedBy: path is invalid, the extension offers a one-click fix
to replace it with the closest fuzzy-matched alternative from the address space.
🌐 Editor-Agnostic Server
The LSP server is also usable from Neovim, Zed, Emacs, and any other
LSP-compliant editor. See the
Neovim setup guide for details.
Getting Started
Install
- Install the CLI globally:
npm config set @sterfive:registry=https://npm-registry.sterfive.fr
npm login --registry=https://npm-registry.sterfive.fr
npm install -g @sterfive/opcua-modeler
- Install this extension. The simplest route is
opcua-modeler install-extension,
which also pulls in the RedHat YAML extension and points opcuaModeler.serverPath
at the CLI it just installed. It tries the Marketplace first and falls back to
the .vsix bundled in the CLI package, so it works offline and in air-gapped
environments.
- Open any
*.nodeset.yaml, *.model.yaml, or model.yaml file.
- The extension automatically launches
opcua-modeler lsp --stdio in the
background and activates the language features.
Free users get JSON Schema validation and completions immediately: the
extension ships the JSON schema and registers it with the RedHat YAML extension
for every matching file, so no # yaml-language-server: $schema= pragma is needed.
Licensed users additionally get the full semantic diagnostic layer.
Acquire a licence at sterfive.com/product/opcua-modeler.
The extension is a thin LSP client. It bundles no server of its own and
always delegates to opcua-modeler lsp --stdio, so the CLI is required.
Configuration
| Setting |
Type |
Default |
Description |
opcuaModeler.serverPath |
string |
"opcua-modeler" |
Path to the CLI binary the extension launches. |
opcuaModeler.trace.server |
"off" \| "messages" \| "verbose" |
"off" |
Trace LSP communication to the Output panel for debugging. |
Supported File Patterns
The extension activates on files matching any of these patterns:
*.nodeset.yaml *.nodeset.yml
*.model.yaml *.model.yml
model.yaml model.yml
Requirements
- VS Code
^1.120.0
opcua-modeler on your PATH — the extension delegates every request to it
Privacy & Telemetry
The LSP server itself collects no telemetry. When the CLI is used as the
server backend, the CLI's standard telemetry policy applies — anonymous usage
events only, no file contents, no model data. See the
CLI privacy statement
to learn more or opt out.
About Sterfive
Sterfive is a French software company specialising in OPC UA tooling and
industrial interoperability. We are the authors of
node-opcua — the most widely used open-source
OPC UA stack for Node.js, trusted by thousands of developers and industrial
organisations worldwide.
The OPC UA Modeler is our commercial product suite built on top of node-opcua,
designed to make OPC UA information modelling accessible to engineering teams
without sacrificing the rigour of the OPC UA specification.
Licence
The extension client is provided free of charge. The LSP server bundled within
this extension is © Sterfive. Redistribution is not permitted without a valid
licence. See sterfive.com/legal for details.