Create a Custom Pod¶
A custom pod is your organization's own environment — your repositories, language toolchains, database clients, and tools — that your members launch like any other pod. Custom pods are available only within your organization and can be limited to specific groups.
There are two ways to make one. Most teams start with Option A; use Option B when you need to bake in your own software image.
Info
Custom pods are created and managed by organization admins/owners in Control Center → Pods. Members only see the pods you enable for them.
Option A — Start from a SkyDeck base (no image to build)¶
Best when you just want the standard coding pod pointed at your repository.
- Go to Control Center → Pods and click New pod.
- Choose a SkyDeck base image — e.g. the Claude Code coding base (Ubuntu +
gh+ Claude Code + tailscale + a working terminal). - Fill in:
- Name and an optional description/icon.
- Agent — the agent to preinstall: Claude Code, OpenClaw, Hermes, JupyterLab, or None to bring your own. (A managed agent adds a small hourly surcharge — the price shown on the pod includes it.)
- Repository (optional) — a git URL cloned into
/workspace(the durable volume) on first launch. - Startup command (optional) — a command to run when the pod starts (e.g. install dependencies).
- Exposed ports (optional) — ports for any web service your pod runs; the workspace browser pane can only reach ports listed here.
- Size — the vCPU / memory tier.
- Default pane — open to the terminal or the browser.
- Click Save. The pod is created for your organization and starts enabled.
Option B — Bring your own image (advanced)¶
Best when your environment needs software baked in (specific runtime versions, system packages, preinstalled tools, cached data).
- Build an image on top of the SkyDeck base so your pod inherits a working
terminal and the AI agent. In your
Dockerfile:
FROM <skydeck-coding-base-image> # ask your SkyDeck contact for the reference
# add your repos, language toolchains, DB clients, project tools…
RUN apt-get update && apt-get install -y --no-install-recommends <your-packages>
!!! warning
Keep the base's shell and `tmux` (building `FROM` the SkyDeck base inherits them —
that's what gives a working terminal). Put language runtimes, database clients, and
tools in the image; **keep secrets out** — they're injected at launch, not baked in.
-
Test it locally with Docker, then push it to the container registry that SkyDeck pulls from (ask your SkyDeck contact for the registry and credentials; add a pull secret if it's private). Tag with an explicit version or digest —
:latestis not accepted; a tag or@sha256:…digest is required. -
In Control Center → Pods → New pod, choose Advanced: custom image and paste the full image reference (
registry/repo:tagorregistry/repo@sha256:…). Set the agent, exposed ports, size, and default pane as in Option A, then Save.
Make it available to your members¶
A new custom pod starts enabled but visible to no one until you set who can launch it. On the pod's row in Control Center → Pods:
- Available to everyone — every member of your organization can launch it.
- By group — assign one or more groups/tags so only members in those groups see the pod (the same model as Curate Tools). A member sees a pod if they're in any assigned group.
Members launch the pod from the GenStudio Workspace the next time they open the pod catalog.
Info
Cost controls. Pods accrue compute cost while running. Set an organization budget and per-user or per-group spending caps in the Pods spend settings, and an idle auto-sleep so forgotten pods don't keep billing.
Tips¶
- Pin the base version your image extends so a base update never silently changes your pod; bump it deliberately.
- Persisted workspace —
/workspaceonly. A pod's/workspaceis a durable volume and is the only storage that survives sleep/resume and reconnects; the configured repository is cloned there. Everything else in the pod (the home directory, the rest of the filesystem) is reset from the image on resume — tell members to keep anything they want to keep under/workspace. - Updating a custom pod. Push a new image tag and edit the pod's image reference; members pick up the new image on their next launch.