Skip to main content
The shape: the agent builds something and serves it. You publish it, and get an address to hand out. When nobody is using it the machine behind it pauses, and costs nothing while it waits. The next person to open the address wakes it — no keep-alive, no cron job pinging it, nothing on your side at all.

1. Build something that serves a port

Wait for the turn to complete — see the quickstart — and the session’s preview.port reads 3000.

2. Publish it

published_url is the address to hand out. It is a Gobare address, so it stays the same whatever happens to the machine behind it. See preview.

3. Leave it alone, then open it

Measured on production, on one session: The last two rows are the lesson. What is on disk comes back. What is only in memory may or may not. Write anything your app must not lose to a file or a database in the workspace, and let a restart be boring. The first visitor after a pause waits a moment — a second or two in this run — while the machine wakes. Everyone after them does not.

How long it lasts

A published app pauses but is never reclaimed. An unpublished workspace is reclaimed after two hours of idleness, with a snapshot taken first; a workspace over 300 MB is not snapshotted, and node_modules and .git are not part of that snapshot. See limits. Unpublish when you are done:

What a published address does not do yet

  • No cookies, in either direction. An app that signs people in with a cookie session will not keep them signed in behind a published address.
  • No WebSocket upgrades, and responses are delivered whole rather than streamed.
So today a published address suits pages, dashboards and tools that do not need a signed-in visitor. It is not yet a place to run a system your staff log into.

What was verified

The table above is one run against production on 2026-09-27: the build, the publish call and its reply, the pause observed through GET /v1/sessions/{id}, the unauthenticated wake and its timing, and the SSH wake with a restarted process. One run is a sample, not a promise — the timings are what happened, not a service level. Reclamation after two hours was not exercised in this run.

Next