[iris]
Getting Started

Introduction

Sub-millisecond sandbox snapshots for AI agents

Iris is open-source infrastructure for running code in secure, isolated sandboxes with instant checkpoint and fork.

Your AI agents can experiment freely, break things, and branch from any point in under a millisecond.

What you can do

Execute Commands

Run any shell command inside the VM. Capture stdout/stderr, set env vars, pipe stdin.

File Operations

Read, write, list, move, and delete files. Stat and check existence without exec overhead.

Checkpoints

Snapshot the full filesystem in the background while the sandbox keeps running.

Fork

Clone any running sandbox in under 1ms via copy-on-write. Original stays untouched.

Restore

Rewind the filesystem to any checkpoint in-place. Same sandbox ID and token stay valid.

Services

Long-running background processes with health probes, dependency ordering, and container support.

KV Store

Per-sandbox key-value store for agent state. Supports TTL and atomic batch operations.

Suspend & Resume

Snapshot and stop a sandbox to pause compute billing. Resume exactly where it left off.

Quick example

import { Sandbox } from '@iris/sdk'

const sandbox = await Sandbox.create()

const result = await sandbox.exec.run('echo "Hello from Iris!"')
console.log(result.stdout) // "Hello from Iris!\n"

const cp = await sandbox.checkpoint.create({ name: 'baseline' })

const branch = await sandbox.fork()
await branch.exec.run('rm -rf /tmp/data')

await branch.delete()
// original sandbox is untouched
from iris import IrisClient

client = IrisClient()
sandbox = client.sandboxes.create()

result = sandbox.exec.run(["echo", "Hello from Iris!"])
print(result.stdout)  # "Hello from Iris!\n"

cp = sandbox.checkpoint.create(name="baseline")

branch = sandbox.fork()
branch.exec.run(["bash", "-c", "rm -rf /tmp/data"])

branch.delete()
# original sandbox is untouched

Get started

On this page