explaingit

moby/hyperkit

Analysis updated 2026-07-03

3,722CAudience · developerComplexity · 5/5Setup · hard

TLDR

A lightweight hypervisor toolkit for macOS that lets developers run virtual machines using Apple's built-in hardware support, designed to be embedded inside tools like Docker Desktop rather than used directly by end users.

Mindmap

mindmap
  root((hyperkit))
    What it does
      Run virtual machines
      No kernel extensions
      Embed in tools
    Tech Stack
      C language
      macOS Hypervisor.framework
      xhyve bhyve lineage
    Use Cases
      Docker Desktop backend
      Developer VM tooling
      Container runtime core
    Requirements
      Mac 2010 or later
      macOS 10.10 plus
      EPT CPU support
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Embed HyperKit as the VM engine inside a macOS developer tool that needs to spin up isolated Linux containers or VMs without installing kernel extensions.

USE CASE 2

Build a macOS-native application that starts lightweight virtual machines programmatically using Apple's built-in hardware virtualization support.

USE CASE 3

Run lightweight Linux VMs on a Mac as part of a container orchestration tool, using HyperKit as the low-level engine alongside VPNKit for networking.

What is it built with?

CmacOSHypervisor.frameworkOCaml

How does it compare?

moby/hyperkitstuckatprototype/racerneomutt/neomutt
Stars3,7223,7223,717
LanguageCCC
Setup difficultyhardhardmoderate
Complexity5/54/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires macOS 10.10+ on a 2010-or-later Mac with EPT CPU support, optional qcow disk support needs an OCaml environment and several additional libraries.

In plain English

HyperKit is a low-level toolkit for running virtual machines on a Mac. A virtual machine is a simulated computer that runs inside your real computer, completely isolated from the host system. HyperKit sits at the core of that process, handling the actual hardware virtualization. It is built on top of macOS's built-in Hypervisor.framework, which means it can create and run virtual machines without needing any kernel extensions or special drivers. It works on macOS 10.10 (Yosemite) or later, and only on Macs from 2010 onward whose CPUs support a feature called EPT. HyperKit is derived from xhyve, which itself came from bhyve, a hypervisor originally developed for FreeBSD. The project refines that lineage with a focus on lightweight virtual machines and containers. It is a core part of Docker Desktop for Mac, where it runs the small Linux virtual machine that Docker uses under the hood on macOS. Most Mac users who run Docker are indirectly using HyperKit without knowing it. As a standalone tool, HyperKit is meant to be embedded inside higher-level applications rather than used directly by end users. It is designed to work alongside companion projects such as VPNKit, which handles networking for virtual machines, and DataKit, which manages data access. Developers building tools that need to spin up virtual machines on a Mac can incorporate HyperKit as the underlying engine. Building it from source requires running make in the cloned repository. Optional support for a disk image format called qcow requires installing an OCaml development environment and several additional libraries. The README is brief and focused on technical setup.

Copy-paste prompts

Prompt 1
I'm building a developer tool for macOS that needs to run Linux VMs without kernel extensions. Show me how to integrate HyperKit as the underlying hypervisor and invoke it from my application.
Prompt 2
How do I build HyperKit from source on macOS, and what OCaml environment and additional libraries do I need to enable optional qcow disk image support?
Prompt 3
How does HyperKit relate to Docker Desktop on Mac, what role does it play compared to VPNKit and DataKit in that overall stack?
Prompt 4
What macOS version and CPU requirements does HyperKit need, and what are the trade-offs of using Hypervisor.framework instead of a traditional kernel extension for running VMs?

Frequently asked questions

What is hyperkit?

A lightweight hypervisor toolkit for macOS that lets developers run virtual machines using Apple's built-in hardware support, designed to be embedded inside tools like Docker Desktop rather than used directly by end users.

What language is hyperkit written in?

Mainly C. The stack also includes C, macOS, Hypervisor.framework.

How hard is hyperkit to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is hyperkit for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub moby on gitmyhub

Verify against the repo before relying on details.