Compute and storage control plane

Describe the workload. Stado decides where it runs.

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.

  • Provider-neutral queue
  • Leases, fencing, CAS
  • SHA-256 result evidence
  • macOS arm64 · Linux amd64
  • Apache-2.0

The capacity is already paid for. The control is not.

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.

Scheduling is guesswork

Every console answers for one provider. Nothing answers for the fleet, so work lands where somebody remembered there was room.

Recovery is manual

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.

Automation is dangerous

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.

One queue, one job lifecycle, one result contract

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.

  1. Describe

    Submit the workload with its required capacity, deadline, data, and budget. No provider is named in the request; the contract is the same everywhere.

  2. Admit

    Leases, fencing, and compare-and-swap revisions prevent two workers or coordinators from ever owning the same transition.

  3. Execute

    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.

  4. Account

    The worker publishes output plus SHA-256 evidence. Pause and drain stay durable control state, so maintenance never deletes queued work.

The whole path, on one machine, with no cloud account

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.json
Local quick start, as documented in the Stado README. The job reaches completed with result evidence on disk.

Capability status is a product fact, not a marketing one

stado 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.

The vocabulary stado capabilities --json reports, and what each value commits to.
StatusWhat it meansStable in 0.5
implementedThe adapter exists in this buildOnly for local execution and local filesystem
partialSome operations of the family workNo
externalCapacity is operated outside StadoNo
plannedDeclared, not builtNo
unsupportedRefused by this buildNo
previewBuilt, awaiting live acceptance evidenceNo

What Stado is not, said before you find out

Is this a Kubernetes replacement?

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.

Can I depend on the cloud adapters today?

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.

Will every provider behave the same?

No, and Stado does not promise it. It also does not provision physical machines or install their operating systems, GPU drivers, or workload runtimes.

What do I have to give an AI agent?

Versioned stado machine JSON for authorized mutations, or read-only stado-mcp for inspection. Neither interface provides unrestricted shell access or cloud-administrator credentials.

What happens to queued work during maintenance?

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.

Start on the machine you are already sitting at

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.