Try to buildwith Ailoy
Agent SDK, built around a sandbox.
Open source, for Python, Node.js and Rust.
Trusted by
- isolation
- microVM
- Its own kernel, not a container.
- image
- Any OCI
- Or build one with Recipe steps.
- gpu
- Vulkan
- Passed through into the VM.
- host
- Linux · macOS · Windows
- Windows natively, no WSL.
- daemon
- None
- No Docker, no background service.
01 · Run
Ask once.It works on its own machine.
A real run of the SAM3 example.
/examples/sam3 →promptRemove the background of this GIFbaby-turns-around.gif · 99 frames
- Read the SAM3 skill /skills/sam3
- Opened the GIF 508×640 · 99 frames
- Tracked “baby” on the GPU 97/97 frames · 406.6 s
- export.py: FileNotFoundError …/obj1/00097.png
- Patched it: a frame with no mask gets an empty one
- Ran export.py again
Background removed; animation preserved.
inside its VM · /artifacts/baby-no-background.webp
02 · How it works
The agent runs on your computer.Its work runs in a microVM.
Only what it writes to /artifacts comes back.
/docs →console = await ( ConsoleClient.builder() .image( Recipe("python:3.12-slim-trixie") .step("apt-get install mesa-vulkan-drivers libvulkan1") .step("pip install ncnn") ) .mount_readonly("data/ncnn", "/models") .mount_readonly( HostMount(Directory().with_file("SKILL.md", …), …), "/skills/sam3", ) .mount("artifacts", "/artifacts") .gpu(True) .build()) agent = await ( ailoy.AgentBuilder("openai/gpt-6-astra") .system_tools() .console(console) .skill("/skills/sam3") .build()) async with console: async for output in agent.run("Remove the background of this GIF"): print(output["message"])examples/sam3/python/main.py →
const consoleClient = await ConsoleClient.builder() .image( new Recipe('python:3.12-slim-trixie') .step('apt-get install mesa-vulkan-drivers libvulkan1') .step('pip install ncnn'), ) .mountReadonly('data/ncnn', '/models') .mountReadonly( new HostMount(new Directory().withFile('SKILL.md', …), …), '/skills/sam3', ) .mount('artifacts', '/artifacts') .gpu(true) .build() const agent = await new AgentBuilder('openai/gpt-6-astra') .systemTools() .console(consoleClient) .skill('/skills/sam3') .build() for await (const { message } of agent.run('Remove the background of this GIF')) { console.log(message)}examples/sam3/node/main.mjs →
let mut agent = AgentBuilder::new("openai/gpt-6-astra") .system_tools() .console( ConsoleClient::builder() .image( Recipe::new("python:3.12-slim-trixie") .step("apt-get install mesa-vulkan-drivers libvulkan1") .step("pip install ncnn"), ) .mount_readonly(project.join("data/ncnn"), "/models") .mount_readonly( HostMount::try_new( Directory::new().with_file("SKILL.md", …)?, …, )?, "/skills/sam3", ) .mount(project.join("artifacts"), "/artifacts") .gpu(true) .build() .await?, ) .skill("/skills/sam3") .build() .await?; let mut stream = agent.run(query);while let Some(output) = stream.next().await { println!("{:?}", output?.message);}examples/sam3/rust/main.rs →
The microVM comes from virtx, our open-source runtime: disposable Linux VMs created from code, with no Docker or daemon.
03 · Why a VM
Five ways to run an agent’s work,and where each draws the line.
Compared by category, from each category’s public docs. Where a whole category cannot be pinned down, the cell says so.
| Host process | OS sandbox | Container | Hosted sandbox API | Ailoy | |
|---|---|---|---|---|---|
| e.g. | an SDK’s local runner | Seatbelt- or Landlock-based tools | Docker, Podman | E2B, Daytona, Modal | |
| Where the work runs | your computer | your computer | your computer | the provider’s cloud | your computer |
| Boundary | none, or file rules only | policy on the host kernel | namespaces on the shared host kernel | varies by provider | its own Linux kernel (microVM) |
| GPU inside the boundary | no boundary | varies | possible, with setup | varies | Vulkan, passed through |
| Host OS | any | platform-specific | Linux; a VM on macOS and Windows | any (it is remote) | Linux · macOS · Windows |
| Background service | none | none | a container daemon | an API and an account | none |
| Fine-grained policy | none | policy language, deny by default | varies | varies | mounts, network on or off |
Host processan SDK’s local runner
OS sandboxSeatbelt- or Landlock-based tools
ContainerDocker, Podman
Hosted sandbox APIE2B, Daytona, Modal
Where the work runs
Ailoyyour computer
Host processyour computer
OS sandboxyour computer
Containeryour computer
Hosted sandbox APIthe provider’s cloud
Boundary
Ailoyits own Linux kernel (microVM)
Host processnone, or file rules only
OS sandboxpolicy on the host kernel
Containernamespaces on the shared host kernel
Hosted sandbox APIvaries by provider
GPU inside the boundary
AiloyVulkan, passed through
Host processno boundary
OS sandboxvaries
Containerpossible, with setup
Hosted sandbox APIvaries
Host OS
AiloyLinux · macOS · Windows
Host processany
OS sandboxplatform-specific
ContainerLinux; a VM on macOS and Windows
Hosted sandbox APIany (it is remote)
Background service
Ailoynone
Host processnone
OS sandboxnone
Containera container daemon
Hosted sandbox APIan API and an account
Fine-grained policy
Ailoymounts, network on or off
Host processnone
OS sandboxpolicy language, deny by default↑
Containervaries
Hosted sandbox APIvaries
Read 2026-10-20.↑ another category is ahead here
04 · Roadmap
Local today.The same machine goes further later.
Each step keeps the agent and its machine as one thing you ship.
1 now
Local runtime
Your agent runs in its own microVM on your machine.
2 planned
Self-hosted fleet
The same machine runs on your servers, many at once.
3 planned
Managed cloud
Every agent gets a computer on demand, run by BrekkyLab.
05 · Start