Scheduling is guesswork
Every console answers for one provider. Nothing answers for the fleet, so work lands where somebody remembered there was room.
Compute and storage control plane
Stado is a harness for managing compute and storage across local, GCP, AWS, and Azure infrastructure. Describe the workload, required capacity, deadline, data, and budget; Stado decides where and when to run it, then records what happened.
AI compute fleets grow as disconnected local workstations, long-lived servers, cloud VMs, provider consoles, scripts, queues, artifact stores, and billing dashboards. Expensive capacity ends up difficult to schedule, difficult to recover, and dangerous to automate.
Every console answers for one provider. Nothing answers for the fleet, so work lands where somebody remembered there was room.
A machine that disappears mid-job takes the job with it. What ran, on what inputs, and what it produced has to be reconstructed by hand.
Handing an agent a shell or a cloud-administrator credential is the usual way to make orchestration programmable, and the usual way to lose control of it.
Stado replaces ad hoc orchestration with a provider-neutral product contract. The same four steps run whether the work lands on the laptop in front of you or on a cloud VM.
Submit the workload with its required capacity, deadline, data, and budget. No provider is named in the request; the contract is the same everywhere.
Leases, fencing, and compare-and-swap revisions prevent two workers or coordinators from ever owning the same transition.
A worker resolves immutable inputs and runs the workload. Secret plaintext is materialized only inside the trusted workload process and is excluded from durable job JSON.
The worker publishes output plus SHA-256 evidence. Pause and drain stay durable control state, so maintenance never deletes queued work.
The quick start requires no cloud account, cloud credential, Skarbiec, GPU, or Python. This is the documented local transcript, start to finished job.
$ stado config init
~/.stado/config.json
$ stado config validate
config ok (~/.stado/config.json)
$ stado local-control-plane
coordinator, local agent and dashboard running
dashboard http://127.0.0.1:8765
$ stado submit "printf 'hello from Stado\n'"
Job ID: 01JD7QF6ZK4M2V8B0S3XN9TCEA
$ stado status 01JD7QF6ZK4M2V8B0S3XN9TCEA
completed
$ stado results 01JD7QF6ZK4M2V8B0S3XN9TCEA ./results
./results/stdout.txt
./results/result.jsonstado capabilities --json is the source of truth for the installed build. An implementation status does not promote an integration to stable support, and every cloud adapter stays preview until its own live acceptance matrix passes.
| Status | What it means | Stable in 0.5 |
|---|---|---|
| implemented | The adapter exists in this build | Only for local execution and local filesystem |
| partial | Some operations of the family work | No |
| external | Capacity is operated outside Stado | No |
| planned | Declared, not built | No |
| unsupported | Refused by this build | No |
| preview | Built, awaiting live acceptance evidence | No |
No. Stado is not a general Kubernetes replacement or a container platform, and it does not manage arbitrary networks, load balancers, registries, or application platforms.
Stado 0.5 is in release-candidate validation and stable support is intentionally limited to the local execution and local filesystem contracts. Every cloud adapter remains preview until its own release-scoped live acceptance matrix passes.
No, and Stado does not promise it. It also does not provision physical machines or install their operating systems, GPU drivers, or workload runtimes.
Versioned stado machine JSON for authorized mutations, or read-only stado-mcp for inspection. Neither interface provides unrestricted shell access or cloud-administrator credentials.
Pause and drain are durable control state rather than a best-effort signal on one machine. Storage migration previews and executes a fenced copy, verifies names, metadata, and bodies, and never allows two active writers.
The local path is the stable path in 0.5, it needs no cloud account, and it is the same queue, lifecycle, and result contract you will use when the fleet grows.