Skip to content

Installing the kraft CLI tool

You can quickly and easily install KraftKit using the interactive installer. Simply run the following command to get started:

Terminal window
curl --proto '=https' --tlsv1.2 -sSf https://get.kraftkit.sh | sh

The above script will identify your host and guide you through an the installation process, including suggestions for how to receive updates. The installer will try to use your native package manager.

macOS

The simplest way to install kraft on macOS is via brew:

Terminal window
brew install unikraft/cli/kraftkit

Alternatively, you can download the latest kraft darwin binary for your architecture from: https://github.com/unikraft/kraftkit/releases/latest

Extract the archive to a local directory. For example:

Terminal window
tar -xvf kraftkit_0.6.6_darwin_arm64.tar.gz

Debian/Ubuntu

We recommend installing KraftKit using the interactive method described above. However, if you would like to manage your installation directly, we offer APT repositories that can be referenced to access the latest stable version of kraft. To get started, install the following preliminary tools:

Terminal window
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release

Add Unikraft’s official GPG key:

Terminal window
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.pkg.kraftkit.sh/gpg.key | \
sudo gpg --dearmor -o /etc/apt/keyrings/unikraft.gpg

Use the following command to set up the APT repository:

Terminal window
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/unikraft.gpg] https://deb.pkg.kraftkit.sh \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/unikraft.list > /dev/null

Update the APT package index, and install the latest version of kraftkit:

Terminal window
sudo apt-get update
sudo apt-get install kraftkit

Fedora/RHEL

We recommend installing KraftKit using the interactive method described above. However, you can also directly add our remote RPM package registry entry.

First add new entry for kraftkit in /etc/yum.repos.d/kraftkit.repo:

[kraftkit]
name=KraftKit Repo
baseurl=https://rpm.pkg.kraftkit.sh
enabled=1
gpgcheck=0

Then run:

Terminal window
yum makecache
yum install -y kraftkit

Arch Linux

We recommend installing KraftKit using the interactive method described above. However, if you wish to install this directly from AUR, you can:

Terminal window
git clone https://aur.archlinux.org/kraftkit-bin.git
cd kraftkit-bin
makepkg -si

Windows

KraftKit currently does not support an installation natively on Microsoft Windows. However, you can use Windows Subsystem for Linux 2 (WSL2) which supports both running kraft as well as executing Unikraft unikernels.

To get started, please ensure that you have WSL2 set up on your host. We recommend using the Linux distributions Ubuntu or Debian:

Terminal window
wsl --install -d debian

Once complete, restart WSL either by shutting down Windows or by closing all of your WSL terminal windows and issue this command in Powershell, CMD, or Windows Run menu (Windows+R)

Terminal window
wsl.exe --shutdown

Troubleshooting

Once restarted, simply following the instructions for installing kraft for Debian/Ubuntu from within WSL2.

Once installed, you must ensure that nested-virtualization is enabled. This will allow you to run Unikraft via QEMU for KVM later by editing /etc/wsl.conf:

[wsl2]
nestedVirtualization=true
[boot]
command = /bin/bash -c 'chown -v root:kvm /dev/kvm && chmod 660 /dev/kvm'

Then add yourself to the kvm group:

Terminal window
sudo usermod -a -G kvm ${USER}

If you have experience with Hyper-V platform APIs, please consider contributing to Unikraft platform drivers as we have an on-going track for this. If you have experience building Go applications for Microsoft Windows, we also have an open issue on KraftKit to support this platform. Thank you!

From source

To build kraft from source, please see our hacking documentation.

See also

KraftKit can be used in other contexts, such as within a CI/CD pipeline. See additional resources on how to build, package (or run) unikernels: