One machine, two drivers

A computer that stays where you left it.

Not a sandbox that disappears when the request ends. A real Linux machine with a disk that survives a stop, a desktop you can watch live, and one keyboard that either your agent or you are holding, never both.

It boots, and it stays booted

Create a machine and it runs until you stop it. Stopping keeps the disk; starting brings it back with your files where they were.

Watch it work

A live desktop in the browser at the machine's own resolution. Read-only by default, so watching costs nothing and takes nothing away.

Take the keyboard

One input lease per machine. Take control and the agent stops typing that instant; hand it back and it resumes.

Drive it from code

The API speaks machines, screens, keyboards and terminals. No substrate vocabulary leaks through it, and no model provider is assumed: an agent framework is something you bring, not something you adopt.

The quickstart
import { Client } from "@computer/sdk";

const client = new Client();
const machine = await client.machines.create({
  name: "research",
  size: "small",
});

await machine.waitForDesktop();
await machine.browser.open("https://example.com");
await machine.keyboard.type("hello");

const shot = await machine.screen.screenshot();

Where this is

Machines, the live desktop, the terminal, files, organizations, API keys and sessions work today. Snapshots, templates, port previews, usage and billing are being built, and every screen for them says so rather than showing a number nobody measured.