Skip to content

spawn command reference

Global flags

All spawn commands inherit these persistent flags.

FlagShortTypeDefaultDescription
--output-ostringtableOutput format: table, json
--verbose-vboolfalseEnable verbose output
--no-colorboolfalseDisable colorized output
--langstring(system)Language for output: en, es, fr, de, ja, pt
--no-emojiboolfalseDisable emoji in output
--accessibilityboolfalseEnable accessibility mode (implies --no-emoji)

spawn launch

Launch an EC2 instance with automatic lifecycle management.

spawn launch <name> [flags]

<name> is required. It sets the EC2 Name tag, the DNS hostname (<name>.<account>.spore.host), and the instance's own hostname. Names must be unique within your account.

Examples:

sh
# Basic launch — 1h idle timeout auto-applied if no --ttl
spawn launch my-job --instance-type c6a.4xlarge

# GPU training with TTL, Spot, and auto-terminate on completion
spawn launch train --instance-type p4d.24xlarge --spot --ttl 48h --on-complete terminate

# Job array (3 identical instances)
spawn launch workers --instance-type m7i.xlarge --count 3 --job-array-name workers

# Parameter sweep from YAML file
spawn launch sweep --instance-type c6i.2xlarge --param-file params.yaml --cartesian

# MPI cluster with EFA
spawn launch mpi-job --instance-type hpc7i.48xlarge --count 4 --mpi --efa

# With pre-stop S3 sync before lifecycle termination
spawn launch analysis --instance-type r7i.4xlarge --ttl 8h \
  --pre-stop "aws s3 sync /results s3://bucket/run-001"

# Larger root volume
spawn launch big-disk --instance-type m7i.large --volume-size 200

JSON output: With -o json, the TUI progress display is suppressed and spawn launch emits a parseable JSON array of launched instances, each with instance_id, name, instance_type, region, public_ip, state, and dns. Capture the ID in scripts with:

sh
id=$(spawn launch my-job --instance-type c6a.large -y -o json | jq -r '.[0].instance_id')

Instance configuration

FlagTypeDefaultDescription
--instance-typestringEC2 instance type
--regionstring(config default)AWS region
--azstringSpecific availability zone
--amistring(auto-detects AL2023)AMI ID. Use auto (or omit) to auto-detect the latest AL2023 AMI
--volume-sizeint(AMI default)Root EBS volume size in GiB. Use for AMI-baking or large datasets that exceed the default root volume
--vpcstringVPC ID (auto-creates if unset)
--subnetstringSubnet ID
--security-groupstringSecurity group ID
--key-pairstringSSH key pair name

Capacity

FlagTypeDefaultDescription
--spotboolfalseLaunch as Spot instance
--spot-max-pricestringMaximum Spot price (e.g., 0.50)
--use-reservationboolfalseUse On-Demand Capacity Reservation
--reservation-idstringCapacity Reservation / Capacity Block ID to launch into (cr-…). The instance must be in the reservation's AZ (set --az)
--capacity-blockboolfalseThe --reservation-id is a Capacity Block for ML (sets MarketType=capacity-block); mutually exclusive with --spot

Lifecycle

FlagTypeDefaultDescription
--ttlstringAuto-terminate after duration (e.g., 8h, 2d). If neither --ttl nor --idle-timeout are set, a 1h idle timeout is applied automatically.
--idle-timeoutstring1hAuto-terminate if no activity for this duration. Disabled if --ttl is set unless also explicitly specified.
--no-timeoutboolfalseDisable all automatic timeout (creates zombie risk — use with caution)
--hibernateboolfalseEnable hibernation support
--hibernate-on-idleboolfalseHibernate instead of terminate when idle
--on-completestringAction when workload signals completion: terminate, stop, hibernate
--completion-filestring/tmp/SPAWN_COMPLETEFile path that signals completion
--completion-delaystring30sGrace period after completion signal
--pre-stopstringShell command to run before any lifecycle-triggered stop/terminate
--pre-stop-timeoutstring5m (Spot: 90s)Max time for --pre-stop command
--session-timeoutstring30mAuto-logout idle SSH sessions (0 to disable)

