@ssv/cli (ssv) — developer tooling CLI. Clone multiple git repos and run global + per-repo shell commands concurrently.
# npm
npm install -g @ssv/cli
# pnpm
pnpm add -g @ssv/cli# 1. Configure workspace root, shell, and config directory interactively
ssv mass-exec setup
# 2. List available configs
ssv mass-exec list
# 3. Preview a run (dry-run)
ssv mass-exec ssv/tools --dry-run
# 4. Run it
ssv mass-exec ssv/toolsRun the interactive setup wizard to register your workspace root, shell, and config directory:
ssv mass-exec setupOr set each value individually:
ssv mass-exec set ws-root S:/git
ssv mass-exec set shell bash
ssv mass-exec set config-root S:/git/my-resource/mass-execSettings are persisted to ~/.ssv/config.json.
# List all available configs
ssv mass-exec list
# Run a single config
ssv mass-exec ssv/tools
# Dry-run — preview commands without executing
ssv mass-exec ssv/tools --dry-run
# Filter to a single project within a config
ssv mass-exec ssv/tools --project ssv.cli
# Run multiple configs
ssv mass-exec ssv/tools ssv/arcane bssn/fe
# Run all configs under a prefix
ssv mass-exec ssv
# Run everything
ssv mass-exec all
# Override the clone root
ssv mass-exec ssv -r S:/git
# Override the shell
ssv mass-exec ssv/tools --shell bash
# Increase concurrency
ssv mass-exec all --concurrency 10
# Stream live output (debug log level)
ssv mass-exec ssv --log-level debugFor full reference — all options, config file format, step schema, and interpolation tokens — see docs/mass-exec.md.
# Install dependencies
pnpm install
# Build (outputs to dist/)
pnpm build
# Run compiled CLI
pnpm start
# Watch mode
pnpm dev -- mass-exec list
# Type-check
pnpm typecheck
# Lint
pnpm lint
# Lint with auto-fix
pnpm lint:fix
# Format
pnpm fmt
# Check formatting without modifying
pnpm fmt:check
# Regenerate mass-exec.config.schema.json (run after editing src/config-schema.ts)
pnpm gen-schemapnpm build && pnpm link --global