Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>OPC UA ModelerNew to Visual Studio Code? Get it now.
OPC UA Modeler

OPC UA Modeler

sterfive

| (0) | Free
Intelligent YAML authoring for OPC UA Information Models — real-time diagnostics, context-aware completions, and hover documentation.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

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

  1. 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
    
  2. 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.
  3. Open any *.nodeset.yaml, *.model.yaml, or model.yaml file.
  4. 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.

  • 🌐 sterfive.com
  • 📖 Documentation
  • 🐛 Issue tracker
  • 💬 node-opcua community

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.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft