Skip to main content
asymmetric env operates on environments: named compositions of clones. An environment’s membership is the source of truth, so these commands work at the environment level instead of clone by clone.

env spin

Validate an environment.yaml, spin every clone it declares (in order), and record the environment with those clones as members. The spec’s path is stored on the environment as its source.
Clones are spun sequentially, continue-all: each one is created and joins the environment before the next starts, so a sibling’s ports are committed before the next is allocated. If a member fails, the others still come up, the failure prints to stderr, the environment is stamped partial, and the command exits 1. The spec is strict — anything not yet supported is a clear error, not a silent no-op:

env status

List environments, one per line: name, rolled-up state, and members.
Empty:

env destroy

Destroy every clone in the environment (containers down, database dropped, ports freed). Continue-all: each member is attempted even if one fails, failures print to stderr, and the command exits 1 if any member failed. Removing the last member drops the environment.

env reset

Reset every clone in the environment to its clean seeded state — each member is dropped, re-migrated, and re-seeded (the same as reset <id>, applied across the whole environment). Continue-all: every member is attempted, failures print to stderr, and the command exits 1 if any member failed. The environment is stamped running when all members reset, partial if any failed.

Ad-hoc environments

You don’t need a spec file. Tag clones into an environment as you spin them — each joins the named environment:
Both clones become members of environment acme (with spec: null), and the env status / env destroy commands operate on them as a unit.

Errors you might see

See the full error reference.

Not yet

Two declared-but-not-yet-enforced spec sections fail loudly rather than silently no-op: shared identity: across clones, and bring-your-own data: (an external Postgres). Both are on the roadmap — see Environments. Multi-clone env spin and env reset already work today.