Skip to main content

Keep Alive

2 min read

When keepAlive is enabled, the box stays on between sessions instead of auto-pausing when idle. Use it when you need a box to remain continuously available, for example to host a server, keep a long-running agent ready, or preserve an always-on development environment.

For most workloads, the default Box lifecycle is still the better choice. Boxes auto-pause when idle and are more cost-efficient for bursty workloads unless keepAlive is enabled.


Create a keep-alive box#

Use keepAlive: true when creating the box:

You can combine keep-alive with all normal Box features, including agent, git, shell, filesystem, public URLs, and snapshots.


Sizes and specs#

Boxes with keepAlive enabled use the same Box sizes as any other box. Pick the size with the size option when creating the box or in the Console during box creation.

SizeCPUMemoryStorage
small2 vCPU4 GB5 GB
medium4 vCPU8 GB10 GB
large8 vCPU16 GB20 GB

The selected size determines the box's available CPU, RAM, and workspace storage whether keepAlive is enabled or not.


Lifecycle differences#

Default behaviorWith keepAlive: true
Idle behaviorAuto-pauses when idleStays on
Pause / resumeSupportedNot supported
Best forBursty workloads, task runners, on-demand agentsAlways-on servers, long-running agents, warm environments
Billing modelActive usage basedOpen-time / always-on based

If you do not need the box to remain continuously available, keep keepAlive disabled.


Init command#

A keep-alive box can run an init command, a startup script the box runs once each time its container starts.

Init commands are not a keep-alive feature. Every box can have one, and get, set, and delete work on any box, including a paused one. See Create a Box.


Console#

In the Upstash Console you can:

  • enable Keep alive while creating a box
  • choose the box Size
  • manage the Init Command later from the box settings page (available on every box, not only keep-alive ones)

When to use keep alive#

Use keep-alive when the box itself needs to stay available between requests:

  • hosting a dev server or app with a public URL
  • keeping an agent warm for low-latency use
  • preserving a long-running environment with startup automation

Avoid keep-alive when you only need a reusable workspace. In those cases, the default box lifecycle plus Snapshots is usually enough.