[iris]
Getting Started

Quickstart

Get started with Iris in under a minute

Installation

npm install @iris/sdk
pnpm add @iris/sdk
yarn add @iris/sdk
pip install irisrun

Get your API Key

Sign up — Create an account at app.irisrun.io using GitHub or email.

Navigate to API Keys — Go to SettingsAPI Keys in your dashboard.

Set environment variable

export IRIS_API_KEY=your_api_key

Create your first Sandbox

import { Sandbox } from '@iris/sdk'

async function main() {
  const sandbox = await Sandbox.create()

  console.log('Sandbox created:', sandbox.id)

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

  await sandbox.delete()
}

main()
from iris import IrisClient

client = IrisClient()  # reads IRIS_API_KEY from environment
sandbox = client.sandboxes.create()

print("Sandbox created:", sandbox.id)

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

sandbox.delete()

Checkpoint and Fork

Checkpoint the sandbox state, then fork from that point for safe experimentation:

import { Sandbox } from '@iris/sdk'

async function main() {
  const sandbox = await Sandbox.create()

  // Install dependencies
  await sandbox.exec.run('apt-get install -y python3-numpy')

  // Save this state
  const cp = await sandbox.checkpoint.create({ name: 'deps-installed' })
  console.log('Checkpoint saved:', cp.checkpoint_id)

  // Fork to run something risky — original sandbox is untouched
  const branch = await sandbox.fork()
  await branch.exec.run('python3 -c "import os; os.system(\"rm -rf /tmp\")"')
  await branch.delete()

  // Original sandbox still has numpy
  const check = await sandbox.exec.run('python3 -c "import numpy; print(numpy.__version__)"')
  console.log(check.stdout)

  await sandbox.delete()
}

main()
from iris import IrisClient

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

# Install dependencies
sandbox.exec.run(["bash", "-c", "apt-get install -y python3-numpy"])

# Save this state
cp = sandbox.checkpoint.create(name="deps-installed")
print("Checkpoint saved:", cp.checkpoint_id)

# Fork to run something risky — original sandbox is untouched
branch = sandbox.fork()
branch.exec.run(["bash", "-c", "rm -rf /tmp"])
branch.delete()

# Original sandbox still has numpy
check = sandbox.exec.run(["python3", "-c", "import numpy; print(numpy.__version__)"])
print(check.stdout)

sandbox.delete()

Next Steps

On this page