# Install virtctl with Homebrew, apk

Allows for using more advanced kubevirt features. Version 1.8.4 via Homebrew; verified 2026-06-16.

## Install

```sh
sudo av install brew:virtctl
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install virtctl
```

  Evidence: local Homebrew formula metadata

### Linux

- apk (92%):

```sh
sudo apk add virtctl
```

  Evidence: Alpine Linux edge package indexes: virtctl from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz

## Package facts

- **Package key:** brew:virtctl
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/virtctl>
- **Version:** 1.8.4
- **Source summary:** Allows for using more advanced kubevirt features
- **Homepage:** <https://kubevirt.io/>
- **Repository:** <https://github.com/kubevirt/kubevirt>
- **Upstream docs:** <https://kubevirt.io/user-guide/user_workloads/virtctl_client_tool>
- **License:** Apache-2.0
- **Source archive:** <https://github.com/kubevirt/kubevirt/archive/refs/tags/v1.8.4.tar.gz>
- **Last updated:** 2026-06-16T23:26:56Z
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- virtctl (cli)
- virtctl (alias)

## Build dependencies

- go

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 1.8.4
- Package-manager updated: 2026-06-16
- Local data: ok
- Upstream repository: https://github.com/kubevirt/kubevirt
- Upstream latest detected: v1.8.4 (current)
## Project history and usage

virtctl is the command-line companion to KubeVirt, the Kubernetes virtualization project that lets users define and manage virtual machines through Kubernetes APIs. In KubeVirt's own documentation, ordinary VirtualMachineInstance operations can be handled with kubectl, while virtctl is the extra client used for advanced VM workflows such as console access, lifecycle convenience commands, live migration, and image upload.

### Project history

KubeVirt was founded at Red Hat in January 2017 and published early releases during the period when Kubernetes-native virtualization was still a proof-of-concept space. The KubeVirt release notes list v0.1.0 as released on December 8, 2017, and early Red Hat examples already treated virtctl as the auxiliary tool for reaching VM consoles.

The project entered the Cloud Native Computing Foundation as a Sandbox project in September 2019, moved to Incubating on April 19, 2022, and announced KubeVirt v1.0 in July 2023. virtctl's significance grew with that arc: it remained the user-facing binary for VM-specific operations that do not map cleanly to generic kubectl verbs.

### Adoption history

CNCF's incubation announcement described KubeVirt as having grown beyond its Red Hat origin, with contributors from companies including Amadeus, Apple, CloudFlare, IBM, NVIDIA, SAP, SUSE, and others, and production use at companies such as Arm, CIVO, CoreWeave, H3C, and Kubermatic. The v1.0 announcement later framed the project as a maturing bridge for organizations that wanted Kubernetes operations without abandoning VM workloads.

Downstream Kubernetes virtualization products, especially OpenShift Virtualization and OKD Virtualization documentation, expose virtctl as a normal operator tool for serial console, VNC, SSH/SCP-style access, and service exposure. That downstream documentation helped make virtctl recognizable outside the upstream KubeVirt community.

### How it is used

Typical usage starts with a KubeVirt cluster and VM resources managed by Kubernetes manifests or kubectl. Users reach for virtctl when they need VM-specific actions: `virtctl console` for serial console access, `virtctl vnc` for graphical console access, `virtctl start` and `virtctl stop` for lifecycle shortcuts, `virtctl migrate` for live migration, and image-upload commands for populating VM disks.

For package users, virtctl is intentionally small in conceptual scope: it is not a separate virtualization platform, but a client that speaks to KubeVirt resources through the Kubernetes control plane. Its value is that it keeps the cluster API as the source of truth while filling the ergonomic gaps left by a generic Kubernetes CLI.

### Why package nerds care

virtctl is interesting to package maintainers because it is a Kubernetes ecosystem CLI whose version should track the KubeVirt control plane closely enough to avoid feature skew. It belongs to the same family of specialized cluster clients as kubectl plugins and operator CLIs: tiny binary, high operational leverage, and mostly useful to people already inside a particular platform.

### Timeline

- 2017: KubeVirt was founded at Red Hat.
- 2017-12-08: KubeVirt v0.1.0 was released.
- 2019-09-06: KubeVirt was accepted into the CNCF Sandbox.
- 2022-04-19: KubeVirt moved to CNCF Incubating.
- 2023-07-11: KubeVirt v1.0 was announced.

