CLI Reference
Full reference for the dryade CLI — new, validate, package, keygen, doctor.
Last updated: 19 maggio 2026
The dryade CLI ships with the SDK as the [cli] extra. Install it with:
uv tool install "dryade-plugins-sdk[cli]"
dryade --help lists the top-level commands. dryade plugin --help
lists the plugin-authoring subcommands.
dryade plugin keygen
Generate an Ed25519 dev keypair for signing plugin packages.
dryade plugin keygen
Output:
~/.dryade-author/dev-key.priv (mode 0o600)
~/.dryade-author/dev-key.pub
The CLI refuses to load keys with weaker permissions. Re-run keygen to rotate; the marketplace records each public key fingerprint you submit under, so rotated keys remain valid for previously-signed packages.
dryade plugin new <name>
Scaffold a new plugin directory from the tier-specific template.
dryade plugin new my_plugin --tier starter
Required argument: name — snake_case, 2-50 chars, ^[a-z][a-z0-9_]{1,49}$.
Options:
--tier {starter,team,enterprise}— only these values are accepted.--out PATH— output directory (default: current working dir).--description STRING— overrides default placeholder.--author STRING— author field (default: empty placeholder).
The scaffolded directory is immediately validate-able and package-able. The starter tier produces 7 files; team and enterprise overlay 3 extras on top of the starter base.
Exit codes: 0 on success, 1 on schema / tier / name validation
error.
dryade plugin validate [path]
Validate a plugin against the v2 schema + Plugin Protocol + hash algorithm.
dryade plugin validate # cwd
dryade plugin validate ./my_plugin
Checks (in order):
- Manifest schema (Draft 2020-12).
--tier communityrejection (communityis not a valid plugin tier).__init__.py+pyproject.tomlpresence.- Plugin Protocol conformance (
isinstance(plugin, Plugin)). - Custom-plugin-slot disclosure if relevant.
Exit 0 on success, 1 on first failure (each error is named in stdout).
dryade plugin package [path]
Package a validated plugin into a .dryadepkg archive.
dryade plugin package # cwd, output ./dist/
dryade plugin package ./my_plugin --output ./dist
Options:
--output PATH— output directory (default:./dist/).--no-verifydoes not exist. The CLI is fail-closed.
Output: <name>-<version>.dryadepkg — a gzipped tar archive containing:
dryade.jsonwith signed hashes and Ed25519 signature.- The plugin’s
__init__.py,plugin.py, and any other.pyfiles.
Author key material is never bundled.
dryade plugin doctor
Diagnose author-tooling environment. Checks Python version, CLI version, SDK version, author keypair shape, OpenTelemetry availability.
dryade plugin doctor
Exit 0 if everything is reachable, 1 otherwise (named in stdout).
Common flags
-v/--verbose— extra diagnostic logging.--version— print the CLI version and exit.--help/-h— print contextual help.
Environment variables
The CLI honors:
HOME— author keys land under$HOME/.dryade-author/.
It does not honor any bypass or unsafe toggles — fail-closed everywhere.