id = "mprocs"
name = "mprocs"
homepage = "https://github.com/pvolok/dekit"
description = "mprocs runs multiple commands in parallel and shows output of each command separately."
executables = ["mprocs"]
[dotfiles]
paths = ["~/.config/mprocs/mprocs.yaml", "%APPDATA%/mprocs/mprocs.yaml"]
secret = []
[commands]
format = 1
label = "Run processes"
description = "Run several commands side by side, from mprocs.yaml, package.json scripts or a Procfile. Other flags are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false }
[[commands.source]]
id = "readme"
kind = "help"
url = "https://raw.githubusercontent.com/pvolok/dekit/HEAD/README-mprocs.md"
revision = "2026-10"
evidence = """
Run `mprocs cmd1 cmd2 …` (example: `mprocs "yarn test -w" "webpack serve"`)
`mprocs --config ./cfg/mprocs.yaml`
If you run _mprocs_ with an `--npm` argument, it will load scripts from `package.json`.
mprocs --procfile ./Procfile.dev
mprocs --procfile
"""
[[commands.field]]
id = "commands"
label = "Commands"
description = "Each entry is one shell command line to run as a process. Leave empty to use mprocs.yaml."
type = "string"
position = 0
multiple = true
effect = "exec"
sources = ["readme"]
[[commands.field]]
id = "config"
label = "Config file"
type = "path"
option = ["--config"]
path = { kind = "file", role = "input" }
sources = ["readme"]
[[commands.field]]
id = "npm"
label = "Load package.json scripts"
type = "boolean"
option = ["--npm"]
sources = ["readme"]
[[commands.field]]
id = "procfile"
label = "Procfile"
type = "path"
option = ["--procfile"]
path = { kind = "file", role = "input" }
sources = ["readme"]
[[commands.task]]
id = "adhoc"
label = "Run commands side by side"
fields = ["commands"]
required = ["commands"]
[[commands.task]]
id = "npm_scripts"
label = "Run package.json scripts"
fields = ["npm"]
required = ["npm"]
set = { npm = [true] }
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["commands", "config"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["npm", "procfile"]