Computer Use
Control any desktop like a human, clicks, keyboard, apps
https://project124
terminal
Lightning-fast, isolated compute for AI agents and developers. Sandboxes, GitHub Runners, Xcode builds, and iOS & Android simulators, across every major platform, through one API.
Stop stitching vendors together. Containers, virtual machines, CI runners, simulators, Macs and browsers all come from one SDK, one API key and one bill.
Give every agent its own isolated Linux container: it boots in under 90ms, keeps its state between calls, and costs you nothing while it waits.
user@user-mac: sandal
user@user-mac: ~new ComputerUse (sandboxe)
Boot persistent Linux, Windows and macOS machines with their own kernel and desktop. Snapshot them, restore them in seconds, and clone as many as you need.
Swap slow hosted runners for ephemeral ones on Linux, Windows and macOS: a thousand jobs at once, no queue, nothing to maintain.
sandal-runner-macos · ephemeral
Checkout
Install dependencies
Run cross-platform tests
Upload artifacts
Drive real iOS Simulators and Android emulators: accessibility tree, gestures, screen capture. Fan out a device per test, then tear them all down.
GenymotionGet dedicated Apple-silicon machines for zero-latency Xcode builds and Swift test suites, billed by the minute you actually use.
1
2
3
4
5
6
7
8
9
~
~
Drive headful Chrome on its own kernel over Playwright or CDP. Keep your sessions, snapshot and clone them, and go out from a static IP you own, not a headless build in a shared container.
Steelproject124
Engineers now run fleets of agents that write code in parallel. Each one needs a real computer: isolated, ready in milliseconds, gone when the job is done.
Everything your agents run sits on one compute layer we own, so each product is fast on its own and they get faster together.
user@user-mac: sandal
user@user-mac: ~new ComputerUse (sandboxe)
sandal-runner-macos · ephemeral
Checkout
Install dependencies
Run cross-platform tests
Upload artifacts
project124
1
2
3
4
5
6
7
8
9
~
~
agent@sandal:~/workspace$ pytest -q tests/
collected 24 items
tests/test_agent.py ........ [ 33%]
tests/test_browser.py ...... [ 66%]
tests/test_vision.py ........ [100%]
24 passed in 6.41s
agent@sandal:~/workspace$ xdotool key ctrl+s
agent@sandal:~/workspace$
PS C:\Workspace> .\build.ps1 -Target Release
Restoring packages…
Building 42 projects…
Build succeeded in 38.2s
PS C:\Workspace> sandal desktop --click 412,280
✓ input delivered · frame 60fps
PS C:\Workspace>
1from sandal import Sandbox
2
3# boot a desktop the agent can see
4vm = Sandbox.create(desktop=True)
5vm.screenshot("before.png")
6
7vm.click(x=412, y=280)
8vm.type("hello from the agent")
9vm.key("cmd+s")
10
11# read the screen back
12frame = vm.stream.latest()
13assert frame.contains("Saved")
➜ sandbox sandal desktop --stream
connecting to vm_7c31…
✓ stream open · 60fps · 18ms latency
screenshot → before.png
click(412, 280) · type · cmd+s
✓ saved
➜ sandbox
Browser and desktop control, remote desktop, static IPs, your own domains, SSH, GitHub and more. Every capability your agents will ask for next is already on the machine, so you ship the product instead of the plumbing.
$ sandal create --pool warm
matched pre-warmed container
allocating from warm pool…
** completed **
[Elapsed time: 01:00s]
0 idle wait · instant execution
1s cold starts with pre-warmed containers and intelligent resource allocation. Zero waiting, instant execution.
Learn moreIf you can call a function, you can start a machine. The hard parts stay ours.
import { Sandal } from "@sandal/sdk";const sandal = new Sandal({ apiKey: process.env.SANDAL_API_KEY });const sb = await sandal.sandboxes.create({ template: "node-24", timeoutSeconds: 900,});await sb.fs.write("/app/index.ts", src);const result = await sb.exec("node --version");console.log(result.stdout); // v24.3.0const url = await sb.expose(3000);await sb.pause();Boot a container, a VM, a runner, a phone or a Mac from the same client, with the same calls. Pick a runtime on the left; the windows that open are what your agent gets back.
$ sandal run container ubuntu-24.04
✓ container booted · ctr_9f2a · 88ms
$ python train.py --epochs 3
epoch 1/3 loss 0.42 acc 0.86
epoch 2/3 loss 0.19 acc 0.94
epoch 3/3 loss 0.08 acc 0.98
✓ completed in 4.2s · idle cost $0.00
Run every agent, test and build you want without watching the bill. You pay by the minute, at up to 90% less than you pay today, and nothing at all while a machine sits idle. Scale stops being a budget conversation.
Billed by the second at $0.036/hr for 4 vCPU / 8 GB. Others at their published unit rates for the same shape, wall-time assumed; a paused Sandal machine is not billed.
Pause it and the meter stops
A machine is billed for every second it is running. Pause it between bursts and it costs nothing until you resume, so a fleet that works in office hours is not a fleet you rent around the clock.
Sandal is the infrastructure underneath real products. At these prices you can build the ones that were never viable before: a thousand sandboxes at once, a device for every test, a Mac for every build.
Give every agent its own repo, terminal and test run, on machines that cost nothing idle.
Turn a spec into a tested pull request, with a fleet of agents building in parallel.
user.plan is undefined for trial accounts. Suggested: user.plan?.tier
Clone the PR, run the suite and reproduce the bug before you comment, on every pull request.
Let your agents tap through real iOS Simulators and Android Emulators, a device per test.
Compile, sign and ship iOS apps for your users on real Macs, in minutes, at any volume.
Give your agent a real desktop it can see and drive, so it finishes work in the apps people use.
“We’ve tried more sandbox tools than I can count, so we built our own. Sandal outperforms them all by a mile. Honestly, it’s the only AI sandbox that doesn’t annoy the s**t out of me.”
12,400+
Machines launched
4.2s
Avg startup time
6.8h
Avg agent runtime

Jakub Klima
CEO @ Enter
Environments spin up in sub-seconds (under 150ms for standard sandboxes). Agents go from intention to execution almost instantly without waiting for cold starts.
Your agents get their own machines across Linux, macOS, Windows, iOS and Xcode in milliseconds, and you stop paying for idle.