Skip to content

Compare

Promigence vs Modal

How Promigence and Modal compare for batch agent work and long-running agents. Each Modal fact comes from Modal's own pages, with a link and the date it was read.

Also as markdown: /compare/promigence-vs-modal.md

Modal and Promigence both start sandboxes from an API and run agent code inside them. Everything around the sandbox differs. This page compares the two on two kinds of work: batches of identical sandboxes (evals, rollouts, test fan-out), and agents that run for a long time and spend much of it waiting.

Every Modal cell comes from Modal's own documentation or pricing page and links to it, read on 25 Oct 2026. Where those pages do not cover a row, the cell says so instead of guessing. The Promigence cells describe features that are built today, named by the command that does the work.

Batch work#

CriterionPromigenceModal
Start N copies of one environmentpromigence run --count N, each copy with PROMIGENCE_INDEX and PROMIGENCE_SEEDEach Sandbox is created with Sandbox.create, and several can start from the same Image or Filesystem Snapshot, which Modal's snapshots guide calls forking (Modal Sandboxes, Modal snapshots, read 25 Oct 2026); a count option is not stated on Modal's site (25 Oct 2026)
Know the cost firstpromigence run quote prices the run before anything startsPer-second rates are published (Modal pricing, read 25 Oct 2026); a quote for a run before it starts is not stated on Modal's site (25 Oct 2026)
Hard ceiling--cap: a run quoted above it is refused, or --allow-partial starts what fitsA monthly Workspace budget and a Workspace spend limit, plus monthly Environment budgets on Team and Enterprise (Modal budgets, read 25 Oct 2026); a cap per run is not stated on Modal's site (25 Oct 2026)
Check the environment before the taskA snapshot built with --verify runs its verify command when it is built, and every sandbox starts from that checked snapshotReadiness probes: a TCP probe that waits for a port, or an exec probe whose command must exit 0, and wait_until_ready() blocks until one passes (Modal Sandboxes, read 25 Oct 2026)
Who failed: environment or taskThe validity report, plus exit 3 for the environment and exit 4 for the taskExit codes for each command and for the Sandbox, and an Exit Reasons metric for Sandboxes evicted over their memory request (Modal Sandboxes, Modal sandbox pricing and resources, read 25 Oct 2026); a split of environment failures from task failures is not stated on Modal's site (25 Oct 2026)
Retry broken environmentspromigence run replay, only when asked, reported apart from the run's own figuresNot stated on Modal's site for Sandboxes (25 Oct 2026)
Inspect a failurerun open reopens a failed sandbox in the state it was in when it failed; run report --sandbox SID --repro prints a command that runs it againmodal shell connects to a running Sandbox by ID (modal shell, read 25 Oct 2026), and the snapshots guide lists backing up a Sandbox's state for debugging (Modal snapshots, read 25 Oct 2026); an experimental exit snapshot, in Modal's JavaScript and Go SDK references, saves a Sandbox's filesystem when it exits, an abrupt exit included, and a new Sandbox can start from it (Modal JS SDK: Sandbox, Modal Go SDK: Sandbox, read 25 Oct 2026); reopening a Sandbox with its processes at the moment it failed is not stated on Modal's site (25 Oct 2026)
Grading in a clean copy--grade CMD runs your grader in a fresh copy of the snapshot with the agent's file changes applied, after the agent's process has ended; --holdout CMD reports the gap to a second test setNot stated on Modal's site (25 Oct 2026)
Safe retries from a script--idempotency-key: repeating a command with the same key within 24 hours returns the first resultNamed Sandboxes: a name is unique within an App, only one running Sandbox can use it at a time, and creating a second one with it raises an error (Modal Sandboxes, read 25 Oct 2026)
Name the exact environment laterSnapshot IDs, and snapshot export writes a portable bundleImages and Filesystem Snapshots have IDs; Filesystem and Directory Snapshots are kept 30 days by default unless you set another TTL or opt out of expiry (Modal snapshots, read 25 Oct 2026); a portable export is not stated on Modal's site (25 Oct 2026)

Long-running agents#

