Freestyle Docs

Freestyle / Docs

BusyBox Snapshot

Our smallest base snapshot: a Linux VM with 1 vCPU, 128 MiB of memory, and a 1 GB disk.

freestyle/busybox is our tiniest base snapshot: 1 vCPU, 128 MiB of memory, and a 1 GB disk. It is designed for specialized low resource and precision workloads.

If you know exactly what needs to be run you can fit specialized code execution, agent runtime or code mode tasks in these.

What’s in the snapshot

Resource or toolIncluded
Hardware1 vCPU, 128 MiB memory, 1 GB disk
Shellsh and BusyBox command-line utilities
Remote accessFreestyle SDK execution and terminal SSH through Dropbear
Package managerNone; no apt or apk
Development environmentNo preinstalled Node.js, Python, Bash, or systemd

Users often configure swap explicitly or compile custom runtimes to fit this footprint. Node.js is a common example: our Node.js guide’s BusyBox setup uses a prebuilt glibc-217 Node binary and a 256 MiB swap file, then saves the configured VM as a reusable snapshot.

Choose BusyBox when you know the workload’s dependencies and memory needs. 128 MiB leaves little room for a language runtime, large downloads, or build tools. /tmp is backed by memory; stage larger files on disk under /opt. You can resize the VM when it needs more resources.

Create a BusyBox VM

Install the SDK and set FREESTYLE_API_KEY as shown in the quickstart, then select the snapshot explicitly:

import { Freestyle } from "freestyle";

const freestyle = new Freestyle();
const { vm } = await freestyle.vms.create({
  snapshotId: "freestyle/busybox",
  firewall: { rules: [] },
});

const result = await vm.exec({
  command: "uname -a; busybox --list",
  linuxUser: "root",
});
console.log(result.stdout);

This example only inspects the local VM, so it needs no network access. Add firewall rules for any destinations your workload needs.

Add to your Agent

esc