Skip to content
Hoody.com

Spawning a container, reaching it over its URL, and running whatever you want inside it is the base of the platform. This page covers what sits on top of that base: the features that come up once you are running more than one container, or running containers on someone else’s behalf.

Prespawn pools remove the wait for a container to provision. Realms scope what an API token can see, which is what multi-tenant isolation is built on. Snapshots record a container’s whole filesystem, so you can restore or branch it the way you would a Git repository. Storage shares let containers mount the same directory instead of each keeping a copy. Network routing changes a container’s exit IP with one API call.

Each section below gives the concept, a short example, and a link to the reference page.


Prespawn

Containers are created and warmed ahead of demand, so a create request is answered without waiting for provisioning.

Server pools

Members share one server’s capacity, with no per-user charge.

Realm isolation

Scope API visibility by realm. Tokens cannot see resources outside their assigned realm.

Network routing

Route container traffic through a SOCKS5 or HTTP proxy, or block outbound traffic entirely, with one API call.

Storage shares

Share directories between containers, readonly or readwrite, on the same server or across servers.

Copy & Sync

Clone a container to a different server, then sync the copy with the source incrementally.

Snapshots

Capture a container’s complete state, restore it to any point in time, or branch from it.


A container takes 1-5 seconds to provision. For an on-demand SaaS, a webhook handler, or an AI agent launcher, that cold start is too slow.

Prespawn removes it. You define a template covering the base image, resource limits, and Kit configuration, and Hoody keeps a pool of containers created and warmed against it. When you ask for a container, one is assigned from the pool, so nothing boots and nothing is provisioned inside that request.

Terminal window
# Create a container. If a warm pool exists for this server the container
# is claimed from it, otherwise it is created on demand.
hoody containers create \
--project $PROJECT_ID \
--server-id $SERVER_ID \
--name "instant" \
--hoody-kit

A server pool shares one server’s bare metal capacity across team members without giving everyone root access to the host. Create a pool, invite members, and each member can spawn containers on that hardware.

Terminal window
# Create a server pool
hoody pools create --name "engineering-team"
# Invite a team member
hoody pools members invite $POOL_ID --username "alice" --role "user"

Deep dive: Server Management | Servers API


A realm-restricted token cannot see resources outside its realm. They are not returned with an access-denied error; they are absent from the API that token talks to. Multi-tenant isolation, environment separation, and AI agent sandboxing are all built on that.

Terminal window
# Create a strict realm-only token for staging (refuses the base domain).
# --no-allow-no-realm is the negated form of --allow-no-realm; it sets
# allow_no_realm: false, matching the SDK tab.
hoody auth create \
--alias "ci-staging" \
--realm-ids "507f1f77bcf86cd799439011" \
--no-allow-no-realm
# This token can only operate on the realm-scoped host
hoody --base-url "https://507f1f77bcf86cd799439011.api.hoody.com" \
containers list

Deep dive: Realms Concept | Realms Foundation | Realms API


Network configuration changes where a container’s traffic exits. All outbound TCP can be routed through a SOCKS5 proxy, routed through an HTTP proxy, or blocked entirely. Nothing inside the container is configured for it, and no process in the container has to be aware of the change.

Terminal window
# Route container traffic through a SOCKS5 proxy
hoody network update --container $CONTAINER_ID \
--type socks5 \
--proxy "socks5://user:pass@proxy.example.com:1080"

Deep dive: Network Configuration | Container Network API


A container can share one of its directories with other containers, including containers on other servers. The source container controls which directory is shared and the access mode; the target container controls whether to mount it. Use readonly to distribute configuration, and readwrite when containers need to write to the same files.

Terminal window
# Share a directory with another container (readonly)
hoody storage create --container $SOURCE_CONTAINER_ID \
--source-path "/hoody/storage/shared-assets" \
--target-container-id $TARGET_CONTAINER_ID \
--mode readonly
# Share with an entire project (all containers)
hoody storage create --container $SOURCE_CONTAINER_ID \
--source-path "/hoody/storage/config" \
--target-project-id $PROJECT_ID \
--mode readonly

Deep dive: Shared Storage | Cloud Storage | SQLite Drive | Ramdisk


Copy produces a full independent duplicate of a container, on a different server and in a different project if you want, holding the same state. It takes minutes. Sync then brings that copy up to date with the source and transfers only what changed, which takes seconds.

Terminal window
# Copy production container to EU server for geographic redundancy
hoody containers copy $PROD_CONTAINER_ID \
--target-project-id $PROJECT_ID \
--target-server-id $EU_SERVER_ID \
--name "prod-eu-replica"
# Later: sync the copy with production changes
hoody containers sync $EU_COPY_ID

Deep dive: Copy & Sync | Copy & Sync API


A snapshot records a container’s complete filesystem state, and restoring one returns the container to that moment in seconds. Snapshots are copy-on-write, so creating one costs almost nothing. Take one before a risky change, a deployment, or an AI experiment.

Terminal window
# Snapshot before a risky change
hoody snapshots create -c $CONTAINER_ID \
--alias "before-ai-refactor"
# Restore after a bad change
hoody snapshots restore -c $CONTAINER_ID \
--name "snap-20260325-143045"
# List all snapshots
hoody snapshots list -c $CONTAINER_ID

Deep dive: Snapshots | Snapshots API