GO CLI · AZURE SDK · COBRA

Manage Azure VMs from your terminal.

azvm is a Go CLI for discovering, inspecting, diagnosing, and managing Azure Virtual Machines without leaving the terminal.

$ azvm login
Opening Azure login...

$ azvm list
Name: my-vm, Resource Group: my-resource-group, Location: westeurope

$ azvm status my-vm
Name: my-vm, Status: VM running

$ azvm inspect my-vm
VM: my-vm · westeurope · 10.0.2.14

$ azvm doctor my-vm
VM running ✓ · Network interface ✓ · Private IP ✓

$ azvm restart my-vm
Restarted VM: my-vm

Built around the operations you actually need.

azvm provides a focused command-line interface for Azure Virtual Machine discovery, inspection, diagnostics, and lifecycle operations.

VM discovery

List Azure Virtual Machines and see their resource groups and locations.

Status

Check the current power state of an individual Virtual Machine.

Lifecycle control

Start, stop, and restart Virtual Machines directly from the terminal.

VM inspection

View compute details and network information, including NICs, private IPs, subnets, VNets, and public IPs.

VM diagnostics

Interpret available VM and network information with deterministic checks and a human-readable diagnosis.

Simple commands.

No web dashboard required for everyday VM lifecycle operations.

azvm login
azvm list
azvm status <vm>
azvm start <vm>
azvm stop <vm>
azvm restart <vm>
azvm inspect <vm>
azvm doctor <vm>

Inspect output is illustrative and reports information available from Azure. Missing public IPs are shown as none.

Diagnose a VM.

doctor interprets information collected from Azure using deterministic checks and prepared diagnostic explanations. It does not use AI or probabilistic analysis.

$ azvm doctor mc

VM: mc

Compute
  Status:          ✗ stopped

Network
  NIC attached:    ✓ attached
  Private IP:      ✓ 172.16.0.4
  Public IP:       ✓ 20.55.72.218

Checks
  VM running           ✗ stopped
  Network interface    ✓ attached
  Private IP           ✓ 172.16.0.4
  Public IP            ✓ 20.55.72.218

Diagnosis
  The VM is not running.

  Network connectivity cannot be reliably diagnosed
  until the VM is started.

The current diagnostic checks are based on VM state and Azure network configuration. doctor does not yet perform SSH, TCP, DNS, firewall, NSG, or routing tests.

Inspect a VM.

See a single report combining VM compute details with its Azure network relationships.

azvm inspect my-vm

VM: my-vm

Compute
  Status:          VM running
  Location:        westeurope
  Resource Group:  production
  Size:             Standard_B2s
  OS:               Linux

Network
  NIC:             my-vm-nic
  VNet:            production-vnet
  Subnet:          backend
  Private IP:      10.0.2.14
  Public IP:       none

Values in this example are illustrative. inspect reports information; it does not perform diagnostics, connectivity testing, or health analysis.

Install from a release.

Download the latest binary for your operating system and CPU architecture. No Go installation is required.

Supported platforms

Release binaries are provided for the following targets.

macOS Apple Silicon darwin-arm64
macOS Intel darwin-amd64
Linux x86_64 linux-amd64
Linux ARM64 linux-arm64
Windows x86_64 windows-amd64.exe

macOS and Linux

Download the binary matching your platform, then install it somewhere on your PATH.

sudo install -m 755 azvm-v<version>-darwin-arm64 /usr/local/bin/azvm

Replace the filename with the exact binary you downloaded.

Azure CLI authentication.

azvm uses your currently selected Azure CLI subscription.

azvm login

az account show

The azvm login command runs Azure CLI login and the active Azure subscription is used automatically.

Roadmap.

The current discovery, inspection, diagnostics, and lifecycle commands are implemented. More remote management capabilities are planned.

AVAILABLE

VM inspection

AVAILABLE

VM diagnostics / doctor

PLANNED

Connectivity diagnostics

PLANNED

SSH

PLANNED

Remote command execution