Oruva
Plugin API v1 · Distribution

Packaging (.oruvaplugin)

Package a finished folder for catalog or direct distribution.

A .oruvaplugin file is a deterministic ZIP of your plugin folder: files sorted, fixed timestamps, fixed permissions, with plugin.json at the root. Packing the same folder twice produces byte-identical output — so a SHA-256 published next to a package is meaningful, and a package signature can be computed once and verified everywhere.

Three equivalent ways to pack:

  • Plugin Center → Develop / Installed → Pack — packs to your Downloads folder and reveals the file.
  • POST /api/plugins/developer/pack with {"id": "my.plugin.id"} (local API).
  • python oruva_plugin.py pack path\to\plugin --output my.oruvaplugin.

The packer includes ui.html and any CSS, JavaScript, images, or other regular files inside the plugin folder automatically. .git, __pycache__, .pytest_cache, .DS_Store, Thumbs.db, symlinks, and the output archive itself are excluded. The package must stay under 64 MiB compressed and 256 MiB extracted to be installable.