Give your agent a computer.

A persistent Linux desktop your agent can see and operate — browser, applications, shell and files. A real machine on real hardware, not a headless browser.

Specification
DesktopA full Linux desktop with a graphical session
IsolationIts own virtual machine, down to the hypervisor
ControlScreenshot, click, type, key; exec inside the session
AccessREST API, Python and TypeScript SDKs, MCP server
PersistenceFiles, logins and software stay; snapshots on demand or daily
Live viewThe screen, embedded in your product with one tag
From$29 / month · up to 4 computers
Fig. 1

Nine real runs of Claude Code driving nine Mandala computers over MCP at the same time, recorded October 13, 2026, and shown as a time-lapse: the clock in the corner gives the real time and the speed-up.

Transcript of the recording

The film opens on black with the line “Every AI agent deserves a computer.”, then on one desktop as the first request is typed to it. The view pulls back to nine desktops side by side under the headline “Nine agents. Nine computers. All at once.” A panel in the corner shows the real time on the clock the nine share, the current speed-up, and how many of the nine are done; a note reads “Real agent runs, shown as a time-lapse. Nothing else is edited.”

The nine requests, one to each computer, and when each was done in real time:

  1. “Map every earthquake on Earth in the past day from the live USGS feed, and give me a public link.” Done at 0:35, with a public link on screen.
  2. “Build Redis from source and benchmark it.” Done at 3:07.
  3. “Chart our monthly signups from signups.csv in LibreOffice and tell me the trend.” Done at 1:47.
  4. “Read today's top five Hacker News stories and write me a one-line summary of each.” Done at 0:37.
  5. “Make a Game of Life that fills the screen, seeded with glider guns.” Done at 0:44.
  6. “Build a 3D globe with three.js that marks the world's ten biggest cities, and give me a public link.” Done at 1:48, with a public link on screen.
  7. “Find a walking route from the Eiffel Tower to the Louvre on OpenStreetMap and tell me how long it takes.” Done at 0:36.
  8. “Make a moody black-and-white version of photo.jpg in Pinta and save it as photo-bw.jpg.” Done at 0:36.
  9. “Build a two-player coin-grab game anyone with the link can join, with 60-second rounds and a live leaderboard. Test it with two players, then give me the link.” Done at 2:17, with a public link on screen.

The camera then visits seven of them, each captioned with its request and a line: the photo edit in Pinta, “Any app on the desktop”; the earthquake map, “Live data, on a public URL”; the Game of Life, “Writes code, runs it, checks it”; the Redis build, “A real Linux box. Real CPUs. make -j4 on 4 vCPUs”; the globe, “Builds it, then ships it”; the two-player game, with both players on the board, “Multiplayer, on the internet”; and the Redis benchmark, “Compiled, then benchmarked: 149k–183k requests/sec”.

It ends on all nine desktops finished: “9 for 9. Every task done in 3:07 of real time.” The closing card reads “Computers for AI agents. mandala.computer. Nine real runs of Claude Sonnet 5.5 driving nine Mandala computers over MCP, recorded October 13, 2026. Shown as a time-lapse. Nothing else is edited.”

People get work done at a computer. So should your agent.

Give it a browser, desktop applications, shell access and persistent files in one place. A Mandala computer is a genuine virtual machine with a graphical desktop, isolated down to the hypervisor.

▣Real desktops
Full Linux machines with a graphical session: browse, install, edit files, run anything.
▦Isolated
Hardware virtualization per computer, its own network policy, its own credentials. Not a shared container.
◉Watchable
A live view of the screen, embeddable in your own product with a single tag, view-only or interactive.
⛁Persistent
Files, logins and installed software are still there tomorrow. Stop a computer, start it next week, pick up where the agent left off.
⧉Templates
A plain Linux desktop, Omarchy's Hyprland tiling desktop, or one with Claude Code, Hermes or OpenClaw already installed. Connect your own model provider (sign in or add an API key) to start an agent.
↺Snapshots
Take point-in-time copies on demand, or enable a daily snapshot schedule for each computer. Restore a saved snapshot when you need to recover.
⌁Driven by API
Create, start, resize and snapshot programmatically, through the API, the SDKs or MCP.
◫Workspaces
Partition computers by project or customer, with API keys scoped to exactly one workspace. On every paid plan.

A desktop your code can drive.

  • Python and TypeScript SDKs. Create a persistent computer, or an ephemeral one that cleans itself up when your code finishes.
  • An MCP server. Point Claude Code or Claude Desktop at a real desktop and skip the code entirely.
  • Screenshot, click, type, key. The verbs computer-use models expect.
  • Exec on the desktop. Run commands inside the graphical session, not just a shell.
  • A built-in computer agent. Bring your own Anthropic key or, when enabled for your account, use Mandala AI credits. Eligibility and model pricing →

