skillfed

kcli

Provisioner/Manager for Libvirt/Vsphere/Aws/Gcp/Hcloud/Kubevirt/Ovirt/Openstack/IBM Cloud and containers

kcli v99.0.202608141013 134.7K downloads/30d#11,463 on PyPI649
License unclear ASL Active released

What it is and what it does

kcli is a unified command-line tool for provisioning and managing virtual machines across multiple virtualization platforms. It abstracts away provider-specific differences, letting you define infrastructure in YAML plan files and deploy to libvirt, KubeVirt, oVirt, OpenStack, vSphere, AWS, Azure, GCP, IBM Cloud, or Hcloud using a single interface. You can create, list, SSH into, stop, delete, and modify VMs; manage disks and network interfaces; and apply cloud-init or Ignition configuration.

The tool is built around YAML-based "plans" that describe VMs, networks, and deployment parameters, with Jinja templating support for customization. It includes predefined profiles for common VM configurations and can deploy entire products (like Kubernetes or OpenShift clusters) from pre-made plans. Dependencies include argcomplete for shell completion, PyYAML for plan parsing, prettytable for output formatting, jinja2 for templating, and libvirt-python for local virtualization access.

Use it for:

  • Deploy and manage test VMs across multiple cloud providers from a single CLI without learning each provider's native tools.
  • Define multi-VM infrastructure in YAML and deploy identical setups to different providers (dev on libvirt, prod on AWS).
  • Automate VM lifecycle operations (create, configure, destroy) using plan files with parameters and templating.
  • Provision Kubernetes or OpenShift clusters using pre-built plans across different virtualization backends.
  • Manage local KVM/libvirt VMs alongside cloud instances using a unified command set.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

kcli is a command-line provisioning and management tool for virtual machines across multiple virtualization providers (libvirt, KubeVirt, oVirt, OpenStack, VMware vSphere, AWS, Azure, GCP, IBM Cloud, Hcloud) using YAML plan files and cloud images.

Yes, if you manage VMs across multiple providers or need to automate VM provisioning from YAML. The active maintenance, low install friction, and broad provider support make it a solid choice for multi-cloud or hybrid virtualization workflows. However, verify Python version compatibility and system-level libvirt dependencies before installing, and clarify the license treatment if you need legal certainty for commercial use.

Install

kcli on PyPI

pip

pip install kcli

uv

uv add kcli

poetry

poetry add kcli

Installing kcli

Before you install

Low install friction with a pure Python wheel distribution. The package has active maintenance with a release on 2026-08-14 and 649 repository stars, indicating ongoing development and community engagement.

License in practice

Licensed under ASL (Apache Software License), which is permissive for commercial and private use; however, the license treatment is marked unclear in the metadata, so you may want to verify the exact license terms before relying on it in a commercial context.

Quickstart

pip install kcli
kcli create vm -i centos8stream myvm
kcli list vm
kcli ssh myvm

Requires libvirt-python, which depends on system libvirt libraries; some providers (AWS, Azure, GCP, etc.) may require additional cloud provider credentials and configuration.

Verify before relying

  • Minimum Python version requirement not specified in metadata; verify compatibility with your Python environment.
  • Whether cloud provider credentials (AWS, Azure, GCP, IBM Cloud, Hcloud) are required for all operations or only when targeting those providers.
  • System-level dependencies beyond libvirt-python (e.g., libvirt daemon, qemu) needed for local virtualization.

Package facts

License ASL (unclear)
Python support not specified
Install friction low — pure-Python wheel
Runtime dependencies 5 — argcomplete, PyYAML, prettytable, jinja2, libvirt-python
Maintenance actively maintained — 0 days since the last release
Last repo commit
First released
Downloads 134,747/month — #11,463 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: kcli-99.0.202608141013-py3-none-any.whl

Tags

multi-cloud vm provisioninglibvirt management clikubernetes vm deploymentcloud image vm launcheryaml infrastructure as codevm lifecycle managementcross-provider virtualization
infrastructure-as-codemulti-cloudvm-provisioning

More Distributed Computing packages