diff --git a/docs/api-reference/checkpoints/fork.mdx b/docs/api-reference/checkpoints/fork.mdx index 69ffab92..abc10a7a 100644 --- a/docs/api-reference/checkpoints/fork.mdx +++ b/docs/api-reference/checkpoints/fork.mdx @@ -10,7 +10,7 @@ Create a new sandbox from a checkpoint. - Idle timeout for the new sandbox (default: `300`) + Idle timeout for the new sandbox (default: `0` — persistent, never auto-hibernates) diff --git a/docs/api-reference/sandboxes/create.mdx b/docs/api-reference/sandboxes/create.mdx index bf24129f..df329295 100644 --- a/docs/api-reference/sandboxes/create.mdx +++ b/docs/api-reference/sandboxes/create.mdx @@ -10,7 +10,7 @@ Create a new sandbox. - Idle timeout in seconds (default: `300`) + Idle timeout in seconds (default: `0` — persistent, never auto-hibernates) diff --git a/docs/api-reference/sandboxes/wake.mdx b/docs/api-reference/sandboxes/wake.mdx index e618ecc3..c83b4ead 100644 --- a/docs/api-reference/sandboxes/wake.mdx +++ b/docs/api-reference/sandboxes/wake.mdx @@ -10,7 +10,7 @@ Resume a hibernated sandbox. Control plane only. - Idle timeout after wake (default: `300`) + Idle timeout after wake (default: `0` — persistent, never auto-hibernates) diff --git a/docs/cli/sandbox.mdx b/docs/cli/sandbox.mdx index c2b3e6ad..a80efe65 100644 --- a/docs/cli/sandbox.mdx +++ b/docs/cli/sandbox.mdx @@ -46,7 +46,7 @@ The sandbox keeps the same ID across hibernate/wake cycles. Preview URLs remain ## Adjusting Timeout -The idle timeout resets on every operation (exec, file access, agent activity). Default: 300s. +The idle timeout resets on every operation (exec, file access, agent activity). Default: `0` — persistent, never auto-hibernates. Set a positive value (or `0` to disable) with `oc sandbox set-timeout`. ```bash oc sandbox set-timeout sb-abc123 3600 # 1 hour diff --git a/docs/how-it-works.mdx b/docs/how-it-works.mdx index 3a1a49a1..1599f5f7 100644 --- a/docs/how-it-works.mdx +++ b/docs/how-it-works.mdx @@ -26,7 +26,7 @@ Why not containers? Containers share a kernel. A kernel exploit in one container `hibernate()` snapshots the VM's memory and disk state, then stops it. No compute costs while hibernated. `wake()` restores the sandbox — the platform attempts a fast snapshot-based resume and falls back to a cold boot from the saved disk state if needed. -The sandbox keeps the same ID across hibernate/wake cycles. A rolling idle timeout (default 300s) auto-hibernates sandboxes that go unused. +The sandbox keeps the same ID across hibernate/wake cycles. By default sandboxes are persistent and never auto-hibernate; set a positive `timeout` and a rolling idle timer auto-hibernates the sandbox once it goes unused for that long. ## Checkpoints & Forking diff --git a/docs/reference/cli.mdx b/docs/reference/cli.mdx index 7269d3b6..4202f2ce 100644 --- a/docs/reference/cli.mdx +++ b/docs/reference/cli.mdx @@ -25,7 +25,7 @@ Create a new sandbox. **Alias:** `oc create` | Flag | Type | Default | Description | | --- | --- | --- | --- | -| `--timeout` | int | `300` | Idle timeout in seconds | +| `--timeout` | int | `0` | Idle timeout in seconds | | `--cpu` | int | `0` | CPU cores (0 = platform default) | | `--memory` | int | `0` | Memory in MB (0 = platform default) | | `--env` | string | — | Environment variable `KEY=VALUE` (repeatable) | @@ -66,7 +66,7 @@ Resume a hibernated sandbox. | Flag | Type | Default | Description | | --- | --- | --- | --- | -| `--timeout` | int | `300` | Idle timeout in seconds after wake | +| `--timeout` | int | `0` | Idle timeout in seconds after wake | ### `oc sandbox set-timeout ` @@ -175,7 +175,7 @@ Create a new sandbox from a checkpoint (fork). | Flag | Type | Default | Description | | --- | --- | --- | --- | -| `--timeout` | int | `300` | Idle timeout for the new sandbox | +| `--timeout` | int | `0` | Idle timeout for the new sandbox | ```bash ID=$(oc cp spawn cp-xyz --json | jq -r '.sandboxID') diff --git a/docs/reference/cli/checkpoint.mdx b/docs/reference/cli/checkpoint.mdx index 96bd283d..b364f42f 100644 --- a/docs/reference/cli/checkpoint.mdx +++ b/docs/reference/cli/checkpoint.mdx @@ -37,7 +37,7 @@ Revert a sandbox in-place to a checkpoint. All changes since the checkpoint are Create a new sandbox from a checkpoint (fork). [HTTP API →](/api-reference/checkpoints/fork) - + Idle timeout for the new sandbox diff --git a/docs/reference/cli/sandbox.mdx b/docs/reference/cli/sandbox.mdx index 6f675a9a..def7dae9 100644 --- a/docs/reference/cli/sandbox.mdx +++ b/docs/reference/cli/sandbox.mdx @@ -9,8 +9,8 @@ Create a new sandbox. **Alias:** `oc create` [HTTP API →](/api-reference/sandboxes/create) - - Idle timeout in seconds + + Idle timeout in seconds. `0` (the default) means never auto-hibernate. @@ -84,7 +84,7 @@ Snapshot VM state and stop the sandbox. Displays snapshot size on success. [HTTP Resume a hibernated sandbox. [HTTP API →](/api-reference/sandboxes/wake) - + Idle timeout in seconds after wake diff --git a/docs/reference/python-sdk.mdx b/docs/reference/python-sdk.mdx index 01c397ae..3f6d3069 100644 --- a/docs/reference/python-sdk.mdx +++ b/docs/reference/python-sdk.mdx @@ -26,7 +26,7 @@ Create a new sandbox. | Parameter | Type | Default | Description | | --- | --- | --- | --- | | `template` | str | `"base"` | Template name | -| `timeout` | int | `300` | Idle timeout in seconds | +| `timeout` | int | `0` | Idle timeout in seconds | | `api_key` | str | env var | API key | | `api_url` | str | env var | API URL | | `envs` | dict[str, str] | None | Environment variables | @@ -60,7 +60,7 @@ sandbox = await Sandbox.connect("sb-abc123") | Parameter | Type | Default | Description | | --- | --- | --- | --- | | `checkpoint_id` | str | — | Checkpoint ID (**required**) | -| `timeout` | int | `300` | Idle timeout | +| `timeout` | int | `0` | Idle timeout | | `api_key` | str | env var | API key | | `api_url` | str | env var | API URL | diff --git a/docs/reference/python-sdk/sandbox.mdx b/docs/reference/python-sdk/sandbox.mdx index 7a0855da..1f312e4d 100644 --- a/docs/reference/python-sdk/sandbox.mdx +++ b/docs/reference/python-sdk/sandbox.mdx @@ -13,8 +13,8 @@ Create a new sandbox. [HTTP API →](/api-reference/sandboxes/create) Template name - - Idle timeout in seconds + + Idle timeout in seconds. `0` (the default) means persistent — the sandbox never auto-hibernates. @@ -96,7 +96,7 @@ Create a new sandbox from a checkpoint. [HTTP API →](/api-reference/checkpoint Checkpoint ID - + Idle timeout diff --git a/docs/reference/typescript-sdk.mdx b/docs/reference/typescript-sdk.mdx index e5c2584a..5a60a861 100644 --- a/docs/reference/typescript-sdk.mdx +++ b/docs/reference/typescript-sdk.mdx @@ -28,7 +28,7 @@ Create a new sandbox. | Parameter | Type | Default | Description | | --- | --- | --- | --- | | `template` | string | `"base"` | Template name | -| `timeout` | number | `300` | Idle timeout in seconds | +| `timeout` | number | `0` | Idle timeout in seconds | | `apiKey` | string | env var | API key | | `apiUrl` | string | env var | API URL | | `envs` | Record\ | — | Environment variables | @@ -64,7 +64,7 @@ Create a new sandbox from a checkpoint. | Parameter | Type | Default | Description | | --- | --- | --- | --- | | `checkpointId` | string | — | Checkpoint ID (**required**) | -| `timeout` | number | `300` | Idle timeout | +| `timeout` | number | `0` | Idle timeout | | `apiKey` | string | env var | API key | | `apiUrl` | string | env var | API URL | @@ -120,7 +120,7 @@ Resume a hibernated sandbox. | Parameter | Type | Default | Description | | --- | --- | --- | --- | -| `timeout` | number | `300` | Idle timeout after wake | +| `timeout` | number | `0` | Idle timeout after wake | #### `sandbox.setTimeout(timeout): Promise` diff --git a/docs/reference/typescript-sdk/sandbox.mdx b/docs/reference/typescript-sdk/sandbox.mdx index ef130807..61441656 100644 --- a/docs/reference/typescript-sdk/sandbox.mdx +++ b/docs/reference/typescript-sdk/sandbox.mdx @@ -13,8 +13,8 @@ Create a new sandbox. [HTTP API →](/api-reference/sandboxes/create) Template name - - Idle timeout in seconds + + Idle timeout in seconds. `0` (the default) means persistent — the sandbox never auto-hibernates. @@ -116,7 +116,7 @@ Create a new sandbox from a checkpoint. [HTTP API →](/api-reference/checkpoint Checkpoint ID - + Idle timeout @@ -192,7 +192,7 @@ Snapshot VM state and stop. No compute cost while hibernated. [HTTP API →](/ap Resume a hibernated sandbox. [HTTP API →](/api-reference/sandboxes/wake) - + Idle timeout after wake diff --git a/docs/sandboxes/overview.mdx b/docs/sandboxes/overview.mdx index ebf34c41..5e5459f0 100644 --- a/docs/sandboxes/overview.mdx +++ b/docs/sandboxes/overview.mdx @@ -75,7 +75,7 @@ curl -X POST https://app.opencomputer.dev/api/sandboxes \ | Parameter | Type | Default | Description | | --- | --- | --- | --- | | `template` | string | `"base"` | Template for the VM root filesystem | -| `timeout` | number | `300` | Idle timeout in seconds (resets on every operation) | +| `timeout` | number | `0` | Idle timeout in seconds, resets on every operation. `0` (default) = persistent, never auto-hibernates | | `envs` | object | — | Environment variables set inside the VM | | `metadata` | object | — | Arbitrary key-value pairs stored with the sandbox | | `cpuCount` | number | — | CPU cores. TypeScript and HTTP API only | @@ -125,7 +125,7 @@ Sandboxes have four states: | `stopped` | Terminated | | `error` | Failed | -A rolling idle timeout (default 300s) resets on every operation — exec, file access, agent activity. When the timeout expires, the sandbox auto-hibernates if possible, otherwise stops. +By default a sandbox is persistent (`timeout` `0`) and never auto-hibernates. When you set a positive `timeout`, a rolling idle timer resets on every operation — exec, file access, agent activity. When the timer expires, the sandbox auto-hibernates if possible, otherwise stops. ## Hibernation & Wake diff --git a/docs/troubleshooting.mdx b/docs/troubleshooting.mdx index 527a78f7..18b9cbe5 100644 --- a/docs/troubleshooting.mdx +++ b/docs/troubleshooting.mdx @@ -39,7 +39,7 @@ The sandbox is still starting up, or it's hibernated and hasn't finished waking. **Command timeout:** Increase the `timeout` parameter on `exec.run()` or use `--timeout` with `oc exec`. Default is 60s for SDK `exec.run()`, unlimited for CLI without `--wait`. -**Idle timeout:** Sandboxes auto-hibernate after 300s of inactivity. Increase with `sandbox.setTimeout()` or `oc sandbox set-timeout`. The timeout resets on every operation. +**Idle timeout:** By default sandboxes are persistent (`timeout` `0`) and do not auto-hibernate. If you created the sandbox with a positive `timeout`, it auto-hibernates after that many seconds of inactivity. Adjust with `sandbox.setTimeout()` or `oc sandbox set-timeout` (`0` disables auto-hibernate). The timeout resets on every operation. ### Agent exits immediately