Metastack

A meta-repository workspace CLI. Orchestrates a fixed list of sibling git repos from a single workspace root.

metastack turns a directory into a workspace that owns and operates a known set of git repos. You declare which repos belong to the workspace in metastack.yaml; metastack handles cloning them, running git operations across all of them, executing arbitrary commands in each, and verifying the toolchain a contributor needs.

Why a workspace tool

Some products span several repos (a CLI, a daemon, an update server, a Homebrew tap). Operating them by hand means a lot of cd ../foo && git pull && cd ../bar && git pull. metastack formalizes the relationship between the repos so any contributor can clone the whole workspace, verify their tools, and run cross-cutting commands without remembering which repo lives where.

How it works

Each workspace has a metastack.yaml at its root. Two top-level keys:

Subcommands all read metastack.yaml and act on the listed repos. metastack pull runs git pull --ff-only in each; metastack status prints branch + ahead/behind + working-tree state per repo; metastack exec -- <cmd> runs an arbitrary shell command in each. The CLI walks up from the current directory to find metastack.yaml, so you can run any verb from anywhere inside the workspace.

Dogfood note: The Stackcube monorepo itself is a metastack workspace. Both paas-meta and metastack-meta use it to manage their respective sub-repos.

Where to go next