### Related projects

- KubeVirt is the upstream project that ships virtctl. kubectl remains the generic Kubernetes CLI for common resource operations, while downstream documentation for OpenShift Virtualization and OKD Virtualization documents virtctl as the VM access and lifecycle helper.

### Sources

- CNCF KubeVirt project page: https://www.cncf.io/projects/kubevirt/
- CNCF KubeVirt v1.0 announcement: https://www.cncf.io/blog/2023/07/11/kubevirt-v1-0-has-landed/
- CNCF incubation announcement: https://www.cncf.io/blog/2022/04/19/kubevirt-becomes-a-cncf-incubating-project/
- KubeVirt release notes, including v0.1.0 date: https://kubevirt.io/user-guide/release_notes/
- KubeVirt virtctl client tool documentation: https://kubevirt.io/user-guide/user_workloads/virtctl_client_tool/
- Red Hat OpenShift Virtualization CLI documentation: https://docs.redhat.com/en/documentation/openshift_container_platform/4.13/html/virtualization/virt-using-the-cli-tools


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** virtctl
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- apk - virtctl - 1.8.2-r0: normalized package name match | Alpine Linux edge package indexes: virtctl from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | CLI client for KubeVirt - the Kubernetes Virtualization API | https://kubevirt.io/
- apk - virtctl-bash-completion - 1.8.2-r0: normalized package name match | Alpine Linux edge package indexes: virtctl-bash-completion from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | Bash completions for virtctl | https://kubevirt.io/
- apk - virtctl-fish-completion - 1.8.2-r0: normalized package name match | Alpine Linux edge package indexes: virtctl-fish-completion from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | Fish completions for virtctl | https://kubevirt.io/
- apk - virtctl-zsh-completion - 1.8.2-r0: normalized package name match | Alpine Linux edge package indexes: virtctl-zsh-completion from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | Zsh completions for virtctl | https://kubevirt.io/


## Related links

- [Cloud CLI packages](https://www.automicvault.com/pkg/cloud-clis/) - Belongs to a cloud or infrastructure command family.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [Homebrew utility packages](https://www.automicvault.com/pkg/brew-utility-packages/) - Matched Homebrew package provider.
- [go](https://www.automicvault.com/pkg/brew/go/) - Build dependency declared by Homebrew.
- [cdk8s](https://www.automicvault.com/pkg/brew/cdk8s/) - Shares av.db curated category or tags: cli, cloud-infrastructure, kubernetes.
- [chaoskube](https://www.automicvault.com/pkg/brew/chaoskube/) - Shares av.db curated category or tags: cli, cloud-infrastructure, kubernetes.
- [click](https://www.automicvault.com/pkg/brew/click/) - Shares av.db curated category or tags: cli, cloud-infrastructure, kubernetes.
- [cloud-provider-kind](https://www.automicvault.com/pkg/brew/cloud-provider-kind/) - Shares av.db curated category or tags: cli, cloud-infrastructure, kubernetes.
- [clusterawsadm](https://www.automicvault.com/pkg/brew/clusterawsadm/) - Shares av.db curated category or tags: cli, cloud-infrastructure, kubernetes.
- [clusterctl](https://www.automicvault.com/pkg/brew/clusterctl/) - Shares av.db curated category or tags: cli, cloud-infrastructure, kubernetes.
- [cozyhr](https://www.automicvault.com/pkg/brew/cozyhr/) - Shares av.db curated category or tags: cli, cloud-infrastructure, kubernetes.
- [crossplane](https://www.automicvault.com/pkg/brew/crossplane/) - Shares av.db curated category or tags: cli, cloud-infrastructure, kubernetes.
- [incus](https://www.automicvault.com/pkg/brew/incus/) - Local package facts share a topical domain. Shared terms: cli, cloud, cloud-infrastructure, infrastructure, machines.
- [kraftkit](https://www.automicvault.com/pkg/brew/kraftkit/) - Local package facts share a topical domain. Shared terms: cli, cloud, cloud-infrastructure, infrastructure, machines.

## Combined YAML source

View the package source record on GitHub. [combined/virtctl.yml](https://github.com/automic-vault/db/blob/main/combined/virtctl.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
