The plugin catalog for the Milo platform — a curated index of portable CLI plugins you can install and run through datumctl.
Milo services ship their own command-line experiences as plugins. This catalog is how those plugins are discovered, versioned, and delivered to your machine: one place to browse what's available, install it for your OS and architecture, and keep it up to date — without cloning a repo or hunting for a release binary.
| Name | Description |
|---|---|
| inventory | Browse and populate the Datum Cloud inventory graph (typed nodes and edges) |
| ipam | Manage IP address space (pools and prefixes) across the platform |
datumctl ships with the curated datum catalog out of the box. Register this catalog alongside it to make the Milo plugins installable too:
# Register the Milo catalog (a one-time trust decision)
datumctl plugin index add milo-os milo-os/cli-plugins
# Search and install across every registered catalog
datumctl plugin search ipam
datumctl plugin install ipam
# Or browse interactively
datumctl plugin browseOnce installed, a plugin runs as a first-class subcommand:
datumctl ipam pool listdatumctl plugin list shows what you have installed and which catalog each plugin came from, with a clear official vs. third-party badge so provenance is never ambiguous.
- Add the
datumctl-plugintopic to your plugin's GitHub repository. - Open a pull request adding
plugins/<your-plugin-name>.yaml, following the schema. That's the only file you edit. - CI validates every manifest: schema conformance, that each download URL resolves, and that each SHA256 matches the published archive. A weekly health check re-verifies the whole catalog so a plugin's links can't rot unnoticed.
- On merge,
index.yaml— the filedatumctlactually reads — is regenerated fromplugins/*.yamland committed automatically. You never edit it by hand. (To preview locally:python3 scripts/generate_index.py.)
apiVersion: datumctl.datum.net/v1alpha1
kind: Plugin
metadata:
name: my-plugin # short name: datumctl plugin install my-plugin
spec:
shortDescription: One-line description shown in datumctl plugin search
homepage: https://github.com/milo-os/my-plugin
version: v1.0.0
platforms:
- selector:
matchLabels:
os: linux
arch: amd64
uri: https://github.com/milo-os/my-plugin/releases/download/v1.0.0/milo-my-plugin_Linux_x86_64.tar.gz
sha256: <lowercase hex sha256 of the archive>Plugins in this catalog use the portable milo-<name> binary convention (for example milo-ipam). datumctl recognizes both milo- and datumctl- prefixed plugins, so a single milo-<name> binary works as a datumctl subcommand and as a standalone tool on your PATH. The binary inside each archive must be named milo-<name> (or milo-<name>.exe on Windows).