Guide · Agent skill
How to use the Install and verify smolvm agent skill
Updated · written with AI from the project's own documentation and checked against our catalogue data
The install skill is an agent skill for smolvm, a tool that runs small virtual machines on your computer. It tells an AI agent to check whether your machine can support smolvm, install the latest published release into your home folder, and boot a throwaway test VM to confirm it works. This guide explains what the skill does, how to add it to Claude, how to trigger it, and what to watch for when it runs.
Quick start
- 1Install the skill. Download the skill ZIP from this page and unzip it into ~/.claude/skills/ or a project's .claude/skills/ folder, or upload it under Settings, Capabilities, Skills in the Claude apps.
- 2Ask for the task in plain language. Describe the work, such as setting smolvm up on a new machine or debugging a KVM_DENIED error. The agent matches the request to the skill.
- 3Run the preflight. The agent runs scripts/preflight.sh, which reports host details and ends with ready, not_installed or blocked. Stop and read the note lines if the result is blocked.
- 4Install smolvm. The agent runs the published installer, adds ~/.local/bin to PATH if needed, and checks smolvm --version.
- 5Boot the test VM. The agent runs scripts/verify-boot.sh. Success means the guest printed its marker and runs a different kernel from the host.
- 6Clean up. The agent runs scripts/cleanup.sh to remove the test machines and reports any leftover VM processes for you to review.
What is an agent skill, and what does this one make the agent do?
An agent skill is a folder of instructions and scripts that an AI agent such as Claude can load when a task matches the skill's description. This one is named install. Its job is narrow: get smolvm onto a fresh machine and prove that a virtual machine actually starts before any other work begins.
The skill's procedure has four steps: a read-only preflight check, an install from the published release, a boot test, and a cleanup. A version number alone is not treated as proof. Done means smolvm --version prints the release version and a throwaway VM has run one command and exited.
Install the skill in Claude
Download the ZIP for this skill from this page and unzip it. For a personal setup, place the unzipped folder in ~/.claude/skills/. For a single project, place it in the project's .claude/skills/ folder.
You can also upload the skill in the Claude apps. Open Settings, go to Capabilities, then Skills, and upload it there.
~/.claude/skills/How do you trigger the skill with a natural request?
You do not need to name the skill. Ask for the kind of work it covers, and the agent matches the request against the skill's description. The description says it applies when you set smolvm up on a new machine, a CI runner or an agent's own environment, when a first boot fails with krun_start_enter -22, KVM_DENIED or "agent did not become ready", when you check whether a host meets smolvm's requirements, or when an install must be isolated and later removed.
- "Set up smolvm on this new Mac and confirm it can boot a VM."
- "My smolvm first boot fails with KVM_DENIED. Figure out why."
- "Check whether this Linux host meets smolvm's requirements."
- "Install smolvm into a scratch HOME so it doesn't touch my existing install."
What the skill runs, step by step
The preflight script reports the host as key=value lines and ends with result=ready, result=not_installed or result=blocked. A result of not_installed on a fresh host means the machine is fine and smolvm is simply missing. A result of blocked means you should read the note= lines before continuing.
The installer is run with curl. It writes under your HOME folder, adds a PATH line to your shell profile when needed, and the agent then checks smolvm --version. The boot test runs one ephemeral alpine VM and checks a marker the guest printed and that the guest kernel differs from the host's. The cleanup script waits up to 20 seconds, then confirms no machines remain.
- scripts/preflight.sh: read-only, starts no VM, writes no smolvm state
- scripts/verify-boot.sh: boots one alpine VM and checks the result; --image <ref> boots another image
- scripts/cleanup.sh: removes test machines; --reap kills leftover VM processes, so read the report first
scripts/preflight.sh
scripts/verify-boot.sh
scripts/cleanup.shExamples of what the skill does on a real host
On a Mac, the agent runs the preflight, installs smolvm, and boots the test VM. If Docker Hub returns TOOMANYREQUESTS, the skill tells you to name the same image from a mirror, such as mirror.gcr.io/library/alpine or public.ecr.aws/docker/library/alpine.
On a Linux host where your user cannot open /dev/kvm, the preflight reports accel_access=denied and stops. The skill does not widen access for you. The one privileged step, sudo usermod -aG kvm, is yours to run.
scripts/verify-boot.sh --image mirror.gcr.io/library/alpineWhat the skill needs, and its safety notes
The host must be a Mac with arm64 chips or Linux on aarch64 or x86_64, with virtualization support: KVM on Linux and Hypervisor.framework on macOS. The skill also needs network access to smolmachines.com and a container image registry such as Docker Hub, plus bash, curl and standard shell tools.
The skill runs scripts and uses the network. It is designed to run as your own user. The installer needs no root and writes only under $HOME. Nothing in the packet escalates privilege. Group membership for /dev/kvm is the host's access boundary, so the skill reports the problem rather than changing it. The uninstaller leaves ~/.config/smolvm, which holds registry credentials, and your PATH line in place on purpose.
- Read scripts/preflight.sh and the other scripts before running them on a shared machine.
- Use a scratch HOME directory if you want the install to be removable without touching an existing one. This does not work on Windows.
- The skill is not for Windows. The source points to a separate Windows guide.
Tips for a smooth first boot
A default machine asks for 8192 MiB of memory, but the boot test uses 2048 MiB. A host can pass the test and still fail default-size machines with "agent did not become ready within 30 seconds". If your work uses the default size, boot one at that size too.
On macOS, a very deep install path can cause krun_start_enter returned: -22. Keep a scratch HOME shallow. Run the preflight again after the install if the first boot fails.
- Pin a version only to reproduce a recorded run. Otherwise the installer takes the newest release.
- Expect two notarization warnings on macOS installs; they are not a problem.
- Check each step's output against the binary, since flags and messages can change between releases.
What people use it for
- Setting up smolvm on a new Mac or Linux developer machine.
- Preparing a CI runner with a private smolvm install that can be removed afterwards.
- Diagnosing a first-boot failure such as KVM_DENIED or krun_start_enter -22.
- Checking whether an existing host meets smolvm's requirements before any work starts.
Frequently asked questions
Is the install and verify smolvm skill free?
The source does not state a price or licence terms for the skill itself. The packet's documented licence is Apache-2.0. Check the licence file in the download before reuse.
What are the requirements for this skill?
You need a Mac with arm64 chips or a Linux host on aarch64 or x86_64 with virtualization support (KVM on Linux, Hypervisor.framework on macOS). You also need network access to smolmachines.com and a registry such as Docker Hub, plus bash, curl and standard shell tools.
Does this skill work on Windows?
No. The skill says the installer does not apply on Windows and points to a separate guide in references/windows.md.
Why does my first boot fail with KVM_DENIED?
On Linux this usually means your user cannot open /dev/kvm. The preflight reports accel_access=denied. The fix is the privileged step sudo usermod -aG kvm, which you must run yourself, and the skill does not do it for you.
Why does the test VM boot but my default-size VM says agent did not become ready?
The boot test uses 2048 MiB, while a machine created without --mem asks for 8192 MiB. A host can pass the test and still fail at the default size, so boot one at that size as well.
Can this skill remove smolvm?
Not as its main job. The skill says removing an existing install belongs to a separate teardown packet, and it is scoped to the first boot. Its cleanup script only removes the test machines it created.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
This skill suits developers setting up smolvm on a new Mac or Linux machine, and CI or agent environments that need a private install they can remove. It is not for Windows, for removing an existing install, or for work after smolvm already boots. If you only need a plain install with no boot check, the source's installer command is simpler, but this skill is the more careful route.
Download the skill