DEVELOPER GUIDE / OWN FLEET

A workspace for
your agent.

Run code, work with files, and give your agent a real machine. Ephemeral sandboxes on Condensation’s own infrastructure.

2 vCPUs2000 MiB memory1–30 min leases20 GiB writable storage
BEFORE YOU START

Sign in with your Codegraff account, add purchased wallet credits, and create a scoped API key. Set CONDENSATION_API_KEY in your local environment.

01

Start with the SDK

Launch a ten-minute sandbox, run a command, then clean up. Keep the request ID if you need to retry the launch.

Install · terminal
npm install condensationai@^0.2.0
Create → run → delete · TypeScript
import { Condensation } from 'condensationai';
const client = new Condensation(); // CONDENSATION_API_KEY
console.log(await client.fleet.pricing());
const requestId = crypto.randomUUID(); // keep for an explicit retry
const box = await client.fleet.create({ requestId, leaseSeconds: 600 });
if (box.state === 'running') {
  try { console.log(await client.fleet.run(box.id, 'python3 --version')); }
  finally { console.log(await client.fleet.delete(box.id)); }
} else { console.log(await client.fleet.get(box.id)); }
02

Connect your local agent

Give an MCP-compatible agent access to your sandboxes. Install the Python package, then add this server to its local, private MCP configuration.

Install · terminal
pip install 'condensationai>=0.2.0'
MCP configuration · JSON
{
  "mcpServers": {
    "condensation": {
      "command": "condensation-mcp",
      "env": {
        "CONDENSATION_API_KEY": "cnd_sk_your_account_key"
      }
    }
  }
}
Already using Codex locally?

Connect this MCP bridge to your signed-in agent. Device-code login is only needed when Codex runs inside the VM.

Your agent can read prices, list, create, inspect, run commands, transfer files, and delete sandboxes. Ask it to check pricing before launch and delete the workspace when finished. Commands are limited to 60 seconds; file transfers to 1 MB.

Four agents, ready in every new workspace.

Open the console’s interactive terminal and choose Codegraff (the default), Codex, Claude Code, or Cursor CLI. Each uses its own sign-in and model billing. Run condensation-env to see tested versions. New images are refreshed daily after validation; running workspaces keep their installed versions.

03

Run Codex inside the VM

For an agent that lives in the sandbox, install Codex there and sign in using your browser. Start with this account setting.

  1. Enable device-code authorization

    Open ChatGPT → Settings → Security ↗ in your browser.

    SETTING TO ENABLEEnable device code authorization for Codex

    Already on? Continue. If your workspace manages this setting, ask its admin to enable device-code login.

  2. Launch a VM with Codex ready

    Follow the Codex-in-VM installation guide ↗ for the full setup. Codex, Claude Code, Cursor CLI, and Codegraff are preinstalled.

  3. Sign in from the VM

    Inside your VM
    codex login --device-auth

    Open the printed OpenAI device URL in your browser, enter the code from that login, and approve it.

  4. Confirm you’re connected

    Inside the same VM
    codex login status

    You’re ready to work. The VM’s login and files disappear when its lease expires.

Approve only a login you started.

Never share device codes. OpenAI authentication guide ↗

04

Small machines. Bounded spend.

CURRENT MACHINE

$0.07953 / hour

2 vCPUs · 2000 MiB · 20 GiB writable storage

10-MINUTE RESERVATION$0.013256

Unused credit returns after
confirmed cleanup.

Each launch reserves the maximum lease cost from purchased Codegraff wallet credits. Monthly bonus credits do not cover compute.

Lease duration
1–30 minutes
Concurrency
2 per account · 4 across the pool
Runtime
Bun · Python 3.14 + uv · Zig · Rust · Git
Storage
20 GiB writable layer; cleared at deletion or expiry

Pause, resume, persistent disks, and public ports are not available in this preview.

How the exact price is calculated

$0.03 per vCPU-hour + $0.01 per GiB-hour. With 2 vCPUs and 2000 MiB (1.953125 GiB), the exact total is $0.07953125 per hour. Usage is measured in seconds. The final charge rounds up once to a millionth of a dollar.

05

Lifecycle & retries

A launch response was lost. What now?

Keep the same requestId and launch details when retrying. The SDK does not retry mutations automatically. An uncertain response retains the reservation until cleanup is confirmed. A fresh request creates a separate paid lease.

When is a sandbox fully deleted?

A delete response can still show terminating. Refresh until the sandbox reaches terminated or failed. Unused reserved credit returns after deletion is confirmed.

How does this relate to gateway sandboxes?

The original client.create() and /v1/sandboxes use the existing gateway provider and pricing. Use client.fleet and /v1/fleet/sandboxes for Condensation’s own infrastructure. Usage is attributed to the same Codegraff account.