Workers
Workers are isolated Docker containers — your personal development environment, ready in seconds.
A worker is a running Docker container that provides a full development environment. It includes:
- code-server — a browser-based VS Code instance on port 8080
- Your project's tools — languages, runtimes, and CLI tools defined in the devcontainer spec
- VS Code extensions — pre-installed at image build time
- Git credentials — your GitHub SSH key and personal access token, injected at spawn
- User secrets — encrypted key/value pairs available as environment variables
New worker
↓ [image build — once per project version per node]
↓ [spawn container]
↓ [setup script — clone repos, configure credentials, run postCreateCommand]
↓ [start code-server]
↓ Ready ✓Workers can be stopped (container paused, state preserved) and started again. The code-server installation and repo state persist across restarts.
Destroying a worker (Delete) removes the container and the database record permanently.
During first start, a structured status is written to /tmp/mp-status.json at each phase. The dashboard shows live progress:
| Phase | Description |
|---|---|
initializing | Container started, scripts beginning |
credentials | Git config, SSH keys, GCP ADC |
cloning | Cloning repositories |
features | Installing devcontainer features |
extensions | Installing VS Code extensions |
lifecycle | Running postCreateCommand |
ready | Worker is ready to use |
Each worker is accessible at a unique subdomain:
https://worker-{index}-{id}-code.{BASE_DOMAIN}The proxy verifies your session cookie and checks that you're the owner of the worker before proxying traffic.
Port forwarding is on-demand — any port your code listens on can be accessed at:
https://worker-{index}-{id}-{port}.{BASE_DOMAIN}No configuration needed — just start a server and click the link in the Ports panel.
Generate a one-time SSH token from the worker card:
ssh -i ~/.ssh/id_ed25519 -p 2222 vscode@{BASE_DOMAIN} -t {token}Tokens expire after 5 minutes and can only be used once.
Before the first worker spawns on a node, Spunto pre-builds a Docker image for the project version. This image contains:
- code-server
- All devcontainer features (OCI install scripts)
- VS Code extensions
Subsequent spawns reuse the cached image — no re-installation needed. If you update the project config (new extension, changed feature), the version increments and a new image is built automatically on next spawn.
