OpenVCS SDK for npm-based plugin development.
Install this package in plugin projects, scaffold a starter plugin, and package
plugins into .ovcsp bundles.
npm install --save-dev @openvcs/sdkThis package installs a local CLI command named openvcs.
One-off usage without adding to a project:
npx --package @openvcs/sdk openvcs --helpThis repository is authored in TypeScript under src/ and compiles runtime files
to bin/ and lib/.
Build the SDK:
npm run buildRun tests (builds first):
npm testRun the local CLI through npm scripts:
npm run openvcs -- --help
npm run openvcs -- init --help
npm run openvcs -- dist --helpInteractive module plugin scaffold:
openvcs init my-pluginThe generated module template includes TypeScript and Node typings (@types/node).
Plugin IDs entered during scaffold must not be ./.. and must not contain path
separators (/ or \\).
Interactive theme plugin scaffold:
openvcs init --theme my-themeIn a generated plugin folder:
npm run buildThis produces dist/<plugin-id>.ovcsp.
.ovcsp is a gzip-compressed tar archive (tar.gz) that contains a top-level
<plugin-id>/ directory with openvcs.plugin.json and plugin runtime assets.
Dependency behavior while packaging:
- npm dependency bundling is enabled by default when
package.jsonexists. - If
package-lock.jsonis missing, SDK generates it in the plugin worktree. - Dependencies are installed into the bundle staging dir with:
npm ci --omit=dev --ignore-scripts --no-bin-links --no-audit --no-fund
- Disable npm dependency processing with
--no-npm-deps. - Native Node addons (
*.node) are rejected for portable bundles.
Package a plugin manually:
openvcs dist --plugin-dir /path/to/plugin --out /path/to/distShow command help:
openvcs --help
openvcs dist --help
openvcs init --helpStable releases are published from .github/workflows/release.yml.
- npm publishes use npm Trusted Publishing (OIDC), so no
NPM_TOKENis required. npm prepackcompiles TypeScript so published packages includebin/andlib/JS outputs.
Copyright © 2025-2026 OpenVCS Contributors. SPDX-License-Identifier: GPL-3.0-or-later