Docs: Linux desktops for computer-use agents | Maritime

Linux desktops

A Maritime Linux desktop is a persistent computer (XFCE, Chromium, LibreOffice) for each of your end users, driven by your model. You connect the Maritime MCP server to whatever agent you already run; the model calls get_computer once per end user and then computer in a screenshot, act, verify loop. Maritime creates the desktop, keeps it warm, sleeps it when idle, wakes it on the next action, and keeps its files and logins between sessions. There is no lifecycle for you to manage.

At a glance

What it is

A persistent Linux desktop (XFCE, Chromium, LibreOffice) per end user, which your model drives over MCP or REST.

Use it for

Websites and apps with no API, browser logins, work a person can take over by link.

Use something else when

Start it

POST /api/v1/computers with externalUserId, get_computer over MCP, or New sandbox (?type=computers).

Lifecycle

Sleeps after 5 idle minutes with its memory saved and wakes in about a second. The memory snapshot is kept 7 days; the disk until you delete the computer.

Price

$0.12 an hour awake, per second, for 2 vCPU and 4 GB with the desktop, streaming and takeover. Asleep: $0.08 per GB-month of disk.

Limits

In sixty seconds

  1. Use the key you already have. A manage or full-access Maritime key drives computers and agents alike, so the MCP server takes the same bearer token as the rest of the API. To hand out a key that reaches computers and nothing else, create a Computers key in the Computers section of Settings, API keys: a key whose only scope is computers is refused on every other Maritime endpoint. Dashboard sessions cannot reach /api/v1/computers; that surface takes an API key.
  2. Add the MCP server to your agent with one of the snippets below.
  3. Your model calls get_computer with the end user's id, gets a computer_id, then drives it with computer. The first call creates the desktop; every later call for the same end user returns the same one.

Connect your model

The server speaks Streamable HTTP and authenticates with your Computers key as a bearer token. Replace mk_... with the key; the exact endpoint for your deployment is shown on the Computers page.

Copy MCP config

{
  "mcpServers": {
    "maritime-computers": {
      "type": "http",
      "url": "https://mcp.maritime.sh/mcp",
      "headers": {
        "Authorization": "Bearer mk_..."
      }
    }
  }
}

Tool timeouts

Most MCP clients cut a tool call off after 60 seconds. Two calls here can pass that, and both need the limit raised, not just the takeover:

Tools

Tool What it does
get_computer One computer per end user. user_id (unless pinned), optional name, os (linux by default, windows or android), arch (Android only, x86_64 or arm64), and screen (Linux only, {width, height}). Returns computer_id, status, screen size and a coordinate hint. Idempotent.
computer One canonical action (schema below). Returns the post-action screenshot as an image block plus a text block with action, frame_id, width, height and any detail.
computer_batch Up to 50 actions in order; stops at the first failure. Each step's text is prefixed [i]; only the final step carries an image unless a step sets no_screenshot: false.
run_shell Runs a command inside the desktop as the desktop user. timeout up to 30 s. Returns exit code, stdout and stderr.
read_file Reads a file under /data or /home/desk. Text when UTF-8, otherwise base64 with a mime note. 8 MiB cap.
write_file Writes a file under the same roots. encoding is utf8 (default) or base64.
request_takeover For logins, 2FA, CAPTCHAs and payments. Mints a control link and returns it as text.
takeover_status Where a takeover stands: mode (human while the person holds the desktop, agent once it is back), when it expires, and how the last one ended.
close_computer Ends the current session now. The desktop sleeps 30 seconds later unless another action arrives (see sessions).

Billing

A computer is billed per second while it is awake, at $0.12 an hour, with no minimum. Asleep, it is billed only for its disk, $0.08 per GB-month. Nothing is counted per action or per session. Windows desktops are $0.18 an hour and Android phones $0.15 an hour, on the same terms.

The Computers page lists your computers. The Billing page is where the plan is started, changed and cancelled, once, for the whole account.

Limits

What Limit
Idle sleep 5 minutes without an action
Close grace 30 seconds after close before the computer sleeps
Batch 50 actions per computer_batch
run_shell 30 seconds per command
Files 8 MiB per read or write, absolute paths under /data or /home/desk, no ..
Viewer links 10 minutes by default, 1 hour at most; a new control link revokes the previous one
Rate limits 30 creates, 300 actions and 30 viewer links per minute per key
Screenshot 1200 x 750 model frame on a 1280 x 800 desktop by default; Linux screens 640 to 1920 a side

Errors

Slug Meaning
trial_required 402. The account has no trial or plan yet. A person must add a card on the Billing page to start the free trial.
trial_cap_reached 402. The free trial's $20 of usage is used up. A person must start the plan on the Billing page.
payment_required 402. The last payment failed. A person must update the card on the Billing page.