Ciaren

Plugin CLI Reference

Plugin CLI Reference

Installing Ciaren (pip install ciaren, or pip install -e . from a source checkout) exposes a ciaren-plugin command — a separate entry point from ciaren for the plugin lifecycle (install, enable/disable) and, for publishers, authoring tooling (signing, packaging, manifest generation, marketplace indexing, license issuance). It's split out so the everyday ciaren surface used to run the app stays small. Publisher tooling (keygen / sign) additionally needs pip install ciaren[signing]; everything else works with the base install.

ciaren-plugin --help
ciaren-plugin --version

Moved from `ciaren plugin`

Plugin commands used to live under ciaren plugin .... Running that form now prints a pointer to ciaren-plugin instead of failing with an opaque "invalid choice" error.

ciaren-plugin list                          # discovered plugins + status
ciaren-plugin install my-plugin.ciarenplugin    # verify + install
ciaren-plugin install ./src --dir           # install from a source directory
ciaren-plugin install my-plugin.ciarenplugin --trusted   # require a trusted signature
ciaren-plugin uninstall acme.myplugin
ciaren-plugin verify my-plugin.ciarenplugin     # trusted | untrusted | unsigned | invalid
ciaren-plugin enable acme.myplugin
ciaren-plugin disable acme.myplugin

# Publisher tooling (needs `ciaren[signing]`):
ciaren-plugin keygen                         # generate an Ed25519 keypair
ciaren-plugin pack ./src out.ciarenplugin        # build an unsigned package
ciaren-plugin pack ./src out.ciarenplugin --compile   # ship .pyc bytecode, not source
ciaren-plugin sign out.ciarenplugin --key <hex> --key-id acme-2026 --publisher acme

ciaren-plugin search databricks --index ./marketplace.json
ciaren-plugin index add out.ciarenplugin --index ./marketplace.json   # author the catalog
ciaren-plugin manifest ./src                 # generate ciaren-plugin.json from the plugin's code

ciaren-plugin licenses                       # scan installed dependency licenses
ciaren-plugin licenses --flagged-only --fail-on-flagged   # CI gate
SubcommandDescription
listList discovered plugins (loaded / disabled / pending) and load errors.
installVerify and install a .ciarenplugin (or --dir source). --trusted requires a trusted signature; a tampered package is always refused. --force overwrites an existing install.
uninstallRemove an installed plugin and forget its state.
verifyReport a package's signature/integrity outcome (exits non-zero if invalid).
enable / disableToggle whether a plugin loads.
keygen / pack / signPublisher tooling to create and sign packages. pack --compile ships .pyc bytecode instead of source.
manifestGenerate ciaren-plugin.json from a plugin's code (single source of truth); --api-version targets an older plugin-contract minor.
searchSearch a local marketplace index file.
index addAdd/replace a packed plugin's entry in a marketplace index (records digest + signing key id).
license issueSign a license token for a user + plugin (publisher; needs the private key).
license importCache a received license token locally so the plugin validates it.
license statusShow a cached token's user/expiry; --key <issuer public hex> verifies the signature.
licensesScan installed Python dependency licenses for redistribution review; --flagged-only / --fail-on-flagged for CI.

See also