Read the API reference →

You'll need a paid plan and an API key from Settings → API keys. Replace YOUR_API_KEY below with your key.

Python

Install · Python 3.10+

python3 -m pip install mandala-computer
export MANDALA_API_KEY="YOUR_API_KEY"

Save as example.py

from pathlib import Path
from mandala_computer import Client

client = Client()
c = client.computers.create(template="base")
print(c.id)  # find it in your dashboard
c.wait_for_guest()
c.open("https://example.com")
Path("screen.png").write_bytes(c.screenshot())

Run python3 example.py in the same terminal. The screenshot is saved locally; the computer stays in your account. Python guide →

TypeScript

Install · Node.js 22+

npm install mandala-computer
export MANDALA_API_KEY="YOUR_API_KEY"

Save as example.mjs · runs directly in Node.js

import { writeFile } from 'node:fs/promises';
import { Client } from 'mandala-computer';

const client = new Client();
const c = await client.computers.create({
  template: 'base',
});
console.log(c.id); // find it in your dashboard
await c.waitForGuest();
await c.open('https://example.com');
await writeFile('screen.png', await c.screenshot());

Run node example.mjs in the same terminal. The SDK includes TypeScript types; this example also runs as JavaScript. The computer stays in your account. TypeScript guide →

The same package is the mandala command-line client. To install only the command, with Node.js 22+ and npm: curl -fsSL https://mandala.computer/install.sh | sh. Or with Homebrew, which brings its own Node.js: brew install mandalacomputer/tap/mandala.

Check the installer before it runs

Download the script with its SHA-256 into an empty directory and compare them:

cd "$(mktemp -d)"
curl -fsSLO https://mandala.computer/install.sh
curl -fsSLO https://mandala.computer/install.sh.sha256
shasum -a 256 -c install.sh.sha256 && sh install.sh

Without shasum, as on Alpine and slim container images, sha256sum -c install.sh.sha256 reads the same file. Both files come from this site, so a match proves the download is the published script, not that this site is uncompromised. The dashboard's Connect an agent panel shows the same hash from its own server.

MCP

Claude Code · Node.js 20.3+

claude mcp add mandala \
  -e MANDALA_API_KEY="YOUR_API_KEY" \
  -- npx -y mandala-computer-mcp

Run this in your terminal, then start a new Claude Code session in the same project and ask:

Create a computer from the base template, open example.com, and show me a screenshot.

MCP connects your existing agent to Mandala's desktop tools. The computer stays in your account. Claude Desktop and other MCP clients →

yourproduct.com/session/281 view-only
Firefox — CRM data entry
Updating record 42 of 60 … saved
LibreOffice Calc — leads.ods
60 rows · last edit by agent, just now
Fig. 2

An embedded session, as an illustration. Not a live computer.

Show your users what their agent is doing.

Trust is watching the work happen. Drop the live screen into your own product with one tag: view-only for an audience, interactive when a human needs to take over.

<script
  src="https://app.mandala.computer/embed/desktop.js">
</script>
<com-desktop
  src="YOUR_EMBED_URL"
  style="height: 400px">
</com-desktop>

YOUR_EMBED_URL is the watch-only vnc.embed_url your server gets back when it creates or reads a computer. To let a person take over, pass computer (its ID) and token (its vnc.token) instead. Your API key never goes in the page.

A pool of resources. Split it your way.

Every plan is a pool of vCPU, memory and storage. Divide it across computers within your plan’s per-computer limits. A paid plan is required to launch computers.

Plan Solo Studio Popular Swarm
Price$29 / month$99 / month$399 / month
Best forSolo builders, personal agentsSmall teams and agenciesProduction teams at scale
ComputersUp to 4Up to 16Up to 32
Seats1525
Pool4 vCPU · 8 GB RAM · 80 GB16 vCPU · 32 GB RAM · 320 GB64 vCPU · 128 GB RAM · 640 GB
Per computerUp to 4 vCPUUp to 8 vCPUUp to 16 vCPU
Scheduled snapshots7 days7 days + 4 weeks7 days + 4 weeks + 12 months
Workspaces & scoped keysIncludedIncludedIncluded
API, SDKs, MCPFullFullFull
StartStart with SoloStart with StudioStart with Swarm

Full plan details →

Give your agent a computer.

Create one from the API, the SDKs or MCP. It is ready in a minute, and it is still there tomorrow.