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
| Flag | Type | Default | Description |
|---|---|---|---|
--cache-dir | string | with --list-tools: where the test node keeps uv, Python and Node.js between runs | |
--json | bool | print JSON instead of a table | |
--list-tools | bool | first 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-binary | string | next to this binary, else on PATH | with --list-tools: orchestrator-zero-node to run |
--out (-o) | string | <name>-<version>.tar.gz | the bundle file to write |
--runtime-bundle | string | $OZ0_RUNTIME_BUNDLE, else the newest in ./dist/runtime | with --list-tools: runtime bundle directory |
Inherited flags
| Flag | Type | Default | Description |
|---|---|---|---|
--context | string | $OZ0_CONTEXT or <config dir>/orchestrator-zero/context.json | CLI context file written by server init |
--log-level | string | info | log level: debug, info, warn or error |
See all oz0 commands and the global flags.