> ## Documentation Index
> Fetch the complete documentation index at: https://vetta.sh/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Computer

> Vetta's own managed sandbox — a disposable Linux micro-VM with a filesystem, a shell, and an optional browser, paused when the agent sleeps.

export const Levers = ({items, cols}) => <div style={{
  display: "grid",
  gridTemplateColumns: `repeat(${cols || 2}, minmax(0,1fr))`,
  gap: "12px",
  margin: "1.5rem 0"
}}>
    {items.map((it, i) => <div key={i} style={{
  border: "1px solid rgba(0,0,0,0.10)",
  padding: "16px 18px",
  background: "#ffffff"
}}>
        <div style={{
  fontSize: "13px",
  fontWeight: 500,
  color: "#777777"
}}>{it.k}</div>
        <div style={{
  fontSize: "15px",
  fontWeight: 500,
  margin: "6px 0 4px",
  letterSpacing: "-0.02em",
  color: "#000000"
}}>{it.v}</div>
        <div style={{
  fontSize: "14px",
  color: "#555555",
  lineHeight: 1.5
}}>{it.d}</div>
      </div>)}
  </div>;

**Vetta Computer** is where the agent does work: a **disposable Linux micro-VM** with a filesystem, shell, and optional browser, wired into the [durable runtime](/docs/concepts/runtime). It **pauses when the agent sleeps and resumes on the next turn** — idle time costs storage, not compute.

<Card title="Computer reference" icon="server" href="/docs/computer/index">
  Full detail on resources, lifecycle, filesystem, shell, browser, snapshots, volumes, networking, limits, and billing.
</Card>

## The micro-VM

A **full Linux userland** with configurable vCPU, memory, and disk — code, browser control, native binaries, daemons — paused between turns for near-zero idle cost.

<Levers
  cols={3}
  items={[
{ k: "Resources", v: "1–16 vCPU · up to 64 GiB", d: "Configurable per computer; defaults to 2 vCPU / 4 GiB." },
{ k: "Idle cost", v: "paused ≈ storage only", d: "Sleeps between turns; no vCPU or memory metered while paused." },
{ k: "Runs", v: "everything", d: "A real Linux box, not a restricted runtime." }
]}
/>

## Create a computer

<CodeGroup>
  ```bash CLI theme={"system"}
  vetta computer create --name box \
    --vcpu 2 --memory-mb 4096 --disk-gb 20 \
    --browser --allowed-domains "*.example.com"
  ```

  ```typescript TypeScript theme={"system"}
  const box = await vetta.computers.create({
    name: "box",
    vcpu: 2,
    memoryMb: 4096,
    diskGb: 20,
    browser: { allowedDomains: ["*.example.com"] },
  });
  ```
</CodeGroup>

<Note>Resources are optional — omit them and the computer provisions at the default **2 vCPU / 4 GiB**. A `small`/`medium`/`large` preset is shorthand for a common combination.</Note>

## What the agent can do

Inside a session, the agent reaches the computer through built-in tools:

<Levers
  cols={3}
  items={[
{ k: "Shell", v: "bash", d: "Run commands; read stdout, stderr, and exit codes — e.g. clone a repo, pip install its deps, run the test suite, and read the failures." },
{ k: "Files", v: "read · write · list", d: "Full read/write access to the workspace filesystem — e.g. write a script to /workspace, run it via the shell, then read the report it produced." },
{ k: "Browser", v: "goto · extract", d: "Drive a real browser — goto, click, type, extract, screenshot — scoped to allowed_domains. E.g. open a dashboard, extract a table, screenshot the result." }
]}
/>

## Pause, resume, snapshot

A paused computer meters **storage only** and resumes with its filesystem intact.

<img src="https://mintcdn.com/vetta/rjfQyQrWaQ5bFTTq/images/computer-lifecycle.svg?fit=max&auto=format&n=rjfQyQrWaQ5bFTTq&q=85&s=23d8cb639cc9becb90754c71703725e1" alt="Computer lifecycle: create → running (metered per second) → paused (≈ storage only) → resume (disk intact), with snapshot and persistent-volume branches" width="900" height="400" data-path="images/computer-lifecycle.svg" />

Snapshots and persistent volumes let state outlive a session. See the [Computer reference](/docs/computer/index).

<Info>
  **Coming soon:** a fully virtualized **V8 isolate** mode (`mode: "isolate"`) with near-instant boot and near-zero idle, and [vault](/docs/identity/vault) secret injection on all sandbox egress (live on the [MCP connector](/docs/capabilities/tools#mcp-connector) path today).
</Info>

## Fields

<ParamField path="vcpu" type="integer" default="2">Provisioned vCPU (1–16).</ParamField>
<ParamField path="memory_mb" type="integer" default="4096">Provisioned memory in MiB (128–65536).</ParamField>
<ParamField path="disk_gb" type="integer">Root disk size in whole GiB (up to 100).</ParamField>
<ParamField path="browser" type="boolean" default="false">Attach a managed browser; `allowed_domains` scopes what it may reach.</ParamField>

The full field list — presets, modes, volumes, snapshots — is in the [Computer reference](/docs/computer/sandbox#create).

<Card title="Next: identity" icon="id-card" href="/docs/capabilities/identity">
  Give the agent an addressable persona.
</Card>
