Remote Simulator Limits & Pricing
Remote Simulators are in early access. Access is switched on per customer while we learn how people use it. Email [email protected] and we will turn it on for your account.
Every number here applies to the nano simulator service. Micro Remote Simulators run in Browser Run and do not have final published pricing yet.
Session limits
| Limit | Value |
|---|---|
| Artifact size | 20 MiB (20,971,520 bytes) |
| Idle before hibernation | 60 seconds |
| Meter stops after client goes silent | 5 minutes, backdated to the last heartbeat |
| Hard session ceiling | 3 hours |
The artifact ceiling is enforced twice, once by the CLI before upload and once by
the service. Assets are embedded as base64 data: URIs, which costs about a third
on top of their raw bytes, so the practical asset budget inside a 20 MiB artifact
is roughly 15 MB of real image data.
Your account also has a cap on how many simulators may run at once. Those per-plan numbers are still being set, so read your current cap on the billing page rather than assuming one.
Pricing
| Meter | Rate |
|---|---|
| Simulator time | $0.05 per simulator-hour |
| Box time, awake with no simulator | $0.02 per box-hour |
| Server-side build time | $0.005 per minute |
| Retained storage for hibernating boxes | $0.05 per GB-month |
Simulator time is what a remote simulator session costs. It accrues while the session is running and stops when you close it, when the client stops heartbeating, or at the 3-hour ceiling, whichever comes first.
Hibernation stops the infrastructure cost but not the meter. An idle simulator
closes itself, and you can stop the meter immediately with rnx close.
The Cloudflare limits underneath
A remote simulator is a Durable Object driving a Dynamic Worker isolate, so Cloudflare’s platform limits are the real floor under ours. These are Cloudflare’s published paid-plan numbers:
| Cloudflare limit | Value |
|---|---|
| Durable Object SQLite storage, per object | 10 GB |
| Durable Object stored key and value, combined | 2 MB |
| Durable Object maximum row or BLOB | 2 MB |
| WebSocket message received | 32 MiB |
| Worker CPU time per invocation | 30 seconds default, up to 5 minutes configurable |
| Worker startup time | global scope must parse and execute within 1 second |
| Worker script size | 10 MB compressed, 64 MB uncompressed |
| Subrequests per invocation | 10,000 |
Two things worth knowing about how those interact with billing. Cloudflare does not accrue billable duration for a hibernating Durable Object, which is why rnx hibernates a simulator after 60 idle seconds rather than holding it awake. And only inbound server-side WebSockets can hibernate at all, so an outbound socket would pin the object awake and cost real money.
Cloudflare does not publish a memory limit specifically for Durable Objects. They execute in the standard Workers runtime, so the 128 MB isolate limit is the working assumption rather than a documented guarantee.
Sources: Durable Objects limits, Workers limits, and Workers for Platforms limits. Workers for Platforms publishes no separate memory, CPU, startup, or script-size numbers for dynamic Workers; they inherit the standard Workers limits above.