Avisi cloud logo
Commands

playroom create

Create a new playroom in a Playhouse (alpha)

Synopsis

Create a new playroom (interactive AI agent runtime) inside a Playhouse.

ALPHA: this command is in active development; flags and behaviour may change between releases.

The playroom comes up with its own persistent home directory and an SSH endpoint you can connect to.

The playroom starts sandboxed: nothing from your machine is forwarded unless you ask for it. Use --env to forward specific host environment variables, --copy to push files or directories in, and --git to clone repositories at boot.

acloud playroom create NAME [flags]

Examples

  # create a playroom called 'my-room' in the demo Playhouse (uses the default opencode image)
  acloud playroom create my-room --playhouse playhouse-demo

  # forward an env var, copy your gitconfig in, and clone a repo (token via --env)
  acloud playroom create my-room -p playhouse-demo \
      --env ANTHROPIC_API_KEY \
      --env GITLAB_TOKEN \
      --copy ~/.gitconfig:/home/playroom/.gitconfig \
      --git https://gitlab.example.com/grp/repo.git

  # expose a dev server on the tailnet: port 3000 as-is, and tailnet port 80 routed to 8080
  acloud playroom create my-room -p playhouse-demo --port 3000 --port 80:8080

Options

      --copy stringArray        local file or directory to copy into the playroom after it starts; SRC[:DEST]. Repeatable.
      --cpu-limit string        maximum CPU the playroom may use (default "4")
      --cpu-request string      CPU reserved for the playroom (default "250m")
      --env stringArray         host env var to forward (opt-in); KEY=VAL or bare KEY (looked up from host env). Repeatable.
      --ephemeral               use disposable storage (sized by --storage) instead of a persistent home directory; everything in /home/playroom is wiped if the playroom restarts
      --exposure string         how to expose SSH: tailscale, nodeport, or portforward (no exposure; reached via API-server port-forward). Default: the playhouse's declared default.
  -f, --force-install           force a fresh login to the Playhouse even if a cached session is still valid
      --git stringArray         git repo to clone into the workspace at boot; URL[@REF] (HTTPS only; for private repos forward a scoped token with --env GITLAB_TOKEN / GITHUB_TOKEN). Repeatable.
  -h, --help                    help for create
      --image string            playroom container image: an alias ('opencode' or 'claude-code') or a full registry path (default "opencode")
      --memory-limit string     maximum memory the playroom may use (default "2Gi")
      --memory-request string   memory reserved for the playroom (default "2Gi")
      --no-wait                 return immediately after creating the playroom; don't wait for it to be ready
      --port stringArray        extra TCP port to expose on the tailnet next to SSH; PORT or PORT:TARGETPORT (e.g. 80:3000 routes tailnet port 80 to port 3000 in the playroom). Repeatable.
      --privileged              run the container fully privileged ALL Linux capabilities, host device access, and seccomp unconfined e.g. to run a real Docker daemon inside it. This is host-equivalent and NOT minimized to what Docker needs: an escape owns the node. The room runs alone on the playhouse's dedicated privileged node pool (which the playhouse must provide)
      --proxy-group string      Tailscale proxy group name to route the playroom through (required when the Playhouse runs in HA mode)
      --read-only               make the system filesystem read-only; only /home/playroom and scratch dirs (/tmp, /var/tmp) are writable. Pass --read-only=false to allow system changes like 'apt install' (these reset on every restart) (default true)
      --ssh-key string          path to SSH public key to install in the playroom (default: first ~/.ssh/id_*.pub found)
      --storage string          size of the playroom's home directory storage (default "10Gi")
      --wait-timeout duration   max time to wait for the playroom to become ready (default 5m0s)

Options inherited from parent commands

  -C, --context string                    sets the context
      --debug                             enable debug mode
      --debug-show-authorization-header   prints actual authorization header in debug mode, use with caution!
  -O, --organisation string               sets the organisation
  -p, --playhouse string                  playhouse cluster slug (defaults to last-used; supports <env>/<slug>, etc.)
      --request-timeout duration          request timeout for api calls to the Avisi Cloud API (default 15s)
      --trace                             enable trace mode

SEE ALSO

On this page