Computing for Agents

Replayable sandboxes and fluid GPU compute for agents, simulations, and batch workloads.

Start now

Every machine is replayable

Numinous Cloud continuously checkpoints memory and disk at the machine's own process events. Rewind to any state, restore it exactly, or fork it into new trials.

Full environment control

Control what the machine can reach, what runs inside it, what it starts with, and what survives after it stops.

  1. Allow, deny, and pin exactly what a sandbox can reach. Policy is enforced by the infrastructure, not trusted to the workload.

    DNS + proxy + kernel enforcement
  2. Run Docker-in-Docker, Compose, or Kubernetes inside the sandbox. Checkpointing, replay, networking, and storage still apply to everything running inside.

    dind · compose · k3s
  3. Templates package the machine you want to start from. Shared ROMs mount large immutable files into many sandboxes without copying them into each one.

    templates from above, ROMs from below
  4. Attach persistent writable storage independently of the sandbox lifecycle. Destroy the machine; the volume does not move.

    single-attach, billed by GiB-hour

Built-in LLM usage limit depletion handling

When the model provider says you are out of credits, the run does not die. The machine is checkpointed, suspended at no compute cost, and resumed from the exact same state when credit comes back.

Don't lose runs to LLM API hiccups.

Efficient GPU sandboxes, no wasted compute

A whole card when you need one, a fraction when you don't, or a deadline and we pack the work in. Pay for the GPU you use, not the card you don't.

  1. A quarter of the card, all the time. A persistent quarter, half, or any share of a card, with a hard cap on compute and memory. Same sandbox, same API.

    nc = Numinous()
    sb = nc.sandboxes.create(
        image="pytorch/pytorch:2.4.0-cuda12.4-runtime",
        gpu=1, gpu_type="H100",
        gpu_mode="shared", gpu_fraction=0.25,
    )  # labels["numinous.gpu_granted_fraction"] == "0.25"
    best for
    agents, smaller models, inference servers, dev environments
    pricing
    your fraction of $3.89 per H100-hour, billed by occupancy
  2. The whole card, a guaranteed share of every hour. The card is virtualized. You are guaranteed fifteen minutes of it every hour, taken whenever your work needs them, in bursts of any length, at full speed. Other tenants fill the gaps.

    nc = Numinous()
    sb = nc.sandboxes.create(
        image="pytorch/pytorch:2.4.0-cuda12.4-runtime",
        gpu=1, gpu_type="H100",
        gpu_mode="shared",   # a guaranteed share of the card's time
    )
    best for
    agents that burst, evals, anything idle most of the hour
    pricing
    the card rate for the minutes you hold it
  3. Trade time for lower compute costs. Submit jobs and a deadline. We pack them into idle capacity across the fleet and finish in time, for less than a card per job.

    nc = Numinous()
    batch = nc.gpu.batch(
        gpu_type="H100",
        deadline="24h",
    )
    batch.map(run_eval, tasks)
    best for
    evals, simulations, batch inference, offline workloads
    pricing
    per GPU-hour, lower the longer the deadline
  4. A GPU when you need one. A whole GPU on demand, an H100 for example, checkpointed like every other machine here.

    nc = Numinous()
    sb = nc.sandboxes.create(
        image="pytorch/pytorch:2.4.0-cuda12.4-runtime",
        gpu=1, gpu_type="H100",
        gpu_mode="dedicated",
    )
    best for
    training, inference, development, dedicated workloads
    pricing
    $3.89 per H100-hour, billed per second while it runs

Fleet cost, throttled by design

Left alone, a fleet grows to whatever the harness asks for and the bill grows with it. Each limit is a gate or a throttle on the fleet, and you watch the number come down as they switch on.

from numinous import Numinousnc = Numinous() nc.limits.set(    max_concurrent=40,    monthly_budget_usd=2000,    budget_mode="hard",) for task in tasks:    nc.sandboxes.create(        image="python:3.12", vcpu=4, mem_gib=8,        auto_suspend_idle_seconds=300,        ttl_seconds=7200,        wait=False,    )

$0.06 per vCPU-hour, 2 GiB included. $3.89 per H100-hour. Nothing preemptible.

Billed per second, no commitment. The same 2 vCPU / 4 GiB trial: Modal $0.238/hr, Daytona $0.166/hr, Numinous $0.12/hr. Every trial is checkpointed at every tool call, so when a machine dies the trial pauses and resumes; it does not fail. Committed capacity for teams that know their shape: talk to us.

Built for agents, and for the people who run them

Self-serve onboarding for an LLM, a CLI and SDK with one surface, failures you can branch on, states you can wait on, and limits you set yourself.

Pricing

Per second. Nothing preemptible, no spot tier. Prepaid credits. Committed rates are half of on-demand and start at a $25k monthly floor.

sandboxmemoryon-demandcommitted
1 vCPU2 GiB$0.06/hr$0.03/hr
2 vCPU4 GiB$0.12/hr$0.06/hr
4 vCPU8 GiB$0.24/hr$0.12/hr
8 vCPU16 GiB$0.48/hr$0.24/hr
16 vCPU32 GiB$0.96/hr$0.48/hr
32 vCPU64 GiB$1.92/hr$0.96/hr
64 vCPU128 GiB$3.84/hr$1.92/hr
  • H100, whole card$3.69 / hrfractional and time-shared at your share of this rate
  • RTX 6000, whole card$2.89 / hrfractional and time-shared at your share of this rate
  • Suspended state$0.12 / GiB-monthinstead of compute while a machine sleeps
  • Snapshots, templates, ROMs$0.08 / GiB-monthcontent-addressed and deduplicated
  • Persistent volumes$0.10 / GiB-monthprovisioned size, sandbox or GPU kind
  • Artifact egress$0.02 / GiBfree to your own in-region S3
  • Provider faults$0seconds lost to provider_* causes are never billed

Start with a sandbox. Bring your agent.

Prepaid credits, no minimum. Committed capacity when you know the shape of your fleet.

Start nowTalk to us about committed