Skip to content

SDK

Paperplanes exposes one primary handle: Sandbox.

import { Sandbox, Image } from "@paperplanes/sdk";
const image = await Image.build({
base: "paperplanes://images/ubuntu-chrome",
setup: ["npm install", "npm run build"],
name: "chrome-dev",
});
const sandbox = await Sandbox.create({ image: image.digest });
const checkpoint = await sandbox.checkpoint("before-risky-change");
const branches = await sandbox.fork({ count: 4 });

The RL interface is on the same handle:

  • sandbox.reset()
  • sandbox.step(action)
  • sandbox.fork(n)
  • sandbox.as_env()

No separate Gym-first class is required. as_env() is only an adapter for existing trainers.