datumctl with additional commands without changing the core CLI. A plugin is an independent binary that datumctl runs on your behalf — once installed, you invoke it exactly like a built-in command.
Plugins are optional. You never need one to use
datumctl, and the core CLI works the same whether or not you have any installed.What a plugin is
When you install thecompute plugin from the official datum catalog, its commands become available under datumctl compute:
official trust badge. You can also add third-party catalogs, whose plugins carry a third-party badge. See Adding catalogs to register more.
Finding plugins
Search every registered catalog for available plugins:plugin browse opens a filterable picker where you can inspect a plugin’s details and install it in place:
plugin browse requires an interactive terminal. In scripts or CI, use plugin search instead.Installing a plugin
Install by name from a catalog:If a bare name exists in more than one catalog, datumctl lists the matches instead of guessing. Qualify the name with its catalog (for example
acme/deploy) to choose.Pinning a version
Pin a specific version at install time by appending@version:
@version, datumctl installs the version the catalog recommends.
Restoring your plugin set
Runinstall with no arguments to restore every plugin you previously installed, at its recorded version. This reproduces your plugin set on a new machine:
Listing what you have
| Status | Meaning |
|---|---|
ok | Installed and compatible with this datumctl. |
update | A newer version is available in its catalog. |
! | Built for a different datumctl version. |
? | Version information is unavailable. |
Running an installed plugin
An installed plugin behaves like a native command:Upgrading and removing
plugin upgrade runs the same verified install flow as a fresh install.
How plugins stay trustworthy
datumctl treats a plugin as untrusted code and protects you in a few ways:- HTTPS-only downloads. Plugin archives and catalog manifests are fetched over HTTPS only. Downloads to private, loopback, or link-local addresses are refused, and redirects are re-checked on every hop.
- Checksum verification on every run. datumctl records a SHA256 fingerprint of each plugin binary at install time and verifies it every time the plugin runs. If a managed plugin binary is modified after installation, datumctl refuses to run it.
- Trust badges. Every plugin and catalog shows whether it is
official(Datum’s curated datum catalog) orthird-party, so you always know the source.
Trusting a plugin already on your PATH
If you have a plugin binary on yourPATH that datumctl did not install (named datumctl-<name> or milo-<name>), datumctl blocks it from running until you explicitly trust it:
plugin trust.
Next steps
- Adding catalogs — register additional or internal marketplaces
- Building plugins — write your own plugin with the Go SDK
- Quickstart — new to
datumctl? Install and log in first - Contexts & scoping — the organization and project a plugin inherits when it runs