Notifications and idle detection

FlagTypeDefaultDescription
--slack-workspacestringSlack workspace ID for lifecycle notifications (e.g., T03NE3GTY)
--active-portsstringComma-separated TCP ports to monitor — won't idle-terminate while any are active (e.g., 8787 for RStudio, 8787,8888 for RStudio+Jupyter)
--active-processesstringComma-separated process names to monitor — won't idle-terminate while any are running (e.g., rsession, rsession,jupyter)

Networking

FlagTypeDefaultDescription
--dnsstringOverride DNS name if different from --name
--dns-domainstringCustom DNS domain
--dns-api-endpointstringCustom DNS API endpoint

Startup

FlagTypeDefaultDescription
--user-datastringInline user-data script or @/path/to/file
--user-data-filestringPath to user-data script file
--pluginstringsPlugin to install at launch (repeatable, e.g., --plugin my-plugin@1.0)
--configstringLaunch config YAML file (supports plugins: list)
--commandstringCommand to run on all instances after setup

Shared storage

FlagTypeDefaultDescription
--efs-idstringEFS filesystem ID to mount (e.g., fs-abc123)
--efs-mount-pointstring/efsEFS mount point
--efs-profilestringgeneralEFS performance profile: general, max-io, max-throughput, burst
--efs-mount-optionsstringCustom EFS mount options (overrides profile)
--fsx-idstringExisting FSx Lustre filesystem ID to mount
--fsx-createboolfalseCreate new FSx Lustre (PERSISTENT_2, Lustre 2.15, compatible with AL2023) with S3 backing via Data Repository Association. Writes spawn:fsx-id, spawn:fsx-mount-name, spawn:fsx-mount-point tags on all instances.
--fsx-idstringExisting FSx filesystem ID. Writes spawn:fsx-id, spawn:fsx-mount-name, spawn:fsx-mount-point tags so boot scripts can auto-mount without hardcoding the ID.
--fsx-recallstringRecall FSx by CloudFormation stack name
--fsx-storage-capacityint1200FSx storage in GB (1200, 2400, or multiples of 2400)
--fsx-throughputint125PERSISTENT_2 throughput in MB/s/TiB — valid values: 125, 250, 500, 1000
--fsx-s3-bucketstringS3 bucket for FSx (required with --fsx-create)
--fsx-import-pathstringS3 import path
--fsx-export-pathstringS3 export path
--fsx-mount-pointstring/fsxFSx mount point

Job arrays

FlagTypeDefaultDescription
--countint1Number of instances to launch
--job-array-namestringJob array name (required when --count > 1)
--instance-namesstringInstance name template (e.g., worker-{index})

MPI clusters

FlagTypeDefaultDescription
--mpiboolfalseEnable MPI cluster setup (requires --count > 1)
--efaboolfalseEnable Elastic Fabric Adapter for ultra-low-latency MPI
--mpi-processes-per-nodeint(vCPU count)MPI processes per node
--mpi-commandstringCommand to run via mpirun
--skip-mpi-installboolfalseSkip MPI installation (for AMIs with MPI pre-installed)
--placement-groupstringUse an existing AWS Placement Group by name
--auto-placement-groupbooltrueAuto-create a cluster placement group named spawn-mpi-<job-array-name> and wait for it to become available before launching instances

Parameter sweeps

