agental

A real computer that your agent drives over HTTP.

Each agent gets its own Linux machine with a shell, a browser and a screen. A real computer, ready for any task.

sandbox-01
sandbox-01 · shell
$ git clone https://github.com/acme/my-app Cloning into 'my-app'... done. $ cd my-app && npm install added 672 packages in 28s $ npm test ✓ 212 tests passed (12.4s) $ npm run dev ▲ Next.js - Local: http://localhost:3000 ✓ Ready in 846ms
sandbox-01 · browser
← →http://localhost:3000
My AppHomeTasksAPIAbout
Build something great.A Next.js app running inside your agent's own machine.Get started
sandbox-01Running
vCPU2
Memory4 GiB
Disk40 GiB
ImageUbuntu 24.04
Uptime6h 23m
Cost$0.027 / hour
sandbox-01 · desktop
Tue 10:24

Run anything, and watch it run.

A command goes in as a list of arguments and comes back with its exit code, stdout and stderr.

  • Wait up to 90 seconds for a command, stream its output as it runs, or leave it running for up to 10 minutes.
  • Start servers and long builds in the background, and read them back by id.
  • Read and write files over the same API.
  • Commands run as root, so installing packages and starting containers need nothing more.
  • The secrets of the sandbox's template reach every command as variables and files.
Read the commands guide →
sandbox-01 · shell
$ agental exec sbx_7f3e2a9c41d0b8e6 -- npm test
✓ 212 tests passed (12.4s)
exit 0
$ agental scp ./seed.sql sbx_7f3e2a9c41d0b8e6:/root/app/
seed.sql 100% 14KB
$ agental ssh sbx_7f3e2a9c41d0b8e6 --tmux
root@sandbox-01:~#

Run it every hour. Pay for the minutes it runs.

Give a sandbox a command and a schedule. When it is stopped, a run starts it, runs the command, and stops it again, keeping its disk.

  • Every few minutes, hours or days, or a cron expression in your time zone.
  • The whole machine for each run: its disk, its packages, its browser and its secrets.
  • Each run's exit code and output are kept, and a webhook says when one fails.
  • A run that finds someone using the sandbox leaves it running.
  • An agent can schedule its own follow-up: check the deploy at nine, retry the scrape every six hours.
Read the schedules guide →
console · price-watch · schedules
scrape-pricesevery hourDonenext 14:00
daily-digest07:00 on weekdaysDonenext Tue 07:00
backup02:30, while it runsSkippednext 02:30
your laptop · terminal
$ agental schedule add price-watch --every 1h -- python scrape.py
✓ scrape-prices runs every 1h · next 14:00
stopped, it is started for the run and stopped after

From nothing to a shell, in one command.

One command signs you in through your browser, installs the agental command and your agents' skills, and opens a shell in a new sandbox.

  • The browser asks you to allow your computer, and the command gets an API key of its own, named for it. Delete the key in the console and it is signed out.
  • The SDKs use the same sign-in, so a script on your computer needs no key either.
  • Run by an agent, it makes the sandbox and prints the commands to use it with, instead of opening a shell.
Read the command line guide →
your laptop · terminal
$ npx agental@latest sh
Opening your browser to sign in…
✓ Signed in. A key was made for this computer.
✓ Installed agental and your agents' skills.
Making a sandbox (small)…
✓ sandbox-01 is running.
root@sandbox-01:~#

Everything an agent reaches for, already there.

Every sandbox starts with the languages, build tools and coding agents a task asks for first, so its first command does the work and not the setup.

  • Python 3.12 with pip and uv, and Node.js 24 with npm, pnpm, bun and deno.
  • Go 1.27, Rust 1.99, Java 21 with Maven and Gradle, Ruby 3.2, PHP 8.3, and GCC with CMake.
  • Docker with Compose and BuildKit, git, the GitHub CLI, ripgrep, jq and ffmpeg.
  • Claude Code, Codex, opencode, Gemini CLI, pi, Cursor, Prime Agent, Kimi Code and Mistral Vibe, each signed in with your own key and told it is on an agental sandbox, so a prompt starts with the task.
  • The assistants OpenClaw and Hermes, which you talk to from a chat app, with their gateways off until you start one.
  • Root, so anything else is one apt-get away, and a snapshot keeps it for the next sandbox.
  • About half of even the tiny size's 20 GiB disk, and most of every larger size's, is left for your work.
