v0.15.0
Two big themes this release: datumctl is now extensible — anyone can build and distribute plugins that integrate as first-class commands — and AI assistance is here, both as a standalone command and embedded inside the console.
New: plugin system (datumctl plugin) (#198)
datumctl can now be extended with external plugins. A plugin is a standalone binary (e.g. datumctl-dns) that installs into ~/.datumctl/plugins and shows up as a native datumctl command with full tab completion.
Installing a plugin:
datumctl plugin install compute
datumctl compute deploy
Managing plugins:
datumctl plugin search— browse the curated plugin indexdatumctl plugin list— see what's installeddatumctl plugin upgrade— pull the latest versiondatumctl plugin remove— uninstall
Discoverability: if you type a command that doesn't exist, datumctl will check the plugin index and suggest an install command if there's a match.
Plugin SDK — the go.datum.net/datumctl/plugin package gives Go authors everything they need: manifest declaration, automatic token injection, and Cobra command forwarding. See the examples/plugin-dns/ directory for a working reference.
Security: plugins are verified by SHA256 on every invocation, downloads are HTTPS-only, and untrusted PATH binaries hard-error rather than silently execute.
New: AI assistant (datumctl ai) (#139)
Note
This is an early proof-of-concept shared to gather feedback — not intended for production use yet.
Describe what you want in plain English and the assistant translates it into Datum Cloud API operations, with a confirmation gate before any write.
datumctl ai "list all DNS zones in my default project"
datumctl ai # opens an interactive REPL
Supports Anthropic Claude, OpenAI GPT, and Google Gemini — configure your preferred provider and API key in ~/.config/datumctl/ai.yaml. The assistant has 7 built-in tools covering resource listing, retrieval, apply, delete, schema inspection, validation, and context switching.
The same tools are also exposed as an MCP server, so you can connect Claude Desktop or any other MCP client directly to your Datum Cloud environment.
New: AI chat pane in the console (#196)
Press [a] inside datumctl console to open an embedded AI chat pane. Conversations are stored locally across sessions, with a sidebar for switching between them. Responses render as formatted markdown inline in the terminal.
New: log in without leaving the console (#194)
When datumctl console detects you aren't logged in, it now shows a branded welcome screen instead of a raw error. Press [l] to start a device authorization flow right inside the TUI — the verification URL is displayed inline, and [b] opens it in your browser. Once auth completes, the context picker opens automatically and you're straight into the resource browser.
Improved: credential resilience (#192)
If the system keyring is misconfigured or unavailable, datumctl now falls back to storing credentials in a local file — the same behavior as the GitHub CLI and Docker. Previously this would fail silently and leave you unable to log in.
Bug fixes
auth update-kubeconfignow correctly prependshttps://to hostnames when generating kubeconfig entries (#195)