Fleet overview
Sandboxes running
12,408
Agents
scout
3s ago
harvest
4m ago
triage
2h ago
playground
9h ago
Recent calls
| Agent | Action | Target | ms | Time |
|---|---|---|---|---|
| scout | exec | pnpm test -- --changed | 1,204 | 12:04 PM |
| harvest | browse | docs.harbor.run/egress | 882 | 11:58 AM |
| triage | restore | snap_7f2c…a91 | 310 | 11:41 AM |
| scout | write | /workspace/report.md | 44 | 11:39 AM |
Harbor is somewhere for your agents to run. Sandboxes. Snapshots. Browsers. Volumes. Egress. Replay. The whole machine, on demand
Speed
Fast enough to be a tool call
Boots before the model finishes thinking
A Harbor sandbox is live in under 200ms — fast enough to sit inside a single tool call instead of around it.
Every keystroke is on the record
Processes, files, and outbound requests are captured as a replayable timeline you can scrub through after the fact.
One API, four ways in
The same primitives are reachable over MCP, the CLI, typed SDKs, and plain HTTP. Nothing is exclusive to one surface.
Primitives
Four pieces cover almost every agent workload
harbor.sandboxes.create({
runtime: "node24",
ttl: "15m",
})Run
Spin up an isolated machine with a filesystem, a shell, and a headless browser. It lives as long as the task does.
const snap = await box.snapshot()
await snap.fork({ count: 1000 })Snapshot
Freeze a sandbox mid-task — memory, disk, and open processes — then fork it a thousand times to explore branches in parallel.
egress: {
allow: ["api.stripe.com"],
log: "full",
}Reach
Give an agent the open internet, an allowlist of five domains, or nothing at all. Every request is logged with its response.
volumes: [
{ id: "vol_ws", at: "/workspace" },
]Persist
Mount a durable volume so work survives the sandbox. Reattach it to the next run, or to a different agent entirely.
Control
Isolation, limits, and total replay
- Every sandbox is a hardware-isolated guest, not a shared namespace
- Agents inherit scoped credentials that expire with the run
- Outbound requests are allowlisted, logged, and replayable
- Session recordings retain for 30 days, or export to your own bucket
scout
running · 4m 12s
- Sandbox ID
- sbx_9f4c…12ab
- Egress
- 3 domains allowed
- Owner
- Priya Raman
Developers
Start a sandbox from MCP, the CLI, an SDK, or curl
{
"mcpServers": {
"harbor": {
"command": "npx",
"args": ["-y", "@harbor/mcp"],
"env": { "HARBOR_KEY": "hb_live_..." }
}
}
}Scale
Boring where it counts
SOC 2 Type II
Independently audited, with hardware isolation between every tenant and every run.
40M sandboxes / day
Capacity scales with your fleet. No pre-warming, no reserved pools, no queue.
99.99% uptime
Across nine regions, with automatic placement near whatever your agent is talking to.
Teams
Built with the people running agents in production
We were spending more engineering time babysitting containers than building the agent. Harbor made that whole layer stop existing.
Forking a snapshot a hundred ways and keeping the branch that worked changed how we think about planning entirely.
The replay timeline is the first thing our support team opens. It ended a whole category of unanswerable questions.
Our security review took two weeks instead of two quarters, mostly because the isolation story was already written down.
Journal