Skip to content

Pack a machine into a portable artifact

Package a prepared smolvm image or machine into one file that runs on another host, with checks that its state survived.

Stars
6,901
Licence
Apache-2.0
Files
11 files

What it does

This skill teaches an agent to take a prepared environment, either a stock container image or a virtual machine you have already set up, and bundle it into a single portable file that another compatible computer can run. Before packing, the scripts write a marker value into the source machine and check it again after packing, so you know the installed state actually made it into the artifact rather than an empty shell that still boots. It also covers preflight memory checks, cleanup of the test machines it creates, and forwarding an SSH agent into an artifact without copying keys.

Great for

  • Developers who need to ship a prepared smolvm environment to a teammate or another machine as one file
  • Teams debugging a packed artifact that runs but is missing installed state
  • People deciding whether to pack from a stock image or from a provisioned machine

Skip it if

  • Keeping a machine you re-enter regularly, which the skill says belongs to a different dev-env packet (the reason is workflow, not safety)
  • Running untrusted code; the skill directs that to a separate throwaway-machine packet because this one is for keeping state, not isolation
  • Users without smolvm installed, since every script depends on the smolvm CLI and fails without it

Try asking

  • “Pack my prepared python:3.12-alpine environment into a single file I can copy to another Mac”
  • “Verify that the packed artifact still contains the packages I installed into the machine”
  • “My packed artifact boots but the state is missing; help me diagnose it with preflight and verify”
  • “Clean up the test machines and artifacts created by the packing scripts”
Step-by-step guide: how to use Pack a machine into a portable artifactInstall, first run, examples, tips and FAQs

Install in 3 steps

  1. 1

    Download the skill

    The ZIP contains the 11 original files, the Apache-2.0 licence and an attribution note.

    pack.zip
  2. 2

    Add it to your agent

    Claude Code (all projects)

    mkdir -p ~/.claude/skills && unzip pack.zip -d ~/.claude/skills/

    Claude Code / Agent SDK (this project only)

    mkdir -p .claude/skills && unzip pack.zip -d .claude/skills/

    Claude apps (web/desktop): Settings → Capabilities → Skills → Upload skill, and choose the ZIP.

  3. 3

    Ask for the task

    No special command needed — the agent reads the skill's description and loads it when your request matches. Try one of the prompts above.

Get better results

  • Pass the same custom output path to verify-pack.sh that you gave pack-image.sh, or verification will find nothing.
  • Run preflight.sh first and check exporter_memory_ok and image_vm_memory_ok, since low memory causes export failures.
  • Stop an existing machine before packing it with --from-vm, and only use cleanup.sh on machines the scripts created, since it deletes recorded smolskill- machines with cascade.

What's inside

  • README.md
  • references/macos-storage-seed-validation.md
  • references/macos-storage-seeds.md
  • references/traps.md
  • references/windows.md
  • scripts/cleanup.sh
  • scripts/pack-image.sh
  • scripts/pack-machine.sh
  • scripts/preflight.sh
  • scripts/verify-pack.sh
  • SKILL.md

Redistributed unmodified from smol-machines/smolvm under the Apache-2.0 licence. The assessment was drafted with AI from the skill's files on 2026-11-02. Skills can instruct your agent to run code — read SKILL.md and any scripts before installing.