Build a plugin for OpenVCS

OpenVCS plugins run as long-lived Node.js processes and are authored in TypeScript.

Current runtime model

  • Package format: npm packages or local npm folders resolved from config.
  • Runtime entrypoint: bin/<module>.mjs|.js|.cjs.
  • Transport: JSON-RPC over stdio.
  • Runtime host: long-lived Node.js plugin processes started by the desktop backend.
  • Security model: trust-based, without per-capability permission prompts.
  • Runtime requirement: the app-bundled Node runtime is required; there is no system node fallback.

What this means for plugin authors

  • Plugins are not WASM or WASI modules.
  • Plugin code runs out of process, which keeps extension logic separate from the host application.
  • The SDK provides shared runtime and type helpers so authors can implement the host contract without rebuilding the transport layer.

For the current host/runtime contract and bundle layout, see:

  • Client/docs/plugin architecture.md
  • Client/docs/plugins.md