Loading...
Loading...
Operate run.cloud microVM sandboxes with the CLI or TypeScript SDK. Use for creating isolated compute, running commands, moving files, managing snapshots or images, exposing ports, using SSH or desktop automation, attaching secrets, sizing resources, or cleaning up sandboxes.
npx skill4agent add newly-app/run-cloud-examples run-cloud-sandboxesruncloud@run-cloud/sdknpm install -g runcloudruncloud loginruncloud login --manualRUN_CLOUD_API_KEYRUN_CLOUD_API_TOKENRUN_CLOUD_API_URLhttps://api.run.cloudruncloud account --json--jsonruncloud sandbox --help--helpsandboxboxSANDBOX_ID=$(runcloud sandbox create \
--image runcloud/agent-base \
--timeout 900 \
--json | jq -r '.id')
trap 'runcloud sandbox rm "$SANDBOX_ID" >/dev/null 2>&1 || true' EXIT
runcloud sandbox get "$SANDBOX_ID" --json
runcloud sandbox exec "$SANDBOX_ID" "npm install && npm test"runcloud sandbox createruncloud sandbox list [--state <state>]runcloud sandbox get <id>runcloud sandbox exec <id> <cmd...>runcloud sandbox shell <id>runcloud sandbox pause|resume <id>runcloud sandbox logs <id> [--lines <n>]runcloud sandbox metrics <id> [--range <range>] [--watch]runcloud sandbox rm <id>--image--region--name--org--cpu--memory--disk--idle-pause--timeout--persistent--expose--no-wait--json--timeout 0exec/bin/sh -cexecshellnpm install @run-cloud/sdkimport { Client } from "@run-cloud/sdk";
const cloud = new Client();
const sandbox = await cloud.sandboxes.create({
image: "runcloud/agent-base",
cpu: 1,
memory: 1024,
timeoutSeconds: 900,
idempotencyKey: process.env.CI_JOB_ID,
});
try {
const result = await cloud.sandboxes.exec(
sandbox.id,
["npm", "test"],
{
onStdout: (chunk) => process.stdout.write(chunk),
onStderr: (chunk) => process.stderr.write(chunk),
},
);
if (result.exitCode !== 0) {
throw new Error(`tests failed with exit code ${result.exitCode}`);
}
} finally {
await cloud.sandboxes.destroy(sandbox.id);
}cloud.sandboxescreatelistgetexecreadFilewriteFileopenTunnelcloseTunnelsetTimeoutsnapshotdestroydeletecloud.snapshotslistrestoredeletecloud.account()cloud.usage({ orgId? })exec/bin/sh -ccwdenvtimeoutSecondsonStdoutonStderrsignalreadFilewriteFileruncloud sandbox setup-sshruncloud sandbox sshcpcoderuncloud sandbox snapshot create "$SANDBOX_ID" --label deps-installed --json
runcloud sandbox snapshot list --json
runcloud sandbox restore <snapshot-id> --json
runcloud sandbox snapshot rm <snapshot-id>cloud.sandboxes.snapshotcloud.snapshots.restorecloud.snapshots.listcloud.snapshots.deleteruncloud image create my-agent --dockerfile ./Dockerfile
runcloud image list --json
runcloud sandbox create --image my-agent --json
runcloud image refresh my-agentruncloud image --helpruncloud sandbox create --name <name> --expose <port> --persistentruncloud sandbox expose <id> --port <port>cloud.sandboxes.openTunnel(id, port, { ttlSeconds })closeTunnel(id, tunnel.id)closeTunnel--from-dotenv--from-json--stdin--secret-group--secret--env--no-secretsruncloud sandbox secrets <id> ...runcloud secret-group --helpruncloud secrets --helpruncloud sandbox desktop <id>screenshotclicktypekeytry/finallyexitCodeexec