Skip to content
Step 1 is executed against the binary on every build. Steps 2 and 3 are not: a composition build needs the builder VM and minutes of wall clock, so no gate replays them and the two commands are shown without being checked. The CLI reference is generated from the binary's own help and is checked in full.

Quickstart

Build one Linux service into a signed SpaceOS composition and boot it in a local VM. You do not need an account. The three commands take under a minute if the builder VM is already running, and a few minutes if it is not.

space init writes a project directory of five files. space build compiles the Dockerfile service inside the builder VM and leaves a signed composition in the local image store. space run boots that composition in the local development VM.

Prerequisites

  • A macOS host on Apple silicon, with Homebrew. The development VM boots through Apple’s Virtualization.framework, so space run needs that host. Other targets are listed in the target reference.
  • The space CLI from the Parsimoni tap. Run brew tap parsimoni-labs/space, then brew install space. space --version prints the build you have.

Step 1: Scaffold a project

Terminal window
$ space init hello-world
created hello-world (5 files)
Next:
cd hello-world
space build
space run
$ cd hello-world

space init creates a new hello-world/ project with five files:

FilePurpose
DockerfileDefines the hello Linux service.
build.yamlComposes that service into a SpaceOS system image.
run.yamlSets its local VM placement.
README.mdKeeps the next commands beside the project.
.gitignoreKeeps the build tree out of your first commit.

The scaffolded relay authenticates every frame and rejects replayed ones, and it draws a fresh association key for each run, so you never type a key. The association authenticates frames but does not encrypt them. There is no unauthenticated posture to select.

Step 2: Build

From the new directory:

Terminal window
space build

space build finds build.yaml and builds the Dockerfile service in the builder VM. It pulls the SpaceOS runtime image from a registry or takes it from the local OCI cache. It assembles that service and that image into the composition under _build/spaceos and signs it. On the first build the CLI creates a local development signing identity and prints its fingerprint. The signed result stays in the local image store until you push it with space image push.

It prints each stage with its elapsed time. The final block names the image, its digest, the output directory, and the identity that signed it. Every build also appends a provenance row to the host build record, a failed one included.

The build.yaml reference is the field list for the composition, and the run.yaml reference for the placement.

Step 3: Run

Terminal window
space run

space run boots the composition in the local development VM. The hello service runs under runc isolation inside that VM. The command stays in the foreground; press Ctrl+C to stop it. Pass --runtime run.yaml to apply the placement in that file, --timeout SECONDS for a bounded run, and --headless to run without the interactive display.

space run --name NAME instead registers a supervised instance on the local runner. Watch that one with space status and space logs.