Skip to main content
Agent37 gives each machine its own always-on Linux sandbox with a persistent disk, created in a few seconds. Connect your Agent37 workspace with a custom pool.

Why Agent37

  • Omnara’s tools, baked in. agent37-omnara is Ubuntu 24.04 with the same development tools as Omnara’s default machine environment, so a pool only needs an API key. For your own stack, turn a public registry image into a template with one API call, or build one from a Dockerfile in Agent37’s cloud with no local Docker.
  • A URL for every port. A dev server or app an agent starts gets its own HTTPS address at https://{instance}-{port}.agent37.app, and a signed link opens it in your browser.
  • SSH into any machine. Add your public key once, then use ssh, scp, or VS Code Remote to watch an agent work or pick up where it left off. See SSH.
  • Pay for the minutes you use. Machines bill by the minute from a prepaid balance, and auto top-up refills it before it runs out.

Set up an Agent37 pool

1

Create an API key

In the Agent37 dashboard, create an API key and store it as an org-owned secret in Omnara. Machines run and bill in that key’s workspace, so add funds before you create the pool: a workspace that has never been topped up runs one small machine.
2

Choose a template

Leave the template empty to use agent37-omnara: Ubuntu 24.04 as root with the default machine environment preinstalled: Python, Node.js, Go, PostgreSQL, Redis, gh, rg, PDF tools, and Playwright with headless Chromium.For your own tools, use a template in your Agent37 workspace. Register a public linux/amd64 image that meets the custom image requirements with one call:
  • Omnara starts the daemon with a command on the running machine, so the image’s main process only has to keep running. The entrypoint above does that for an image whose own command exits, and cleans up the processes agents leave behind.
  • Agents run commands as the image’s default user, so pick an image that runs as root if they should install packages.
  • Machines are containers, so pick an image that doesn’t need Docker or systemd.
  • To build one from a Dockerfile, use npx agent37 templates build. See Agent37 templates.
3

Create the pool

On the Machines page, click New pool and choose Agent37. Enter the credential, the template (or leave it empty), the CPU and memory, and capacity limits.Each machine is 2 vCPU with 4 GB of memory, or 4 vCPU with 8, 16, or 32 GB. Only environment variables whose names use letters, digits, and underscores, and don’t start with a digit, reach the machine.To use the API instead, call Create a pool with the fields under API fields.

API fields

When you create a pool through the API, send these fields in the Create a pool request. provider_config applies to the whole pool, and default_machine_provider_options sets the options for each new machine, which project grants and agent configs can override. For example:
  • template is optional. Omit it to use agent37-omnara, or set the name of a template in your Agent37 workspace. Add @<revision>, such as omnara-machine@2, to pin a published revision.
  • CPU and memory must be one of Agent37’s sizes: 2 vCPU with 4096 MB, or 4 vCPU with 8192, 16384, or 32768 MB.
  • Optional: startup_script in default_machine_provider_options runs on each new machine before the daemon starts, and allowed_templates in provider_config is an allowlist.