FlagTypeDefaultDescription
--param-filestringPath to parameter file (JSON, YAML, or CSV)
--paramsstringInline JSON parameters
--cartesianboolfalseGenerate cartesian product of parameter lists
--sweep-namestring(auto)Human-readable sweep identifier
--max-concurrentint0Max simultaneous instances (0 = unlimited)
--max-concurrent-per-regionint0Max simultaneous instances per region
--launch-delaystring0sDelay between instance launches
--detachboolfalseRun sweep orchestration in Lambda (auto-enabled for sweeps)
--no-detachboolfalseDisable auto-detach (requires --ttl or --idle-timeout)
--budgetfloat0Budget limit in dollars (0 = no limit)
--cost-limitfloat0Terminate when spend reaches this amount (0 = disabled)
--estimate-onlyboolfalseShow cost estimate and exit without launching
--yes / -yboolfalseAuto-approve cost estimate
--modestringbalancedDistribution mode: balanced or opportunistic

Region constraints (for sweeps)

FlagTypeDefaultDescription
--regions-includestringsOnly use these regions (wildcards: us-*)
--regions-excludestringsExclude these regions (wildcards: eu-*)
--regions-geographicstringsGeographic filter: us, eu, ap, north-america
--proximity-fromstringPrefer regions close to this region
--cost-tierstringPrefer cost tier: low, standard, premium

IAM