CriterionPromigenceModal
Full environment ready at startSnapshots of a repository with its services and build, checked by a verify commandCustom Images built ahead with Image.build and published as named Images, plus readiness probes (Modal Sandboxes, read 25 Oct 2026)
Waiting without paying by the secondsandbox pause and sandbox autopause --after DUR; paused time is not billedA pause call for Sandboxes is not stated on Modal's site (25 Oct 2026). Memory Snapshots, in alpha, save a Sandbox's memory and files and end it; a new Sandbox restored from one has the same processes running, and the snapshot expires after 7 days (Modal snapshots, read 25 Oct 2026). idle_timeout ends an idle Sandbox, and Filesystem Snapshots keep its files for a new Sandbox later (Modal Sandboxes, Modal snapshots, read 25 Oct 2026)
More time for a live sandboxsandbox extend sets a longer timeout, within the run's spend capThe lifetime is set at creation, 5 minutes by default and up to 24 hours; for longer work, Modal suggests saving the state as a Filesystem Snapshot and restoring it in a new Sandbox (Modal Sandboxes, read 25 Oct 2026); extending a running Sandbox is not stated on Modal's site (25 Oct 2026)
Save progress as a new starting pointsandbox snapshot SID, without stopping the sandboxsnapshot_filesystem() returns an Image that new Sandboxes start from, and Directory Snapshots save one directory (Modal snapshots, read 25 Oct 2026)
Network boundaryAn allow-list per run (--allow HOST) or no network (--network none); sandbox network lists the hosts a sandbox was refused, and --cut ends its outbound access for goodblock_network, an IP-range allowlist and a domain allowlist (beta, TLS on port 443), with an alpha way to replace the outbound policy of a running Sandbox (Modal networking and security, read 25 Oct 2026)
CredentialsStored secrets by name, given per run or per command; a secret bound to a host can be kept out of the sandbox (secrets set --host, --no-raw)Secrets as environment variables (Modal Sandboxes, read 25 Oct 2026); secret injection (beta) adds headers to outbound HTTPS requests outside the Sandbox, so the key never appears inside it (Modal secret injection, read 25 Oct 2026)
Human accesssandbox shell for an interactive terminal, sandbox ssh for SSH, scp and sftpmodal shell with a Sandbox ID (modal shell, read 25 Oct 2026)
Reach a port in the sandbox from outsidesandbox ssh forwards a port with -LTunnels give a port a public URL, and Sandbox Connect Tokens authenticate HTTP and WebSocket requests (Modal networking and security, read 25 Oct 2026)
Rebuild when the code movessnapshot create --track rebuilds on every push to a connected GitHub repositoryImage.build runs from your deploy flow, a scheduled job or CI (Modal Sandboxes, read 25 Oct 2026), and Modal's continuous deployment guide gives a GitHub Actions workflow that deploys on every push to main (Continuous deployment, read 25 Oct 2026); a rebuild that Modal starts on its own when you push is not stated on Modal's site (25 Oct 2026)

Account and access#

CriterionPromigenceModal
Billing unitPer secondPer second, on the higher of the resource request and actual use (Modal sandbox pricing and resources, read 25 Oct 2026)
List price$0.0504 per vCPU-hour and $0.0162 per GiB-hour, metered per secondSandbox CPU $0.00003942 per physical core (2 vCPU equivalent) per second and memory $0.00000667 per GiB per second (Modal pricing, read 25 Oct 2026)
PlansFree, Pro at $50 a month, Max at $250 or $500 a month, Enterprise at a custom priceStarter at $0 plus compute, Team at $250 a month plus compute, Enterprise at a custom price (Modal pricing, read 25 Oct 2026)
Sign-up and free creditSign up for free; every plan starts with $50 of free credit$30 of free credits a month on Starter and $100 a month on Team (Modal pricing, read 25 Oct 2026)
Sandboxes at once20 on Free, up to 100 on Pro, up to 500 or 1,000 on Max100 containers on Starter and 5,000 on Team (Modal pricing, read 25 Oct 2026)
Organization structureOrganizations hold projects; each API key belongs to one projectWorkspaces with Owner, Manager and Member roles, divided into Environments that each have their own Secrets (Modal workspaces, Modal environments, read 25 Oct 2026)
Monthly limitpromigence project capWorkspace budget and spend limit; Environment budgets on Team and Enterprise (Modal budgets, read 25 Oct 2026)
Run in your own cloudOn the Enterprise plan: talk to usNot stated on Modal's site (25 Oct 2026); Enterprise customers can use committed spend through the AWS and GCP marketplaces (Modal pricing, read 25 Oct 2026)

Where Promigence fits#

Promigence fits batches whose results have to be trusted: the run is quoted and capped before it starts, every snapshot is checked by its verify command when it is built, and the report keeps environment failures apart from task failures. Long agents that wait most of the time fit too, since a paused sandbox is not billed.

To try it, start from the quickstart. Every plan starts with $50 of free credit.

Sources#

The Modal pages behind this comparison, all read on 25 Oct 2026, are networking and security, pricing, Sandboxes, snapshots, secret injection, sandbox pricing and resources, budgets, workspaces, environments, continuous deployment, modal shell, and the JavaScript and Go SDK references for Sandbox. The Promigence cells come from the CLI reference, the errors and exit codes page and the pricing section.

If anything on this page is out of date or wrong, write to support@promigence.ai and we will correct it and note the date.

Get started

Leave your work email and we will get you started.

See our Privacy Policy for how we use your email.