Skip to content
Spinbox is experimental: APIs change and data may be lost. Status lists what is built and what proves it.

spin workspace

View Markdown
Manage workspaces
Usage:
spin workspace [flags]
spin workspace [command]
Aliases:
workspace, ws
Available Commands:
approve-egress-root Let the workspace trust the installation's egress root
approve-settings Approve the startup settings the workspace is handed
audiences Who the workspace's identity may be given for, as its owner's word says
clone Clone a running workspace
console What the workspace's machine printed to its serial console
create Create a new workspace
delete Delete a workspace
deleted List your workspaces in the trash
denials What a workspace attempted past its policy (admin)
egress What a workspace has reached beyond this installation
get Get workspace details
grant Give a workspace more cores and memory of its own
guests The people who log in to a workspace besides its owner
history Show workspace state change history
keep Keep a running workspace awake for a while
list List your workspaces
logs Search what the workspace's machine printed to its console
logs-consent Say whether the workspace's journal and console may be collected
move Move a running workspace to another host
policies The network policies a workspace can be created with
quarantine Hold a workspace in quarantine (admin)
recover Re-home a workspace whose host is gone
release Give back what a workspace was granted
reset Put a stopped workspace's disk back to what it was created from
restore Put a stopped workspace's disk back to a snapshot, or to what it was created from
retag Change which network policies a workspace runs under
sign Sign the workspace's next access: who logs in, as you invited them
start Start a stopped workspace
status Why a workspace is not behaving
stop Stop a running workspace
suspend Put a running workspace down with its processes where they are
undelete Take a workspace out of the trash, stopped
unquarantine Release a quarantined workspace (admin)
update Update workspace properties
watch Record where a workspace connects, into its logs
Flags:
-h, --help help for workspace
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
Use "spin workspace [command] --help" for more information about a command.
A workspace's guest puts the installation's egress root in its trust store - the CA its host's
egress proxy stands in for brokered hosts with - only while its owner's word names it: a root
there reads what the guest's TLS clients send through the proxy. This signs a word naming the
root the control plane offers, once held to the one this machine pinned for the installation
(the first offered; 'spin trust egress-root' pins another).
Usage:
spin workspace approve-egress-root <workspace> [flags]
Flags:
-h, --help help for approve-egress-root
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
A workspace applies its startup settings - dotfiles and the command that installs them, the
login shell, the environment, the editor's settings and the Taskfile - only as its access
approves them, by their digest. This shows the settings the control plane would hand it now,
and signs an access approving exactly those: settings changed afterwards, by anyone, are not
applied until approved again.
Usage:
spin workspace approve-settings <workspace> [flags]
Flags:
-h, --help help for approve-settings
-y, --yes Skip confirmation
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
A host gives a workspace's identity token - to the guest, or through its egress proxy - only
for an audience its owner's word names and the installation allows: the installation's list is
the control plane's to write, so it alone never widens who the identity reaches.
With no flags this shows the word's audiences and the installation's. --add and --remove sign
the owner's next word naming more or fewer; --any signs one naming any audience the
installation allows, which trusts the installation's list.
Usage:
spin workspace audiences <workspace> [flags]
Flags:
--add strings an audience to name
--any name any audience the installation allows
-h, --help help for audiences
--remove strings an audience to name no more
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
Clone a running workspace: a snapshot of its disk is taken and published, and a workspace
is created from it with the source's team, project and ref, size, network policies and
environment, owned by you. The source runs on. The snapshot stays as the clone's floor. This
answers once the clone exists, which takes as long as publishing the source's disk.
Like a create, the clone's first access is signed here with a key of your keyring.
Examples:
spin workspace clone mydev
spin workspace clone mydev --name experiment --wait
Usage:
spin workspace clone <workspace> [flags]
Flags:
-h, --help help for clone
--name string The clone's name (generated if empty)
--timeout duration How long --wait waits; by default, until the control plane gives up on it
--wait Return once the clone is running
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
Show the tail of a workspace's serial console: the kernel, then the guest's init,
then the supervisor.
This is where a machine that never came up says why. It is read from the host that holds
it, so a workspace that has moved to another host has nothing here about the run that failed
on the one it left - unless the installation collects consoles, and then 'spin workspace logs'
searches what every run of it printed.
Usage:
spin workspace console <workspace> [flags]
Flags:
-h, --help help for console
--lines int32 How many lines from the end (default 200)
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
Create a new workspace from an image or a snapshot. An image is a published starting disk
the installation allows; without --image, the installation's default is used. Its size is a
preset the installation offers; without --preset, the installation's default.
Every workspace answers to its access, which you sign here with a key of your keyring (the keys
you registered, 'spin ssh-key add', and signed, 'spin sign'): who logs in - you, and the guests
you invite - whether logs leave the workspace and which settings it applies. The host it runs
on lets a key in only by it, and the control plane cannot write one. Settings are applied once
you approve them (--approve-settings, or 'spin workspace approve-settings').
A project of a team (--team, --project) is the workspace's shape - its image, preset and network
policies - and the repository its guest clones into /workspace/<repository name>, at --ref or the
project's own. Opening one approves the settings, since the repository is one of them.
Examples:
spin workspace create --name mydev
spin workspace create --name mydev --preset large
spin workspace create --name build --env GOPROXY=direct --network-tag registry-only
spin workspace create --name copy --from-snapshot <snapshot-id>
spin workspace create --team /engineering --project qboot --ref release/2
Usage:
spin workspace create [flags]
Flags:
--approve-settings Show your startup settings and approve them in the first access
--env strings Environment variables (KEY=VALUE)
--from-snapshot string Start from a snapshot instead of an image
-h, --help help for create
--image string the ref of the disk image to start from, with its version (default: the base image of the machine this installation runs)
--name string Workspace name (auto-generated if empty)
--network-tag strings Network policy to run under, by name (repeatable)
--preset string The preset it is sized by, by name (default: the installation's)
--project string A project of --team to open, by slug: its image, preset and policies, and its repository cloned
--ref string The branch or tag to open the project at (default: the project's)
--team string The team, by id, path or me (your personal team if empty)
--timeout duration How long --wait waits; by default, until the control plane gives up on it
--wait Return once the workspace is running
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
Delete a workspace. Where the installation keeps a trash, the workspace goes there with
its disk and can be undeleted until its days are up (spin workspace deleted, spin workspace
undelete); --permanently erases it now, as does deleting one that is in the trash already.
Usage:
spin workspace delete <workspace> [flags]
Flags:
--force Delete it in a state a delete is otherwise refused in: one stuck starting or stopping
-h, --help help for delete
--permanently Erase it now instead of keeping it in the trash
-y, --yes Skip confirmation
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
List your workspaces in the trash
Usage:
spin workspace deleted [flags]
Flags:
-h, --help help for deleted
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
The egress a workspace's policy refused, as its supervisor reported it, newest first:
what was attempted while it was held, and around the holding. Reading it is an
administrator's act.
Usage:
spin workspace denials <id> [flags]
Flags:
-h, --help help for denials
--limit int32 How many of the newest to read (default 100)
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
List every destination a running workspace's machine has been allowed to reach, with the
host's own packet and byte counters and, where its resolver answered for it, the name it was
asked for.
This is what an allowlist is written from: a network policy is a list of destinations, and a
guess at one either breaks the workspace or allows what nobody meant to. The host keeps the
record for six hours, so a workspace has to be running on one to answer.
Usage:
spin workspace egress <workspace> [flags]
Flags:
-h, --help help for egress
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
Get workspace details
Usage:
spin workspace get <workspace> [flags]
Flags:
-h, --help help for get
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
Give a workspace more cores and memory of its own, while it runs: its host sets them aside
and its machine is grown at once. It keeps them - across stops and starts - until they are
given back with 'spin workspace release', the workspace is deleted, or the time --for gives is
up. Each grant says its time anew: one without --for is kept until it is given back.
What it may hold is its preset's: at least what it started at, and at most the preset's size,
or as much as its host has room for where the preset grows to the host's. A running
workspace's host has to have the room now; with --move, a host that has not is left for one
that has: the workspace is suspended where it runs, its processes as they are, and resumed
there from the instant its memory was checkpointed. It is paused from that instant until it
runs there, which takes as long as storing its memory and publishing its disk - minutes, for
a large one - and nothing it did is lost.
Examples:
spin workspace grant mydev --cpu 4
spin workspace grant mydev --cpu 4 --memory 8192
spin workspace grant mydev --cpu 8 --for 2h
Usage:
spin workspace grant <workspace> [flags]
Flags:
--cpu int32 Cores it is to hold
--for duration How long the grant lasts before it is given back on its own (default: until it is given back)
-h, --help help for grant
--memory int32 Memory it is to hold, in MB
--move Move it to a host with room when its own has none (it is paused while it moves)
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
A guest logs in to a workspace with any key of their own keyring, sees it and opens its ports,
and changes nothing else: who logs in and what leaves the machine stay its owner's to say.
Inviting and removing sign the next access, on this machine.
Usage:
spin workspace guests [flags]
spin workspace guests [command]
Available Commands:
add Invite a person, and sign the access that names them
list The guests, as invited and as the access names them
remove Take a guest out, and sign the access without them
Flags:
-h, --help help for guests
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
Use "spin workspace guests [command] --help" for more information about a command.
Invite a person, and sign the access that names them
Usage:
spin workspace guests add <workspace> <email> [flags]
Flags:
-h, --help help for add
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
The guests, as invited and as the access names them
Usage:
spin workspace guests list <workspace> [flags]
Flags:
-h, --help help for list
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
The control plane refuses them at once; the workspace's host, once the access without them is
signed - which this does - from their next login on.
Usage:
spin workspace guests remove <workspace> <email | user id> [flags]
Flags:
-h, --help help for remove
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
Show workspace state change history
Usage:
spin workspace history <workspace> [flags]
Flags:
-h, --help help for history
--limit int32 Number of events to show (default 50)
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
Answer the question asked ten minutes before a suspension: for the duration given - 2h, 90m,
up to 24h - neither the idle suspension nor the running cap puts the workspace down, and the
question on its page and in its terminals is withdrawn. An extension with an end, never
permanent: it is asked again ten minutes before the end. Inside the workspace,
'/run/spin-stack/supervisor/bin/spin-supervisor keep <duration>' does the same.
Usage:
spin workspace keep <workspace> <duration> [flags]
Flags:
-h, --help help for keep
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
List your workspaces
Usage:
spin workspace list [flags]
Flags:
-h, --help help for list
--state string Filter by state (running, stopped, etc.)
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
Search the workspace's console as the installation kept it, newest first: every run
of it, on whichever host ran it, for the installation's retention.
Only where the installation collects consoles (collect_workspace_logs); otherwise
'spin workspace console' reads the tail from the host that holds it.
Examples:
spin workspace logs my-ws
spin workspace logs my-ws 'panic OR "out of memory"' --since 24h
Usage:
spin workspace logs <workspace> [query] [flags]
Flags:
-h, --help help for logs
--limit int32 how many lines, newest first: 1 to 1000 (default 100)
--since duration how far back to look, at most 744h (31 days) (default 1h0m0s)
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
A workspace's journal and its console leave it only while its access consents, and the
installation collects them: either can say no. The owner signs the consent, on this machine.
Usage:
spin workspace logs-consent <workspace> <on|off> [flags]
Flags:
-h, --help help for logs-consent
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
Move a running workspace to another host, holding what it holds: it is suspended where it
runs, its processes as they are, and resumed there from the instant its memory was
checkpointed. It is paused from that instant until it runs there, which takes as long as
storing its memory and publishing its disk - minutes, for a large one - and nothing it did is
lost. Placement chooses the host, as it does at a start.
A workspace that is not running has no host to be moved off: placement decides where it runs
at its next start.
Usage:
spin workspace move <workspace> [flags]
Flags:
-h, --help help for move
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
List the network policies the hosts report they enforce, by name: these are the words
'spin workspace create --network-tag' takes.
A policy is an installation's, not a workspace's: an operator writes it on each host, and the
host is what enforces it. A tag no host reports is refused at create rather than failing when
the workspace starts. Where two hosts give one name different prefixes, both are shown: a tag
that means two things is a misconfiguration worth seeing.
Usage:
spin workspace policies [flags]
Flags:
-h, --help help for policies
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
Hold a workspace in quarantine: an administrator's decision, and until one releases it
the workspace cannot be started, moved or deleted by its own person, its disk kept as it was.
A running workspace is stopped first, forced, and held when its host says it stopped. What the
workspace attempted, kept beside it, is what spin workspace denials reads.
Usage:
spin workspace quarantine <id> [flags]
Flags:
-h, --help help for quarantine
--reason string Why it is held: kept on the audit entry for the act
-y, --yes Skip confirmation
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
Move a workspace to another host after the one it was on died.
A workspace cannot be started on a host that is not connected, and no amount of retrying
changes that. Recovering takes its disk from the dead host and places it on a live one.
The cost is the work the dead host had written and not yet published. Run without
--accept-data-loss to see that cost; nothing is changed until you pass it.
Usage:
spin workspace recover <workspace> [flags]
Flags:
--accept-data-loss go ahead and give up the work the old host had not published
-h, --help help for recover
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
Give back the cores and memory a workspace was granted: it holds what its preset started it
at again, and a running machine is shrunk to it at once. Memory the guest will not let go of is
lent to it instead, and taken back as it frees it.
Usage:
spin workspace release <workspace> [flags]
Flags:
-h, --help help for release
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
Put a stopped workspace's disk back to the snapshot it was created from: the image, or
the snapshot it was made from. Everything the workspace has ever written is given up.
Nothing is uploaded and nothing is downloaded - the disk it goes back to is one its host
already has - so this is the cheapest way back there is. The disk it had is kept with its
snapshots, so a snapshot taken before the reset is still a way back to that work.
Usage:
spin workspace reset <workspace> [flags]
Flags:
-h, --help help for reset
--start Start the workspace on the disk it was created from and wait until it is running
--timeout duration How long --start waits; by default, until the control plane gives up on it
-y, --yes Skip confirmation
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
Put a stopped workspace's disk back to one of its snapshots. Without a snapshot, the
disk goes back to what the workspace was created from.
Everything the workspace wrote after the snapshot is given up, which is why the workspace has
to be stopped first. The disk it had is kept with its snapshots, so restoring to a snapshot
taken after the one restored undoes the restore.
With --with-memory the snapshot's running processes come back too, from the instant it was
taken, and the workspace may be running: it is put back to that instant.
Usage:
spin workspace restore <workspace> [snapshot-id] [flags]
Flags:
-h, --help help for restore
--start Start the workspace on the restored disk and wait until it is running
--timeout duration How long --start waits; by default, until the control plane gives up on it
--with-memory Resume the snapshot's processes too; the workspace may be running
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
Replace the network policies a workspace runs under, while it runs. The host is told
at once, so a change takes effect without a restart.
The tags given are the whole set, not an addition: 'retag ws --network-tag web' leaves the
workspace carrying web and nothing else. Naming none means what it means on a create - the
installation's default. To have a workspace reach nothing, name the policy 'offline', which
every host has.
Taking a policy away closes what it opened, including the connections the workspace already
had: the addresses its lookups opened under the leaving policies are forgotten and its open
connections are dropped, so the next packet of each is judged by the policy as it now is.
Adding a policy closes nothing.
You may choose among the policies the installation declares ('spin workspace policies'). An
administrator may name any policy a host reports.
Usage:
spin workspace retag <workspace> [flags]
Flags:
-h, --help help for retag
--network-tag strings Network policy to run under, by name (repeatable); the whole set, not an addition
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
A workspace lets in whoever its access names - you, and the guests you invited - and nobody
else: its host holds every login to it, with each person's own keyring. This signs the next
access with a key of your keyring, on this machine, naming the guests as they are now and
keeping every consent as it was. A workspace you created and never signed lets nobody in
until you do.
Usage:
spin workspace sign <workspace> [flags]
Flags:
-h, --help help for sign
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
Start a stopped workspace on its disk, or resume a suspended one from the memory it kept.
--from-disk boots a suspended workspace from its disk instead, and drops that memory: its
processes start again as after a power cut. It is what is left when the memory was taken on a
machine no host of this installation runs now ('spin workspace get' says so).
Usage:
spin workspace start <workspace> [flags]
Flags:
--from-disk boot a suspended workspace from its disk, dropping the memory it was suspended with
-h, --help help for start
--timeout duration How long --wait waits; by default, until the control plane gives up on it
--wait Return once the workspace is running
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
Show what each party believes about a workspace, and where they disagree.
A workspace's state is held by four parties that can disagree: the control plane has a
lifecycle state it set, the supervisor inside the guest reports what it is doing, the host
either heartbeats or does not, and the volume either serves the disk or refuses. "spin workspace get" shows the first of those. This shows all four, and names the
gaps between them - which is usually the answer.
Usage:
spin workspace status <workspace> [flags]
Flags:
-h, --help help for status
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
Stop a running workspace. Its disk is kept for the next start.
Use --force to stop its machine without waiting for the guest to shut down: it is also what
ends a stop that did not finish. 'spin workspace get' lists what a workspace can be asked.
Usage:
spin workspace stop <workspace> [flags]
Flags:
--force Stop the machine without waiting for the guest; also ends a stop that did not finish
-h, --help help for stop
--timeout duration How long --wait waits; by default, until the control plane gives up on it
--wait Return once the workspace is stopped
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
Checkpoint a running workspace's memory and disk and stop its machine. Its next start
resumes that instant - the processes go on from where they were, on any host carrying the same
machine, not only the one it was suspended on.
This is what a host being drained does to what it runs. It answers once the memory is stored
and the disk is published, which takes as long as that does; the machine is paused from the
checkpoint on, so it does nothing past that instant and nothing it did is lost.
The checkpoint is a snapshot like any other: 'spin snapshot list' shows it, and deleting it is
what makes the workspace start from its disk instead.
Usage:
spin workspace suspend <workspace> [flags]
Flags:
-h, --help help for suspend
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
Take a workspace out of the trash, stopped, with its disk. It keeps its name unless another
workspace took it meanwhile, in which case the name gets a suffix. Name it by the id
spin workspace deleted shows.
Usage:
spin workspace undelete <id> [flags]
Flags:
-h, --help help for undelete
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
Release a quarantined workspace: back to stopped, where it was held from, with its disk
as it was - or, where the stop its quarantine asked for ended failed, failed as it is and no
longer held. The account of what it attempted is kept, and stays to be read (spin workspace
denials).
Usage:
spin workspace unquarantine <id> [flags]
Flags:
-h, --help help for unquarantine
-y, --yes Skip confirmation
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
Update workspace properties such as name and environment variables.
Cores and memory are 'spin workspace grant' and 'spin workspace release', while it runs.
Examples:
spin workspace update mydev --name newname
spin workspace update mydev --env KEY=value --env OTHER=val2
spin workspace update mydev --name newname --env DEBUG=true
spin workspace update mydev --wake-on-access
Usage:
spin workspace update <workspace> [flags]
Flags:
--env strings Environment variables (KEY=VALUE)
-h, --help help for update
--name string New workspace name
--wake-on-access Resume it, when suspended, for a signed-in visitor of one of its ports (never an anonymous one)
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
Have the workspace's host record where it connects: each name it looks up, each
destination it is first let through to or refused, and what it goes on sending and receiving
there, with the time. It is written to the workspace's logs as the service "network", where the
installation collects logs, and read with them ('spin workspace logs', or the workspace's page).
The watch holds across stops and starts until it is turned off with --off. It says where the
workspace went, never what it sent: no packet is kept.
Usage:
spin workspace watch <workspace> [flags]
Flags:
-h, --help help for watch
--off Stop recording where the workspace connects
Global Flags:
--config string config file (default is $HOME/.spin/config.yaml)
-o, --output string text for a person, or json: one document of what the API answered, and no prose (default "text")
--profile string named profile to use; SPIN_PROFILE names it when this flag does not (default "default")

Generated by task reference from spin/cmd/cli at 8eee32b9d.

Documents Spinbox v20261019.02. This page as Markdown, for a model or a terminal.