Skip to content

Deneb

Deneb is the last step: it turns a finished Vega project into something people can install. It checks that every scene, asset and plugin the project needs is present, pins exact versions so the build can be repeated, and writes the target you ask for. All targets contain the same project and the same player, so a story behaves the same everywhere.

Terminal window
git clone https://github.com/haneoka-gakuen/deneb.git
cd deneb
cargo install --locked --path crates/deneb-cli
Terminal window
deneb doctor --target android # what does this machine still need?
deneb validate my-story/project.vega.json # is the project complete?
deneb plugins validate my-story/project.vega.json
deneb build my-story/project.vega.json --target pwa --output dist --runtime-bundle ./vega-runtime

--runtime-bundle points at the Vega runtime to package: a folder with a deneb-runtime.json describing it.

TargetYou get
webA static site with relative links; upload it anywhere, at any path.
pwaThe site plus a manifest and service worker, playable offline and installable.
electronA desktop app with Chromium sandboxing.
tauriA desktop app with a much smaller download.
android, iosNative projects to open in Android Studio or Xcode.

Desktop and mobile builds use --bundle-identifier (default app.vega.<project-id>).

--mode release, the default, refuses to build unless the project is complete offline and the runtime is pinned — the result does not depend on any network at play time. --mode preview relaxes this for quick tests.

Plugin versions come from lock files next to the project (deneb.lock.json, vega.plugins.lock.json), so building the same project with the same locks gives the same output. The Altair marketplace plugin can write the Vega plugin lock for you.

Some characters need a third-party runtime you must license yourself, such as the Live2D Cubism Core. Deneb never bundles one on its own; with --allow-private-external-runtimes, it includes the runtime your project supplies, for builds you distribute under that licence.

Every command takes --json and reports errors with stable codes, so Deneb fits into CI. deneb doctor --json is a quick way to fail early when a build machine is missing a toolchain.

The Deneb repository has the full option list and documents the project format, targets, runtime contract and plugin system.