Open Substation Communication Designer is an editor for SCL files as described in IEC 61850-6.
This repository is the home of the OpenSCD codebase used for editing and validating SCL-based substation configuration files. It contains the reusable OpenSCD packages, the distribution app used for local development, and the core libraries consumed by CoMPAS-specific integrations.
The project focuses on:
- editing and validating SCL IEC 61850 configurations
- reusable web components and editor foundations for OpenSCD itself
- official OpenSCD plug-ins and package exports
- local distribution and demo tooling for development and testing
- integration points for CoMPAS-specific applications that consume the OpenSCD packages from npm
This monorepo contains the OpenSCD packages that are published and consumed as part of the current npm-based setup:
packages/corecontains the core editor foundation and the base web components. See the package README in packages/core/README.md.packages/xmlcontains the XML helpers and schema-related utilities. See packages/xml/README.md.packages/openscdcontains the main OpenSCD application package and editor runtime. See packages/openscd/README.md.packages/pluginscontains the official plug-ins distributed with OpenSCD. See packages/plugins/README.md.packages/distributioncontains the local distribution app used to run the project locally and validate the built frontend. See packages/distribution/README.md.packages/formsandpackages/wizardsprovide supporting form and wizard infrastructure used by the app and plugins.
For local development and testing, use the distribution package in packages/distribution. It is the package intended to run the project in a browser from source and build the deployable frontend.
From the repository root:
pnpm install
pnpm run build
cd packages/distribution
pnpm startThis starts the local development server for the OpenSCD distribution app. The package README in packages/distribution/README.md contains the package-specific instructions and is the recommended place to look for local setup details.
In order to install OpenSCD on your local device (only for you), simply visit ↗ openscd.github.io, click the "Install OpenSCD" button in your address bar (Chrome or Edge on desktop) or click the "Add OpenSCD to home screen" notification in any mobile browser.
This repository is the source of truth for the OpenSCD-specific code and packages. Historically, compas-open-scd was a fork of open-scd, but that is no longer the relationship in practice.
Today:
open-scdcontinues to maintain the OpenSCD-specific packages, libraries, and the local distribution app.compas-open-scdis a separate repository focused on CoMPAS-specific functionality and integrations.compas-open-scddoes not share a forked codebase withopen-scd; it consumes the published OpenSCD packages from npm as dependencies.- The local distribution package in
open-scdremains for local development and testing, independent from the published npm packages.
Code flow:
open-scddevelops and publishes the OpenSCD packages to npm.compas-open-scdconsumes those packages as npm dependencies.compas-open-scdadds CoMPAS-specific behavior, workflows, and integrations on top of the shared OpenSCD foundation.
Release and versioning:
open-scdmanages its own package versions and changelogs for the OpenSCD libraries and distribution.compas-open-scdfollows its own CoMPAS release/versioning cycle and pins the OpenSCD packages it consumes, rather than tracking a shared forked source tree.
We gather the available plug-ins from the community in the plug-ins file.
If you would like to list your plug-in here, please open a pull request.
How the documentation is organized.
A high-level overview of how it’s organized will help you know where to look for certain things:
- ⚖️ Decisions documents the decisions we made and why we made them.
- ✏️ Edit event API documents the edit event API.
- 🧩 OpenSCD plugin API describes how plugins communicate with OpenSCD core and how they receive document and editor state.
- 🎨 OpenSCD theming guide documents the theming model, CSS variables, and the palette used for consistent plugin styling.
These specifications are relevant both for the core OpenSCD platform and for CoMPAS-specific extensions built on top of it.
Some of the files in this repository are subject to the CC-EULA License. Please check the disclaimer to to see what his means.