grex
A nested meta-repo manager. Track many git repos as a single graph, sync them in parallel, and drive every operation from a shell, CI, or an LLM agent speaking MCP.
grex is what you reach for when one git repo is no longer enough — when
you have a tree of related repos (a workspace, a fleet of services, a set
of dotfiles + plugins + tools) and you want one declarative source of
truth that says which repos belong, where they live on disk, and how
they're kept in sync.
It is not a dev-environment installer, not a package manager, not
mise / asdf. It manages repos, not language toolchains.
In 30 seconds
cargo install grex-cli # binary is `grex`
grex init # creates grex.jsonl in cwd
grex add https://github.com/you/svc-a # registers + clones a sub-repo
grex add https://github.com/you/svc-b
grex sync # parallel pull/clone for all
grex status --json # machine-readable state
grex.jsonl (intent) and grex.lock.jsonl (resolved state) are the only
files you commit to your meta-repo. Everything else grex does — clone,
pull, run actions, talk MCP — is reproducible from those two files.
What you get
- One CLI, twelve frozen verbs.
init add rm ls status sync update doctor serve import run exec. Universal--json --plain --dry-run --parallel <N> --filter <EXPR>on every verb. See the CLI reference. - Pack contract. Any git repo with a
.grex/pack.yamlis a pack. Three built-in pack-types ship; the plugin API lets you add more without forking. Read the pack spec. - Reproducible manifest. Newline-delimited JSON, schema-versioned per row. See manifest.
- MCP server built-in.
grex servespeaks native MCP 2025-06-18 over stdio — every non-serveverb becomes a tool call, no custom dialect. See MCP reference. - Parallel scheduler with a Lean4 invariant proof. Bounded semaphore
- per-pack
.grex-lock+fd-lockmanifest guard; "no double-lock" is mechanised. See concurrency.
- per-pack
- Migration from
REPOS.jsonmeta-repos viagrex import --from-repos-json. See migration.
Read next
- New here? Start with Goals then Architecture.
- Writing a pack? Read the Pack spec and Pack template.
- Driving grex from an agent? Jump to MCP and the CLI JSON output reference.
- Curious how it's built? See the engineering handbook and the roadmap.
API reference (rustdoc): grex-core ·
grex-mcp.
Heads up: the published crate is
grex-cli; the installed binary isgrex. If pemistahl's unrelatedgrex(regex-from-test-cases) is already on yourPATH, pass--forcetocargo install grex-clior rename the other binary first.