Skip to main content

1. Get Your API Key

1

Sign Up

Create an account at runtools.ai — you’ll be prompted to create an organization.
2

Create API Key

Go to Dashboard → Credentials → API Keys → Create New Key
3

Copy Key

Copy your API key. It starts with rt_live_ for production or rt_test_ for testing.
Keep your API key secure. Never commit it to version control or expose it in client-side code.

2. Install the CLI

npm install -g @runtools/cli
The CLI is not yet published to npm. For now, clone the repo and run via bun run src/index.ts.

3. Log In and Create a Sandbox

# Authenticate (opens browser for WorkOS device flow)
runtools login

# Create a sandbox
runtools sandbox create --name my-first-sandbox --template base-ubuntu
This creates an isolated Firecracker microVM with its own filesystem, network, and SSH access.

4. Execute Commands

# Run a command in the sandbox
runtools sandbox exec my-first-sandbox "echo Hello from RunTools!"

# SSH into the sandbox
runtools sandbox ssh my-first-sandbox
Or use the SDK programmatically:
import { RunTools } from '@runtools/sdk';

const rt = new RunTools({ apiKey: process.env.RUNTOOLS_API_KEY });

// Create a sandbox
const sandbox = await rt.sandbox.create({ template: 'base-ubuntu' });
await sandbox.waitForReady();

// Execute commands
const result = await sandbox.exec('echo "Hello from RunTools!"');
console.log(result.stdout); // "Hello from RunTools!"

5. Access Dev Server URLs

Every sandbox gets public URLs for any port via Caddy reverse proxy:
https://{port}-{sandboxId}.sandboxes.runtools.ai
For example, if your sandbox runs a dev server on port 3000:
https://3000-sandbox-abc123.sandboxes.runtools.ai

6. Pause and Resume

# Pause the sandbox (saves full VM state, stops billing)
runtools sandbox pause my-first-sandbox

# Later: resume in under a second
runtools sandbox resume my-first-sandbox

# Your processes are still running!
Or via SDK:
await sandbox.pause();
// ... later ...
await sandbox.resume();

7. Clean Up

# Destroy the sandbox when done
runtools sandbox destroy my-first-sandbox

Using the SDK

Install the SDK to manage sandboxes programmatically:
npm install @runtools/sdk
The SDK is not yet published to npm. Install via GitHub: npm install github:runtools-ai/runtools-sdk

Scaffold a Project

The CLI can scaffold a full RunTools project:
runtools init my-app
cd my-app
This creates:
my-app/
├── runtools.config.ts       # Project configuration
├── agents/
│   └── assistant.ts         # Example agent
├── tools/
│   └── example.ts           # Example custom tool
├── sandboxes/
│   └── dev-env.ts           # Sandbox definition
├── package.json
└── tsconfig.json
Then deploy your tools and agents:
# Deploy tools and agents to your org
runtools deploy

# Create sandboxes defined in sandboxes/
runtools deploy --sandboxes-only

Next Steps

Agents

Create AI agents that can code, browse, and use tools

Tools

Install GitHub, Gmail, Slack — or build your own

Desktop Sandboxes

Full XFCE desktop environment with VNC access

API Reference

Explore the full REST API

CLI Reference

Learn more about the CLI — 35+ commands for sandboxes, tools, agents, secrets, and more