What’s in the package
At the archive root the platform needs exactly three things:manifest.json from the archive and fails without it,
so it must be present and current.
Regenerate the manifest
The manifest is reflected from your code, not written by hand. Regenerate it whenever a node, trigger, integration, or config signature changes:noxus plugin package and noxus plugin generate-manifest do this for you (see
below). The manifest now also carries the plugin’s dependencies — captured
from your pyproject.toml [project].dependencies at generation time — so the
platform can display what the plugin will install.
Versioning
Noxus uses semantic versioning, defined once inpyproject.toml and mirrored into
the manifest at generation time:
SDK version alignment (required)
The sandbox resolvesnoxus-sdk alongside your other dependencies. If you pin an
old SDK, it can win the resolution and the worker fails to start with
No module named 'noxus_sdk.plugins.worker'. Always depend on noxus-sdk at or
above the platform’s version (the platform installs a floor of at least
noxus-sdk>=0.5.1), never an old floor.
Release Strategy
1
Validate
Confirm structure, definitions, and config schemas, and reflect the manifest.
2
Package
Regenerate the manifest and build the archive.
noxus plugin package produces
a .tar.gz; the platform’s upload flow also accepts .zip.3
Install
Install into your Noxus deployment via one of the sources below.
Installing and updating
Open Settings → Plugins → Add plugin and choose a source:Git
Push the tagged release to your repository, then point the platform at it
(branch / commit / subpath as needed).
Upload
Drag the
.tar.gz (or .zip) built by noxus plugin package into the upload
tab.Marketplace
Open a PR to
github.com/Noxus-AI/noxus-plugins
so the version is discoverable from the in-app marketplace.
Air-gapped / offline installs
Because the sandbox installs a plugin’s dependencies at provision time, a deployment with no internet egress needs those wheels available locally. The platform can serve them from a baked wheelhouse built into the sandbox image:
With a wheelhouse present but
PLUGIN_INSTALL_OFFLINE off, deps resolve from the
wheelhouse first and fall back to PyPI for anything not baked. For a fully
air-gapped deploy, bake every dependency (including noxus-sdk) into
PLUGIN_WHEELHOUSE_DIR and set PLUGIN_INSTALL_OFFLINE=true.
Compatibility Checklist
- Inputs/Outputs: never remove or rename existing node inputs/outputs in a minor version; only add optional ones.
- Config migration: give new config fields defaults so existing installs keep working.
- Dependencies: keep the
noxus-sdkfloor aligned with the platform; for air-gapped targets, confirm new deps are in the wheelhouse before shipping. - Deprecation: mark old nodes as deprecated before removing them in a major version.
Plugins Overview
Return to the full plugin development map.