diff --git a/docs.json b/docs.json
index 59df76aa..7ba6f06e 100644
--- a/docs.json
+++ b/docs.json
@@ -466,6 +466,7 @@
"enterprise/index",
"enterprise/enterprise-vs-oss",
"enterprise/quick-start",
+ "enterprise/custom-sandbox-image",
"enterprise/analytics",
"enterprise/external-postgres"
]
diff --git a/enterprise/custom-sandbox-image.mdx b/enterprise/custom-sandbox-image.mdx
new file mode 100644
index 00000000..85a2da67
--- /dev/null
+++ b/enterprise/custom-sandbox-image.mdx
@@ -0,0 +1,115 @@
+---
+title: Custom Sandbox Images
+description: Preload repos, dependencies, and tooling into a custom sandbox image to make your agents faster and more reliable.
+icon: box
+---
+
+Custom sandbox images let you prebake the repository, dependencies, compiled output, and test harness
+your agents need. Instead of spending minutes provisioning a workspace on every run, your agents start
+on the actual task immediately.
+
+## Why Use a Custom Image
+
+Custom images eliminate cold-start setup work (clone, install, transpile, and bootstrap) so agents
+spend their time on the actual task. They also reduce setup variance and lower sandbox memory requirements
+by keeping only what the agent needs.
+
+## Build Your Own Custom Image
+
+The [OpenHands agent-server sandbox guide](https://docs.openhands.dev/sdk/guides/agent-server/docker-sandbox)
+provides full documentation on building custom sandbox images. The approach is the same for the Enterprise
+Replicated VM deployment.
+
+### Basic Pattern
+
+1. Start from the OpenHands agent-server base image.
+2. Keep the normal OpenHands entrypoint intact: extend the image, do not replace the entrypoint.
+3. Add your repo, docs, tools, and verification wrappers.
+4. Pre-run the expensive setup you do not want to repeat at task time.
+5. Publish the image to a registry and point the Replicated installer at it.
+
+
+ Do not override the entrypoint or replace the runtime contract of the base image. The installer
+ expects standard OpenHands agent-server behavior. Only extend, do not replace.
+
+
+### Base Image
+
+```dockerfile
+FROM ghcr.io/openhands/agent-server:1.23.0-python
+```
+
+Pin a specific version tag to ensure reproducible builds. Check
+[ghcr.io/openhands/agent-server](https://github.com/OpenHands/OpenHands/pkgs/container/agent-server)
+for the latest available tags.
+
+
+ To get the latest features of OpenHands Enterprise, rebuild your custom image before each upgrade. The agent server base image is updated with every OHE release.
+
+
+### Example: Build and Push
+
+```bash
+docker buildx build \
+ --platform linux/amd64 \
+ -f your-project/Dockerfile \
+ -t ghcr.io//openhands-custom-image: \
+ --push \
+ .
+```
+
+Use `--platform linux/amd64` because the Enterprise Replicated VM runs on `x86-64`.
+
+### What to Bake In
+
+Good candidates for prebaking:
+
+- Pinned repository checkouts
+- Package manager caches and installed dependencies (`node_modules`, Python virtualenvs, etc.)
+- Compiled or transpiled output
+- Native system packages (`xvfb`, `libkrb5-dev`, `pkg-config`, etc.)
+- Browser or Electron artifacts
+- Stable helper scripts such as `prepare-*` and `*-verify` wrappers
+
+### What to Keep Out
+
+
+ Do not bake the following into your image:
+
+ - Secrets, API keys, or personal credentials
+ - Machine-specific paths or environment assumptions
+ - Uncommitted source changes or task-specific fixes
+ - Rapidly changing dependencies (use a lightweight `prepare-*` helper instead)
+
+
+If the repository or dependencies change frequently, include a `prepare-*` script in the image
+so the agent can refresh only the parts that need updating without a full rebuild.
+
+## Configure the Replicated VM Installer
+
+Once your image is built and pushed to a registry, point the Replicated Admin Console at it.
+
+1. Open the **Admin Console** at `https://:30000`.
+2. Navigate to **Config** and find the **Sandbox Image** section.
+3. Set the following fields:
+
+| Field | Value |
+|---|---|
+| **Use a Custom Sandbox Image** | Enabled |
+| **Sandbox Image Repository** | Your image repository (e.g. `ghcr.io/your-org/openhands-custom-image`) |
+| **Sandbox Image Tag** | Your image tag (e.g. `v1.2.0`) |
+| **Registry Server** | If your registry requires authentication |
+| **Registry Username** | If your registry requires authentication |
+| **Registry Password or Credentials** | If your registry requires authentication |
+
+4. Click **Save config** and then **Deploy** to apply the change.
+
+
+ This setting applies to the **sandbox / agent-server image** only (the image that runs inside each
+ agent's isolated workspace). It does not replace the other OpenHands service images.
+
+
+## Reference
+
+- [OpenHands custom image example repo](https://github.com/OpenHands/openhands-custom-image): Dockerfile, benchmark scripts, and analysis tooling for the VS Code custom image example.
+- [Agent-server sandbox guide](https://docs.openhands.dev/sdk/guides/agent-server/docker-sandbox): full SDK documentation on building and configuring custom sandbox images.