See everything in the image →
sandbox-01 · what is installed
Python3.12
Node.js24
Go1.27
Rust1.99
Java21
Ruby3.2
PHP8.3
DockerCompose, BuildKit
Coding agents, ready for your keys
Claude CodeCodexopencodeGemini CLICursorpiKimi CodeMistral VibePrime Agent

A browser in every sandbox.

A Chromium made to show as a browser on an ordinary computer is in the image, with the command-line tools agents drive it with. There is nothing to install.

  • BetterChromium in Chrome's place, a Chromium made to show as a browser on an ordinary computer does. It runs without a window unless a desktop is on.
  • playwright-cli opens pages, clicks, types and takes pictures, and writes what it reads to a file instead of printing a whole page.
  • Turn it on to be driven from outside, and your own Playwright, Puppeteer, browser-use or Stagehand connects to it from your computer, at an address of its own.
  • It runs on the sandbox's own CPU and memory, so there is no charge by the browser-hour.
  • Its cookies and logins are kept on the sandbox's disk, through a stop and a start.
  • The address asks for no login, so keep it as you would a password. Turned off, it leads nowhere.
  • Fonts for Latin, Chinese, Japanese, Korean and emoji, so a screenshot or a PDF is drawn as it would be elsewhere.
Read how to drive it from your computer →
sandbox-01 · Chrome
localhost:3000/invoices
InvoicesNew invoice
1042 · Northwind Ltd · paid
1043 · Halden & Co · due 2 Nov
1044 · Oberlin GmbH · draft
playwright-cli
$ playwright-cli snapshot
- heading "Invoices"
- button "New invoice" [e6]
- table (3 rows)
$ playwright-cli click e6
✓ clicked "New invoice"

A desktop you can watch.

Turn the desktop on and the sandbox has a screen. Programs open windows on it, and you watch it in a browser tab.

  • An Xfce desktop, 1280 by 800 unless you ask for another size.
  • Chrome with a window, or any program that needs one: set DISPLAY to :0.
  • An agent takes a picture of the screen, then clicks, scrolls, types and presses keys, one call each: the actions a model's computer tool asks for.
  • A picture can be a JPEG, of a part of the screen, made smaller, so a model reads fewer tokens. Long text is put on the clipboard and pasted at once.
  • Its address is hard to guess and asks for no login, so keep it as you would a password. Turned off, it leads nowhere.
  • To show someone the screen, give them a link of its own: to watch only, which takes no click or key at the machine, or to use it, for ten minutes or as long as you say.
  • It stays on through a stop and a start, and comes back with nothing open on it.
Read the desktop guide →
sandbox-01 · desktop · 1280 × 800
Chrome · localhost:3000/invoices/new
CustomerOberlin GmbHAmount3115.00
Watch linkUse for 10 min

Your agent can read the docs for you.

One command gives the agent on your computer two skills: the brief, which teaches it to create a machine, work in it, handle every error and put it away, and one that moves the repository it is working in, uncommitted work and all, into a sandbox.

  • They work in Claude Code, Codex, Cursor and opencode, and Claude Code can also take them as a plugin.
  • A few lines in AGENTS.md or CLAUDE.md send every build, test and Docker run to a sandbox, so none of it runs on your computer.
  • They are written for this deployment, with its sizes, its limits and its addresses, and an update brings the brief as it is that day.
  • The whole API is also published as OpenAPI 3.1.
Read about the agent skills →
your laptop · terminal
$ npx skills add https://agental.io -g
✓ agental · make, work, recover, put away
✓ agental-move-repo · moves this repo, uncommitted work too
AGENTS.md
# Builds and tests
Run every build, test and Docker command in an agental
sandbox, never on this computer. Use the agental skill.