# Maritime | Host persistent AI agents, each in its own VM

Backed by
Combinator
Host persistent agents
on the cloud.
Give each of your users their own VM, forever.
Start free
Copy Agent Instructions
Book a demo
If you are an AI agent: read https://maritime.ac/agents.md and follow it in order. This page as markdown: https://maritime.ac/index.md. Index of everything: https://maritime.ac/llms.txt.
Developers building on Maritime work at these companies
Govern d'Andorra
Govern d'Andorra
Give your agents true autonomy.
Their own space to explore, build, break things, and try again.
atlas · /data
atlas
reports
september.pdf
today
workspace
clients.xlsx
08:03
journal.md
412 entries
memory
2026-09.md
Ary
online
can you move our 9am?
18:03
ok, moving to 10am
18:04
done
18:05
Type a message
ok, moving to 10am
done
mail.google.com
calendar.google.com
signed in as atlas
9:00
10:00
11:00
Sync with Ary
vm booting...
Persistent workspace.
Files, repos, browser auth that stays signed in, etc. An agent can come back after a week and pick up where it left off.
TEX
paper.tex
paper.pdf
root@atlas: ~/paper
+
$
apt install texlive-latex-base
Get:
1
texlive-binaries
8.1 MB
Get:
2
texlive-base
21.4 MB
Get:
3
texlive-latex-base
1.2 MB
Fetching
30.7 MB
Setting up texlive-latex-base ...
$
pdflatex paper.tex
Output written on
paper.pdf
(4 pages).
$
libreoffice paper.pdf
$
paper.pdf · LibreOffice Draw
Snapshot-Restore Scheduling for Persistent Agent Micro-VMs
Ary Shrivastava, Maria Gorskikh, and Brandon Li
September 3, 2026
Abstract
Long-lived software agents spend most of their lifetime idle, yet the conventional deployment keeps a full virtual machine resident for each of them. We study a scheduler that snapshots an idle guest to disk and restores it on the next inbound message, so that a parked agent costs only its storage. We characterise the restore path, show that its latency is dominated by page-cache warm-up rather than by the hypervisor, and give a bound on the expected monthly cost of an agent as a function of its wake rate.
1
Introduction
A persistent agent is a process with a disk, a set of credentials, and a schedule of its own. Unlike a request handler, it has state that outlives any single interaction, which rules out the stateless scaling model of serverless platforms. We model an agent as an alternating sequence of awake and asleep intervals and write a(t) ∈ {0, 1} for its state at time t. The cost over a horizon T is then
C
(
T
) =
c
s
S
T
+
c
v
∫
0
T
a
(
t
) d
t
(1)
where S is the size of the snapshot on disk and cₛ, cᵥ are the storage and compute prices. For the agents in our fleet the second term is small: a typical agent is awake for eleven minutes a day, and the bound in Section 4 follows from this observation alone.
2
The restore path
We restore a guest in three steps. The memory snapshot is mapped rather than read, so the first instructions execute before the file is resident; the block device is attached as a thin clone of the parked volume; and the network tap is re-created with the address the guest had when it slept.
Download and run software.
Apt-get any library you need, run and operate headful Chrome, download WhatsApp, clone repos, and so on.
train.py
model.py
data.py
1
2
3
4
5
6
7
8
9
10
11
12
13
import
torch
from
tqdm
import
tqdm
from
model
import
Net
from
data
import
loader
net
=
Net
().
to
(
"cuda"
)
opt
=
torch
.
optim
.
Adam
(
net
.
parameters
(),
lr
=
3e-4
)
for
epoch
in
range
(
5
):
bar
=
tqdm
(
loader
,
desc
=
f
"Epoch {epoch + 1}/5"
)
for
x
,
y
in
bar
:
loss
=
net
.
step
(
x
,
y
)
opt
.
step
()
bar
.
set_postfix
(
loss
=
f
"{loss:.2f}"
)
torch
.
save
(
net
.
state_dict
(),
"workspace/model.pt"
)
TERMINAL
PROBLEMS
OUTPUT
$ python train.py
Run AI generated code.
Have your agent write and serve web apps and APIs, or run scripts it wrote itself.
MD
notes.md
report.pdf
root@atlas: ~
+
$
node server.js
listening on :8080
$
MD
notes.md
report.pdf
root@atlas: ~
+
$
node server.js
listening on :8080
$
MD
notes.md
report.pdf
root@atlas: ~
+
$
./backup.sh
synced 1.2 GB to s3
$
MD
notes.md
report.pdf
root@atlas: ~
+
$
pdflatex paper.tex
Output written on paper.pdf.
$
MD
notes.md
report.pdf
root@atlas: ~
+
$
python ingest.py
48,000 rows written
$
MD
notes.md
report.pdf
root@atlas: ~
+
$
node server.js
listening on :8080
$
MD
notes.md
report.pdf
root@atlas: ~
+
$
./backup.sh
synced 1.2 GB to s3
$
MD
notes.md
report.pdf
root@atlas: ~
+
$
pdflatex paper.tex
Output written on paper.pdf.
$
MD
notes.md
report.pdf
root@atlas: ~
+
$
python ingest.py
48,000 rows written
$
MD
notes.md
report.pdf
root@atlas: ~
+
$
node server.js
listening on :8080
$
Actual isolation and safety.
Give your agent the autonomy to try anything, and safely mess up along the way.
Every agent gets a real, persistent machine
that's up in half a second.
An actual VM.
A Firecracker micro-VM with its own kernel, on bare metal, with preloaded dependencies.
A persistent disk.
Files, memory, logins, and packages stay through sleep, restart, and redeploy.
Really fast boot and wake latency.
New machines boot in 0.5s. Sleeping ones are back in 0.6 s, mid-task.
Run your agent here.
Dashboard, CLI, and SDK.
Deploy an agent
Free for
3
agents.
Dashboard
Deploy from a template, connect Telegram, watch the fleet.
CLI
One command from a template or repo, then talk to it in the shell.
TypeScript SDK
One per user with your own id, then chat and exec.
Python SDK
The same calls from Python.
Or keep your agent, but give it a computer.
One MCP. A desktop per user id.
Early access
Setup
Add one MCP server to the agent you already host.
In use
Your model asks for a computer by user id and drives it.
Hand over
Give a person the screen with one link, then take it back.
Computers reference
// any client that speaks MCP: Cursor, Claude Code, your own agent
{
"mcpServers"
: {
"maritime-computers"
: {
"type"
:
"http"
,
"url"
:
"https://mcp.maritime.sh/mcp"
,
"headers"
: {
"Authorization"
:
"Bearer mk_..."
}
}
}
}
$
claude
mcp
add
--
transport
http
maritime
-
computers
\
https
:
//mcp.maritime.sh/mcp
atlas · desktop
live · noVNC
Take over
Applications
Places
10:42
Hetzner Accounts
←
Search or type a URL
Terminal
agent@atlas:~$
A headful Linux desktop inside the agent's own micro-VM. It opens a browser, clicks, types, and files things. You watch live, or take the mouse.
Try a desktop agent
Building an agent startup?
Get up to
$10,000
in credits.
Apply
Deploy now
