Quick Start โ
Once your AWS access and the required permissions are in place, your first protected instance takes about five minutes to launch. The permissions are the one part that isn't automatic โ so start by figuring out which situation you're in.
First: which AWS account are you using? โ
Personal or admin-managed account
You can create IAM roles yourself, so you can install the required policy and go. Follow this page top to bottom.
Institution-managed account (most university / company accounts)
You can probably authenticate and launch some EC2, but you likely cannot create IAM roles or attach policies โ spawn needs both (once) for the spored instance profile. You'll need your cloud/security administrator to apply the policy. Send them the deployment packet (the exact least-privilege policy, what spawn creates, what it audits, and how to remove it), then come back and continue from Authenticate.
Not sure whether you have the permissions? After installing, run spawn doctor โ it tells you exactly what's missing.
Install โ
brew install spore-host/tap/truffle
brew install spore-host/tap/spawnscoop bucket add spore-host https://github.com/spore-host/scoop-bucket
scoop install truffle spawn# Download the latest release assets for your OS/arch, then extract onto PATH.
# Assets are named like spawn_<version>_<os>_<arch>.tar.gz with lowercase
# GOOS/GOARCH (darwin|linux, amd64|arm64), so normalize uname's output first.
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
case "$(uname -m)" in
x86_64|amd64) ARCH=amd64 ;;
arm64|aarch64) ARCH=arm64 ;;
*) echo "unsupported arch: $(uname -m)" >&2; exit 1 ;;
esac
for tool in spawn truffle; do
url=$(curl -fsSL "https://api.github.com/repos/spore-host/${tool}/releases/latest" \
| grep -o "https://[^\"]*_${OS}_${ARCH}.tar.gz" | head -1)
curl -fsSL "$url" -o "${tool}.tar.gz"
tar -xzf "${tool}.tar.gz" "$tool"
sudo install "$tool" /usr/local/bin/
doneVerify the installation:
truffle --version
spawn --versionAuthenticate with AWS โ
spore.host uses whatever AWS credentials your shell already has. The recommended way to get them is aws login (AWS CLI v2.32.0+), which signs you in and refreshes short-lived credentials automatically:
aws login # sign in (opens your browser)
aws sts get-caller-identity # confirm you're authenticatedOther paths work too โ pick whichever matches your organization:
- IAM Identity Center (SSO):
aws configure ssothenaws sso login --profile <name>(setAWS_PROFILEor--profile). - Static keys / CI / assumed roles: any credential your shell already resolves (env vars,
~/.aws/credentials, instance role) is used as-is.
aws login is preferred where available because the credentials are short-lived.
Your credentials need permission to launch and manage EC2 instances; see the recommended least-privilege baseline. For the full picture โ profiles, SPORE_* config, and how your auth relates to what spore.host does on your behalf โ see AWS Authentication.
Preflight: spawn doctor โ
Before launching anything, confirm your environment is actually ready:
spawn doctorIt runs read-only checks โ credentials, the resolved account and region, the EC2 and IAM permissions spawn needs, a usable VPC/subnet, an SSH key, Session Manager โ and reports โ / โ / โ for each. It launches nothing.
- All โ (or only โ ): you're ready โ continue below.
- Any โ on an IAM/permission check: that's the permissions cliff. On a personal account, apply the IAM baseline. On an institution-managed account, send your admin the deployment packet โ the failing checks are exactly what they need to grant.
If spawn doctor passes, the rest of this Quick Start should work as written.
Find an instance โ
Before launching, use truffle to find what's available and compare prices:
# Find a small instance in your region
truffle find "t3 medium"
# Find GPU instances with Spot prices
truffle find "nvidia gpu" --regions us-east-1You'll see a table of matching instance types with vCPUs, memory, GPU specs, on-demand price, and current Spot price. Pick a type that fits your workload and budget.
Launch your first instance โ
The simplest launch uses the interactive wizard. Just run spawn with no arguments:
spawnThe wizard walks you through instance type, region, SSH key, and TTL (the duration after which the instance automatically terminates). It takes about two minutes.
For a non-interactive launch:
spawn launch \
--name my-first-instance \
--instance-type t3.medium \
--ttl 4hOnce running, you'll see the instance ID, hostname, and how to connect:
โ Instance i-0a1b2c3d4e5f running
โ my-first-instance.abc123.spore.host
โ Connect: spawn connect my-first-instance
โ Auto-terminates in 4hConnect โ
spawn connect my-first-instancespawn connect is the canonical way in โ it resolves the instance, uses the right key, and logs you in as your own username (spawn creates a Linux user matching your local login and imports your existing public key โ ~/.ssh/id_ed25519 or ~/.ssh/id_rsa โ generating a managed key only if you have neither). Raw ssh <you>@<public-ip> works too, but prefer spawn connect so you don't have to track the address, key, or username yourself.
Check status โ
spawn list
spawn status my-first-instanceExtend the TTL โ
If you need more time before the instance terminates:
spawn extend my-first-instance 8hClean up โ
When you're done, terminate โ this deletes the instance and its EBS volume, so nothing keeps billing:
spawn terminate my-first-instancePrefer to pause and resume later? Stop instead โ but note a stopped instance still bills for its EBS storage until you terminate it:
spawn stop my-first-instance # resumable with `spawn start`; EBS still bills(You didn't have to remember this: the --ttl you set means the instance self-terminates at its deadline regardless.)
Next steps โ
- How It Works โ understand the full lifecycle and how the tools connect
- Security, credentials & data flow โ what runs where, and why spore.host never holds your keys
- Costs & safety guarantees โ the auto-terminate promise, its limits, and estimating cost up front
- Common Workflows โ end-to-end stories for real research tasks
- GPU Training โ launch a GPU instance for a training job
- spawn launch reference โ every flag explained