Skip to content

wtm run up

Start a profile's jobs

Start every job in a profile, in declared order, in each [worktree] — the current one when omitted, picked interactively when there is a terminal. Several worktrees start concurrently and independently: one that aborts leaves the others running, and the run exits non-zero if any of them did. It starts one profile: --profile, else the default profile, else the only one declared. With several and none marked default it asks which, and fails naming --profile when it cannot ask. A run.toml declaring no profile starts every job. Once the jobs are up, each declared port is checked: a port nothing answers on is reported rather than announced as bound. It never fails the run — see --no-probe and run.toml's port_probe_timeout. Tasks block the profile and abort it on failure; services launch in the background. When another worktree is already running jobs, wtm asks once what to do about it and can remember the answer as run.toml's concurrency; --exclusive and --parallel override it for one run. --exclusive is refused on several worktrees, since it stops all but one. The run view opens on the jobs as they start; leaving it detaches without stopping them — the rest of the profile keeps starting, reported line by line — and -d skips the view.

wtm run up [worktree...] [flags]
# The default profile, in this worktree, in the run view
wtm run up
# Two worktrees side by side, back to the prompt
wtm run up feat/login fix/typo -d
# Another profile, no prompts
wtm run up feat/login --profile backend -d --yes
# For a script or an agent
wtm run up feat/login -d --yes --output json
-d, --detach Start the jobs and return immediately instead of opening their output
--exclusive Stop jobs on other worktrees before starting (one worktree only)
--force Lift the refusal to start a job whose touches reach foreign data (see wtm run --help); other questions are still asked unless --yes
-h, --help help for up
--no-probe Skip the check that each declared port was actually bound
--output string Output format: text or json (default "text")
--parallel Start without stopping other worktrees
--profile string Start this profile's jobs (default: the profile marked default, or the only one declared)
-y, --yes Skip all prompts; leaves the other worktrees' jobs running unless --exclusive
-q, --quiet Silence human output; errors and the exit code are unaffected, and --output json still emits its document
  • wtm run - Manage dev jobs (services + tasks)