Pattern
Sleep at the end of a turn
Agent loops map cleanly onto the lifecycle: resume at the start of a turn, work, sleep when the turn ends. The machine is only metered while the agent is actually thinking with it.
MANSSINO / Platform
A MANSSINO machine is a virtual machine with its own kernel, its own disk, and its own memory image. We did not make it start quickly by weakening the boundary. We made it start quickly by never shutting it down in the first place, then restoring the snapshot when you ask for it back.
Machine at a glance
Isolation
Hardware virtualisation, one kernel per machine
Resume
Under 250ms, measured at 0.24s to an interactive shell
Storage
Block device attached to the instance, encrypted at rest
Privileges
Root, with device access, kernel modules, and Docker
Interfaces
CLI, HTTP API, and SSH against the same fleet
01 Architecture
Each machine runs on a thin virtual device model on top of hardware virtualisation, with a kernel that belongs to that machine alone. Above the kernel sits an ordinary Linux userland, which is why ordinary Linux assumptions hold: you can mount filesystems, load modules, bind low ports, run an init system, and watch dmesg tell you the truth.
The control plane never enters the guest. It allocates capacity, attaches storage, triggers snapshots, and reports state. What happens inside the walls is between you and your machine.
Layer 06
Your processes. Agents, servers, builds, training jobs, all running as root if you want.
Layer 05
Linux userland. A standard distribution with the package managers already present.
Layer 04
Dedicated kernel. Booted for this machine, never shared with another tenant.
Layer 03
Virtual devices. Block, network, and console, kept deliberately narrow.
Layer 02
Hardware virtualisation. The boundary the processor enforces for us.
Layer 01
MANSSINO host fleet. Capacity, scheduling, snapshots, and storage.
02 Lifecycle
A machine moves between states on your command, through the CLI or the API. Nothing expires on its own, nothing is garbage collected behind your back, and a sleeping machine keeps its disk until you delete it.
| State | What it means | Time to running | Billed |
|---|---|---|---|
creating |
Capacity allocated, disk attached, kernel starting for the first time. | Under 250ms | From the first running second |
running |
Fully live. Accepts commands over the API, the CLI, and SSH. | Now | Active compute |
sleeping |
Memory and disk snapshotted. Processes frozen in place, state intact. | Under 250ms | Nothing |
resuming |
Snapshot being restored. A transitional state you rarely see. | Milliseconds | Nothing |
deleted |
Machine, disk, and snapshots destroyed. Not recoverable. | Not applicable | Nothing |
Pattern
Agent loops map cleanly onto the lifecycle: resume at the start of a turn, work, sleep when the turn ends. The machine is only metered while the agent is actually thinking with it.
Pattern
Pre-create machines in the shape you need and leave them asleep. A pool of sleeping machines costs nothing and turns a provision into a resume.
Pattern
Long-lived work benefits from a long-lived box. Pin a machine to a branch, a customer, or a dataset, and the environment stops being something you rebuild.
03 Persistence
Persistence is only useful if the rules are explicit. These are ours.
Restored on resume
/home, /etc, and anything you compiledNot restored
In practice
Long-running jobs should checkpoint to disk as they already do, and network clients should reconnect on wake. Both are ordinary habits for software that runs on real machines.
Sleeping writes the memory image and seals the disk. Nothing in the guest is asked to cooperate, so a stuck process cannot block it and a half-finished install is captured mid-flight and continues on resume.
04 Shapes
A shape is three numbers and an optional accelerator, chosen per machine at creation time. There are no tiers, no bundled quotas, and no features held back for a larger contract.
| Dimension | Flag | Range | Notes |
|---|---|---|---|
| Virtual CPUs | --vcpu |
1 to 16 | Dedicated cores on the host, not a burst credit scheme. |
| Memory | --memory |
1 to 64 GB | Sized in gigabytes. The snapshot grows with the memory in use, not with the ceiling. |
| Disk | --disk |
10 GB to 1 TB | Persistent block storage, encrypted at rest, expandable after creation. |
| Accelerator | --gpu |
Optional | GPU-backed shape with drivers and the CUDA toolchain present on first boot. |
| Region | --region |
us-west-1 | Additional regions are provisioned for teams that need them. |
Typical agent box
--vcpu 2 --memory 4 --disk 20
Enough for a coding agent that installs a dependency tree, runs a test suite, and keeps a language server warm between turns.
Build and crawl box
--vcpu 4 --memory 8 --disk 50
Headroom for parallel builds, headless browsers, and caches that are worth keeping between runs.
Training box
--vcpu 8 --memory 32 --disk 500 --gpu
Room for a dataset on local disk, a CUDA environment, and checkpoints that survive a sleep between sessions.
05 The resume path
Every other sandbox pays the same bill on every call: fetch an image, start a runtime, replay an install step, then finally run your command. A resume does none of that. The machine already exists, its disk is already built, and its memory is already laid out.
The path does
Place the machine on a host, reattach its disk, map the saved memory pages, and let the kernel continue from the instruction it was on.
The path skips
Image pulls, layer extraction, runtime initialisation, dependency installs, and any first-request warm-up inside your own code.
Measured
0.24 seconds from a sleeping snapshot to an interactive root shell on a four core machine.
Steady under load
Resume cost is tied to the machine, not to the fleet, so the hundredth concurrent wake behaves like the first.
0.24s
Snapshot to shell
0installs
Repeated per resume
06 Accelerators and heavy work
Root plus a real kernel plus persistent disk is what makes the hard workloads possible. Everything here works because the machine is a machine.
GPU
Request a GPU at creation and the drivers are loaded before your first command. The device stays attached for the life of the machine.
CUDA
A CUDA toolchain ships on accelerated shapes, so frameworks compile and link against it without a staging step of your own.
Docker
Run the daemon in your own VM. Images and volumes live on the persistent disk, so a rebuild is not the price of every run.
Disk
Large allocations keep a corpus, a model, or a build cache on local storage rather than pulling it across the network each time.
Kernel modules load. systemd runs. Low ports bind. Loop devices mount. Nested virtualisation works. This is the difference between a machine and a managed runtime that happens to execute your code.
07 Fleet operations
Machines are addressable objects, not anonymous workers. Each one carries a stable id, a shape, a region, a state, and whatever labels you attach, so listing a fleet tells you something useful instead of printing a wall of hashes.
08 Network and regions
Outbound
Machines reach the internet the way a server does, which is what makes real browsers, package installs, and API calls behave normally. Egress rules can be narrowed per fleet for teams running untrusted code.
Inbound
Reach services on a machine by forwarding a port over SSH, which keeps nothing exposed by accident. Teams that need published endpoints can have them provisioned explicitly.
Placement
The first region is live and additional regions are provisioned for teams with latency or residency requirements. Machines are pinned to the region they were created in.
Waitlist open
Tell us the shape you need and the workload you are running. We will get you a machine and a key, and you can time the resume on your own stopwatch.