oz0 plugin pack

Usage and flags for oz0 plugin pack.

For: Operators and developers looking up a command.

Pack a plugin's folder into a bundle and check the bundle as plugin lint checks a folder: a gzipped tar with oz0-plugin.yaml at its root, the artifact format the edge builds from a Git commit. The bundle is deterministic: entries are sorted and their times, owners and modes fixed, so the same tree always gives the same SHA-256, which identifies the version instead of a commit.

Version control (.git folders and files), virtual environments, caches, build output, .env files and whatever the .gitignore files of the folder's Git repository ignore stay out; your global Git excludes and .git/info/exclude do not count, so a laptop and CI pack one checkout to the same digest. Install it with plugin install <file>, or publish it with plugin push <file> oci://....

The bundle carries tools.listing.json when the folder has one: --list-tools first starts the plugin's servers on a dev server and node, as plugin test does, and writes what they list there, so plugin inspect and the hub show the tools and their token costs. It fails, packing nothing, when the listing shows an agent or the plugin over its tool-size budget, as plugin lint does.

Pack also writes sbom.cdx.json, the plugin's CycloneDX SBOM of the packages its uv.lock and package-lock.json pin, into the folder and the bundle; commit it with the lockfiles.

Like lint, it fails on a README past the hub page's limits (64 KiB, 20 images of at most 1 MiB and 4,096 pixels a side, 5 MiB of images, 10 Mermaid diagrams, no SVG) and on a licence file that reads as another licence than license: declares, and warns without a licence file; the docs page Plugin limits explains each.

Usage

oz0 plugin pack [dir] [flags]

Flags

FlagTypeDefaultDescription
--cache-dirstringwith --list-tools: where the test node keeps uv, Python and Node.js between runs
--jsonboolprint JSON instead of a table
--list-toolsboolfirst start the plugin's servers on a dev server and node, as plugin test does, and write what they list into tools.listing.json
--node-binarystringnext to this binary, else on PATHwith --list-tools: orchestrator-zero-node to run
--out (-o)string<name>-<version>.tar.gzthe bundle file to write
--runtime-bundlestring$OZ0_RUNTIME_BUNDLE, else the newest in ./dist/runtimewith --list-tools: runtime bundle directory

Inherited flags

FlagTypeDefaultDescription
--contextstring$OZ0_CONTEXT or <config dir>/orchestrator-zero/context.jsonCLI context file written by server init
--log-levelstringinfolog level: debug, info, warn or error

See all oz0 commands and the global flags.

On this page
Copyright © 2026