FlagTypeDefaultDescription
--iam-rolestringIAM role name (creates if doesn't exist)
--iam-policystringsService-level policies (e.g., s3:ReadOnly)
--iam-managed-policiesstringsAWS managed policy ARNs
--iam-policy-filestringCustom IAM policy JSON file
--iam-trust-servicesstringsec2Services that can assume the role

Compliance

FlagTypeDefaultDescription
--nist-800-171boolfalseEnable NIST 800-171 Rev 3 compliance mode
--nist-800-53stringEnable NIST 800-53 compliance level: low, moderate, high
--compliance-strictboolfalseFail on compliance warnings (default: warn only)

Workflow integration

FlagTypeDefaultDescription
--output-idstringWrite instance/sweep ID to file for scripting
--waitboolfalseWait for sweep/launch to complete
--wait-timeoutstring0Timeout for --wait (0 = no timeout)
--teamstringTeam ID for team-shared instance access
--interactiveboolfalseForce interactive wizard
--quietboolfalseMinimal output

spawn list

List running instances.

spawn list [flags]
spawn ls [flags]

Groups output by parameter sweeps, job arrays, and standalone instances. Shows columns: Instance ID, Name, Type, State, IAM Role, AZ, Age, TTL, Public IP, Spot.

Examples:

sh
spawn list
spawn ls --regions us-east-1,us-west-2
spawn list --state running --instance-family m7i
spawn list --sweep-name my-sweep
spawn list --output json

Flags:

FlagShortTypeDefaultDescription
--regionstring(all)Filter by a single region
--regions-rstrings(all)Filter by multiple regions (comma-separated)
--azstringFilter by availability zone
--statestringFilter by state: running, stopped, pending, etc.
--instance-typestringFilter by exact instance type
--instance-familystringFilter by instance family (e.g., m7i)
--tagstringsFilter by tag key=value (repeatable)
--job-array-idstringFilter by job array ID
--job-array-namestringFilter by job array name
--sweep-idstringFilter by sweep ID
--sweep-namestringFilter by sweep name

spawn status

Show status of an instance or parameter sweep.

spawn status <instance-id-or-name>

Connects to the instance via SSH and runs spored status, reporting lifecycle state, TTL countdown, idle timer, and completion signal.

Examples:

sh
spawn status my-job
spawn status i-0abc123

Flags:

FlagTypeDefaultDescription
--check-completeboolfalseExit with standardized codes: 0=complete, 1=failed, 2=running, 3=error

--check-complete inspects the instance's completion file (spawn:completion-file, default /tmp/SPAWN_COMPLETE): 0 if present, 1 if it reports a failure status, 2 if absent (still running), 3 on error. Works for a single instance (v0.36.6+) and, via spawn sweep status --check-complete, for parameter sweeps.


spawn connect

Open an SSH session to an instance, or run a single command and return.

spawn connect <instance-id-or-name> [-- <command>...]
spawn ssh <instance-id-or-name>

Resolves the instance by ID or name, finds the SSH key automatically from ~/.ssh/, and invokes ssh. Falls back to AWS Session Manager if no public IP is available or --session-manager is set. For DCV app streaming instances, opens the browser session instead.

Pass -- <command> to run a command non-interactively (one-shot mode). The command is wrapped in bash -c '...' on the remote side, so compound operators (&&, ;, &, pipes) and background jobs work correctly. Single quotes in the command are escaped automatically.

If the instance is stopped or hibernated, spawn automatically starts it and waits for it to reach running before connecting. Use --no-start to disable this behaviour.

When multiple instances share the same name, connect prefers the running instance. If multiple running instances share the name, the command fails with a list of the running instances so you can specify an ID.

Examples:

sh
spawn connect my-job                                               # interactive shell
spawn ssh i-0abc123
spawn connect my-job --user ubuntu --port 2222
spawn connect my-job --session-manager

# One-shot mode — single command
spawn connect my-job -- 'tail -20 /tmp/run.log'
spawn connect my-job -- 'aws s3 cp s3://bucket/run.sh /tmp/run.sh'

# Compound commands work — remote shell interprets && ; & etc.
spawn connect my-job -- 'cmd1 && cmd2'
spawn connect my-job -- 'nohup bash /tmp/run.sh > /tmp/run.log 2>&1 &'
spawn connect my-job -- 'aws s3 cp s3://bucket/run.sh /tmp/ && bash /tmp/run.sh'

Flags:

FlagTypeDefaultDescription
--userstringec2-userSSH username
--keystring(auto-detect)SSH private key path
--portint22SSH port
--session-managerboolfalseUse AWS Session Manager instead of SSH
--no-startboolfalseDo not automatically start a stopped/hibernated instance

spawn extend

Extend an instance's TTL.

spawn extend <instance-id-or-name> <duration>
spawn extend <duration> --job-array-id <id>
spawn extend <duration> --job-array-name <name>

TTL extension is anchored to the original launch time — extending adds to the current deadline, not to the current wall clock. After updating the tag, spored is signaled to reload its configuration.

Examples:

sh
spawn extend my-job 4h
spawn extend i-0abc123 1d
spawn extend 2h --job-array-name workers

Flags:

FlagTypeDefaultDescription
--job-array-idstringExtend all instances in job array by ID
--job-array-namestringExtend all instances in job array by name

spawn stop / start / hibernate

Stop, start, or hibernate an instance.

spawn stop <instance-id-or-name>
spawn start <instance-id-or-name>
spawn hibernate <instance-id-or-name>

All three commands accept --job-array-id or --job-array-name to operate on an entire job array at once. stop and hibernate preserve EBS volumes — to permanently destroy an instance, use spawn terminate.


spawn terminate

Permanently terminate an instance. Unlike stop/hibernate (which preserve EBS volumes), terminate destroys the instance and its EBS volumes. This is irreversible, so it prompts for confirmation by default.

spawn terminate <instance-id-or-name>
spawn terminate --job-array-id <id>
spawn terminate --job-array-name <name>

Examples:

sh
spawn terminate my-instance         # prompts, then terminates (EBS destroyed)
spawn terminate my-instance -y      # skip the confirmation prompt
spawn terminate --job-array-name workers   # terminate the whole array

Flags:

FlagShortTypeDefaultDescription
--yes-yboolfalseSkip the confirmation prompt
--job-array-idstringTerminate all instances in job array by ID
--job-array-namestringTerminate all instances in job array by name

spawn cancel

Cancel a parameter sweep and terminate all associated instances.

spawn cancel --sweep-id <sweep-id>

spawn sweep

Manage parameter sweeps after they have been launched.

spawn sweep <subcommand>
SubcommandUsageDescription
listspawn sweep listList parameter sweeps
statusspawn sweep status <sweep-id>Show sweep progress and instance breakdown
cancelspawn sweep cancel <sweep-id>Cancel and terminate all sweep instances
resumespawn sweep resume <sweep-id>Resume an interrupted sweep from checkpoint
collectspawn sweep collect <sweep-id>Download and aggregate results

spawn sweep list flags:

FlagTypeDefaultDescription
--statusstring(all)Filter by status: RUNNING, COMPLETED, FAILED, CANCELLED
--lastint20Show last N sweeps
--sincestringShow sweeps created after date (YYYY-MM-DD)
--regionstringFilter by region

spawn sweep status flags:

FlagTypeDefaultDescription
--check-completeboolfalseExit with standardized codes: 0=complete, 1=failed, 2=running, 3=error

spawn sweep resume flags:

FlagTypeDefaultDescription
--max-concurrentint0Override max concurrent instances (0 = use original)
--detachboolfalseRun orchestration in Lambda

spawn sweep collect flags:

FlagShortTypeDefaultDescription
--output-file-fstringresults.jsonOutput file path
--formatstringjsonOutput format: json, csv, jsonl
--s3-prefixstringCustom S3 prefix
--metricstringMetric field for ranking
--bestint0Show top N results (0 = all)
--regionsstringComma-separated regions to collect from

spawn collect-results

Collect and aggregate results from a parameter sweep.

spawn collect-results --sweep-id <sweep-id>

Flags:

FlagShortTypeDefaultDescription
--sweep-idstring(required)Sweep ID to collect from
--output-ostringresults.jsonOutput file path
--formatstringjsonOutput format: json, csv, jsonl
--s3-prefixstringCustom S3 prefix for results
--metricstringMetric field name for ranking results
--bestintShow only top N results
--regionsstringComma-separated regions to collect from

spawn schedule

Manage scheduled parameter sweep executions.

spawn schedule <subcommand>
SubcommandUsageDescription
createspawn schedule create <params-file>Schedule a sweep for future execution
listspawn schedule listList all schedules
cancelspawn schedule cancel <schedule-id>Cancel a schedule
updatespawn schedule update <schedule-id>Update schedule timing

spawn schedule create flags:

FlagTypeDefaultDescription
--atstringOne-time execution time (ISO 8601, e.g., 2026-06-01T14:00:00Z)
--cronstringRecurring cron expression (e.g., 0 9 * * MON)
--namestringSchedule name
--max-executionsintMaximum number of executions
--end-afterstringStop after duration (e.g., 30d)
--timezonestringTimezone for cron (e.g., America/New_York)

spawn queue

Manage batch job queues for sequential workload execution.

spawn queue <subcommand>
SubcommandUsageDescription
statusspawn queue status <instance-id>Show queue execution status
resultsspawn queue results <queue-id>Download results from S3
template listspawn queue template listList available queue templates
template showspawn queue template show <name>Show template details
template generatespawn queue template generateGenerate config from template

spawn queue results flags:

FlagShortTypeDefaultDescription
--output-ostring.Output directory for results

spawn autoscale

Manage auto-scaling job arrays that grow and shrink in response to queue depth or custom metrics.

spawn autoscale <subcommand>
SubcommandUsageDescription
launchspawn autoscale launchLaunch an auto-scaling group
updatespawn autoscale update <name>Update desired/min/max capacity
statusspawn autoscale status [name]Show group status (omit name for all)
healthspawn autoscale health <name>Show instance health details
pausespawn autoscale pause <name>Pause reconciliation (keep instances running)
resumespawn autoscale resume <name>Resume reconciliation
terminatespawn autoscale terminate <name>Terminate group and all instances
set-policyspawn autoscale set-policy <name>Set or update queue-depth scaling policy
set-metric-policyspawn autoscale set-metric-policy <name>Set metric-based scaling policy
scaling-activityspawn autoscale scaling-activity <name>Show recent scaling events
metric-activityspawn autoscale metric-activity <name>Show recent metric-based events
add-schedulespawn autoscale add-schedule <name>Add a scheduled scaling action
remove-schedulespawn autoscale remove-schedule <name> <schedule-name>Remove a scheduled action
list-schedulesspawn autoscale list-schedules <name>List all scheduled actions

Persistent flags (all subcommands):

FlagTypeDefaultDescription
--tablestringspawn-autoscale-groupsDynamoDB table name
--envstringproductionEnvironment: production or staging

spawn autoscale launch flags:

FlagTypeDefaultDescription
--namestring(required)Group name
--instance-typestring(required)EC2 instance type
--amistring(required)AMI ID
--desired-capacityint(required)Initial desired instance count
--min-capacityint0Minimum instance count
--max-capacityint(desired×2)Maximum instance count
--spotboolfalseUse Spot instances
--job-array-idstring(auto)Job array ID
--key-namestringSSH key pair name
--subnet-idstringSubnet ID
--security-groupsstringsSecurity group IDs
--iam-profilestringIAM instance profile
--user-datastringUser data script (base64)
--tagskey=valueAdditional EC2 tags
--scaling-policystringqueue-depth or metric
--queue-urlstringSQS queue URL for queue-depth scaling
--target-messages-per-instanceint10Scale up when queue exceeds this per instance
--scale-up-cooldownint60Seconds between scale-up actions
--scale-down-cooldownint300Seconds between scale-down actions
--metric-policystringMetric name for metric-based scaling
--target-valuefloatTarget metric value
--metric-namestringCloudWatch metric name
--metric-namespacestringCloudWatch metric namespace
--metric-statisticstringAverageCloudWatch statistic
--metric-periodint300Metric evaluation period (seconds)

spawn autoscale update flags: --desired-capacity, --min-capacity, --max-capacity

spawn autoscale set-policy flags: --scaling-policy, --queue-url, --queue (multiple), --queue-weight, --target-messages-per-instance, --scale-up-cooldown, --scale-down-cooldown, --none (remove policy)

spawn autoscale set-metric-policy flags: --metric-policy, --target-value, --metric-name, --metric-namespace, --metric-statistic, --metric-period, --none

spawn autoscale add-schedule flags: --name, --schedule (cron expression), --desired-capacity, --min-capacity, --max-capacity


spawn burst

Launch cloud instances to join a local job array (cloud bursting).

spawn burst --job-array-id <id> [flags]

Flags:

FlagTypeDefaultDescription
--job-array-idstring(required)Job array ID to join
--job-array-namestringJob array name
--countint1Number of instances to burst
--instance-typestringt3.microInstance type
--spotboolfalseUse Spot instances
--amistringAMI ID
--key-namestringSSH key pair name
--subnet-idstringSubnet ID
--security-groupsstringsSecurity group IDs

spawn slurm

Convert and run Slurm batch scripts on EC2.

spawn slurm <subcommand> <script.sbatch>

Translates #SBATCH directives to spawn flags. Supports --nodes, --ntasks, --mem, --gres, --time, --partition, and others.

SubcommandDescription
convert <script>Convert sbatch script to spawn launch flags
estimate <script>Estimate cloud cost for the job
submit <script>Convert and launch on EC2

spawn slurm convert flags:

FlagShortTypeDefaultDescription
--output-ostringOutput file for converted parameters
--force-yesboolfalseSkip confirmation prompts

spawn slurm submit flags: inherits --spot


spawn stage

Manage data staging for multi-region sweeps.

spawn stage <subcommand>
SubcommandUsageDescription
uploadspawn stage upload <local-path>Upload data to regional S3 buckets
listspawn stage listList staged datasets
estimatespawn stage estimateEstimate transfer cost savings
deletespawn stage delete <id>Delete staged data

spawn stage upload flags: --regions, --dest, --sweep-id


spawn cost

View cost breakdown for a parameter sweep.

spawn cost breakdown <sweep-id>

Shows per-instance resource costs, utilization, and budget status.


spawn dns

Manage DNS records for instances.

spawn dns <subcommand>
SubcommandDescription
registerRegister a DNS record for an instance
deleteDelete a DNS record
listList DNS records

spawn notify

Manage Slack and Teams notification registrations for instances.

spawn notify <subcommand>
spawn bot <subcommand>

spawn bot is an alias for spawn notify.

SubcommandDescription
registerRegister an instance for chat bot control
deregisterRemove a chat bot registration
enableRe-enable bot access for an instance
disableTemporarily disable bot access
listList bot registrations for a workspace
workspace-addRegister a Slack/Teams workspace's bot token
workspace-removeRemove a workspace registration
workspace-listList registered workspaces

spawn notify register flags:

FlagTypeDescription
--platformstring(required) slack or teams
--userstringUser email address (resolved to platform user ID)
--user-idstringPlatform user ID (alternative to --user)
--workspace-idstringSlack workspace ID or Teams tenant ID
--instance-idstringInstance to register
--nicknamestringDisplay name for the instance in chat
--connect-codestringSelf-registration code from /spore connect
--role-arnstringCross-account IAM role ARN

spawn notify workspace-add flags: --platform, --workspace-id, --bot-token, --signing-secret


spawn alerts

Manage alerts for sweeps and schedules.

spawn alerts <subcommand>
SubcommandUsageDescription
createspawn alerts create <sweep-id>Create a new alert
listspawn alerts listList all alerts
deletespawn alerts delete <alert-id>Delete an alert

spawn alerts create flags:

FlagTypeDefaultDescription
--on-completeboolfalseAlert on completion
--on-failureboolfalseAlert on failure
--cost-thresholdfloat0Alert when spend exceeds this amount
--long-runningint0Alert after this many hours
--instance-failedboolfalseAlert when an instance fails
--emailstringEmail destination
--slackstringSlack webhook URL
--snsstringSNS topic ARN
--webhookstringWebhook URL

spawn validate

Validate compliance and infrastructure configuration.

spawn validate [flags]

Flags:

FlagTypeDefaultDescription
--nist-800-171stringValidate NIST 800-171 compliance
--nist-800-53stringValidate NIST 800-53 (low, moderate, high)
--infrastructureboolfalseValidate infrastructure resources
--instance-idstringSpecific instance to validate
--regionstringAWS region
--outputstringtextOutput format: text, json

spawn pipeline

Manage multi-stage compute pipelines.

spawn pipeline <subcommand>

Chains stages together: when one stage completes (via --on-complete), the next launches automatically with its results.

See the pipelines guide for full workflow documentation.


spawn plugin

Manage plugins for instance customization at launch time.

spawn plugin <subcommand>
SubcommandDescription
installInstall a plugin
listList installed plugins
statusShow plugin status
removeRemove a plugin
validateLint one or more plugin.yaml files offline (no install): spawn plugin validate <path>...

See the plugins guide for usage.


spawn instance-config

Read or write runtime configuration on a running instance via SSH.

spawn instance-config <instance-id-or-name> <action> [key] [value]
spawn config <instance-id-or-name> <action> [key] [value]

spawn config is an alias. Actions: get, set, list.

Examples:

sh
spawn config my-job list
spawn config my-job get idle-timeout
spawn config my-job set idle-timeout 2h

spawn team

Manage team-shared instance access.

spawn team <subcommand>

See the teams guide for full workflow documentation.


spawn availability

Display historical launch success/failure statistics for an instance type.

spawn availability --instance-type <type> [--regions <regions>]

Flags:

FlagTypeDescription
--instance-typestring(required) Instance type to check
--regionsstringComma-separated regions

spawn defaults

Manage launch defaults stored in ~/.spawn/config.yaml.

spawn defaults <subcommand>

spawn ami

Manage spawn-managed AMIs.

spawn ami <subcommand>
SubcommandUsageDescription
listspawn ami listList spawn-managed AMIs
createspawn ami create <instance-id-or-name>Create an AMI from a running instance

spawn ami list flags:

FlagTypeDescription
--regionstringAWS region (default: current region)
--stackstringFilter by spawn:stack tag
--versionstringFilter by spawn:version tag
--archstringFilter by architecture: x86_64, arm64
--gpustringFilter by GPU support: true, false
--deprecatedboolInclude deprecated AMIs

spawn ami create flags:

FlagTypeDescription
--namestring(required) Name for the AMI
--descriptionstringDescription
--tagstringsTags in key=value format (repeatable)
--rebootboolReboot instance before creating (default: no-reboot)
--waitboolWait for AMI to become available

spawn capacity-block

Purchase EC2 Capacity Blocks for ML from an offering discovered with truffle capacity-blocks.

spawn capacity-block purchase <offering-id> [flags]

⚠️ A Capacity Block is billed up front and is non-refundable — the full block duration is charged at purchase, making this the single most expensive action spawn can take. The purchase requires you to type three confirmations (the exact price, purchase <offering-id>, and an acknowledgement phrase) and refuses to run on a non-interactive terminal — there is no --yes bypass. Use --dry-run first to preview the price and terms without buying anything.

The offering's instance type, count, and duration must be supplied so the exact offering can be re-validated and its current price re-confirmed immediately before purchase. This is step 2 of the Capacity Block flow; launch into the reservation afterward with spawn launch --reservation-id … --capacity-block or lagotto launch --at <block-start>.

Examples:

sh
# Preview only — no charge, no write API call
spawn capacity-block purchase cbo-0abc123 --instance-type p5.48xlarge \
  --count 1 --duration-hours 24 --region us-east-1 --dry-run

# Real purchase (prompts for the three typed confirmations)
spawn capacity-block purchase cbo-0abc123 --instance-type p5.48xlarge \
  --count 1 --duration-hours 24 --region us-east-1

spawn capacity-block purchase flags:

FlagTypeDefaultDescription
--instance-typestringInstance type of the offering (required, e.g. p5.48xlarge)
--duration-hoursintCapacity Block duration in hours (required)
--countint1Number of instances in the block
--regionstringAWS region of the offering (required)
--platformstringLinux/UNIXInstance platform
--dry-runboolfalsePreview the price and terms without purchasing
--tagstringsTag to apply to the reservation (key=value; repeatable)

spawn fsx

Manage spawn-managed FSx Lustre filesystems.

spawn fsx <subcommand>
SubcommandUsageDescription
listspawn fsx listList all spawn-managed FSx filesystems
infospawn fsx info <filesystem-id>Show filesystem details and cost estimate
deletespawn fsx delete <filesystem-id>Delete a filesystem

spawn fsx delete flags:

FlagTypeDefaultDescription
--export-firstboolfalseExport data to S3 before deleting
--yesboolfalseSkip confirmation prompt

spawn app

Launch and manage catalog applications via NICE DCV browser streaming.

spawn app <subcommand>
SubcommandUsageDescription
listspawn app listList all streamable applications in the catalog
launchspawn app launch <app-name>Launch a catalog application in a browser tab

spawn app list prints each app's name, description, GPU requirement, recommended instance families, and license type.

spawn app launch flags:

FlagTypeDefaultDescription
--namestring<app>-<timestamp>Session name
--instance-typestring(catalog default)Override instance type
--regionstring(AWS config)AWS region
--spotboolfalseUse Spot pricing
--ttlstringHard termination deadline (e.g. 8h)
--idle-timeoutstring(catalog default)Stop when DCV has no clients for this duration
--no-openboolfalseWrite session file but do not open browser automatically

After launch, spawn connect <name> reconnects to an existing session — waking the instance if stopped and opening the browser tab.


spawn version

Print version, build date, and git commit.

spawn version

spawn completion

Generate shell completion scripts.

spawn completion <shell>

Supported shells: bash, zsh, fish, powershell

Setup examples:

sh
# bash
spawn completion bash > /etc/bash_completion.d/spawn

# zsh
spawn completion zsh > "${fpath[1]}/_spawn"

# fish
spawn completion fish | source