Private beta is open

Browsers, shells and files for AI agents. In one isolated session.

Each Boxline session is a cloud machine your agent can drive: Chrome over CDP with Playwright or Puppeteer, an optional bash shell, and a shared /workspace disk. Start one with an API call, watch it live, and pay by the second.

Free plan with a $5 usage credit every month. Browser sessions from $0.045 per hour.

One machine

Log in, download, analyse, upload. Without shipping files around.

Real agent tasks cross the line between browsing and computing. In Boxline, the browser, the shell and the disk share one sandbox, so each step picks up exactly where the last one left off.

One session, one isolated machineYour agent connects to a single session. Inside it, the Chrome browser (reached over CDP) saves downloads to /workspace/downloads on the shared disk, the bash shell (reached through exec) reads and writes the same disk, and the files API uploads and downloads from it.SESSION · ONE gVisor SANDBOXCLIENTYour agentPlaywright · SDK · MCPBROWSERChromeCDP · live view · actionsSHELLbashPython or Node · exec · terminalDISK/workspacedownloads/report.csvsummarise.pysummary.csvShared by the browser,the shell and the APIDOWNLOADSREAD/WRITECDPexecfiles APIOne session, one isolated machineYour agent connects to a single session. Inside it, the Chrome browser (reached over CDP) saves downloads to /workspace/downloads on the shared disk, the bash shell (reached through exec) reads and writes the same disk, and the files API uploads and downloads from it.SESSION · ONE gVisor SANDBOXCLIENTYour agentPlaywright · SDK · MCPBROWSERChromeCDP · live viewSHELLbashPython or NodeDISK/workspacedownloads/summarise.pysummaryShared by the browser, the shell and the APIDOWNLOADSREAD/WRITECDPfiles APIexec
Browser, shell and disk share one sandbox, so a file never has to leave the machine between steps.
  1. Log in with the browser

    Drive Chrome with Playwright, Puppeteer or raw CDP. Save the login in a context so the next session starts signed in.

  2. Download the CSV

    Browser downloads land in /workspace/downloads, whichever client clicks. One API call waits for the file to finish.

  3. Analyse it in the shell

    Run Python or Node against the file with exec, or open the terminal. Need the site's login in the shell? Export the browser's cookies for curl.

  4. Upload the result

    Hand the output back to a website with the browser's upload action, or read it through the files API.

Features

Built for agents that run for real.

The pieces you need once an agent leaves the demo: quick starts, state that survives, a way to look over its shoulder and a bill that matches what ran.

Fast start

Sessions come from a warm pool of ready machines. Our target is under one second from request to running session.

Session move

Move a live session to a fresh machine with one API call. Tabs, logins and files come along, and clients reconnect to the same URL.

Live view

Watch any session's browser in real time, and click in to take over when your agent needs a hand.

Pause and resume

Pause to save browser state and files and stop billing. Connecting again resumes the session.

Contexts

Keep logins between sessions, so your agent does not have to sign in on every run.

Actions API

Send clicks, typing and screenshots in one request. They run next to the browser for low latency.

MCP server

Claude, Cursor and other MCP clients can use sessions as tools with a few lines of config.

Per-second billing

Pay for the seconds a session runs. No per-session fee, and nothing while it is paused for up to 24 hours.

For developers

Bring the tools you already use.

Connect Playwright over CDP, use the TypeScript SDK, add the MCP server to your client, or give Claude’s bash tool a real machine to run on.

  • Playwright, Puppeteer or raw Chrome DevTools Protocol
  • A shell with Python, Node, ffmpeg and sudo built in
  • REST API with a single x-api-key header
connect.ts
import { chromium } from "playwright";

const API = "https://api.staging.boxline.dev/v1";
const headers = {
  "x-api-key": process.env.BOXLINE_API_KEY!,
  "content-type": "application/json",
};

// 1. Create a session with a browser
const session = await fetch(`${API}/sessions`, {
  method: "POST",
  headers,
  body: JSON.stringify({ browser: true, timeout: 300 }),
}).then((r) => r.json());

// 2. Connect Playwright over CDP
const browser = await chromium.connectOverCDP(session.connectUrl);
const context = browser.contexts()[0];
const page = context.pages()[0] ?? (await context.newPage());

await page.goto("https://example.com");
console.log(await page.title());

// 3. Release it: billing stops at the second you do
await browser.close();
await fetch(`${API}/sessions/${session.id}/release`, { method: "POST", headers });

Any CDP client works. More in the browser docs.

Isolation

Every session gets a sandbox of its own.

Agents open untrusted pages and run code they wrote a moment ago. Boxline keeps each session in its own sandbox so that work stays contained.

How we handle isolation and data →

Today

One gVisor sandbox per session

Each session runs in its own gVisor sandbox. gVisor implements the Linux system-call interface in user space, so processes in a session do not talk to the host kernel directly.

Always

Never shared between customers

A session belongs to one customer. Its browser, shell and disk are never shared with another customer’s sessions.

Roadmap

MicroVMs

MicroVM isolation is on the roadmap. We will announce it in the changelog when it is available.

Pricing

Pay for the seconds your sessions run.

Usage-based pricing with no per-session fee. Plans add included usage, more concurrency and longer sessions.

$0.045 / hour

Browser session, billed per second.

≈ $0.084 / hour

Browser and shell on 1 vCPU and 3 GiB.

$5 / month

Usage credit on the Free plan, with 3 concurrent sessions.

See plans and estimate your bill →

Give your agent a machine of its own.

Start on the Free plan: a $5 usage credit every month and up to 3 concurrent sessions. Usage is billed per second, with no per-session fee.