playroom update
Re-render a playroom with the current CLI version (alpha)
Synopsis
Update a playroom in place: rebuild its Kubernetes resources with this CLI version and converge the live state to them. The playroom's own configuration — image, resources, storage, forwarded env vars and SSH key, forwarded ports — is read back from the cluster and preserved; what changes is everything the CLI derives itself, such as the pod template and boot logic. Run it after upgrading acloud to roll template fixes out to playrooms created by older versions. If nothing changed, update is a no-op.
Pass --image, --read-only, --port, or the resource flags to change those settings as part of the update. Any flag left unset keeps the playroom's current value; configured defaults (acloud playroom config) are deliberately not applied here. --port replaces the full set of forwarded ports (pass --port none to remove them all); port changes only touch the tailnet Service, so they apply without restarting the playroom.
If the rebuilt spec differs, the playroom pod restarts: active SSH sessions are disconnected, but the home directory and SSH host identity are kept. Repos cloned at boot via --git are not carried over into the rebuilt boot logic; existing clones in the workspace are unaffected.
Ephemeral playrooms cannot be updated — their home directory would not survive the restart. Delete and recreate them instead.
ALPHA: this command is in active development; flags and behaviour may change between releases.
Pass - as NAME to update the last-used playroom.
acloud playroom update NAME | - [flags]Examples
acloud playroom update my-room --playhouse playhouse-demo
# update the last-used playroom
acloud playroom update -
# switch the playroom to the claude-code image and give it more memory
acloud playroom update my-room --image claude-code \
--memory-request 4Gi --memory-limit 4Gi
# replace the forwarded ports (applies without a restart)
acloud playroom update my-room --port 3000 --port 80:8080
# remove all forwarded ports
acloud playroom update my-room --port noneOptions
--cpu-limit string change the maximum CPU the playroom may use (default: keep current)
--cpu-request string change the CPU reserved for the playroom (default: keep current)
--force update the playroom even if it is owned by another user
-f, --force-install force a fresh login to the Playhouse even if a cached session is still valid
-h, --help help for update
--image string change the playroom's container image: an alias ('opencode' or 'claude-code') or a full registry path (default: keep current)
--memory-limit string change the maximum memory the playroom may use (default: keep current)
--memory-request string change the memory reserved for the playroom (default: keep current)
--no-wait return immediately after applying the update; don't wait for the rollout
--port stringArray replace the forwarded TCP ports; PORT or PORT:TARGETPORT, repeatable. Pass --port none to remove all forwards (default: keep current)
--read-only change whether the system filesystem is read-only; --read-only=false makes it writable (default: keep current)
--wait-timeout duration max time to wait for the update to roll out (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 modeSEE ALSO
- acloud playroom - Manage playrooms (alpha)