kcli
Provisioner/Manager for Libvirt/Vsphere/Aws/Gcp/Hcloud/Kubevirt/Ovirt/Openstack/IBM Cloud and containers
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires libvirt-python, which depends on system libvirt libraries; some providers (AWS, Azure, GCP, etc.) may require additional cloud provider credentials and configuration.
- 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 · maintenance · safety
ASL (unclear) — 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.
last release 2026-08-14 (0 days) · last repo commit 2026-08-14 · 649 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 134,747 downloads/mo, #11,463 on PyPI
Alternatives
Verify before relying
pip install kcli
kcli create vm -i centos8stream myvm
kcli list vm
kcli ssh myvm- 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.
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 on it.
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
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.
Requires libvirt-python, which depends on system libvirt libraries; some providers (AWS, Azure, GCP, etc.) may require additional cloud provider credentials and configuration.
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
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 packagesargcompletePyYAMLprettytablejinja2libvirt-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
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “multi-cloud vm provisioning”
- kclikcli is a command-line provisioning and management tool for virtual…
- aliyun-python-sdk-ecsProvides Python bindings to Aliyun's Elastic Compute Service (ECS)…
- alibabacloud-ecs20140526Provides a Python SDK for interacting with Alibaba Cloud's Elastic…
Give your agent the search over MCP, or paste the wish link into any chat.
More Distributed Computing packages
gRPC Python is an HTTP/2-based RPC framework that enables you to define and call remote procedures across network boundaries using protocol buffers for serialization.
Install it if you need RPC communication in a distributed system or are integrating with existing gRPC services.
execnet lets you spawn and communicate with Python interpreters across local processes, remote hosts, and different platforms, using a simple API for task distribution and inter-process messaging.
However, the aging maintenance status (275 days since last release) means you should verify it meets your concurrency and performance needs before committing to a…
Cloudpickle extends Python's standard pickle module to serialize lambda functions, interactively-defined functions and classes, and other constructs that the default pickle cannot handle, making it suitable for cluster computing and remote code execution.
Install it if you need to serialize lambda functions, interactively-defined code, or non-standard Python constructs for cluster computing or distributed execution.
Provides a unified, open()-compatible Python API for streaming large files from remote storage (S3, GCS, Azure, HDFS, SFTP, HTTP) and local filesystems, with transparent compression support.
Install it if you work with large files on cloud storage or remote systems and want to avoid writing boilerplate around multiple SDKs.
Portalocker provides cross-platform file locking with support for exclusive and shared locks, plus Redis-based distributed locks and process-aware PID file locking.
Install it if you need file or process coordination; the optional extras (pywin32, redis) are only required for specific lock types.
Ray is a distributed computing framework that scales Python applications from a single machine to multi-node clusters, providing abstractions for parallel tasks, stateful actors, and shared objects.
See also aiven-client · azure-cli · libvirt-python · vmware-vcenter · cot · oslo.vmware · cudo-compute · pyvmomi · python-magnumclient · hcloud