- Paid plans: any whole minute from to , or
0to turn it off. A part minute, or a value outside that range, is refused. - Free plan: fixed at minutes. Another value is refused.
--auto-suspend
(autoSuspendAfterSeconds).
What counts as idle
Idle means no coding agent working, no terminal or SSH traffic, and no CPU load. An exec, a file read, a public port request, or a task lease in progress keeps the machine busy. When a signal is missing or unclear, the machine counts as busy.Keep a machine awake during a silent task
A task that waits without output (for example on a model API) can still be paused as idle. To keep the machine awake, hold a lease:ttlSeconds runs out.
What wakes a machine
A machine that paused itself (autoSuspendedAt set) resumes on use. A request that wakes it waits
up to 45 seconds for the resume, then runs. If the resume is still running after that, the answer is a
retryable 409 operation_conflict naming the operation. Rows that differ say so.
A GitHub Actions job keeps its CI machine awake while the job runs. It does not wake a paused one.
A machine you paused or stopped does not wake on use,
instabox wake included: run
instabox resume or instabox start. Until then its public URLs return 503 (Sandbox offline), with
the command to run in the body.Set a maximum runtime
maxRunMinutes pauses a machine after that many minutes of continuous running, even while it is
busy. Explicit runtime settings and the default fixed limit are not extended by activity or leases.
-1is unlimited.0pauses the machine at once and keeps it from waking until you change the setting.- Free machines run at most minutes at a time. The service manages this limit
and may pause a run earlier; only an admin can override it.
instabox getreports the current limit asmaxRunMinutes, measured fromrunStartedAt. - Paid machines default to
-1. Set it at create (--max-run-minutes) or later withinstabox max-runorPATCH /v1/machines/{id}.
Cooldown after a maximum runtime
A pause for maximum runtime starts a cooldown. An idle pause has none. The cooldown is 5 minutes plus a random 0 to 15, so machines that reach their limit together do not all wake together. The refusal isretryable: true, with a Retry-After header and retryAfterSeconds in the body. Both
give the seconds left. The machine’s cooldownUntil (instabox get) says when the cooldown ends, and
instabox ssh prints it. Wait that long, then retry. After the cooldown, a machine whose maxRunMinutes is 0 still
refuses to wake with 409 max_run_disabled until you change the setting.
Longer cooldowns on the free plan
Longer cooldowns on the free plan
On the free plan, back-to-back max-run pauses rest longer. By default:
Each step is a base (5, 60, or 120 minutes) plus the same random 0 to 15. The count starts over when
a run ends with no cooldown owed (an idle pause, or you pause or stop the machine). It also starts
over when a run starts 2 hours or more after the last cooldown ended. A new or forked machine starts
at the 1st step. Restoring a machine in place keeps its count. A machine on a paid plan always gets the 1st step. The
length is fixed when the pause starts, and
cooldownUntil says exactly when it ends.Lock after a security check
Lock after a security check
A lock after a security check paused the machine is not a max-run step, and it can last up to 24
hours. The lock is a cooldown, so it keeps the count. A run started less than 2 hours after the lock
ends continues the count, and that run’s max-run pause can get the 2nd or 3rd step.
Lifecycle
Pause, resume, stop, and start by hand.
Storage and retention
What is kept, for how long, and the archive and delete deadlines.