---
title: "Get host capabilities"
method: GET
path: "/capabilities"
---

# Get host capabilities

`GET /capabilities`

## Request

- Base URL: `http://localhost:4973`
- URL: `http://localhost:4973/capabilities`
- Auth: HTTP bearer

Returns machine-readable host capabilities: server and API version, host
OS/architecture, every runtime available on this host with its per-runtime
feature IDs, the configured default runtime and whether it is available,
guest networking model and host gateway, supported image platforms, and
stable server-level feature IDs.

Runtime-derived values reflect the actual host (for example, snapshot and
standby support on macOS is gated on the host OS version), so clients can
gate behavior on capabilities without hard-coding hypervisor knowledge.

## Response `200`

Host capabilities

- Capabilities
  - `server` CapabilitiesServer, required
    - `version` string, required: Server build version (short git revision, with "-dirty" suffix for uncommitted builds, or "unknown")
    - `api_version` string, required: API contract version (matches the OpenAPI document info version)
  - `host` CapabilitiesHost, required
    - `os` string, required: Host operating system
    - `arch` string, required: Host CPU architecture
  - `default_runtime` CapabilitiesDefaultRuntime, required
    - `name` string, required: Runtime used for launches that do not name one
    - `available` boolean, required: Whether the default runtime can launch on this host: it appears in runtimes and its launch prerequisites are met (matches that entry's "available"). When false, launches that rely on the default will fail until the server is reconfigured with an available runtime or the missing prerequisite (for example the QEMU system binary) is installed.
  - `runtimes` CapabilitiesRuntime[], required: Every runtime this server build supports on this host platform, each with its own availability flag and feature IDs. Hosts commonly support several runtimes at once (for example cloud-hypervisor, firecracker, qemu, and qemu-microvm on linux/amd64). A listed runtime is only launchable when its "available" flag is true. Entries are sorted by name.
    - `name` string, required: Runtime identifier
    - `available` boolean, required: Whether this runtime's launch prerequisites are currently met on this host. Listed runtimes are supported by this server build on this platform; available=false means a host prerequisite is missing (for example qemu requires a runnable system-installed QEMU binary and the host vhost-vsock device) and launches naming this runtime will fail until it is installed.
    - `features` string[], required: Stable feature IDs supported by this runtime on this host: "snapshots" (snapshot/restore), "standby" (pause + memory snapshot, with later restore), "fork" (clone an instance from a stopped source; forking a standby or running source restores/creates snapshots and additionally requires "standby"), "pause" (pause/resume), "hotplug-memory" (live memory resize), "balloon-control" (runtime balloon target changes), "vsock" (guest vsock communication), "gpu-passthrough" (GPU/PCI device passthrough), "disk-io-limit" (disk I/O rate limiting), "disk-resize" (live disk resize). Values are host- and configuration-truthful: vz omits snapshots and standby on macOS 13, which lacks Virtualization.framework VM save/restore, while still advertising fork (stopped-source clones need no save/restore there), and cloud-hypervisor reports "disk-resize" only when the configured default version supports it.
  - `network` CapabilitiesNetwork, required
    - `model` 'bridge' | 'nat', required: Guest networking model. "bridge" is a Linux bridge with per-VM TAP devices; "nat" is hypervisor-provided NAT (macOS).
    - `gateway` string: Guest-visible host gateway IP. Guests reach host services (including host ingress) through this address. Omitted when no default network has been resolved on this host yet.
    - `subnet` string: Guest subnet CIDR
    - `guest_to_guest` boolean, required: Whether direct VM-to-VM traffic is permitted on the default network
  - `images` CapabilitiesImages, required
    - `platforms` string[], required: Image platforms (os/arch) this host can run. On Apple Silicon macOS this includes linux/amd64 only when Rosetta is currently installed — probed via the same Virtualization.framework availability check launches enforce — so a listed platform is launchable right now. Install Rosetta (softwareupdate --install-rosetta) to enable it.
    - `default_platform` string, required: Image platform selected when a create request omits one
  - `features` string[], required: Stable server-level feature IDs: API surfaces this server exposes regardless of which runtime backs an instance. Always present: "instances", "images", "builds", "volumes", "ingress", "exec", "logs". Host-conditional: "devices" (device passthrough management, Linux hosts only) and "rosetta-emulation" (Apple Silicon macOS hosts with Rosetta currently installed, per the same availability probe launches enforce). Per-runtime features are reported under each runtimes[] entry.

## Other responses

- `500`: Internal server error

## Changes

- **2026-08-21** `b00eacfe26b2`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/kernel/apis/hypeman-api/changes/capabilities/get.md)

---

[API](https://skmtc.dev/kernel/apis/hypeman-api.md) - [All operations](https://skmtc.dev/kernel/apis/hypeman-api/llms.txt) - [OpenAPI document](https://skmtc.dev/kernel/apis/hypeman-api/revisions/befe3f654ef6?raw)
