> ## Documentation Index
> Fetch the complete documentation index at: https://docs.superserve.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Templates

> Reusable base images with build steps that sandboxes boot from

A **template** is a snapshot of a Linux filesystem (base image, build steps, and optionally a long-running process) that sandboxes boot from. Templates let you pre-install dependencies once and launch identically configured sandboxes in seconds.

Every sandbox is created from a template. If you don't specify one, Superserve defaults to `superserve/base`.

## System templates

Curated by Superserve and available to every team. Identified by the `superserve/` name prefix (which is reserved — team templates can't use it). Each is built from an OCI base image plus a few `apt` / `pip` / `npm` steps. **Every template ships `ca-certificates`, `curl`, and `git`** — the column below lists only what each adds on top.

| Name                          | Base image         | Shape (vCPU · mem · disk) | Adds on top of the base toolkit                                                                                                                                          |
| ----------------------------- | ------------------ | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `superserve/base`             | `ubuntu:24.04`     | 1 · 1024 MiB · 4096 MiB   | Nothing — just the base toolkit. Default when `fromTemplate` is omitted.                                                                                                 |
| `superserve/python-3.11`      | `python:3.11-slim` | 1 · 1024 MiB · 4096 MiB   | `requests` (pip).                                                                                                                                                        |
| `superserve/node-22`          | `node:22-slim`     | 1 · 1024 MiB · 4096 MiB   | `pnpm`, `typescript` (npm global).                                                                                                                                       |
| `superserve/python-ml`        | `python:3.11`      | 2 · 2048 MiB · 4096 MiB   | `build-essential` (apt); numpy, pandas, scikit-learn, matplotlib, jupyter, ipython, requests (pip).                                                                      |
| `superserve/code-interpreter` | `python:3.11`      | 2 · 2048 MiB · 8192 MiB   | `build-essential`, `libfreetype6-dev`, `libpng-dev` (apt); numpy, pandas, scikit-learn, matplotlib, jupyter, ipython, requests, pillow, seaborn, plotly, openpyxl (pip). |
| `superserve/claude-code`      | `ubuntu:24.04`     | 2 · 2048 MiB · 8192 MiB   | `build-essential`, `ripgrep`, `vim`, `python3`, `python3-pip` (apt); Claude Code CLI (`claude`).                                                                         |
| `superserve/openclaw`         | `ubuntu:24.04`     | 2 · 2048 MiB · 8192 MiB   | `tmux` (apt); OpenClaw CLI.                                                                                                                                              |
| `superserve/hermes`           | `ubuntu:24.04`     | 2 · 2048 MiB · 8192 MiB   | `tmux`, `xz-utils` (apt); Hermes agent.                                                                                                                                  |

A sandbox inherits its VM shape (vCPU, memory, disk) from the template it boots from — see [BuildSpec reference](/templates/build-spec) for the limits.

## Team templates

Team-owned templates let you bake in team-specific dependencies (e.g. `my-python-env` with scientific libs pre-installed). They're created via `Template.create()` and referenced by name.

Team template names **cannot** start with `superserve/`; that prefix is reserved. Names are unique per team among non-deleted templates and are released for reuse the moment a template is deleted.

## Names vs UUIDs

When booting a sandbox, `Sandbox.create({ fromTemplate })` accepts either the template's name (`my-python-env`) or its UUID. Names are more readable; UUIDs are stable across rename/delete.

## Related

* [Create a template](/templates/create)
* [Template lifecycle: rebuild, cancel, delete](/templates/lifecycle)
* [BuildSpec reference](/templates/build-spec)
* [SDK reference: Template](/sdk-reference/template)
